diff options
author | Vyacheslav Razykov | 2023-08-02 11:13:14 +0500 |
---|---|---|
committer | Vyacheslav Razykov | 2023-08-02 11:13:14 +0500 |
commit | b6633ff7bad86aff1852e7242326c14292041082 (patch) | |
tree | c7bf4f085a71ce47cbf52bb363103bfcddf33d94 | |
parent | 75f782aff976c73f778dc1c731542c9783659826 (diff) | |
download | aur-b6633ff7bad86aff1852e7242326c14292041082.tar.gz |
Update to 2.36-1
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | PKGBUILD | 32 | ||||
-rw-r--r-- | bz27343.patch | 48 | ||||
-rw-r--r-- | reenable_DT_HASH.patch | 145 |
4 files changed, 169 insertions, 72 deletions
@@ -1,7 +1,7 @@ pkgbase = arm-linux-gnueabihf-glibc pkgdesc = GNU C Library (arm-linux-gnueabihf) - pkgver = 2.33 - pkgrel = 5 + pkgver = 2.36 + pkgrel = 1 url = https://www.gnu.org/software/libc/ arch = any license = GPL @@ -10,7 +10,7 @@ pkgbase = arm-linux-gnueabihf-glibc makedepends = python makedepends = gperf depends = arm-linux-gnueabihf-linux-api-headers>=5.14.9-1 - provides = arm-linux-gnueabihf-glibc-headers=2.33 + provides = arm-linux-gnueabihf-glibc-headers=2.36 provides = arm-linux-gnueabihf-eglibc conflicts = arm-linux-gnueabihf-glibc-headers conflicts = arm-linux-gnueabihf-eglibc @@ -19,17 +19,17 @@ pkgbase = arm-linux-gnueabihf-glibc options = !strip options = !lto options = staticlibs - 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 @@ -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 -pkgver=2.33 -pkgrel=5 +pkgver=2.36 +pkgrel=1 pkgdesc="GNU C Library (${_target})" arch=('any') url="https://www.gnu.org/software/libc/" @@ -20,28 +20,28 @@ provides=("${_target}-glibc-headers=${pkgver}" "${_target}-eglibc") conflicts=("${_target}-glibc-headers" "${_target}-eglibc") replaces=("${_target}-glibc-headers") options=(!buildflags !strip !lto staticlibs) -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 local i; for i in ${source[@]}; do case ${i%::*} in *.patch) echo "Applying ${i}" - patch -p1 -i "$srcdir/${i}" + patch -p1 -i "${srcdir}/${i}" ;; esac done @@ -83,7 +83,7 @@ build() { export AR=${_target}-ar export RANLIB=${_target}-ranlib - "$srcdir/glibc-$pkgver/configure" \ + "${srcdir}/glibc-${pkgver}/configure" \ --libdir=/lib \ --libexecdir=/lib \ ${_configure_flags[@]} \ @@ -98,16 +98,16 @@ build() { package() { cd glibc-build - make install_root="$pkgdir/usr/$_target" install + make install_root="${pkgdir}/usr/${_target}" install - 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" # Remove unneeded for compilation files - rm -rf "$pkgdir/usr/$_target/"{bin,sbin,etc,share,var} + rm -rf "${pkgdir}/usr/${_target}/"{bin,sbin,etc,share,var} # 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 + |