forked from rpms/glibc
Work around libselinux API deprecations & auto-sync with upstream branch master
- Add glibc-deprecated-selinux-makedb.patch and glibc-deprecated-selinux-nscd.patch to work around libselinux API deprecations. - Drop glibc-rseq-disable.patch; rseq support removed upstream. Upstream commit: ec2f1fddf29053957d061dfe310f106388472a4f - libio: Remove __libc_readline_unlocked - shadow: Implement fgetspent_r using __nss_fgetent_r - pwd: Implement fgetpwent_r using __nss_fgetent_r - gshadow: Implement fgetsgent_r using __nss_fgetent_r (bug 20338) - grp: Implement fgetgrent_r using __nss_fgetent_r - nss: Add __nss_fgetent_r - libio: Add fseterr_unlocked for internal use - nss_files: Use generic result pointer in parse_line - nss_files: Consolidate line parse declarations in <nss_files.h> - nss_compat: Do not use mmap to read database files (bug 26258) - nss_files: Consolidate file opening in __nss_files_fopen - Update powerpc-nofpu libm-test-ulps. - Use MPFR 4.1.0 in build-many-glibcs.py. - elf: Change TLS static surplus default back to 1664 - hurd: Fix longjmp check for sigstate - hurd: Fix longjmp early in initialization - manual: New signal and errno string functions are AS-safe - AArch64: Improve strlen_asimd performance (bug 25824) - Move <rpc/netdb.h> from sunrpc to inet - en_US: Minimize changes to date_fmt (Bug 25923) - Linux: Remove rseq support - manual: Use Unicode instead HTML entities for characters (bug 19737) - Add NEWS entry for CVE-2020-6096 (bug 25620) - arm: remove string/tst-memmove-overflow XFAIL - AArch64: Rename IS_ARES to IS_NEOVERSE_N1 - AArch64: Add optimized Q-register memcpy - AArch64: Align ENTRY to a cacheline - Correct timespec implementation [BZ #26232] - Remove --enable-obsolete-rpc configure flag - hurd: Fix build-many-glibcs.py - x86: Support usable check for all CPU features - string: Make tst-strerror/tst-strsignal unsupported if msgfmt is not installed - malloc: Deprecate more hook-related functionality - elf: Support at least 32-byte alignment in static dlopen - x86: Remove __ASSEMBLER__ check in init-arch.h - x86: Remove the unused __x86_prefetchw - Documentation for ARC port - build-many-glibcs.py: Enable ARC builds - ARC: Build Infrastructure - ARC: ABI lists - ARC: Linux Startup and Dynamic Loading - ARC: Linux ABI - ARC: Linux Syscall Interface - ARC: hardware floating point support - ARC: math soft float support - ARC: Atomics and Locking primitives - ARC: Thread Local Storage support - ARC: startup and dynamic linking code - ARC: ABI Implementation - Fix time/tst-cpuclock1 intermitent failures - powerpc64: Fix calls when r2 is not used [BZ #26173] - Add NEWS entry for Update to Unicode 13.0.0 [BZ #25819] - Update i686 libm-test-ulps - Fix memory leak in __printf_fp_l (bug 26215). - Fix double free in __printf_fp_l (bug 26214). - linux: Fix syscall list generation instructions - sysv: linux: Add 64-bit time_t variant for shmctl - sysvipc: Remove the linux shm-pad.h file - sysvipc: Split out linux struct shmid_ds - sysv: linux: Add 64-bit time_t variant for msgctl - sysvipc: Remove the linux msq-pad.h file - sysvipc: Split out linux struct semid_ds - sysv: linux: Add 64-bit time_t variant for semctl
This commit is contained in:
parent
1554837500
commit
3e8e5d3396
@ -1,125 +0,0 @@
|
||||
Disable rseq integration until the Firefox sandbox supports rseq.
|
||||
|
||||
Sandbox is incompatible with rseq registration
|
||||
<https://bugzilla.mozilla.org/show_bug.cgi?id=1651701>
|
||||
|
||||
diff --git a/elf/libc_early_init.c b/elf/libc_early_init.c
|
||||
index 86da66d5e01af08f..fd779941e7180fb6 100644
|
||||
--- a/elf/libc_early_init.c
|
||||
+++ b/elf/libc_early_init.c
|
||||
@@ -28,8 +28,9 @@ __libc_early_init (_Bool initial)
|
||||
__ctype_init ();
|
||||
|
||||
/* Register rseq ABI to the kernel for the main program's libc. */
|
||||
+ rseq_active_init ();
|
||||
if (initial)
|
||||
- rseq_register_current_thread ();
|
||||
+ rseq_register_current_thread ();
|
||||
|
||||
/* Only the outer namespace is marked as single-threaded. */
|
||||
__libc_single_threaded = initial;
|
||||
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
|
||||
index f72741b7e5afb22a..a730077142f0e20a 100644
|
||||
--- a/sysdeps/unix/sysv/linux/Versions
|
||||
+++ b/sysdeps/unix/sysv/linux/Versions
|
||||
@@ -171,6 +171,8 @@ libc {
|
||||
__rseq_abi;
|
||||
}
|
||||
GLIBC_PRIVATE {
|
||||
+ __rseq_active;
|
||||
+
|
||||
# functions used in other libraries
|
||||
__syscall_rt_sigqueueinfo;
|
||||
__open_nocancel;
|
||||
diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h
|
||||
index 8f6772ca1deada89..acaf033be465facd 100644
|
||||
--- a/sysdeps/unix/sysv/linux/rseq-internal.h
|
||||
+++ b/sysdeps/unix/sysv/linux/rseq-internal.h
|
||||
@@ -23,13 +23,29 @@
|
||||
#include <kernel-features.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/rseq.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#ifdef RSEQ_SIG
|
||||
+
|
||||
+extern _Bool __rseq_active;
|
||||
+
|
||||
+static inline void
|
||||
+rseq_active_init (void)
|
||||
+{
|
||||
+ __rseq_active = __access ("/etc/glibc.rseq.enabled", F_OK) == 0;
|
||||
+}
|
||||
+
|
||||
static inline void
|
||||
rseq_register_current_thread (void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
+ if (!__rseq_active)
|
||||
+ {
|
||||
+ __rseq_abi.cpu_id = RSEQ_CPU_ID_REGISTRATION_FAILED;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (__rseq_abi.cpu_id != RSEQ_CPU_ID_UNINITIALIZED)
|
||||
__libc_fatal ("glibc fatal error: "
|
||||
"rseq already initialized for this thread\n");
|
||||
@@ -64,6 +80,11 @@ rseq_register_current_thread (void)
|
||||
}
|
||||
}
|
||||
#else /* RSEQ_SIG */
|
||||
+static inline void
|
||||
+rseq_active_init (void)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
static inline void
|
||||
rseq_register_current_thread (void)
|
||||
{
|
||||
diff --git a/sysdeps/unix/sysv/linux/rseq-sym.c b/sysdeps/unix/sysv/linux/rseq-sym.c
|
||||
index 090093408f1a4b3f..78d3a9dd8355436b 100644
|
||||
--- a/sysdeps/unix/sysv/linux/rseq-sym.c
|
||||
+++ b/sysdeps/unix/sysv/linux/rseq-sym.c
|
||||
@@ -19,8 +19,11 @@
|
||||
#include <stdint.h>
|
||||
#include <kernel-features.h>
|
||||
#include <sys/rseq.h>
|
||||
+#include <rseq-internal.h>
|
||||
|
||||
__thread struct rseq __rseq_abi =
|
||||
{
|
||||
.cpu_id = RSEQ_CPU_ID_UNINITIALIZED,
|
||||
};
|
||||
+
|
||||
+_Bool __rseq_active __attribute__ ((nocommon));
|
||||
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-nptl.c b/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
|
||||
index 5e788dcfa9eef8ef..ed846e9f5d5a5f4e 100644
|
||||
--- a/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
|
||||
+++ b/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
|
||||
@@ -250,6 +250,10 @@ do_rseq_test (void)
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
+ extern _Bool __rseq_active;
|
||||
+ if (!__rseq_active)
|
||||
+ FAIL_UNSUPPORTED ("/etc/glibc.rseq.enabled missing, test disabled");
|
||||
+
|
||||
return do_rseq_test ();
|
||||
}
|
||||
|
||||
diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c
|
||||
index aa902fb26a64f917..60eaab4bc13d1275 100644
|
||||
--- a/sysdeps/unix/sysv/linux/tst-rseq.c
|
||||
+++ b/sysdeps/unix/sysv/linux/tst-rseq.c
|
||||
@@ -57,6 +57,10 @@ do_rseq_test (void)
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
+ extern _Bool __rseq_active;
|
||||
+ if (!__rseq_active)
|
||||
+ FAIL_UNSUPPORTED ("/etc/glibc.rseq.enabled missing, test disabled");
|
||||
+
|
||||
do_rseq_test ();
|
||||
return 0;
|
||||
}
|
80
glibc.spec
80
glibc.spec
@ -1,4 +1,4 @@
|
||||
%define glibcsrcdir glibc-2.31.9000-683-gffb17e7ba3
|
||||
%define glibcsrcdir glibc-2.31.9000-746-gec2f1fddf2
|
||||
%define glibcversion 2.31.9000
|
||||
# Pre-release tarballs are pulled in from git using a command that is
|
||||
# effectively:
|
||||
@ -96,7 +96,7 @@
|
||||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 19%{?dist}
|
||||
Release: 20%{?dist}
|
||||
|
||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||
# libraries.
|
||||
@ -167,9 +167,8 @@ Patch17: glibc-cs-path.patch
|
||||
Patch18: glibc-c-utf8-locale.patch
|
||||
Patch23: glibc-python3.patch
|
||||
Patch29: glibc-fedora-nsswitch.patch
|
||||
Patch30: glibc-rseq-disable.patch
|
||||
Patch31: glibc-deprecated-selinux-makedb.patch
|
||||
Patch32: glibc-deprecated-selinux-nscd.patch
|
||||
Patch30: glibc-deprecated-selinux-makedb.patch
|
||||
Patch31: glibc-deprecated-selinux-nscd.patch
|
||||
|
||||
##############################################################################
|
||||
# Continued list of core "glibc" package information:
|
||||
@ -2020,6 +2019,77 @@ fi
|
||||
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
||||
|
||||
%changelog
|
||||
* Tue Jul 21 2020 Arjun Shankar <arjun@redhat.com> - 2.31.9000-20
|
||||
- Add glibc-deprecated-selinux-makedb.patch and
|
||||
glibc-deprecated-selinux-nscd.patch to work around libselinux API
|
||||
deprecations.
|
||||
- Drop glibc-rseq-disable.patch; rseq support removed upstream.
|
||||
- Auto-sync with upstream branch master,
|
||||
commit ec2f1fddf29053957d061dfe310f106388472a4f:
|
||||
- libio: Remove __libc_readline_unlocked
|
||||
- shadow: Implement fgetspent_r using __nss_fgetent_r
|
||||
- pwd: Implement fgetpwent_r using __nss_fgetent_r
|
||||
- gshadow: Implement fgetsgent_r using __nss_fgetent_r (bug 20338)
|
||||
- grp: Implement fgetgrent_r using __nss_fgetent_r
|
||||
- nss: Add __nss_fgetent_r
|
||||
- libio: Add fseterr_unlocked for internal use
|
||||
- nss_files: Use generic result pointer in parse_line
|
||||
- nss_files: Consolidate line parse declarations in <nss_files.h>
|
||||
- nss_compat: Do not use mmap to read database files (bug 26258)
|
||||
- nss_files: Consolidate file opening in __nss_files_fopen
|
||||
- Update powerpc-nofpu libm-test-ulps.
|
||||
- Use MPFR 4.1.0 in build-many-glibcs.py.
|
||||
- elf: Change TLS static surplus default back to 1664
|
||||
- hurd: Fix longjmp check for sigstate
|
||||
- hurd: Fix longjmp early in initialization
|
||||
- manual: New signal and errno string functions are AS-safe
|
||||
- AArch64: Improve strlen_asimd performance (bug 25824)
|
||||
- Move <rpc/netdb.h> from sunrpc to inet
|
||||
- en_US: Minimize changes to date_fmt (Bug 25923)
|
||||
- Linux: Remove rseq support
|
||||
- manual: Use Unicode instead HTML entities for characters (bug 19737)
|
||||
- Add NEWS entry for CVE-2020-6096 (bug 25620)
|
||||
- arm: remove string/tst-memmove-overflow XFAIL
|
||||
- AArch64: Rename IS_ARES to IS_NEOVERSE_N1
|
||||
- AArch64: Add optimized Q-register memcpy
|
||||
- AArch64: Align ENTRY to a cacheline
|
||||
- Correct timespec implementation [BZ #26232]
|
||||
- Remove --enable-obsolete-rpc configure flag
|
||||
- hurd: Fix build-many-glibcs.py
|
||||
- x86: Support usable check for all CPU features
|
||||
- string: Make tst-strerror/tst-strsignal unsupported if msgfmt is not installed
|
||||
- malloc: Deprecate more hook-related functionality
|
||||
- elf: Support at least 32-byte alignment in static dlopen
|
||||
- x86: Remove __ASSEMBLER__ check in init-arch.h
|
||||
- x86: Remove the unused __x86_prefetchw
|
||||
- Documentation for ARC port
|
||||
- build-many-glibcs.py: Enable ARC builds
|
||||
- ARC: Build Infrastructure
|
||||
- ARC: ABI lists
|
||||
- ARC: Linux Startup and Dynamic Loading
|
||||
- ARC: Linux ABI
|
||||
- ARC: Linux Syscall Interface
|
||||
- ARC: hardware floating point support
|
||||
- ARC: math soft float support
|
||||
- ARC: Atomics and Locking primitives
|
||||
- ARC: Thread Local Storage support
|
||||
- ARC: startup and dynamic linking code
|
||||
- ARC: ABI Implementation
|
||||
- Fix time/tst-cpuclock1 intermitent failures
|
||||
- powerpc64: Fix calls when r2 is not used [BZ #26173]
|
||||
- Add NEWS entry for Update to Unicode 13.0.0 [BZ #25819]
|
||||
- Update i686 libm-test-ulps
|
||||
- Fix memory leak in __printf_fp_l (bug 26215).
|
||||
- Fix double free in __printf_fp_l (bug 26214).
|
||||
- linux: Fix syscall list generation instructions
|
||||
- sysv: linux: Add 64-bit time_t variant for shmctl
|
||||
- sysvipc: Remove the linux shm-pad.h file
|
||||
- sysvipc: Split out linux struct shmid_ds
|
||||
- sysv: linux: Add 64-bit time_t variant for msgctl
|
||||
- sysvipc: Remove the linux msq-pad.h file
|
||||
- sysvipc: Split out linux struct semid_ds
|
||||
- sysv: linux: Add 64-bit time_t variant for semctl
|
||||
|
||||
* Fri Jul 10 2020 Florian Weimer <fweimer@redhat.com> - 2.31.9000-19
|
||||
- Disable rseq registration by default to help Firefox (#1855729)
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (glibc-2.31.9000-683-gffb17e7ba3.tar.xz) = 103ff3c04de5dc149df93e5399de1630f6fff1b8d7f127881d6e530492b8b953a8064205ceecb311a77c0a10de3a5ab2056121fd1fa833a30327c6b1f08beacc
|
||||
SHA512 (glibc-2.31.9000-746-gec2f1fddf2.tar.xz) = 8324ee622aae041ad66aac0dbf2e3dc8af735c5826cbd2186bd9dabbb5fc6b8ffd744f68629e1f3763ed1f6692167acd75a1b621a799ef3e753aa348fdd0b581
|
||||
|
Loading…
Reference in New Issue
Block a user