LoongArch: ldconfig: Ignore EF_LARCH_OBJABI_V1 in shared objects

Binutils 2.40 sets EF_LARCH_OBJABI_V1 for shared objects:

    $ ld --version | head -n1
    GNU ld (GNU Binutils) 2.40
    $ echo 'int dummy;' > dummy.c
    $ cc dummy.c -shared
    $ readelf -h a.out | grep Flags
    Flags:                             0x43, DOUBLE-FLOAT, OBJ-v1

We need to ignore it in ldconfig or ldconfig will consider all shared
objects linked by Binutils 2.40 "unsupported".  Maybe we should stop
setting EF_LARCH_OBJABI_V1 for shared objects, but Binutils 2.40 is
already released and we cannot change it.
This commit is contained in:
Xi Ruoyao 2023-03-26 19:13:34 +08:00 committed by caiyinyu
parent 152f863926
commit 952b7630c7

View File

@ -40,7 +40,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
ret = process_elf64_file (file_name, lib, flag, isa_level, soname,
file_contents, file_length);
flags = elf64_header->e_flags;
flags = elf64_header->e_flags & ~EF_LARCH_OBJABI_V1;
/* LoongArch linkers encode the floating point ABI as part of the ELF headers. */
switch (flags & SUPPORTED_ELF_FLAGS)