about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2023-03-26 19:13:34 +0800
committercaiyinyu <caiyinyu@loongson.cn>2023-03-27 16:57:56 +0800
commit952b7630c72ae245f370f1a2bcaade82bb1f7361 (patch)
treed073e9370095c3fdd9336ba2fae9f880e4353020 /sysdeps/unix
parent152f863926e77c6f9c9a8b8779c8084eb844ec44 (diff)
downloadglibc-952b7630c72ae245f370f1a2bcaade82bb1f7361.tar.gz
glibc-952b7630c72ae245f370f1a2bcaade82bb1f7361.tar.xz
glibc-952b7630c72ae245f370f1a2bcaade82bb1f7361.zip
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.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/readelflib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/loongarch/readelflib.c b/sysdeps/unix/sysv/linux/loongarch/readelflib.c
index bcaff86b36..ceba355959 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)