https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216871
--- Comment #2 from Mark Johnston <[email protected]> --- The problem seems to be related to GNU ld (I had only tested the build with lld) and -ffunction-sections. Two objects that get linked into libxul.so contain the same weak symbol. There's a DTrace probe in the corresponding function: > readelf -s Unified_cpp_js_src27.o | grep > _ZN2js14NewObjectCache16newObjectFromHitEP9JSC 747: 0000000000000000 518 FUNC WEAK HIDDEN 152 _ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE 1261: 0000000000000000 518 FUNC GLOBAL HIDDEN 152 $dtrace6188451._ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE > readelf -s jsarray.o | grep _ZN2js14NewObjectCache16newObjectFromHitEP9JSC 382: 0000000000000000 518 FUNC WEAK HIDDEN 405 _ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE 567: 0000000000000000 518 FUNC GLOBAL HIDDEN 405 $dtrace6195329._ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE > readelf -s js-dtrace.o | grep _ZN2js14NewObjectCache16newObjectFromHitEP9JSC 44: 0000000000000000 0 FUNC GLOBAL DEFAULT UND $dtrace6188451._ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE 57: 0000000000000000 0 FUNC GLOBAL DEFAULT UND $dtrace6195329._ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE With r313262, we emit alises for the symbols. It seems that ld merges the sections, and ends up leaving one the aliases orphaned: > ld -r -o test.o jsarray.o Unified_cpp_js_src27.o > readelf -s test.o | grep _ZN2js14NewObjectCache16newObjectFromHitEP9JSC 1231: 0000000000000000 0 FUNC GLOBAL HIDDEN UND $dtrace6188451._ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE 1438: 0000000000000000 518 FUNC GLOBAL HIDDEN 476 $dtrace6195329._ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE 1667: 0000000000000000 518 FUNC WEAK HIDDEN 476 _ZN2js14NewObjectCache16newObjectFromHitEP9JSContextiNS_2gc11InitialHeapE However, the .SUNW_dof section has a relocation for this symbol, so the final link fails. I'm not sure if this behaviour is a bug in ld. It seems to me that we might be able address this by avoiding the "$dtrace" uniquifier for aliases of weak symbols. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace To unsubscribe, send any mail to "[email protected]"
