Date: Wednesday, February 9, 2022 @ 16:21:58 Author: freswa Revision: 436733
upgpkg: glibc 2.35-1 Modified: glibc/trunk/PKGBUILD ----------+ PKGBUILD | 106 ++++++++++++++++++++++++++++--------------------------------- 1 file changed, 49 insertions(+), 57 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-02-09 16:21:48 UTC (rev 436732) +++ PKGBUILD 2022-02-09 16:21:58 UTC (rev 436733) @@ -1,19 +1,21 @@ -# Maintainer: Bartłomiej Piotrowski <[email protected]> +# Maintainer: Giancarlo Razzolini <[email protected]> +# Maintainer: Frederik Schwan <freswa at archlinux dot org> +# Contributor: Bartłomiej Piotrowski <[email protected]> # Contributor: Allan McRae <[email protected]> -# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc # NOTE: valgrind requires rebuilt with each major glibc version pkgbase=glibc pkgname=(glibc lib32-glibc) -pkgver=2.33 -pkgrel=5 +pkgver=2.35 +pkgrel=1 arch=(x86_64) url='https://www.gnu.org/software/libc' license=(GPL LGPL) makedepends=(git gd lib32-gcc-libs python) optdepends=('perl: for mtrace') -options=(!strip staticlibs) +options=(!strip staticlibs !lto) #_commit=3de512be7ea6053255afed6154db9ee31d4e557a #source=(git+https://sourceware.org/git/glibc.git#commit=$_commit source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig} @@ -20,24 +22,16 @@ locale.gen.txt locale-gen lib32-glibc.conf - sdt.h sdt-config.h - bz27343.patch - 0001-nptl_db-Support-different-libpthread-ld.so-load-orde.patch - 0002-nptl-Check-for-compatible-GDB-in-nptl-tst-pthread-gd.patch - 0003-nptl-Do-not-build-nptl-tst-pthread-gdb-attach-as-PIE.patch) + sdt.h sdt-config.h) validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar -md5sums=('390bbd889c7e8e8a7041564cb6b27cca' - 'SKIP' - '07ac979b6ab5eeb778d55f041529d623' - '476e9113489f93b348b21e144b6a8fcf' - '6e052f1cb693d5d3203f50f9d4e8c33b' - '91fec3b7e75510ae2ac42533aa2e695e' - '680df504c683640b02ed4a805797c0b2' - 'cfe57018d06bf748b8ca1779980fef33' - '78f041fc66fee4ee372f13b00a99ff72' - '9e418efa189c20053e887398df2253cf' - '7a09f1693613897add1791e7aead19c9') +b2sums=('623c728884f070cd87ffeb9203f74206197c52405ac9bc44f3dd519a3468b8e8ae2536c883e5d17d94417dbd1e91775de2e674314e4ff7424f9720026d6b7063' + 'SKIP' + '46d533d25c7a2ce4ae75d452eee7ebb8e3ce4d191af9be3daa43718b78cb81d33cfd8046a117a15d87de9f5e940448c66005b0490515bf731c9e4691c53908d6' + '1f6d927b4972220b1c00abee5329c5d6bc01ed5bee57b20db0c7d7433292f7d666b02baf9968267f8e378b1f3bb273e8eef0ccbf22d21400ac36949d7615a474' + '7c265e6d36a5c0dff127093580827d15519b6c7205c2e1300e82f0fb5b9dd00b6accb40c56581f18179c4fbbc95bd2bf1b900ace867a83accde0969f7b609f8a' + 'a6a5e2f2a627cc0d13d11a82458cfd0aa75ec1c5a3c7647e5d5a3bb1d4c0770887a3909bfda1236803d5bc9801bfd6251e13483e9adf797e4725332cd0d91a0e' + '214e995e84b342fe7b2a7704ce011b7c7fc74c2971f98eeb3b4e677b99c860addc0a7d91b8dc0f0b8be7537782ee331999e02ba48f4ccc1c331b60f27d715678') prepare() { mkdir -p glibc-build lib32-glibc-build @@ -44,18 +38,6 @@ [[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc cd glibc - - # commit c3479fb7939898ec22c655c383454d6e8b982a67 - patch -p1 -i "$srcdir"/bz27343.patch - - # nptl_db: Support different libpthread/ld.so load orders (bug 27744) - patch -p1 -i "$srcdir"/0001-nptl_db-Support-different-libpthread-ld.so-load-orde.patch - - # nptl: Check for compatible GDB in nptl/tst-pthread-gdb-attach - patch -p1 -i "$srcdir"/0002-nptl-Check-for-compatible-GDB-in-nptl-tst-pthread-gd.patch - - # nptl: Do not build nptl/tst-pthread-gdb-attach as PIE - patch -p1 -i "$srcdir"/0003-nptl-Do-not-build-nptl-tst-pthread-gdb-attach-as-PIE.patch } build() { @@ -84,14 +66,11 @@ echo "sbindir=/usr/bin" >> configparms echo "rootsbindir=/usr/bin" >> configparms + # Credits @allanmcrae + # https://github.com/allanmcrae/toolchain/blob/f18604d70c5933c31b51a320978711e4e6791cf1/glibc/PKGBUILD # remove fortify for building libraries - CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/} + CFLAGS=${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2/} - # - CFLAGS=${CFLAGS/-fno-plt/} - CXXFLAGS=${CXXFLAGS/-fno-plt/} - LDFLAGS=${LDFLAGS/,-z,now/} - "$srcdir/glibc/configure" \ --libdir=/usr/lib \ --libexecdir=/usr/lib \ @@ -99,15 +78,13 @@ # build libraries with fortify disabled echo "build-programs=no" >> configparms - make + make -O # re-enable fortify for programs sed -i "/build-programs=/s#no#yes#" configparms + echo "CFLAGS += -Wp,-D_FORTIFY_SOURCE=2" >> configparms + make -O - echo "CC += -D_FORTIFY_SOURCE=2" >> configparms - echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms - make - # build info pages manually for reprducibility make info @@ -120,11 +97,6 @@ echo "sbindir=/usr/bin" >> configparms echo "rootsbindir=/usr/bin" >> configparms - # remove fortify for building libraries - CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/} - CFLAGS=${CFLAGS/-fno-plt/} - CXXFLAGS=${CXXFLAGS/-fno-plt/} - "$srcdir/glibc/configure" \ --host=i686-pc-linux-gnu \ --libdir=/usr/lib32 \ @@ -133,25 +105,45 @@ # build libraries with fortify disabled echo "build-programs=no" >> configparms - make + make -O # re-enable fortify for programs sed -i "/build-programs=/s#no#yes#" configparms + echo "CFLAGS += -Wp,-D_FORTIFY_SOURCE=2" >> configparms + make -O - echo "CC += -D_FORTIFY_SOURCE=2" >> configparms - echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms - make +} +# Credits for skip_test() and check() @allanmcrae +# https://github.com/allanmcrae/toolchain/blob/f18604d70c5933c31b51a320978711e4e6791cf1/glibc/PKGBUILD +skip_test() { + test=$1 + file=$2 + sed -i "s/\b$test\b//" $srcdir/glibc/$file } check() { cd glibc-build - # remove fortify in preparation to run test-suite - sed -i '/FORTIFY/d' configparms + # adjust/remove buildflags that cause false-positive testsuite failures + sed -i '/FORTIFY/d' configparms # failure to build testsuite + sed -i 's/-Werror=format-security/-Wformat-security/' config.make # failure to build testsuite + sed -i '/CFLAGS/s/-fno-plt//' config.make # 16 failures + sed -i '/CFLAGS/s/-fexceptions//' config.make # 1 failure + LDFLAGS=${LDFLAGS/,-z,now/} # 10 failures - # some failures are "expected" - make check || true + # The following tests fail due to restrictions in the Arch build system + # The correct fix is to add the following to the systemd-nspawn call: + # --capability=CAP_IPC_LOCK --system-call-filter="@clock @pkey" + skip_test test-errno-linux sysdeps/unix/sysv/linux/Makefile + skip_test tst-ntp_gettime sysdeps/unix/sysv/linux/Makefile + skip_test tst-ntp_gettimex sysdeps/unix/sysv/linux/Makefile + skip_test tst-mlock2 sysdeps/unix/sysv/linux/Makefile + skip_test tst-pkey sysdeps/unix/sysv/linux/Makefile + skip_test tst-adjtime time/Makefile + skip_test tst-clock2 time/Makefile + + make -O check } package_glibc() {
