From Bugzilla Helper: User-Agent: Mozilla/4.75 [en] (Windows NT 5.0; U) Description of problem: On the latest RedHat 7.3 in the glibc-2.2.5-34 the symbol __on_exit is not defined in /lib/libc.so.6 __on_exit was defined in previous versions of glibc and also in the GNU 2.2.5 We need to ship a modified pthread library with our product so we have to understand this difference. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.Start the IBM Informix Dynamic Server Version 9.30 eg oninit -V 2.ld.so complains that the symbol __on_exit is undefined 3.This product runs on all RedHat version previus 7.3 Additional info:
__on_exit has always been a glibc private symbol, exported from glibc only so that other shared libs which are part of glibc can call it. The latest glibc enforces this through GLIBC_PRIVATE version. (Note that __on_exit has never been declared in any glibc headers nor mentioned in documentation). Libraries/binaries which are not part of glibc should never use it (should use e.g. on_exit instead which is the exported/declared/documented interface).
The change to make this function GLIBC_PRIVATE is only in the RedHat version!! I have dowloded the glibc 2.2.90 where this change is NOT done!! It seems RedHat is the only vendor with this change. Please explain. Thanks
No, the change is in the current glibc CVS, see: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/Versions?rev=1.10&content-type=text/x-cvsweb-markup&cvsroot=glibc The change FYI was: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/Versions.diff?r1=1.8&r2=1.9&cvsroot=glibc