From 15ba5ad1055b4260dbc8f90225a2c0313c8f5f5c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 5 Mar 2019 16:19:19 -0800 Subject: glibc: Drop upstream rejected patches These patches were applied, hoping that they will eventually be accepted upstream but they have been rejected, I think its best that they are dropped so we can avoid novel unintended behaviours that no other distros will be seeing Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- ...26-reset-dl_load_write_lock-after-forking.patch | 40 ------------- ...so-lock-before-switching-to-malloc_atfork.patch | 70 ---------------------- meta/recipes-core/glibc/glibc_2.27.bb | 2 - 3 files changed, 112 deletions(-) delete mode 100644 meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch delete mode 100644 meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch diff --git a/meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch b/meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch deleted file mode 100644 index eca1193dd3..0000000000 --- a/meta/recipes-core/glibc/glibc/0026-reset-dl_load_write_lock-after-forking.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 847d37d5a34e4bf294de4ba98de3668950e28bc7 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 27 Jan 2018 10:05:07 -0800 -Subject: [PATCH 26/27] reset dl_load_write_lock after forking - -The patch in this Bugzilla entry was requested by a customer: - - https://www.sourceware.org/bugzilla/show_bug.cgi?id=19282 - -The __libc_fork() code reset dl_load_lock, but it also needed to reset -dl_load_write_lock. The patch has not yet been integrated upstream. - -Upstream-Status: Pending [ No Author See bugzilla] - -Signed-off-by: Damodar Sonone -Signed-off-by: Yuanjie Huang -Signed-off-by: Khem Raj ---- - sysdeps/nptl/fork.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c -index 846fa49ef2..f87506f398 100644 ---- a/sysdeps/nptl/fork.c -+++ b/sysdeps/nptl/fork.c -@@ -194,9 +194,9 @@ __libc_fork (void) - _IO_list_resetlock (); - } - -- /* Reset the lock the dynamic loader uses to protect its data. */ -+ /* Reset the locks the dynamic loader uses to protect its data. */ - __rtld_lock_initialize (GL(dl_load_lock)); -- -+ __rtld_lock_initialize (GL(dl_load_write_lock)); - /* Run the handlers registered for the child. */ - while (allp != NULL) - { --- -2.16.1 - diff --git a/meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch b/meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch deleted file mode 100644 index 9ec234bd51..0000000000 --- a/meta/recipes-core/glibc/glibc/0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 94225ab4bcc1613531558a632270b5edce779bc9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 27 Jan 2018 10:08:04 -0800 -Subject: [PATCH 27/27] Acquire ld.so lock before switching to malloc_atfork - -The patch is from - https://sourceware.org/bugzilla/show_bug.cgi?id=4578 - -If a thread happens to hold dl_load_lock and have r_state set to RT_ADD or -RT_DELETE at the time another thread calls fork(), then the child exit code -from fork (in nptl/sysdeps/unix/sysv/linux/fork.c in our case) re-initializes -dl_load_lock but does not restore r_state to RT_CONSISTENT. If the child -subsequently requires ld.so functionality before calling exec(), then the -assertion will fire. - -The patch acquires dl_load_lock on entry to fork() and releases it on exit -from the parent path. The child path is initialized as currently done. -This is essentially pthreads_atfork, but forced to be first because the -acquisition of dl_load_lock must happen before malloc_atfork is active -to avoid a deadlock. - -The patch has not yet been integrated upstream. - -Upstream-Status: Pending [ Not Author See bugzilla] - -Signed-off-by: Raghunath Lolur -Signed-off-by: Yuanjie Huang -Signed-off-by: Zhixiong Chi -Signed-off-by: Khem Raj ---- - sysdeps/nptl/fork.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c -index f87506f398..225e7b51f8 100644 ---- a/sysdeps/nptl/fork.c -+++ b/sysdeps/nptl/fork.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -60,6 +61,10 @@ __libc_fork (void) - but our current fork implementation is not. */ - bool multiple_threads = THREAD_GETMEM (THREAD_SELF, header.multiple_threads); - -+ /* grab ld.so lock BEFORE switching to malloc_atfork */ -+ __rtld_lock_lock_recursive (GL(dl_load_lock)); -+ __rtld_lock_lock_recursive (GL(dl_load_write_lock)); -+ - /* Run all the registered preparation handlers. In reverse order. - While doing this we build up a list of all the entries. */ - struct fork_handler *runp; -@@ -246,6 +251,10 @@ __libc_fork (void) - - allp = allp->next; - } -+ -+ /* unlock ld.so last, because we locked it first */ -+ __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); -+ __rtld_lock_unlock_recursive (GL(dl_load_lock)); - } - - return pid; --- -2.16.1 - diff --git a/meta/recipes-core/glibc/glibc_2.27.bb b/meta/recipes-core/glibc/glibc_2.27.bb index adee494c2e..650de727b4 100644 --- a/meta/recipes-core/glibc/glibc_2.27.bb +++ b/meta/recipes-core/glibc/glibc_2.27.bb @@ -40,8 +40,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ file://0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ file://0025-locale-fix-hard-coded-reference-to-gcc-E.patch \ - file://0026-reset-dl_load_write_lock-after-forking.patch \ - file://0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch \ file://0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch \ file://0029-Replace-strncpy-with-memccpy-to-fix-Wstringop-trunca.patch \ file://0030-plural_c_no_preprocessor_lines.patch \ -- cgit 1.2.3-korg