https://sourceware.org/bugzilla/show_bug.cgi?id=24613
Fangrui Song <i at maskray dot me> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |i at maskray dot me --- Comment #6 from Fangrui Song <i at maskray dot me> --- Hi Dilyan and Nick, -Wl,--warn-unresolved-symbols is very rare. Making `-z defs --warn-unresolved-symbols` warn rather than error may be fine. It is unlikely to cause a friction. # warning % gold a1.o --warn-unresolved-symbols -z defs a1.o(.text+0x1): warning: undefined reference to 'undef' % ld.lld a1.o --warn-unresolved-symbols -z defs ld.lld: warning: undefined symbol: undef >>> referenced by a1.o:(.text+0x1) # error % ld.bfd a1.o --warn-unresolved-symbols -z defs ld.bfd: a1.o: in function `_shared': (.text+0x1): undefined reference to `undef' Another similar option is --unresolved-symbols=report-all. All of GNU ld, gold and lld warn with --warn-unresolved-symbols % ld.bfd a1.o --warn-unresolved-symbols --unresolved-symbols=report-all ld.bfd: a1.o: in function `_shared': (.text+0x1): warning: undefined reference to `undef' My understanding: There are two kinds of unresolved references: 1) from object files 2) from shared objects. --unresolved-symbols= toggles both bits while -z (un)defs and --(no-)allow-shlib-undefined toggles one bit, respectively. I personally favor the fine-grained options over --unresolved-symbols= -- You are receiving this mail because: You are on the CC list for the bug.