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

Reply via email to