From 7c6195f6a433665648e108a30c6257d64b4acf66 Mon Sep 17 00:00:00 2001 From: Xing Li Date: Fri, 10 Nov 2023 17:42:26 +0800 Subject: [PATCH] Fix LoongArch patch error after the fstatat64 upstream patch merge --- ...x-ptr-mangling-demangling-and-SHMLBA.patch | 26 +- ...e-condition-to-use-PC-relative-addre.patch | 16 +- LoongArch-Port.patch | 232 ++++++------------ glibc.spec | 7 +- 4 files changed, 104 insertions(+), 177 deletions(-) diff --git a/LoongArch-Fix-ptr-mangling-demangling-and-SHMLBA.patch b/LoongArch-Fix-ptr-mangling-demangling-and-SHMLBA.patch index 403f42e..cc9b99a 100644 --- a/LoongArch-Fix-ptr-mangling-demangling-and-SHMLBA.patch +++ b/LoongArch-Fix-ptr-mangling-demangling-and-SHMLBA.patch @@ -1,10 +1,23 @@ +From 6698be0ce3a7877d68468c56a9217c4d87f74e23 Mon Sep 17 00:00:00 2001 +From: XingLi +Date: Fri, 10 Nov 2023 15:00:28 +0800 +Subject: [PATCH 1/3] LoongArch Fix ptr mangling demangling and SHMLBA + +--- + sysdeps/loongarch/__longjmp.S | 7 +++ + sysdeps/loongarch/setjmp.S | 7 +++ + .../unix/sysv/linux/loongarch/bits/shmlba.h | 24 +++++++ + sysdeps/unix/sysv/linux/loongarch/sysdep.h | 62 ++++++++++++++++++- + 4 files changed, 97 insertions(+), 3 deletions(-) + create mode 100644 sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h + diff --git a/sysdeps/loongarch/__longjmp.S b/sysdeps/loongarch/__longjmp.S index 5cc1bc78..fa86f797 100644 --- a/sysdeps/loongarch/__longjmp.S +++ b/sysdeps/loongarch/__longjmp.S @@ -20,8 +20,15 @@ #include - + ENTRY (__longjmp) +#ifdef PTR_MANGLE + REG_L t0, a0, 0*SZREG @@ -24,7 +37,7 @@ index 00ea14b2..6201d0e6 100644 +++ b/sysdeps/loongarch/setjmp.S @@ -29,8 +29,15 @@ ENTRY (setjmp) END (setjmp) - + ENTRY (__sigsetjmp) +#ifdef PTR_MANGLE + PTR_MANGLE (t0, ra, t1) @@ -73,9 +86,9 @@ index b2587091..3f2d691b 100644 --- a/sysdeps/unix/sysv/linux/loongarch/sysdep.h +++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.h @@ -313,8 +313,64 @@ extern long int __syscall_error (long int neg_errno); - + #endif /* ! __ASSEMBLER__ */ - + -/* Pointer mangling is not supported. */ -#define PTR_MANGLE(var) (void) (var) -#define PTR_DEMANGLE(var) (void) (var) @@ -138,5 +151,8 @@ index b2587091..3f2d691b 100644 +#endif + +#endif - + #endif /* linux/loongarch/sysdep.h */ +-- +2.33.0 + diff --git a/LoongArch-Fix-the-condition-to-use-PC-relative-addre.patch b/LoongArch-Fix-the-condition-to-use-PC-relative-addre.patch index d188ec2..f1aa4eb 100644 --- a/LoongArch-Fix-the-condition-to-use-PC-relative-addre.patch +++ b/LoongArch-Fix-the-condition-to-use-PC-relative-addre.patch @@ -1,7 +1,7 @@ -From d29ac2028078612c6b4c25fb5be857ca35b37a3b Mon Sep 17 00:00:00 2001 +From dba920d34797ea8e44fca1d2cfc6a08dbe9bb759 Mon Sep 17 00:00:00 2001 From: XingLi Date: Thu, 27 Jul 2023 09:32:21 +0800 -Subject: [PATCH 2/3] LoongArch: Fix the condition to use PC-relative +Subject: [PATCH 3/3] LoongArch: Fix the condition to use PC-relative addressing in start.S A start.o compiled from start.S with -DPIC and no -DSHARED is used by @@ -47,8 +47,8 @@ Date: Sun, 2 Oct 2022 22:23:09 +0800 --- sysdeps/loongarch/configure | 29 +++++++++++++++++++++++++---- sysdeps/loongarch/configure.ac | 18 ++++++++++++++---- - sysdeps/loongarch/start.S | 11 +++++++---- - 3 files changed, 46 insertions(+), 12 deletions(-) + sysdeps/loongarch/start.S | 9 +++++++-- + 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/sysdeps/loongarch/configure b/sysdeps/loongarch/configure index db6341e8..4f0ac252 100644 @@ -152,10 +152,10 @@ index 603085cd..bfe4e0f2 100644 if test "$libc_cv_static_pie_on_loongarch" = yes; then AC_DEFINE(SUPPORT_STATIC_PIE) diff --git a/sysdeps/loongarch/start.S b/sysdeps/loongarch/start.S -index cb2b6c5b..11e4cede 100644 +index 1b15fc9c..87bb1d4e 100644 --- a/sysdeps/loongarch/start.S +++ b/sysdeps/loongarch/start.S -@@ -44,13 +44,16 @@ ENTRY (ENTRY_POINT) +@@ -44,11 +44,16 @@ ENTRY (ENTRY_POINT) cfi_undefined (1) or a5, a0, zero /* rtld_fini */ @@ -168,8 +168,6 @@ index cb2b6c5b..11e4cede 100644 + produce PLT entries for them. GNU ld >= 2.40 supports this. */ # define LA la.pcrel #else --/* We must get symbol main through GOT table, since main may not be local. -- For instance: googletest defines main in dynamic library. */ +/* Old GNU ld (< 2.40) cannot handle PC relative address against a non-local + function correctly. We deem these old linkers failing to support static PIE + and load the addresses from GOT. */ @@ -177,5 +175,5 @@ index cb2b6c5b..11e4cede 100644 #endif -- -2.27.0 +2.33.0 diff --git a/LoongArch-Port.patch b/LoongArch-Port.patch index eb50ad4..b7076c3 100644 --- a/LoongArch-Port.patch +++ b/LoongArch-Port.patch @@ -1,4 +1,4 @@ -From 23e0c7122bb0510d9375d4cbf365720e3ce63a91 Mon Sep 17 00:00:00 2001 +From c79112989afeadee37d64698eb4a922290b4e436 Mon Sep 17 00:00:00 2001 From: wanghongliang Date: Wed, 21 Dec 2022 14:39:59 +0800 Subject: [PATCH] LoongArch Port. @@ -24,7 +24,7 @@ Change-Id: Ia618b0101a483a2e07b8ecd114130907eb8ca5db sysdeps/loongarch/configure | 4 + sysdeps/loongarch/configure.ac | 6 + sysdeps/loongarch/dl-irel.h | 48 + - sysdeps/loongarch/dl-machine.h | 359 +++ + sysdeps/loongarch/dl-machine.h | 305 +++ sysdeps/loongarch/dl-tls.h | 46 + sysdeps/loongarch/dl-trampoline.S | 103 + sysdeps/loongarch/e_sqrtl.c | 39 + @@ -70,21 +70,20 @@ Change-Id: Ia618b0101a483a2e07b8ecd114130907eb8ca5db sysdeps/loongarch/nptl/pthreaddef.h | 34 + sysdeps/loongarch/nptl/tcb-offsets.sym | 6 + sysdeps/loongarch/nptl/tls.h | 138 ++ - sysdeps/loongarch/preconfigure | 53 + + sysdeps/loongarch/preconfigure | 52 + sysdeps/loongarch/setjmp.S | 66 + sysdeps/loongarch/sfp-machine.h | 102 + sysdeps/loongarch/sotruss-lib.c | 50 + sysdeps/loongarch/stackinfo.h | 33 + - sysdeps/loongarch/start.S | 70 + + sysdeps/loongarch/start.S | 69 + sysdeps/loongarch/sys/asm.h | 58 + sysdeps/loongarch/sys/ifunc.h | 30 + sysdeps/loongarch/sys/regdef.h | 98 + sysdeps/loongarch/tininess.h | 1 + sysdeps/loongarch/tls-macros.h | 49 + sysdeps/loongarch/tst-audit.h | 23 + - sysdeps/unix/sysv/linux/fstatat64.c | 12 +- sysdeps/unix/sysv/linux/loongarch/Implies | 1 + - sysdeps/unix/sysv/linux/loongarch/Makefile | 11 + + sysdeps/unix/sysv/linux/loongarch/Makefile | 10 + .../unix/sysv/linux/loongarch/arch-syscall.h | 292 +++ .../sysv/linux/loongarch/atomic-machine.h | 196 ++ .../unix/sysv/linux/loongarch/bits/fcntl.h | 61 + @@ -132,7 +131,7 @@ Change-Id: Ia618b0101a483a2e07b8ecd114130907eb8ca5db .../sysv/linux/loongarch/ucontext-macros.h | 32 + .../unix/sysv/linux/loongarch/ucontext_i.sym | 31 + sysdeps/unix/sysv/linux/loongarch/vfork.S | 50 + - 126 files changed, 10427 insertions(+), 2 deletions(-) + 125 files changed, 10359 insertions(+), 1 deletion(-) create mode 100644 sysdeps/loongarch/Implies create mode 100644 sysdeps/loongarch/Makefile create mode 100644 sysdeps/loongarch/__longjmp.S @@ -273,7 +272,7 @@ index 13101496..89596a83 100644 #undef __LINUX_KERNEL_VERSION diff --git a/elf/elf.h b/elf/elf.h -index c5315d1b..4119f784 100644 +index a64576bb..088f9764 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -358,8 +358,9 @@ typedef struct @@ -287,7 +286,7 @@ index c5315d1b..4119f784 100644 /* Old spellings/synonyms. */ -@@ -4036,6 +4037,74 @@ enum +@@ -4038,6 +4039,74 @@ enum #define R_NDS32_TLS_TPOFF 102 #define R_NDS32_TLS_DESC 119 @@ -832,10 +831,10 @@ index 00000000..9fd106a3 +#endif /* dl-irel.h */ diff --git a/sysdeps/loongarch/dl-machine.h b/sysdeps/loongarch/dl-machine.h new file mode 100644 -index 00000000..84f0ab81 +index 00000000..b6eac3ae --- /dev/null +++ b/sysdeps/loongarch/dl-machine.h -@@ -0,0 +1,359 @@ +@@ -0,0 +1,305 @@ +/* Machine-dependent ELF dynamic relocation inline functions. + Copyright (C) 2021 Free Software Foundation, Inc. + @@ -883,14 +882,8 @@ index 00000000..84f0ab81 +#define ELF_MACHINE_IRELATIVE R_LARCH_IRELATIVE + +#define elf_machine_type_class(type) \ -+ ((ELF_RTYPE_CLASS_PLT * ((type) == ELF_MACHINE_JMP_SLOT \ -+ || (__WORDSIZE == 32 && (type) == R_LARCH_TLS_DTPREL32) \ -+ || (__WORDSIZE == 32 && (type) == R_LARCH_TLS_DTPMOD32) \ -+ || (__WORDSIZE == 32 && (type) == R_LARCH_TLS_TPREL32) \ -+ || (__WORDSIZE == 64 && (type) == R_LARCH_TLS_DTPREL64) \ -+ || (__WORDSIZE == 64 && (type) == R_LARCH_TLS_DTPMOD64) \ -+ || (__WORDSIZE == 64 && (type) == R_LARCH_TLS_TPREL64))) \ -+ | (ELF_RTYPE_CLASS_COPY * ((type) == R_LARCH_COPY))) ++ ((ELF_RTYPE_CLASS_PLT *((type) == ELF_MACHINE_JMP_SLOT)) \ ++ | (ELF_RTYPE_CLASS_COPY *((type) == R_LARCH_COPY))) + +#define ELF_MACHINE_NO_REL 1 +#define ELF_MACHINE_NO_RELA 0 @@ -906,83 +899,57 @@ index 00000000..84f0ab81 + return 1; +} + -+/* Runtime address of .got */ -+#define _GLOBAL_OFFSET_TABLE_ \ -+ ({ \ -+ ElfW (Addr) * r; \ -+ asm("la.pcrel %0, _GLOBAL_OFFSET_TABLE_" : "=r"(r)); \ -+ r; \ -+ }) -+ -+/* Return the link-time address of _DYNAMIC. */ -+static inline ElfW (Addr) elf_machine_dynamic (void) ++/* Return the run-time load address of the shared object. */ ++static inline ElfW (Addr) elf_machine_load_address (void) +{ -+ return _GLOBAL_OFFSET_TABLE_[0]; ++ extern const ElfW(Ehdr) __ehdr_start attribute_hidden; ++ return (ElfW(Addr)) &__ehdr_start; +} + -+#define STRINGXP(X) __STRING (X) -+#define STRINGXV(X) STRINGV_ (X) -+#define STRINGV_(...) #__VA_ARGS__ -+ -+/* Return the run-time load address of the shared object. */ -+static inline ElfW (Addr) elf_machine_load_address (void) ++/* Return the link-time address of _DYNAMIC. */ ++static inline ElfW (Addr) elf_machine_dynamic (void) +{ -+ ElfW (Addr) got_linktime_addr; -+ asm("la.got %0, _GLOBAL_OFFSET_TABLE_" -+ /* Link-time address in GOT entry before runtime relocation */ -+ : "=r"(got_linktime_addr)); -+ return (ElfW (Addr)) _GLOBAL_OFFSET_TABLE_ - got_linktime_addr; ++ extern ElfW(Dyn) _DYNAMIC[] attribute_hidden; ++ return (ElfW(Addr)) _DYNAMIC - elf_machine_load_address (); +} + +/* Initial entry point code for the dynamic linker. + The C function `_dl_start' is the real entry point; + its return value is the user program's entry point. */ + -+#define RTLD_START \ -+ asm(".text\n\ -+ " _RTLD_PROLOGUE (ENTRY_POINT) "\ -+ .cfi_label .Ldummy \n\ -+ " CFI_UNDEFINED (1) " \n\ -+ or $a0, $sp, $zero \n\ -+ bl _dl_start \n\ -+ # Stash user entry point in s0. \n\ -+ or $s0, $v0, $zero \n\ -+ # See if we were run as a command with the executable file \n\ -+ # name as an extra leading argument. \n\ -+ la $a0, _dl_skip_args \n\ -+ ld.w $a0, $a0, 0 \n\ -+ # Load the original argument count. \n\ -+ ld.d $a1, $sp, 0 \n\ -+ # Subtract _dl_skip_args from it. \n\ -+ sub.d $a1, $a1, $a0 \n\ -+ # Adjust the stack pointer to skip _dl_skip_args words. \n\ -+ slli.d $a0, $a0, 3 \n\ -+ add.d $sp, $sp, $a0 \n\ -+ # Save back the modified argument count. \n\ -+ st.d $a1, $sp, 0 \n\ -+ # Call _dl_init (struct link_map *main_map, int argc, char **argv, \ -+ char **env) \n\ -+ la $a0, _rtld_local \n\ -+ ld.d $a0, $a0, 0 \n\ -+ addi.d $a2, $sp, 8 \n\ -+ slli.d $a3, $a1, 3 \n\ -+ add.d $a3, $a3, $a2 \n\ -+ addi.d $a3, $a3, 8 \n\ -+ # Adjust $sp for 16-aligned \n\ -+ srli.d $t0, $sp, 4 \n\ -+ slli.d $t0, $t0, 4 \n\ -+ ori $t1, $sp, 0 \n\ -+ addi.d $sp, $t0, -32 \n\ -+ st.d $t1, $sp, 24 \n\ -+ # Call the function to run the initializers. \n\ -+ bl _dl_init \n\ -+ # Pass our finalizer function to _start. \n\ -+ ld.d $sp, $sp, 24 \n\ -+ la $a0, _dl_fini \n\ -+ # Jump to the user entry point. \n\ -+ jirl $zero, $s0, 0 \n\ -+ " _RTLD_EPILOGUE (ENTRY_POINT) "\ -+ .previous"); ++#define RTLD_START asm (\ ++ ".text\n\ ++ " _RTLD_PROLOGUE (ENTRY_POINT) "\ ++ .cfi_label .Ldummy \n\ ++ " CFI_UNDEFINED (1) " \n\ ++ or $a0, $sp, $zero \n\ ++ bl _dl_start \n\ ++ # Stash user entry point in s0. \n\ ++ or $s0, $a0, $zero \n\ ++ # Load the original argument count. \n\ ++ ld.d $a1, $sp, 0 \n\ ++ # Call _dl_init (struct link_map *main_map, int argc, \ ++ char **argv, char **env) \n\ ++ la $a0, _rtld_local \n\ ++ ld.d $a0, $a0, 0 \n\ ++ addi.d $a2, $sp, 8 \n\ ++ slli.d $a3, $a1, 3 \n\ ++ add.d $a3, $a3, $a2 \n\ ++ addi.d $a3, $a3, 8 \n\ ++ # Stash the stack pointer in s1.\n\ ++ or $s1, $sp, $zero \n\ ++ # Adjust $sp for 16-aligned \n\ ++ bstrins.d $sp, $zero, 3, 0 \n\ ++ # Call the function to run the initializers. \n\ ++ bl _dl_init \n\ ++ # Restore the stack pointer for _start.\n\ ++ or $sp, $s1, $zero \n\ ++ # Pass our finalizer function to _start. \n\ ++ la $a0, _dl_fini \n\ ++ # Jump to the user entry point. \n\ ++ jirl $zero, $s0, 0 \n\ ++ " _RTLD_EPILOGUE (ENTRY_POINT) "\ ++ .previous"); + +/* Names of the architecture-specific auditing callback functions. */ +#define ARCH_LA_PLTENTER loongarch_gnu_pltenter @@ -1032,6 +999,14 @@ index 00000000..84f0ab81 + + switch (r_type) + { ++ case R_LARCH_JUMP_SLOT: ++ case __WORDSIZE == 64 ? R_LARCH_64 : R_LARCH_32: ++ *addr_field = value; ++ break; ++ ++ case R_LARCH_NONE: ++ break; ++ +#ifndef RTLD_BOOTSTRAP + case __WORDSIZE == 64 ? R_LARCH_TLS_DTPMOD64: + R_LARCH_TLS_DTPMOD32: @@ -1087,42 +1062,19 @@ index 00000000..84f0ab81 + memcpy (reloc_addr, (void *) value, size); + break; + } -+#endif -+ -+#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC + case R_LARCH_RELATIVE: + { -+#if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC -+ /* This is defined in rtld.c, but nowhere in the static libc.a; -+ make the reference weak so static programs can still link. -+ This declaration cannot be done when compiling rtld.c -+ (i.e. #ifdef RTLD_BOOTSTRAP) because rtld.c contains the -+ common defn for _dl_rtld_map, which is incompatible with a -+ weak decl in the same file. */ -+#ifndef SHARED -+ weak_extern (GL (dl_rtld_map)); -+#endif -+ if (map != &GL (dl_rtld_map)) /* Already done in rtld itself. */ -+#endif -+ *addr_field = map->l_addr + reloc->r_addend; ++ *addr_field = map->l_addr + reloc->r_addend; + break; + } -+#endif -+ -+ case R_LARCH_JUMP_SLOT: -+ case __WORDSIZE == 64 ? R_LARCH_64: -+ R_LARCH_32: -+ *addr_field = value; -+ break; + + case R_LARCH_IRELATIVE: + value = map->l_addr + reloc->r_addend; -+ value = ((ElfW (Addr) (*) (void)) value) (); ++ if (__glibc_likely (!skip_ifunc)) ++ value = ((ElfW (Addr) (*) (void)) value) (); + *addr_field = value; + break; -+ -+ case R_LARCH_NONE: -+ break; ++#endif + + default: + _dl_reloc_bad_type (map, r_type, 0); @@ -1156,13 +1108,6 @@ index 00000000..84f0ab81 + else + *reloc_addr = map->l_mach.plt; + } -+ else if (__glibc_unlikely (r_type == R_LARCH_IRELATIVE)) -+ { -+ ElfW (Addr) *value = (void *) (l_addr + reloc->r_addend); -+ if (__glibc_likely (!skip_ifunc)) -+ value = (ElfW (Addr) *) ((ElfW (Addr) (*) (void)) value) (); -+ *reloc_addr = (ElfW (Addr)) value; -+ } + else + _dl_reloc_bad_type (map, r_type, 1); +} @@ -4749,10 +4694,10 @@ index 00000000..3b17e0b7 +#endif /* tls.h */ diff --git a/sysdeps/loongarch/preconfigure b/sysdeps/loongarch/preconfigure new file mode 100644 -index 00000000..118963cd +index 00000000..2e3abb9e --- /dev/null +++ b/sysdeps/loongarch/preconfigure -@@ -0,0 +1,53 @@ +@@ -0,0 +1,52 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! +# Local preconfigure fragment for sysdeps/loongarch + @@ -4805,7 +4750,6 @@ index 00000000..118963cd + base_machine=loongarch + ;; +esac -+ diff --git a/sysdeps/loongarch/setjmp.S b/sysdeps/loongarch/setjmp.S new file mode 100644 index 00000000..00ea14b2 @@ -5083,10 +5027,10 @@ index 00000000..a990a471 +#endif /* stackinfo.h */ diff --git a/sysdeps/loongarch/start.S b/sysdeps/loongarch/start.S new file mode 100644 -index 00000000..9ecfb5e2 +index 00000000..0deda78a --- /dev/null +++ b/sysdeps/loongarch/start.S -@@ -0,0 +1,70 @@ +@@ -0,0 +1,69 @@ +/* Startup code compliant to the ELF LoongArch ABI. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -5156,7 +5100,6 @@ index 00000000..9ecfb5e2 + la.got ra, t0, abort + jirl ra, ra, 0 +END (ENTRY_POINT) -+ diff --git a/sysdeps/loongarch/sys/asm.h b/sysdeps/loongarch/sys/asm.h new file mode 100644 index 00000000..1133f761 @@ -5452,36 +5395,6 @@ index 00000000..de120d8a +#define La_regs La_loongarch_regs +#define La_retval La_loongarch_retval +#define int_retval lrv_a0 -diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c -index f968e4ef..711ccf7e 100644 ---- a/sysdeps/unix/sysv/linux/fstatat64.c -+++ b/sysdeps/unix/sysv/linux/fstatat64.c -@@ -135,6 +135,16 @@ fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf, - return r; - } - -+#if defined (__loongarch__) -+#if (__WORDSIZE == 32 \ -+ && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \ -+ || defined STAT_HAS_TIME32 \ -+ || (!defined __NR_newfstatat && !defined __NR_fstatat64) -+# define FSTATAT_USE_STATX 1 -+#else -+# define FSTATAT_USE_STATX 0 -+#endif -+#else - #if (__WORDSIZE == 32 \ - && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \ - || defined STAT_HAS_TIME32 -@@ -142,7 +152,7 @@ fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf, - #else - # define FSTATAT_USE_STATX 0 - #endif -- -+#endif - int - __fstatat64_time64 (int fd, const char *file, struct __stat64_t64 *buf, - int flag) diff --git a/sysdeps/unix/sysv/linux/loongarch/Implies b/sysdeps/unix/sysv/linux/loongarch/Implies new file mode 100644 index 00000000..e52b1ac3 @@ -5491,10 +5404,10 @@ index 00000000..e52b1ac3 +loongarch/nptl diff --git a/sysdeps/unix/sysv/linux/loongarch/Makefile b/sysdeps/unix/sysv/linux/loongarch/Makefile new file mode 100644 -index 00000000..99ac734f +index 00000000..e205ce83 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/Makefile -@@ -0,0 +1,11 @@ +@@ -0,0 +1,10 @@ +ifeq ($(subdir),elf) +ifeq ($(build-shared),yes) +# This is needed for DSO loading from static binaries. @@ -5505,7 +5418,6 @@ index 00000000..99ac734f +ifeq ($(subdir),stdlib) +gen-as-const-headers += ucontext_i.sym +endif -+ diff --git a/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h b/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h new file mode 100644 index 00000000..c1ff6cb6 @@ -11472,5 +11384,5 @@ index 00000000..585f98ee +weak_alias (__vfork, vfork) +strong_alias (__vfork, __libc_vfork) -- -2.31.1 +2.33.0 diff --git a/glibc.spec b/glibc.spec index 3dbdb9d..86298ef 100644 --- a/glibc.spec +++ b/glibc.spec @@ -70,7 +70,7 @@ ############################################################################## Name: glibc Version: 2.34 -Release: 139 +Release: 140 Summary: The GNU libc libraries License: %{all_license} URL: http://www.gnu.org/software/glibc/ @@ -306,7 +306,6 @@ Patch9018: 0002-elf-ld.so-add-testcase-for-ld.so-load-shared-object-.patch Patch9019: 0003-elf-ld.so-use-special-mmap-for-hugepage-to-get-symbo.patch Patch9020: malloc-use-__get_nprocs-replace-__get_nprocs_sched.patch Patch9021: x86-use-total-l3cache-for-non_temporal_threshold.patch -%ifarch loongarch64 Patch9022: login-Add-back-libutil-as-an-empty-library.patch Patch9023: malloc-Fix-malloc-debug-for-2.35-onwards.patch Patch9024: LoongArch-Port.patch @@ -321,7 +320,6 @@ Patch9032: LoongArch-Fix-ptr-mangling-demangling-and-SHMLBA.patch Patch9033: LoongArch-Add-static-PIE-support.patch Patch9034: LoongArch-Fix-the-condition-to-use-PC-relative-addre.patch Patch9035: LoongArch-Further-refine-the-condition-to-enable-sta.patch -%endif Patch9036: add-pthread_cond_clockwait-GLIBC_2_28.patch Patch9037: 0001-ld.so-support-ld.so-mmap-hugetlb-hugepage-according-.patch Patch9038: 0002-elf-ld.so-keep-compatible-with-the-original-policy-o.patch @@ -1504,6 +1502,9 @@ fi %endif %changelog +* Fri Nov 10 2023 lixing - 2.34-140 +- LoongArch: Fixup the error after merge patch 191 + * Thu Oct 26 2023 zhangnaichuan - 2.34-139 - posix: Fix some crashes in wordexp -- Gitee