diff options
author | Vyacheslav Razykov | 2023-08-02 11:14:17 +0500 |
---|---|---|
committer | Vyacheslav Razykov | 2023-08-02 11:14:17 +0500 |
commit | 4072fd7a85f0d5401538f000b53684914c5a8997 (patch) | |
tree | 5278b88683582536436765bd08a221a895b8fa1c | |
parent | 9055b8aaa8693039f1153a3e6e6ef07f33a7cff7 (diff) | |
download | aur-4072fd7a85f0d5401538f000b53684914c5a8997.tar.gz |
Update to 2.36-1
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 42 | ||||
-rw-r--r-- | bz27343.patch | 48 | ||||
-rw-r--r-- | reenable_DT_HASH.patch | 145 |
4 files changed, 174 insertions, 75 deletions
@@ -1,7 +1,7 @@ pkgbase = arm-linux-gnueabihf-glibc-headers pkgdesc = GNU C Library headers (arm-linux-gnueabihf) - pkgver = 2.33 - pkgrel = 5 + pkgver = 2.36 + pkgrel = 1 url = https://www.gnu.org/software/libc/ arch = any license = GPL @@ -14,17 +14,17 @@ pkgbase = arm-linux-gnueabihf-glibc-headers options = !lto options = staticlibs options = debug - source = https://ftp.gnu.org/gnu/glibc/glibc-2.33.tar.xz - source = https://ftp.gnu.org/gnu/glibc/glibc-2.33.tar.xz.sig + source = https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz + source = https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz.sig source = sdt.h source = sdt-config.h - source = bz27343.patch + source = reenable_DT_HASH.patch validpgpkeys = 7273542B39962DF7B299931416792B4EA25340F8 validpgpkeys = BC7C7372637EC10C57D7AA6579C43DFBF1CF2187 - md5sums = 390bbd889c7e8e8a7041564cb6b27cca + md5sums = 00e9b89e043340f688bc93ec03239b57 md5sums = SKIP md5sums = 91fec3b7e75510ae2ac42533aa2e695e md5sums = 680df504c683640b02ed4a805797c0b2 - md5sums = cfe57018d06bf748b8ca1779980fef33 + md5sums = 4a3e4243338481bb5e70b74281347ae8 pkgname = arm-linux-gnueabihf-glibc-headers @@ -1,15 +1,15 @@ +# Maintainer: Vyacheslav Razykov <v.razykov@gmail.com> # Contributor: Alexander 'hatred' Drozdov <adrozdoff@gmail.com> # Contributor: toha257 <toha257@gmail.com> # Contributor: Allan McRae <allan@archlinux.org> # Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> # Contributor: Kevin Mihelich <kevin@archlinuxarm.org> # Contributor: Tavian Barnes <tavianator@tavianator.com> -# Maintainer: Vyacheslav Razykov <v.razykov@gmail.com> _target="arm-linux-gnueabihf" pkgname=${_target}-glibc-headers -pkgver=2.33 -pkgrel=5 +pkgver=2.36 +pkgrel=1 pkgdesc="GNU C Library headers (${_target})" arch=('any') url="https://www.gnu.org/software/libc/" @@ -17,25 +17,27 @@ license=(GPL LGPL) depends=("${_target}-linux-api-headers>=5.14.9-1") makedepends=("${_target}-gcc-stage1>=12.1.0-1" python) options=(!buildflags !strip !lto staticlibs debug) -source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig} +source=(https://ftp.gnu.org/gnu/glibc/glibc-${pkgver}.tar.xz{,.sig} sdt.h sdt-config.h - bz27343.patch) + reenable_DT_HASH.patch) validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar -md5sums=('390bbd889c7e8e8a7041564cb6b27cca' +md5sums=('00e9b89e043340f688bc93ec03239b57' 'SKIP' '91fec3b7e75510ae2ac42533aa2e695e' '680df504c683640b02ed4a805797c0b2' - 'cfe57018d06bf748b8ca1779980fef33') + '4a3e4243338481bb5e70b74281347ae8') prepare() { mkdir -p glibc-build - [[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc + [[ -d glibc-${pkgver} ]] && ln -s glibc-${pkgver} glibc cd glibc - # commit c3479fb7939898ec22c655c383454d6e8b982a67 - patch -p1 -i "$srcdir/bz27343.patch" + # re-enable `--hash-style=both` for building shared objects due to issues with EPIC's EAC + # which relies on DT_HASH to be present in these libs. + # reconsider 2023-01 + patch -Np1 -i "${srcdir}"/reenable_DT_HASH.patch } build() { @@ -74,7 +76,7 @@ build() { export AR=${_target}-ar export RANLIB=${_target}-ranlib - "$srcdir/glibc/configure" \ + "${srcdir}"/glibc/configure \ --libdir=/lib \ --libexecdir=/lib \ ${_configure_flags[@]} \ @@ -89,25 +91,25 @@ build() { package() { cd glibc-build - make install_root="$pkgdir/usr/$_target" install-headers \ + make install_root="${pkgdir}/usr/${_target}" install-headers \ install-bootstrap-headers=yes # glibc doesn't support eglibc's install-bootstrap-headers # Luckily a blank gnu/stubs.h is all we need - touch "$pkgdir/usr/$_target/include/gnu/stubs.h" + touch "${pkgdir}/usr/${_target}/include/gnu/stubs.h" - mkdir -p "$pkgdir/usr/$_target/lib" - cp csu/crt1.o csu/crti.o csu/crtn.o "$pkgdir/usr/$_target/lib" + mkdir -p "${pkgdir}/usr/${_target}/lib" + cp csu/crt1.o csu/crti.o csu/crtn.o "${pkgdir}/usr/${_target}/lib" # create stub lib ${_target}-gcc -nostdlib -nostartfiles -shared -x c /dev/null \ - -o "$pkgdir/usr/$_target/lib/libc.so" + -o "${pkgdir}/usr/${_target}/lib/libc.so" - mkdir -p "$pkgdir/usr/$_target/usr" - ln -s ../{include,lib} "$pkgdir/usr/$_target/usr" + mkdir -p "${pkgdir}/usr/${_target}/usr" + ln -s ../{include,lib} "${pkgdir}/usr/${_target}/usr" # Provide tracing probes to libstdc++ for exceptions, possibly for other # libraries too. Useful for gdb's catch command. - install -Dm644 "$srcdir/sdt.h" "$pkgdir/usr/$_target/include/sys/sdt.h" - install -Dm644 "$srcdir/sdt-config.h" "$pkgdir/usr/$_target/include/sys/sdt-config.h" + install -Dm644 "${srcdir}"/sdt.h "${pkgdir}/usr/${_target}/include/sys/sdt.h" + install -Dm644 "${srcdir}"/sdt-config.h "${pkgdir}/usr/${_target}/include/sys/sdt-config.h" } diff --git a/bz27343.patch b/bz27343.patch deleted file mode 100644 index 3db6a9440eb2..000000000000 --- a/bz27343.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c3479fb7939898ec22c655c383454d6e8b982a67 Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich <slyfox@gentoo.org> -Date: Fri, 5 Feb 2021 07:32:18 +0000 -Subject: [PATCH] nsswitch: return result when nss database is locked [BZ - #27343] - -Before the change nss_database_check_reload_and_get() did not populate -the '*result' value when it returned success in a case of chroot -detection. This caused initgroups() to use garage pointer in the -following test (extracted from unbound): - -``` - -int main() { - // load some NSS modules - struct passwd * pw = getpwnam("root"); - - chdir("/tmp"); - chroot("/tmp"); - chdir("/"); - // access nsswitch.conf in a chroot - initgroups("root", 0); -} -``` - -Reviewed-by: DJ Delorie <dj@redhat.com> ---- - nss/nss_database.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/nss/nss_database.c b/nss/nss_database.c -index cf0306adc4..e1bef6bd75 100644 ---- a/nss/nss_database.c -+++ b/nss/nss_database.c -@@ -398,8 +398,9 @@ nss_database_check_reload_and_get (struct nss_database_state *local, - && (str.st_ino != local->root_ino - || str.st_dev != local->root_dev))) - { -- /* Change detected; disable reloading. */ -+ /* Change detected; disable reloading and return current state. */ - atomic_store_release (&local->data.reload_disabled, 1); -+ *result = local->data.services[database_index]; - __libc_lock_unlock (local->lock); - __nss_module_disable_loading (); - return true; --- -2.27.0 - diff --git a/reenable_DT_HASH.patch b/reenable_DT_HASH.patch new file mode 100644 index 000000000000..f828b011bd9f --- /dev/null +++ b/reenable_DT_HASH.patch @@ -0,0 +1,145 @@ +From e47de5cb2d4dbecb58f569ed241e8e95c568f03c Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Fri, 29 Apr 2022 16:37:51 +0200 +Subject: [PATCH] Do not use --hash-style=both for building glibc shared + objects + +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 <carlos@redhat.com> +--- + Makeconfig | 9 +++++++++ + Makerules | 7 +++++++ + config.make.in | 1 + + configure | 28 ++++++++++++++++++++++++++++ + configure.ac | 16 ++++++++++++++++ + 5 files changed, 61 insertions(+) + +diff --git b/Makeconfig a/Makeconfig +index 760f14e92f..0aa5fb0099 100644 +--- b/Makeconfig ++++ a/Makeconfig +@@ -362,6 +362,15 @@ 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 <<EOF ++int _start (void) { return 42; } ++EOF ++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp ++ -fPIC -shared -o conftest.so conftest.c ++ -Wl,--hash-style=both -nostdlib 1>&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&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 <<EOF ++int _start (void) { return 42; } ++EOF ++if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp ++ -fPIC -shared -o conftest.so conftest.c ++ -Wl,--hash-style=both -nostdlib 1>&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 <<EOF +-- +2.37.1 + |