Re: BUG #19095: Test if function exit() is used fail when linked static
| От | BharatDB |
|---|---|
| Тема | Re: BUG #19095: Test if function exit() is used fail when linked static |
| Дата | |
| Msg-id | CAAh00ETwx8_AEM0wgoi-v875uC-FLuGGOMTaP9fCNdVw4Zq=Vg@mail.gmail.com обсуждение исходный текст |
| Ответ на | BUG #19095: Test if function exit() is used fail when linked static (PG Bug reporting form <noreply@postgresql.org>) |
| Ответы |
Re: BUG #19095: Test if function exit() is used fail when linked static
|
| Список | pgsql-bugs |
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_exit .LGTM
Expected (after fix):
no output — 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.
Вложения
В списке pgsql-bugs по дате отправления: