[llvm-dev] Targeting old glibc

Fāng-ruì Sòng via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 9 10:04:22 PST 2020


No. A shared object is needed if it is linked in (1)--no-as-needed
mode or (2) after --gc-sections, a symbol referenced by a live input
section  is defined by the shared object.

You'll need to check whether a symbol is defined by libmvec.so.1

On Mon, Nov 9, 2020 at 9:57 AM Alexandre Bique
<bique.alexandre at gmail.com> wrote:
>
> On Mon, Nov 9, 2020 at 6:52 PM Fāng-ruì Sòng <maskray at google.com> wrote:
> > Recent libm.a and libm.so are actually linker scripts
> >
> > % cat /usr/lib/x86_64-linux-gnu/libm.a
> > /* GNU ld script
> > */
> > OUTPUT_FORMAT(elf64-x86-64)
> > GROUP ( /usr/lib/x86_64-linux-gnu/libm-2.31.a
> > /usr/lib/x86_64-linux-gnu/libmvec.a )
> > % cat /usr/lib/x86_64-linux-gnu/libm.so
> > /* GNU ld script
> > */
> > OUTPUT_FORMAT(elf64-x86-64)
> > GROUP ( /lib/x86_64-linux-gnu/libm.so.6  AS_NEEDED (
> > /lib/x86_64-linux-gnu/libmvec.so.1 ) )
>
> In this script the libmvec is mentioned as "AS_NEEDED", and it is not
> needed in my case, yet lld pulls its dependency toward exp at GLIBC_2.29.
>
> Is it a bug in lld?
>
> Regards,
> Alexandre



-- 
宋方睿


More information about the llvm-dev mailing list