Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vJ3oC-0094QC-1i for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Nov 2025 05:54:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vJ3oA-009R09-0w for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Nov 2025 05:54:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vJ3o9-009R01-2t for pgsql-hackers@lists.postgresql.org; Wed, 12 Nov 2025 05:54:18 +0000 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vJ3o7-007HbE-16 for pgsql-hackers@lists.postgresql.org; Wed, 12 Nov 2025 05:54:17 +0000 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-bc09b3d3b17so121592a12.1 for ; Tue, 11 Nov 2025 21:54:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762926853; x=1763531653; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=86aIGj2SVS2H0/VsKUEp31lGCtaCQpOgRgMDcOTJMdI=; b=ZHNwGb8il5FIS7sWZasT7eGOJHjIv1U/HQqwxc0mvD6oByGD+B+QrseodH1YXJFzKS rNxZHUd8hea5+mkvPa0hjGL486BPJPOXiQHflI05BVZEbWaXSmXuo7rR2L+BJymWXK4N WUlUSKKsVrhIEjEypdYcyyn6p+WLvmkDpbHl7XSMPcDI9lTUH6wKLZPotNFe26xM4EyQ RGqkwi8Ju0pRN+GttGOMsj9NsNNdbHO9erLGPczBxAAaUin8CcOZEorOo4C/myzMl+VP AaPuJBM9COkJYTBt6OXDzNgHcSvJGf1aejJsqkasOlJAqPCysZaC1HGJSABUORRs6TEN ScHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762926853; x=1763531653; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=86aIGj2SVS2H0/VsKUEp31lGCtaCQpOgRgMDcOTJMdI=; b=abJYBrCfW2uw2dghhoH5RFcOc11H6wGXxMbiM4a235RhPbySheKkVCNQf3BH82Yrfa Cg9aDKulFwcEd0q3eMii3jcg+FkABrWvB/1V+iZQCxFW8Itkml2cxpWZvq5mbmfNx/b4 yhcZped8MtUzhGJIEN7RgaYmcPEJ8N+me27y4+1rqz9vBq9lXW9Sva5F+W8Ycos3tu1d xZ1Ka2Azj0XAYIfH6rb2qnlO79//qOPdzX4xBebOczr2dGVklhocHUZqQJrfaYco0oJO 40wSVguse/cQZ3ivu4Psc77SVkuOL/pnKfkpqmKXtM5vG8zrGV0gMtR8fIBs539h/+wW ZCOg== X-Gm-Message-State: AOJu0YxwcmbxbXEMPHQhboK1My46IroZpYOtsLZr/LmXQ8s53YN+QPIz TKHlU+CXSO+3dV8xg1X2tBhnriM8kXk8TsuKNtrgRs+wcNJSH3OGZ5wqm9kOWPAujoLwJO7zYC4 xAtzhRhtWLOdsB/424IfvUrRQo/IzjDKqW70P X-Gm-Gg: ASbGncv+E0noMbREaTrZK7fh14GtwA6jjJPcnQRgm1xZvaN6QBGqjD7RZq6XdacAiCl 10DlyF5PcJNY9wWQDfvsamZ7Ip3EEUqisASfy+xLsc1gJHQg14nNaftPxv3zCTKodQ4+ViJq4J9 7Oy1TCTyobO+W4lc5J1ji3XNx4KqNC4swsDlakt1OILy9MsCURSxnr0YE7qXLdyJqTqLYfBuzU5 WOaBe1stJddEz9aL7RH8m942aNvB1+mGLmI+sp1Z/XEIsRa0UferRySnJSs X-Google-Smtp-Source: AGHT+IEFuyEpftTWk/stX79mstaXTCtj5OdWupVrK3NYBknoygxhcXq8pJkIGbN8YqN8CVe/dMH/g69iZpvULD8WthQ= X-Received: by 2002:a17:902:ce0d:b0:295:596f:84ef with SMTP id d9443c01a7336-2984eda9832mr24845535ad.31.1762926853112; Tue, 11 Nov 2025 21:54:13 -0800 (PST) MIME-Version: 1.0 References: <19095-6d8256d0c37d4be2@postgresql.org> In-Reply-To: From: BharatDB Date: Wed, 12 Nov 2025 11:24:31 +0530 X-Gm-Features: AWmQ_bnzW93O_29gKh32iHV-n5nfOtqqEpzw4u2Jdl1ObE7Y5zOe-fpnZhu0eX8 Message-ID: Subject: Fwd: BUG #19095: Test if function exit() is used fail when linked static To: Pg Hackers Content-Type: multipart/mixed; boundary="000000000000d862a706435f64b1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d862a706435f64b1 Content-Type: multipart/alternative; boundary="000000000000d862a606435f64af" --000000000000d862a606435f64af Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ---------- Forwarded message --------- From: BharatDB Date: Wed, Nov 12, 2025 at 11:23=E2=80=AFAM Subject: Re: BUG #19095: Test if function exit() is used fail when linked static To: , , < michael@paquier.xyz> Cc: VASUKI M > Hello Hackers, > > While reproducing a static linking issue between libpq and libcrypto.a, > I observed that the Makefile's symbol check incorrectly reports missing > exit() symbols because 'grep exit' also matches 'atexit' and > 'OPENSSL_atexit', etc. > > As discussed in the thread by Michael Paquier > (https://www.postgresql.org/message-id/aQA1obboZFjqjaBI%40paquier.xyz), > it seems a related fix was committed earlier. However, I was able to > reproduce this issue again using PostgreSQL 18 (latest release). > > Steps to reproduce: > nm -A -u ./src/interfaces/libpq/libpq.a > /usr/lib/x86_64-linux-gnu/libcrypto.a 2>/dev/null | grep -v __cxa_atexit = | > grep exit > > Output: > /usr/lib/x86_64-linux-gnu/libcrypto.a:libcrypto-lib-init.o: > U atexit > /usr/lib/x86_64-linux-gnu/libcrypto.a:libdefault-lib-rand_unix.o: > U OPENSSL_atexit > > This falsely triggers an undefined exit() error. > [1]Changing the grep pattern to match the exact symbol ('grep -x exit') > prevents > such false positives. [2]Alternatively, excluding pthread_exit() (similar to > __cxa_atexit) would also avoid the issue. > > But [1] will handle all the false positives instead of just pthread_exi= t .LGTM Expected (after fix): > no output =E2=80=94 no false positives. > > Patch attached.I would love to hear any suggestions from the committers. > Thanks in advance > > Best regards, > Vasuki M > BharatDB, > CDAC Chennai. > --000000000000d862a606435f64af Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


<= div dir=3D"ltr" class=3D"gmail_attr">---------- Forwarded message ---------=
From: BharatDB= <bharatdbpg@= gmail.com>
Date: Wed, Nov 12, 2025 at 11:23=E2=80=AFAM
= Subject: Re: BUG #19095: Test if function exit() is used fail when linked s= tatic
To: <torsten.rupp@gmx.= net>, <pgsql-= bugs@lists.postgresql.org>, <michael@paquier.xyz>
Cc: VASUKI M <vasukim1992002@gmail.com>



Hello Hackers,

While reproducing a static linking= issue between libpq and libcrypto.a,
I observed that the Makefile's= symbol check incorrectly reports missing
exit() symbols because 'gr= ep exit' also matches 'atexit' and
'OPENSSL_atexit',= etc.

As discussed in the thread by Michael Paquier
(https://www.postgresql.org/message-id/aQA1obboZFjqjaBI%40paquie= r.xyz),
it seems a related fix was committed earlier. However, I was= able to
reproduce this issue again using PostgreSQL 18 (latest release)= .

Steps to reproduce:
=C2=A0 nm -A -u ./src/interfaces/libpq/libp= q.a /usr/lib/x86_64-linux-gnu/libcrypto.a 2>/dev/null | grep -v __cxa_at= exit | grep exit

Output:
=C2=A0 /usr/lib/x86_64-linux-gnu/libcryp= to.a:libcrypto-lib-init.o: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 U atexit
=C2=A0 /usr/lib/x86_64-linux-gnu/libcrypto.a:libdefault= -lib-rand_unix.o: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 U OPENSSL_atexit
This falsely triggers an undefined exit() error. =C2=A0
[1]Changing th= e grep pattern to match the exact symbol ('grep -x exit') prevents<= br>such false positives.
[2]Alternatively, excluding pthread_exit() (similar to
__cxa= _atexit) would also avoid the issue.

=C2=A0 But [1= ] will handle all the false positives instead of just pthread_exit .LGTM
Expected (afte= r fix):
=C2=A0 no output =E2=80=94 no false positives.

Patch atta= ched.I would love to hear any suggestions from the committers.
=C2=A0 Thanks in advance=C2=A0=C2=A0

Best regards, =C2=A0
Vasuki M =C2=A0
=C2=A0 =C2=A0 BharatDB,=C2=A0
CDAC Chennai.
--000000000000d862a606435f64af-- --000000000000d862a706435f64b1 Content-Type: application/x-patch; name="0001-Fix-prevent-false-exit-match-in-libpq-static-link-ch.patch" Content-Disposition: attachment; filename="0001-Fix-prevent-false-exit-match-in-libpq-static-link-ch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhvl37mg0 RnJvbSA2YmE3ODRlMjdmNmQyYTcwMjM4MjgyNjNmOTg4YjdhMjcxNmZlNjE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXREQlBHIDxiaGFyYXRkYnBnQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAxMSBOb3YgMjAyNSAxNzozNjoyOSArMDUzMApTdWJqZWN0OiBbUEFUQ0hdIEZpeDog cHJldmVudCBmYWxzZSBleGl0KCkgbWF0Y2ggaW4gbGlicHEgc3RhdGljIGxpbmsgY2hlY2sKClRo ZSBwcmV2aW91cyBNYWtlZmlsZSBjaGVjayB1c2VkICdncmVwIGV4aXQnLCB3aGljaCBhbHNvIG1h dGNoZWQKc3ltYm9scyBsaWtlICdhdGV4aXQnIGFuZCAnT1BFTlNTTF9hdGV4aXQnIGZyb20gbGli Y3J5cHRvLmEuClRoaXMgY2F1c2VkIGZhbHNlIHBvc2l0aXZlIGxpbmsgZmFpbHVyZXMgd2hlbiBz dGF0aWNhbGx5IGxpbmtpbmcKbGlicHEgd2l0aCBPcGVuU1NMLgoKVXNlICdncmVwIC14IGV4aXQn IHRvIG1hdGNoIG9ubHkgdGhlIGV4YWN0IHN5bWJvbCBuYW1lLgoKU2lnbmVkLW9mZi1ieTogQmhh cmF0REJQRyA8YmhhcmF0ZGJwZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEv TWFrZWZpbGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlCmluZGV4IGRhNjY1MDAuLjhjZmYzMGIgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL01ha2VmaWxlCkBAIC0xNDQsNyArMTQ0LDcgQEAgJChzdGxpYik6ICQoT0JKU19TVEFUSUMp CiBsaWJwcS1yZWZzLXN0YW1wOiAkKHNobGliKQogaWZuZXEgKCQoZW5hYmxlX2NvdmVyYWdlKSwg eWVzKQogaWZlcSAoLCQoZmlsdGVyIHNvbGFyaXMsJChQT1JUTkFNRSkpKQotCUBpZiBubSAtQSAt dSAkPCAyPi9kZXYvbnVsbCB8IGdyZXAgLXYgLWUgX19jeGFfYXRleGl0IC1lIF9fdHNhbl9mdW5j X2V4aXQgfCBncmVwIGV4aXQ7IHRoZW4gXAorCUBpZiBubSAtQSAtdSAkPCAyPi9kZXYvbnVsbCB8 IGdyZXAgLXYgLWUgX19jeGFfYXRleGl0IC1lIF9fdHNhbl9mdW5jX2V4aXQgfCBncmVwIC14IGV4 aXQ7IHRoZW4gXAogCQllY2hvICdsaWJwcSBtdXN0IG5vdCBiZSBjYWxsaW5nIGFueSBmdW5jdGlv biB3aGljaCBpbnZva2VzIGV4aXQnOyBleGl0IDE7IFwKIAlmaQogZW5kaWYKLS0gCjIuNDMuMAoK --000000000000d862a706435f64b1--