https://sourceware.org/bugzilla/show_bug.cgi?id=24815
--- Comment #9 from Ismael Luceno <ismael at linux dot com> --- (In reply to Fangrui Song from comment #7) > -Wl,-t,-y,lzma_end is also useful > > When linking an executable, something like --no-allow-shlib-undefined is the > default (the opposite allow-shlib-undefine is used when linking a DSO), if > all of libxml2.so's DT_NEEDED libs are loaded, there can be an undefined > reference. # With glibc: $ gcc test.c -lxml2 -Wl,-t,-y,lzma_end /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/crtbeginS.o /tmp/ccDXrw7S.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/libxml2.so /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/libgcc_s.so /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/libgcc_s.so.1 /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/libc.so /lib/libc.so.6 /usr/lib/libc_nonshared.a /lib64/ld-linux-x86-64.so.2 /usr/lib/libc_nonshared.a /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/libgcc_s.so /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/libgcc_s.so.1 /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../lib/crtn.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /lib/liblzma.so.5: definition of lzma_end # With musl-libc: $ gcc test.c -lxml2 -Wl,-t,-y,lzma_end /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/crtbeginS.o /tmp/ccnhkcpO.o /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libxml2.so /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libgcc_s.so /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libgcc_s.so.1 /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libc.so /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libgcc_s.so /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libgcc_s.so.1 /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/libgcc.a /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/crtn.o /usr/bin/ld: /lib/liblzma.so.5: definition of lzma_end /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libxml2.so: undefined reference to `lzma_properties_decode@XZ_5.0' /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libxml2.so: undefined reference to `lzma_code@XZ_5.0' /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libxml2.so: undefined reference to `lzma_auto_decoder@XZ_5.0' /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-musl/9.1.0/../../../../lib/libxml2.so: undefined reference to `lzma_end@XZ_5.0' collect2: error: ld returned 1 exit status -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils