Serious C++ linking error

H.J. Lu hjl@lucon.org
Sun Jul 4 16:51:00 GMT 1999


I am enclosing a simplified testcase for the bug. It is a very
complicated bug due to the weak symbol handling in glibc and gld. It
doesn't happen on Solaris where weak symbols in DSO are treated as
strong and the dynamic linker treats all weak symbols as strong.

I don't know if there is a reasonable fix from glibc or gld. I tend
to believe the bug is in g++. Basically under glibc, for the same
symbol, g++ has to make it either weak or strong in all cases,
compiler-generated or not. Otherwise, bad things can happen.



-- 
H.J. Lu (hjl@gnu.org)
--
begin 644 shared.tar.gz
M'XL(`"CL?S<``^U876_:,!3E%?^*.\HFJ$@:FWQ(9-U6T76:MJE5^]"'=9-"
MXH"WX%0AB$[3_OOLA*1`H;330A_J\Y`0V]?WVK['/G@R\A(:D(-:A0#3<"P+
M:@#8L0SY!MPEV7L.`\!VNHYCVT;7$;6&Z9`:6%4&56`Z2;T$H#;Z$=W;3C0+
MPUT$M%M,YNL?QK'N5^0#&X9MFIO7'SMFL?[$$HD"&%L&KH%143Q+>.;KO\>X
M'TT#"J\G:<!B??0&(<93"*@71;'OI10.P7#SPGTDT@1:;?0;`5PGHBB$5N/X
MXK0#HJ('QLW+FRO>Z,"K6_.V*]HF-)TF?+'817_04X]=X9;_7[R?-&01K<+'
M%OYCT^@6_.\2T0`P(=A1_-\%^B>?CSY<'&JGH`T1.CL_%1^2S%@^",RRG_))
M$!+<[4&SE35JHWH8)Q`"XV61"T$,U!_%T#B?<L[X4#1OA@T7]`/Q=N$*U0%8
M"%]%\5MX(386^.9".J(\-SOQ1`8&+H1,=L4IDOL-[D'$!O)\FL0P]AC7?1AX
M"=9C5&^V^OTV:#$TWXDH\K&TH?D=M,NHHR777CKJZ%DO9'TOY!&]Y$Y[TDSW
MEZTT'[3P[&-_R3RS()LMEMO.-@QUMC+6)/C%O3'S[\2K'5^^/_IT-^S9AM'/
M5H;_^(X?.R'SGG++!TY,:5/&WX-,JY16^0Y66*]9!3^B'N^A>C(6U66RPKZ<
MBWTQ`4]-P2=%L?_G25&-CVWZSR2XU'\V-J7^L[M*_^T$>RP,:`@9Q_:N$V\X
M]F!&O9\+`G"M'MRCT62U1I;R@(5SL2C9+<2B.__*I6.N))%,MUQ((A$!&"@[
M%UH+`E$>#WD';223Q!O$29IUD+M>$*#TAOJ=;%N[1X(6[J$,JPBVE*?&,Q2E
M!?_U83!@G*55^-C&?\"VX'_7PL0B#L92_PD%J/B_"PP2279!#I1,^7-+?H62
M_YD2J\C'-OX3Q[Z]_S&S^Q_3-A7_=X%U]S\/T03_*@KD?Z+5"Z3\_!85Z@9)
;04%!04%!04%!04%!04%!X;_C+^),&@L`*```
`
end


More information about the Binutils mailing list