Hi,
investigating a segfault
(gdb) bt full
#0 0x00007fffec28dd90 in __deregister_frame_info () from /lib/
libgcc_s.so.1
No symbol table info available.
#1 0x00007fffebf8af66 in __do_global_dtors_aux () from /usr/lib/
libgcrypt.so.20
when starting Apache with mod_php activated on a buildroot-built x86_64-
system with uclibc-1.0.19 I came across discussions from 2012 & 2014 on
the uClibc mailinglist:
2012:
http://lists.uclibc.org/pipermail/uclibc/2012-October/047059.html
2014:
http://lists.busybox.net/pipermail/uclibc/2014-December/048737.html
Building mod_php without libgcrypt.so, which means disabling
BR2_PACKAGE_PHP_EXT_XSL, does not fix the problem, the segfault will
occur in another shared lib.
Quoting the message from 2014:
In my particular case, this meant dlopening and
dlclosing some 47
shared objects as reported by "LD_DEBUG=1 /usr/bin/gdk-pixbuf-query-
loaders ./libpixbufloader-svg.la 2>&1 | grep ^do_dlopen | grep ctors
| wc -l"
My system opens even more shared libs when starting Apache & mod_php:
# LD_DEBUG=1 /usr/bin/httpd -t 2>&1 | grep ^do_dlopen | grep ctors | wc -l
64
Segmentation fault
Please note that using Apache without mod_php works fine, php-cgi itself
also works fine.
In 2014 Anthony suggested to revert
https://git.busybox.net/uClibc/commit/ldso?
h=0.9.33&id=9b42da7d0558884e2a3cc9a8674ccfc752369610
which still solves the Apache/mod_php segfault today.
Uclibc-1.0.19 includes all commits from 2016-09-26 and older in
https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/log/ldso/libdl
it therefore includes
https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/
commit/ldso/libdl?id=cc04ab27ba6341f46bbe094478c9af3e3706f411 which
refers to fix the problem from the 2012 message, but it did not.
Thanks for the detailed investigation.
Indeed reverting the mentioned commit fixes also some long standing
bug I have seen when executing "php -m" to list all modules
installed in a system. (normally the ldap module generated the
segfault in my case)
I reverted the patch, this will be part of the next release.
best regards
Waldemar