diff --git a/glibc.spec b/glibc.spec index 8856308..f39205a 100644 --- a/glibc.spec +++ b/glibc.spec @@ -66,7 +66,7 @@ ############################################################################## Name: glibc Version: 2.34 -Release: 95 +Release: 96 Summary: The GNU libc libraries License: %{all_license} URL: http://www.gnu.org/software/glibc/ @@ -233,6 +233,7 @@ Patch145: rtld-Remove-DL_ARGV_NOT_RELRO-and-make-_dl_skip_args.patch Patch146: linux-Add-a-getauxval-test-BZ-23293.patch Patch147: aarch64-Move-ld.so-_start-to-separate-file-and-drop-.patch Patch148: elf-Fix-DNDEBUG-warning-in-_dl_start_args_adjust.patch +Patch149: nptl-Fix-___pthread_unregister_cancel_restore-asynch.patch Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch Patch9001: delete-no-hard-link-to-avoid-all_language-package-to.patch @@ -1415,6 +1416,9 @@ fi %endif %changelog +* Thu Sep 8 2022 Qingqing Li - 2.34-96 +- nptl: Fix ___pthread_unregister_cancel_restore asynchronous + * Thu Sep 8 2022 Qingqing Li - 2.34-95 - add requires between glibc-info and glibc diff --git a/nptl-Fix-___pthread_unregister_cancel_restore-asynch.patch b/nptl-Fix-___pthread_unregister_cancel_restore-asynch.patch new file mode 100644 index 0000000..d1b891c --- /dev/null +++ b/nptl-Fix-___pthread_unregister_cancel_restore-asynch.patch @@ -0,0 +1,29 @@ +From f27e5e21787abc9f719879af47687221aa1027b3 Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella +Date: Wed, 13 Jul 2022 10:37:32 -0300 +Subject: [PATCH] nptl: Fix ___pthread_unregister_cancel_restore asynchronous + restore + +This was due a wrong revert done on 404656009b459658. + +Checked on x86_64-linux-gnu and i686-linux-gnu. +--- + nptl/cleanup_defer.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nptl/cleanup_defer.c b/nptl/cleanup_defer.c +index eb0bc77..4e864ea 100644 +--- a/nptl/cleanup_defer.c ++++ b/nptl/cleanup_defer.c +@@ -71,7 +71,7 @@ ___pthread_unregister_cancel_restore (__pthread_unwind_buf_t *buf) + return; + + int cancelhandling = atomic_load_relaxed (&self->cancelhandling); +- if (cancelhandling & CANCELTYPE_BITMASK) ++ if ((cancelhandling & CANCELTYPE_BITMASK) == 0) + { + int newval; + do +-- +1.8.3.1 +