From de3ec366d37b77d023084eaccfd461acbdc58bb9 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Wed, 8 May 2024 18:21:18 +0000 Subject: [PATCH] core/gcc to 14.1.1+r1+g43b730b9134-1 --- core/gcc/.SRCINFO | 34 +++++++------- core/gcc/PKGBUILD | 61 ++++++++++++-------------- core/gcc/fix-asan-allocator-aslr.patch | 60 ------------------------- 3 files changed, 46 insertions(+), 109 deletions(-) delete mode 100644 core/gcc/fix-asan-allocator-aslr.patch diff --git a/core/gcc/.SRCINFO b/core/gcc/.SRCINFO index c19d66bce..3e8c1d715 100644 --- a/core/gcc/.SRCINFO +++ b/core/gcc/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = gcc pkgdesc = The GNU Compiler Collection - pkgver = 13.2.1 - pkgrel = 6 + pkgver = 14.1.1+r1+g43b730b9134 + pkgrel = 1 url = https://gcc.gnu.org arch = x86_64 license = GPL-3.0-with-GCC-exception @@ -21,27 +21,26 @@ pkgbase = gcc makedepends = libisl makedepends = libmpc makedepends = python + makedepends = rust makedepends = zstd options = !emptydirs options = !lto - source = git+https://sourceware.org/git/gcc.git#commit=ca7d454804045a39d10a9b1f691a940aeacdf25b + source = git+https://sourceware.org/git/gcc.git#commit=43b730b9134af60a8f1c5b107d625f7127ff23c5 source = c89 source = c99 source = gcc-ada-repro.patch - source = fix-asan-allocator-aslr.patch validpgpkeys = F3691687D867B81B51CE07D9BBE43771487328A9 validpgpkeys = 86CFFCA918CF3AF47147588051E8B148A9999C34 validpgpkeys = 13975A70E63C361C73AE69EF6EEB81F8981C74C7 validpgpkeys = D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62 - sha256sums = 4730129b2d8bc80630bfe512e6cbe69151395be6bd2eb1967d64ca87ed8c0e09 + sha256sums = 51024affcbc17f4ba5528ad9aad112a9b4d367d796a44b0bc59e3403a4c82ddd sha256sums = de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931 sha256sums = 2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a sha256sums = 1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f - sha256sums = 5ede1f5fec5b664428412a0849b28895be1c8d8982d3c0d246a4e95fd4730d65 pkgname = gcc pkgdesc = The GNU Compiler Collection - C and C++ frontends - depends = gcc-libs=13.2.1-6 + depends = gcc-libs=14.1.1+r1+g43b730b9134-1 depends = binutils>=2.28 depends = libmpc depends = zstd @@ -80,7 +79,7 @@ pkgname = lib32-gcc-libs pkgname = gcc-ada pkgdesc = Ada front-end for GCC (GNAT) - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so provides = gcc-ada-multilib replaces = gcc-ada-multilib @@ -89,7 +88,7 @@ pkgname = gcc-ada pkgname = gcc-d pkgdesc = D frontend for GCC - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so provides = gdc replaces = gdc @@ -97,14 +96,14 @@ pkgname = gcc-d pkgname = gcc-fortran pkgdesc = Fortran front-end for GCC - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so provides = gcc-fortran-multilib replaces = gcc-fortran-multilib pkgname = gcc-go pkgdesc = Go front-end for GCC - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so provides = go=1.17 provides = gcc-go-multilib @@ -113,22 +112,27 @@ pkgname = gcc-go pkgname = gcc-m2 pkgdesc = Modula-2 frontend for GCC - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so pkgname = gcc-objc pkgdesc = Objective-C front-end for GCC - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so provides = gcc-objc-multilib replaces = gcc-objc-multilib +pkgname = gcc-rust + pkgdesc = Rust frontend for GCC + depends = gcc=14.1.1+r1+g43b730b9134-1 + depends = libisl.so + pkgname = lto-dump pkgdesc = Dump link time optimization object files - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so pkgname = libgccjit pkgdesc = Just-In-Time Compilation with GCC backend - depends = gcc=13.2.1-6 + depends = gcc=14.1.1+r1+g43b730b9134-1 depends = libisl.so diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD index fbeb68074..285bf180c 100644 --- a/core/gcc/PKGBUILD +++ b/core/gcc/PKGBUILD @@ -13,15 +13,13 @@ # - disabled make check, too much stress, kills plugs :( # - specifid build host, disabled distcc # - replaced bugurl with our GitHub issue page -# - upstream patch to fix bctoolbox FTBFS noautobuild=1 -pkgname=(gcc gcc-libs gcc-d gcc-fortran gcc-go gcc-m2 gcc-objc lto-dump libgccjit) -pkgver=13.2.1 -_majorver=${pkgver%%.*} -_commit=ca7d454804045a39d10a9b1f691a940aeacdf25b -pkgrel=6 +pkgname=(gcc gcc-libs gcc-d gcc-fortran gcc-go gcc-m2 gcc-objc gcc-rust lto-dump libgccjit) +pkgver=14.1.1+r1+g43b730b9134 +_commit=43b730b9134af60a8f1c5b107d625f7127ff23c5 +pkgrel=1 pkgdesc='The GNU Compiler Collection' arch=(x86_64) license=(GPL-3.0-with-GCC-exception GFDL-1.3-or-later) @@ -36,6 +34,7 @@ makedepends=( libisl libmpc python + rust zstd ) checkdepends=( @@ -50,19 +49,20 @@ _libdir=usr/lib/gcc/$CHOST/${pkgver%%+*} source=(git+https://sourceware.org/git/gcc.git#commit=${_commit} c89 c99 gcc-ada-repro.patch - fix-asan-allocator-aslr.patch - 844a5c8ca.patch::'https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=844a5c8ca768dc0cc90c1a943756610832d686a8' ) validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org 86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62) # Jakub Jelinek -sha256sums=('4730129b2d8bc80630bfe512e6cbe69151395be6bd2eb1967d64ca87ed8c0e09' +sha256sums=('51024affcbc17f4ba5528ad9aad112a9b4d367d796a44b0bc59e3403a4c82ddd' 'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931' '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a' - '1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f' - '5ede1f5fec5b664428412a0849b28895be1c8d8982d3c0d246a4e95fd4730d65' - '6dc8d32e76bc6c7c1a24ae527062ec1b4f393c9f7e0e25f6ab4acc98f622a80f') + '1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f') + +pkgver() { + cd gcc + echo "$(cat gcc/BASE-VER)+$(git describe --tags | sed 's/[^-]*-[^-]*-//;s/[^-]*-/r&/;s/-/+/g;s/_/./')" +} prepare() { [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc @@ -80,16 +80,10 @@ prepare() { # Reproducible gcc-ada patch -Np0 < "$srcdir/gcc-ada-repro.patch" - # tree-optimization/105562 - avoid uninit diagnostic with better FRE - patch -Np1 < "$srcdir/844a5c8ca.patch" - # ALARM: Specify build host types, triplet patch [[ $CARCH == "armv7h" ]] && CONFIGFLAG="--host=armv7l-unknown-linux-gnueabihf --build=armv7l-unknown-linux-gnueabihf --with-arch=armv7-a --with-float=hard --with-fpu=neon" [[ $CARCH == "aarch64" ]] && CONFIGFLAG="--host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419" - #ASan: move allocator base to avoid conflict with high-entropy ASLR for x86-64 Linux' - patch -Np3 < "$srcdir/fix-asan-allocator-aslr.patch" -d libsanitizer/ - mkdir -p "$srcdir/gcc-build" mkdir -p "$srcdir/libgccjit-build" } @@ -133,7 +127,7 @@ build() { CXXFLAGS=${CXXFLAGS/-Werror=format-security/} "$srcdir/gcc/configure" \ - --enable-languages=c,c++,d,fortran,go,lto,m2,objc,obj-c++ \ + --enable-languages=c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust \ --enable-bootstrap \ "${_confflags[@]:?_confflags unset}" @@ -394,21 +388,20 @@ package_gcc-m2() { "$pkgdir/usr/share/licenses/$pkgname/" } -#package_gcc-rust() { -# pkgdesc="Rust frontend for GCC" -# depends=("gcc=$pkgver-$pkgrel" libisl.so) -# -# cd gcc-build -# make -C gcc DESTDIR="$pkgdir" rust.install-{common,man,info} -# -# install -Dm755 gcc/gccrs "$pkgdir"/usr/bin/gccrs -# install -Dm755 gcc/rust1 "$pkgdir"/"$_libdir"/rust1 -# -# # Install Runtime Library Exception -# install -d "$pkgdir/usr/share/licenses/$pkgname/" -# ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \ -# "$pkgdir/usr/share/licenses/$pkgname/" -#} +package_gcc-rust() { + pkgdesc="Rust frontend for GCC" + depends=("gcc=$pkgver-$pkgrel" libisl.so) + + cd gcc-build + make -C gcc DESTDIR="$pkgdir" rust.install-{common,man,info} + + install -Dm755 gcc/gccrs "$pkgdir"/usr/bin/gccrs + + # Install Runtime Library Exception + install -d "$pkgdir/usr/share/licenses/$pkgname/" + ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \ + "$pkgdir/usr/share/licenses/$pkgname/" +} package_lto-dump() { pkgdesc="Dump link time optimization object files" diff --git a/core/gcc/fix-asan-allocator-aslr.patch b/core/gcc/fix-asan-allocator-aslr.patch deleted file mode 100644 index af7cea86d..000000000 --- a/core/gcc/fix-asan-allocator-aslr.patch +++ /dev/null @@ -1,60 +0,0 @@ -From fb77ca05ffb4f8e666878f2f6718a9fb4d686839 Mon Sep 17 00:00:00 2001 -From: Thurston Dang -Date: Thu, 13 Apr 2023 23:55:01 +0000 -Subject: [PATCH] Re-land 'ASan: move allocator base to avoid conflict with - high-entropy ASLR for x86-64 Linux' - -D147984 was reverted because it broke lit tests on Mac. This revision is based on D147984 -but maintains the old behavior for Apple. - -Note that, per the follow-up discussion with MaskRay in D147984, this patch excludes Apple -but includes other platforms (e.g., aarch64, MIPS64) and OSes (e.g., FreeBSD, S390X), not just -x86-64 Linux. - -Original commit message from D147984: - -Users have discovered [*] that when CONFIG_ARCH_MMAP_RND_BITS == 32, -it will frequently conflict with ASan's allocator on x86-64 Linux, because the -PIE program segment base address of 0x555555555554 plus an ASLR shift of up to -((2**32) * 4K == 0x100000000000) will sometimes exceed ASan's hardcoded -base address of 0x600000000000. We fix this by simply moving the allocator base -to 0x500000000000, which is below the PIE program segment base address. This is -cleaner than trying to move it to another location that is sandwiched between -the PIE program and library segments, because if either of those grow too large, -it will collide with the allocator region. - -Note that we will never need to change this base address again (unless we want to increase -the size of the allocator), because ASLR cannot be set above 32-bits for x86-64 Linux (the -PIE program segment and library segments would collide with each other; see also -ARCH_MMAP_RND_BITS_MAX in https://github.com/torvalds/linux/blob/master/arch/x86/Kconfig). - -[*] see https://b.corp.google.com/issues/276925478 -and https://groups.google.com/a/google.com/g/chrome-os-gardeners/c/BbfzCP3dEeo/m/h3C_vVUxCQAJ - -Differential Revision: https://reviews.llvm.org/D148280 ---- - compiler-rt/lib/asan/asan_allocator.h | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/compiler-rt/lib/asan/asan_allocator.h b/compiler-rt/lib/asan/asan_allocator.h -index 0b4dbf03bb9d5..6a12a6c602528 100644 ---- a/compiler-rt/lib/asan/asan_allocator.h -+++ b/compiler-rt/lib/asan/asan_allocator.h -@@ -143,11 +143,15 @@ typedef DefaultSizeClassMap SizeClassMap; - const uptr kAllocatorSpace = ~(uptr)0; - const uptr kAllocatorSize = 0x8000000000ULL; // 500G - typedef DefaultSizeClassMap SizeClassMap; --# else -+# elif SANITIZER_APPLE - const uptr kAllocatorSpace = 0x600000000000ULL; - const uptr kAllocatorSize = 0x40000000000ULL; // 4T. - typedef DefaultSizeClassMap SizeClassMap; --# endif -+# else -+const uptr kAllocatorSpace = 0x500000000000ULL; -+const uptr kAllocatorSize = 0x40000000000ULL; // 4T. -+typedef DefaultSizeClassMap SizeClassMap; -+# endif - template - struct AP64 { // Allocator64 parameters. Deliberately using a short name. - static const uptr kSpaceBeg = kAllocatorSpace;