From: Xi Ruoyao Date: Sun, 26 Mar 2023 11:13:34 +0000 (+0800) Subject: LoongArch: ldconfig: Ignore EF_LARCH_OBJABI_V1 in shared objects X-Git-Tag: glibc-2.38~473 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=952b7630c72ae245f370f1a2bcaade82bb1f7361;p=thirdparty%2Fglibc.git 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. --- diff --git a/sysdeps/unix/sysv/linux/loongarch/readelflib.c b/sysdeps/unix/sysv/linux/loongarch/readelflib.c index bcaff86b362..ceba3559595 100644 --- a/sysdeps/unix/sysv/linux/loongarch/readelflib.c +++ b/sysdeps/unix/sysv/linux/loongarch/readelflib.c @@ -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)