From e86152986c6e6c563ced037c91403318d5a8b447 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 5 Aug 2023 21:40:29 +0200 Subject: [PATCH] glibc: 2.37-39 -> 2.38-0 Announcement: https://sourceware.org/pipermail/libc-alpha/2023-July/150524.html So far this looks surprisingly good, I managed to build the stdenv on `aarch64-linux` and got up to building `zfs` and `nix` on `x86_64-linux`. The patchset is still empty because the latest commit on the release branch is the one the 2.38 tag points to. I added an empty file though to keep things consistent. Also applied the new version of the DT_HASH fix from ArchLinux[1]. This one's a way easier version than before because it doesn't contain the autoconf changes, but only hardcodes the desired ld flags. It was already confirmed that this patch is sufficient to fix the underlying problem[2]. [1] https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/commit/e54d98e2d1aae4930ecad9404ef12234922d9dfd#7b1bfda0391ff4c2662e04a5e193c37e233a0738 [2] https://github.com/ValveSoftware/Proton/issues/6051#issuecomment-1666055553 --- .../libraries/glibc/2.37-master.patch.gz | Bin 54452 -> 0 bytes .../libraries/glibc/2.38-master.patch.gz | Bin 0 -> 20 bytes pkgs/development/libraries/glibc/common.nix | 26 +-- .../libraries/glibc/reenable_DT_HASH.patch | 149 ++---------------- 4 files changed, 30 insertions(+), 145 deletions(-) delete mode 100644 pkgs/development/libraries/glibc/2.37-master.patch.gz create mode 100644 pkgs/development/libraries/glibc/2.38-master.patch.gz diff --git a/pkgs/development/libraries/glibc/2.37-master.patch.gz b/pkgs/development/libraries/glibc/2.37-master.patch.gz deleted file mode 100644 index 16a52753cbdfbd086a92236239ff257b7dff41ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54452 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 linuxHeaders != null; @@ -59,14 +59,14 @@ stdenv.mkDerivation ({ patches = [ /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. - $ git fetch --all -p && git checkout origin/release/2.37/master && git describe - glibc-2.37-39-g6529a7466c - $ git show --minimal --reverse glibc-2.37.. | gzip -9n --rsyncable - > 2.37-master.patch.gz + $ git fetch --all -p && git checkout origin/release/2.38/master && git describe + glibc-2.38 + $ git show --minimal --reverse glibc-2.38.. | gzip -9n --rsyncable - > 2.38-master.patch.gz To compare the archive contents zdiff can be used. - $ zdiff -u 2.37-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.37-master.patch.gz + $ zdiff -u 2.38-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.38-master.patch.gz */ - ./2.37-master.patch.gz + ./2.38-master.patch.gz /* Allow NixOS and Nix to handle the locale-archive. */ ./nix-locale-archive.patch @@ -89,10 +89,11 @@ stdenv.mkDerivation ({ ./0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch - /* Patch derived from archlinux (at the time of adding they're at 2.37), - https://github.com/archlinux/svntogit-packages/blob/packages/glibc/trunk/reenable_DT_HASH.patch + /* Patch derived from archlinux, + https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/blob/e54d98e2d1aae4930ecad9404ef12234922d9dfd/reenable_DT_HASH.patch - See https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991 for context. + See also https://github.com/ValveSoftware/Proton/issues/6051 + & https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991 */ ./reenable_DT_HASH.patch ] @@ -135,6 +136,7 @@ stdenv.mkDerivation ({ "--enable-bind-now" (lib.withFeatureAs withLinuxHeaders "headers" "${linuxHeaders}/include") (lib.enableFeature profilingLibraries "profile") + "--enable-fortify-source" ] ++ lib.optionals (stdenv.hostPlatform.isx86 || stdenv.hostPlatform.isAarch64) [ # This feature is currently supported on # i386, x86_64 and x32 with binutils 2.29 or later, @@ -159,7 +161,7 @@ stdenv.mkDerivation ({ "libc_cv_as_needed=no" ] ++ lib.optional withGd "--with-gd" - ++ lib.optional (!withLibcrypt) "--disable-crypt"; + ++ lib.optional withLibcrypt "--enable-crypt"; makeFlags = (args.makeFlags or []) ++ [ "OBJCOPY=${stdenv.cc.targetPrefix}objcopy" diff --git a/pkgs/development/libraries/glibc/reenable_DT_HASH.patch b/pkgs/development/libraries/glibc/reenable_DT_HASH.patch index f828b011bd9f..87a2329d8240 100644 --- a/pkgs/development/libraries/glibc/reenable_DT_HASH.patch +++ b/pkgs/development/libraries/glibc/reenable_DT_HASH.patch @@ -1,145 +1,28 @@ -From e47de5cb2d4dbecb58f569ed241e8e95c568f03c Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Fri, 29 Apr 2022 16:37:51 +0200 -Subject: [PATCH] Do not use --hash-style=both for building glibc shared - objects +From 31915e55f9c34f6137ab1c5ac002375a2d5d4589 Mon Sep 17 00:00:00 2001 +From: Frederik Schwan +Date: Fri, 4 Aug 2023 15:19:57 +0200 +Subject: [PATCH] force --hash-style=both to keep compatibility with old niche + software -The comment indicates that --hash-style=both was used to maintain -compatibility with static dlopen, but we had many internal ABI -changes since then, so this compatiblity does not add value anymore. - -Reviewed-by: Carlos O'Donell --- - Makeconfig | 9 +++++++++ - Makerules | 7 +++++++ - config.make.in | 1 + - configure | 28 ++++++++++++++++++++++++++++ - configure.ac | 16 ++++++++++++++++ - 5 files changed, 61 insertions(+) + Makeconfig | 4 ++++ + 1 file changed, 4 insertions(+) -diff --git b/Makeconfig a/Makeconfig -index 760f14e92f..0aa5fb0099 100644 ---- b/Makeconfig -+++ a/Makeconfig -@@ -362,6 +362,15 @@ relro-LDFLAGS = -Wl,-z,relro +diff --git a/Makeconfig b/Makeconfig +index 77d7fd14df..2ae67c4beb 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -378,6 +378,10 @@ relro-LDFLAGS = -Wl,-z,relro LDFLAGS.so += $(relro-LDFLAGS) LDFLAGS-rtld += $(relro-LDFLAGS) -+ifeq (yes,$(have-hash-style)) -+# For the time being we unconditionally use 'both'. At some time we -+# should declare statically linked code as 'out of luck' and compile -+# with --hash-style=gnu only. +hashstyle-LDFLAGS = -Wl,--hash-style=both +LDFLAGS.so += $(hashstyle-LDFLAGS) +LDFLAGS-rtld += $(hashstyle-LDFLAGS) -+endif + - ifeq (no,$(build-pie-default)) - pie-default = $(no-pie-ccflag) - else # build-pie-default -diff --git b/Makerules a/Makerules -index 354528b8c7..428464f092 100644 ---- b/Makerules -+++ a/Makerules -@@ -557,6 +557,13 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules - -Wl,--verbose 2>/dev/null | \ - sed > $@T \ - -e '/^=========/,/^=========/!d;/^=========/d' \ -+ $(if $(filter yes,$(have-hash-style)), \ -+ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ -+ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \ -+ -e '/DATA_SEGMENT_ALIGN/{H;g}' \ -+ , \ -+ -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ -+ ) \ - -e 's/^.*\*(\.dynbss).*$$/& \ - PROVIDE(__start___libc_freeres_ptrs = .); \ - *(__libc_freeres_ptrs) \ -diff --git b/config.make.in a/config.make.in -index fff4c78dd0..bf728c71c0 100644 ---- b/config.make.in -+++ a/config.make.in -@@ -70,6 +70,7 @@ have-libcap = @have_libcap@ - have-cc-with-libunwind = @libc_cv_cc_with_libunwind@ - fno-unit-at-a-time = @fno_unit_at_a_time@ - bind-now = @bindnow@ -+have-hash-style = @libc_cv_hashstyle@ - use-default-link = @use_default_link@ - have-cxx-thread_local = @libc_cv_cxx_thread_local@ - have-loop-to-function = @libc_cv_cc_loop_to_function@ -diff --git b/configure a/configure -index 716dc041b6..5a730dc5fc 100755 ---- b/configure -+++ a/configure -@@ -622,6 +622,7 @@ libc_cv_cc_nofma - libc_cv_mtls_dialect_gnu2 - fno_unit_at_a_time - libc_cv_has_glob_dat -+libc_cv_hashstyle - libc_cv_fpie - libc_cv_z_execstack - ASFLAGS_config -@@ -6193,6 +6194,33 @@ $as_echo "$libc_cv_fpie" >&6; } - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --hash-style option" >&5 -+$as_echo_n "checking for --hash-style option... " >&6; } -+if ${libc_cv_hashstyle+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat > conftest.c <&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; } -+then -+ libc_cv_hashstyle=yes -+else -+ libc_cv_hashstyle=no -+fi -+rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hashstyle" >&5 -+$as_echo "$libc_cv_hashstyle" >&6; } -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5 - $as_echo_n "checking for GLOB_DAT reloc... " >&6; } - if ${libc_cv_has_glob_dat+:} false; then : -diff --git b/configure.ac a/configure.ac -index d08ad4d64e..a045f6608e 100644 ---- b/configure.ac -+++ a/configure.ac -@@ -1360,6 +1360,22 @@ LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no]) - - AC_SUBST(libc_cv_fpie) - -+AC_CACHE_CHECK(for --hash-style option, -+ libc_cv_hashstyle, [dnl -+cat > conftest.c <&AS_MESSAGE_LOG_FD]) -+then -+ libc_cv_hashstyle=yes -+else -+ libc_cv_hashstyle=no -+fi -+rm -f conftest*]) -+AC_SUBST(libc_cv_hashstyle) -+ - AC_CACHE_CHECK(for GLOB_DAT reloc, - libc_cv_has_glob_dat, [dnl - cat > conftest.c <