core/gcc to 14.1.1+r1+g43b730b9134-1

This commit is contained in:
Kevin Mihelich 2024-05-08 18:21:18 +00:00
parent 80aa426cc6
commit de3ec366d3
3 changed files with 46 additions and 109 deletions

View file

@ -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

View file

@ -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 <jakub@redhat.com>
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"

View file

@ -1,60 +0,0 @@
From fb77ca05ffb4f8e666878f2f6718a9fb4d686839 Mon Sep 17 00:00:00 2001
From: Thurston Dang <thurston@google.com>
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 <typename AddressSpaceViewTy>
struct AP64 { // Allocator64 parameters. Deliberately using a short name.
static const uptr kSpaceBeg = kAllocatorSpace;