Description of problem: I would like to have to report a problem on Redhat regarding how they are building libc in RH4. In particular, symbols that used to be defined Weakly (W) like malloc and its related entry points are now defined as text (T), this causes static linked program to fail to build on RH4 using HPMPI because we define our own version of malloc and friends. Extra info: SuSE 9.x defines these symbols as (W). RH3 defined these symbols as (W) but RH4 defines as (T) text. mpi1620 /mpi3/lieb> cat /etc/SuSE-release SUSE LINUX Enterprise Server 9 (ia64) VERSION = 9 mpi1620 /mpi3/lieb> nm /usr/lib/libc.a | grep malloc | grep W | more 0000000000008270 W malloc .. cat /etc/redhat-release Red Hat Enterprise Linux AS release 3 (Taroon Update 2) [lieb@pop ~]$ nm /usr/lib/libc.a | grep malloc | grep W 00000ec4 W malloc ... cat /etc/redhat-release Red Hat Enterprise Linux AS release 4 (Nahant) nm /usr/lib64//libc.a | grep malloc | grep -v U 0000000000003a40 T malloc ... Version-Release number of selected component (if applicable): Linux frac.rsn.hp.com 2.6.9-11.EL #1 SMP Fri May 20 18:25:13 EDT 2005 ia64 ia64 ia64 GNU/Linux How reproducible: nm /usr/lib64//libc.a | grep malloc | grep -v U Steps to Reproduce: 1.nm /usr/lib64//libc.a | grep malloc | grep -v U Actual results: 0000000000003a40 T malloc Expected results: 0000000000003a40 W malloc Additional info:
Static linking is in no way supported. Relying on weak symbols is bad practice. If you want to replace the malloc implementation, replace it all.