From f1c4b3f4bd1bb054c2c4e8a628f6f82dfe8ca9ed Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Mon, 21 Sep 2020 12:33:35 +0200 Subject: [PATCH] Auto-sync with upstream branch master Upstream-commit: cdf645427d176197b82f44308a5e131d69fb53ad - glibc-rh741105.patch: Adjust after rebase. - glibc-fix-float128-benchtests.patch: Add to allow building on armv7hl. - Update mallinfo2 ABI, and test - Allow memset local PLT reference for RISC-V. - powerpc: fix ifunc implementation list for POWER9 strlen and stpcpy - nscd: bump GC cycle during cache pruning (bug 26130) - x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625] - : Add Intel Key Locker support - Fix handling of collating symbols in fnmatch (bug 26620) - pselect.c: Pass a pointer to SYSCALL_CANCEL [BZ #26606] - y2038: nptl: Convert sem_{clock|timed}wait to support 64 bit time - hurd: Add __x86_get_cpu_features to ld.abilist - x86: Install [BZ #26124] - linux: Add time64 pselect support - linux: Add time64 semtimedop support - linux: Add ppoll time64 optimization - linux: Simplify clock_getres - Update sparc libm-test-ulps - Remove internal usage of extensible stat functions - Linux: Consolidate xmknod - linux: Consolidate fxstatat{64} - linux: Consolidate fxstat{64} - linux: Consolidate lxstat{64} - linux: Consolidate xstat{64} - linux: Define STAT64_IS_KERNEL_STAT64 - linux: Always define STAT_IS_KERNEL_STAT - Update powerpc libm-test-ulps - benchtests: Add "workload" traces for sinf128 - benchtests: Add "workload" traces for sinf - benchtests: Add "workload" traces for sin - benchtests: Add "workload" traces for powf128 - benchtests: Add "workload" traces for pow - benchtests: Add "workload" traces for expf128 - benchtests: Add "workload" traces for exp - nptl: futex: Provide correct indentation for part of __futex_abstimed_wait_cancelable64 --- glibc-fix-float128-benchtests.patch | 70 +++++++++++++++++++++++++++++ glibc-rh741105.patch | 17 +++---- glibc.spec | 45 ++++++++++++++++++- sources | 2 +- 4 files changed, 123 insertions(+), 11 deletions(-) create mode 100644 glibc-fix-float128-benchtests.patch diff --git a/glibc-fix-float128-benchtests.patch b/glibc-fix-float128-benchtests.patch new file mode 100644 index 0000000..78f214d --- /dev/null +++ b/glibc-fix-float128-benchtests.patch @@ -0,0 +1,70 @@ +commit 7b7338cd82c8d39993644768752cc656f65adc20 +Author: Arjun Shankar +Date: Sat Sep 19 00:42:26 2020 +0200 + + benchtests: Run _Float128 tests only on architectures that support it + + __float128 is a non-standard name and is not available on some architectures + (like aarch64 or s390x) even though they may support the standard _Float128 + type. Other architectures (like armv7) don't support quad-precision + floating-point operations at all. + + This commit replaces benchtests references to __float128 with _Float128 and + runs the corresponding tests only on architectures that support it. + +diff --git a/benchtests/Makefile b/benchtests/Makefile +index 3095076055f3c47e..922e2a94b13c4b3c 100644 +--- a/benchtests/Makefile ++++ b/benchtests/Makefile +@@ -25,7 +25,11 @@ bench-math := acos acosh asin asinh atan atanh cos cosh exp exp2 log log2 \ + modf pow rint sin sincos sinh sqrt tan tanh fmin fmax fminf \ + fmaxf powf trunc truncf roundeven roundevenf expf exp2f logf \ + log2f sincosf sinf cosf isnan isinf isfinite hypot logb logbf \ +- exp10f expf128 powf128 sinf128 ++ exp10f ++ ++ifneq (,$(filter yes,$(float128-fcts) $(float128-alias-fcts))) ++bench-math += expf128 powf128 sinf128 ++endif + + bench-pthread := pthread_once thread_create + +diff --git a/benchtests/expf128-inputs b/benchtests/expf128-inputs +index 5b36f8672a0049f9..5dc0f4e49ba7db48 100644 +--- a/benchtests/expf128-inputs ++++ b/benchtests/expf128-inputs +@@ -1,6 +1,6 @@ + ## includes: math.h +-## args: __float128 +-## ret: __float128 ++## args: _Float128 ++## ret: _Float128 + # Random inputs in [-10,10] + ## name: workload-random.wrf + 0x4.e6f9d6da10d9a422942a89cdfa1p+0L +diff --git a/benchtests/powf128-inputs b/benchtests/powf128-inputs +index 7cbabafff6e058c4..6826266ad58c2196 100644 +--- a/benchtests/powf128-inputs ++++ b/benchtests/powf128-inputs +@@ -1,6 +1,6 @@ + ## includes: math.h +-## args: __float128:__float128 +-## ret: __float128 ++## args: _Float128:_Float128 ++## ret: _Float128 + # Random inputs in [-10,10] such that x and y are not both negative + ## name: workload-random.wrf + 0x8.130b31ed5288656428a29cead83p+0L, -0x6.e7ead09b7877a118813b50cfb3c8p+0L +diff --git a/benchtests/sinf128-inputs b/benchtests/sinf128-inputs +index 9aaf3124131a0439..01b75336800c1e24 100644 +--- a/benchtests/sinf128-inputs ++++ b/benchtests/sinf128-inputs +@@ -1,6 +1,6 @@ + ## includes: math.h +-## args: __float128 +-## ret: __float128 ++## args: _Float128 ++## ret: _Float128 + # Random inputs in [-10,10] + ## name: workload-random.wrf + 0x4.e6f9d6da10d9a422942a89cdfa1p+0 diff --git a/glibc-rh741105.patch b/glibc-rh741105.patch index 3b21b89..7637e08 100644 --- a/glibc-rh741105.patch +++ b/glibc-rh741105.patch @@ -9,11 +9,12 @@ file. This is the wrong fix for this problem and should be dropped. The correct solution is to mark debuginfo files as new types of ELF files. + diff --git a/elf/dl-load.c b/elf/dl-load.c -index 24e2819345995bd9..007121144e71d9cf 100644 +index 646c5dca40efcc9b..1f44ea3744f139f3 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c -@@ -880,6 +880,18 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, +@@ -952,6 +952,18 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, in this information for the executable in case of an explicit loader invocation. */ struct r_file_id id; @@ -32,7 +33,7 @@ index 24e2819345995bd9..007121144e71d9cf 100644 if (mode & __RTLD_OPENEXEC) { assert (nsid == LM_ID_BASE); -@@ -887,16 +899,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, +@@ -959,16 +971,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, } else { @@ -49,7 +50,7 @@ index 24e2819345995bd9..007121144e71d9cf 100644 /* Look again to see if the real name matched another already loaded. */ for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next) if (!l->l_removed && _dl_file_id_match_p (&l->l_file_id, &id)) -@@ -1074,6 +1076,16 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, +@@ -1147,6 +1149,16 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, = N_("ELF load command address/offset not properly aligned"); goto call_lose; } @@ -67,7 +68,7 @@ index 24e2819345995bd9..007121144e71d9cf 100644 struct loadcmd *c = &loadcmds[nloadcmds++]; c->mapstart = ALIGN_DOWN (ph->p_vaddr, GLRO(dl_pagesize)); diff --git a/sysdeps/generic/dl-fileid.h b/sysdeps/generic/dl-fileid.h -index 6310d46c2a6efc60..209580b6c0b8524b 100644 +index 459328d28c62c8e1..5070580b1b0cc629 100644 --- a/sysdeps/generic/dl-fileid.h +++ b/sysdeps/generic/dl-fileid.h @@ -29,7 +29,8 @@ struct r_file_id @@ -81,7 +82,7 @@ index 6310d46c2a6efc60..209580b6c0b8524b 100644 return true; } diff --git a/sysdeps/posix/dl-fileid.h b/sysdeps/posix/dl-fileid.h -index ae88a350788a5999..baa17b90a292a4d9 100644 +index b3c8166701650b8b..cd862f511e6e3e94 100644 --- a/sysdeps/posix/dl-fileid.h +++ b/sysdeps/posix/dl-fileid.h @@ -27,18 +27,16 @@ struct r_file_id @@ -97,8 +98,8 @@ index ae88a350788a5999..baa17b90a292a4d9 100644 { - struct stat64 st; - -- if (__glibc_unlikely (__fxstat64 (_STAT_VER, fd, &st) < 0)) -+ if (__glibc_unlikely (__fxstat64 (_STAT_VER, fd, st) < 0)) +- if (__glibc_unlikely (__fstat64 (fd, &st) < 0)) ++ if (__glibc_unlikely (__fstat64 (fd, st) < 0)) return false; - id->dev = st.st_dev; diff --git a/glibc.spec b/glibc.spec index 20aedb5..fd0ef46 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,4 +1,4 @@ -%define glibcsrcdir glibc-2.32.9000-84-ge74b61c09a +%define glibcsrcdir glibc-2.32.9000-117-gcdf645427d %define glibcversion 2.32.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: 6%{?dist} +Release: 7%{?dist} # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -169,6 +169,7 @@ Patch29: glibc-fedora-nsswitch.patch Patch30: glibc-deprecated-selinux-makedb.patch Patch31: glibc-deprecated-selinux-nscd.patch Patch32: glibc-rhbz1869030-faccessat2-eperm.patch +Patch33: glibc-fix-float128-benchtests.patch ############################################################################## # Continued list of core "glibc" package information: @@ -2019,6 +2020,46 @@ fi %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared %changelog +* Mon Sep 21 2020 Arjun Shankar - 2.32.9000-7 +- Adjust glibc-rh741105.patch. +- Add glibc-fix-float128-benchtests.patch to allow building on armv7hl. +- Auto-sync with upstream branch master, + commit cdf645427d176197b82f44308a5e131d69fb53ad: +- Update mallinfo2 ABI, and test +- Allow memset local PLT reference for RISC-V. +- powerpc: fix ifunc implementation list for POWER9 strlen and stpcpy +- nscd: bump GC cycle during cache pruning (bug 26130) +- x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625] +- : Add Intel Key Locker support +- Fix handling of collating symbols in fnmatch (bug 26620) +- pselect.c: Pass a pointer to SYSCALL_CANCEL [BZ #26606] +- y2038: nptl: Convert sem_{clock|timed}wait to support 64 bit time +- hurd: Add __x86_get_cpu_features to ld.abilist +- x86: Install [BZ #26124] +- linux: Add time64 pselect support +- linux: Add time64 semtimedop support +- linux: Add ppoll time64 optimization +- linux: Simplify clock_getres +- Update sparc libm-test-ulps +- Remove internal usage of extensible stat functions +- Linux: Consolidate xmknod +- linux: Consolidate fxstatat{64} +- linux: Consolidate fxstat{64} +- linux: Consolidate lxstat{64} +- linux: Consolidate xstat{64} +- linux: Define STAT64_IS_KERNEL_STAT64 +- linux: Always define STAT_IS_KERNEL_STAT +- Update powerpc libm-test-ulps +- benchtests: Add "workload" traces for sinf128 +- benchtests: Add "workload" traces for sinf +- benchtests: Add "workload" traces for sin +- benchtests: Add "workload" traces for powf128 +- benchtests: Add "workload" traces for pow +- benchtests: Add "workload" traces for expf128 +- benchtests: Add "workload" traces for exp +- nptl: futex: Provide correct indentation for part of + __futex_abstimed_wait_cancelable64 + * Tue Sep 08 2020 DJ Delorie - 2.32.9000-6 - Auto-sync with upstream branch master, commit e74b61c09a2a2ab52153e731225ccba5078659b1. diff --git a/sources b/sources index 8fd47da..f4c2a84 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glibc-2.32.9000-84-ge74b61c09a.tar.xz) = 5f30c6563a0235d165b566c211aab22747ada9c4359e49f2866d5026c1c3913bb6a47d6821ac602bfe4359df645fa37b952e6f397aa7a63dfd382d925f92c7d7 +SHA512 (glibc-2.32.9000-117-gcdf645427d.tar.xz) = 2ff035fbeb08a21ba3c0a015ea460eaa38cfff31ed132266ccce3ea14e695a451420c5dfcda9f257628745fa62593013f521ac1aefd3fefb46b801d97eccf3d6