Update GCC packages to 14.1.1

* Use `git+https://sourceware.org/git/gcc.git` consistently in both
  packages
* Remove ada from static-compat-gcc because it leads to build failures and
  adding even more workarounds for this language is not worth it
* Workaround certain warnings now being treated as errors in mingw-w64-gcc
This commit is contained in:
Martchus 2024-05-12 12:01:34 +02:00
parent b8be67ccac
commit ec900cf8af
2 changed files with 14 additions and 61 deletions

View File

@ -1,7 +1,7 @@
# Maintainer of official package: Felix Yan <felixonmars@archlinux.org>
pkgname=mingw-w64-gcc
pkgver=13.2.1
pkgver=14.1.1+r1+g43b730b9134
pkgrel=1
pkgdesc="Cross GCC for the MinGW-w64 cross-compiler"
arch=('x86_64' 'aarch64')
@ -12,7 +12,7 @@ depends=('zlib' 'libisl' 'libmpc' 'mingw-w64-crt' 'mingw-w64-binutils' 'mingw-w6
# gcc-d doesn't build as of 13.1.0
makedepends=("gcc-ada" "git")
options=('!strip' 'staticlibs' '!emptydirs' '!buildflags')
_commit=d8a0dcd146dd95e2b6b85cf82c445214d364cf3b
_commit=43b730b9134af60a8f1c5b107d625f7127ff23c5
source=(git+https://sourceware.org/git/gcc.git#commit=${_commit})
#source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig})
validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
@ -32,6 +32,10 @@ prepare() {
}
build() {
# Avoid errors due to implicit function declarations and similar issues (which are treated as errors as of GCC 14,
# see https://gcc.gnu.org/gcc-14/porting_to.html)
export CFLAGS_FOR_TARGET=-fpermissive
for _arch in ${_architectures}; do
mkdir -p "$srcdir"/build-${_arch} && cd "$srcdir"/build-${_arch}
"$srcdir"/gcc/configure --prefix=/usr --libexecdir=/usr/lib \
@ -55,7 +59,7 @@ package() {
make DESTDIR="$pkgdir" install
${_arch}-strip "$pkgdir"/usr/${_arch}/lib/*.dll
strip "$pkgdir"/usr/bin/${_arch}-*
strip "$pkgdir"/usr/lib/gcc/${_arch}/${pkgver}/{cc1*,collect2,gnat1,f951,lto*}
strip "$pkgdir"/usr/lib/gcc/${_arch}/*/{cc1*,collect2,gnat1,f951,lto*}
ln -s ${_arch}-gcc "$pkgdir"/usr/bin/${_arch}-cc
# mv dlls
mkdir -p "$pkgdir"/usr/${_arch}/bin/

View File

@ -1,8 +1,8 @@
# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc
# NOTE: libtool requires rebuilt with each new gcc version
pkgname=({gcc,gcc-libs,lib32-gcc-libs,gcc-ada,gcc-fortran}-static-compat)
pkgver=13.2.1
pkgname=({gcc,gcc-libs,lib32-gcc-libs,gcc-fortran}-static-compat)
pkgver=14.1.1+r1+g43b730b9134
_majorver=${pkgver%%.*}
pkgrel=1
pkgdesc='The GNU Compiler Collection'
@ -32,11 +32,10 @@ checkdepends=(
options=(!emptydirs !lto debug)
_prefix=/usr/static-compat
_libdir=usr/static-compat/lib/gcc/$CHOST/${pkgver%%+*}
_commit=d8a0dcd146dd95e2b6b85cf82c445214d364cf3b
source=(git://gcc.gnu.org/git/gcc.git#commit=$_commit
_commit=43b730b9134af60a8f1c5b107d625f7127ff23c5
source=(git+https://sourceware.org/git/gcc.git#commit=$_commit
#source=(https://sourceware.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.xz{,.sig}
c89 c99
gcc-ada-repro.patch
)
validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com
@ -46,8 +45,7 @@ validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.
# 'SKIP'
sha256sums=('SKIP'
'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931'
'2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a'
'1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f')
'2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a')
prepare() {
[[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc
@ -61,9 +59,6 @@ prepare() {
sed -i 's|MULTILIB_DIRNAMES .*|MULTILIB_DIRNAMES = 64 32|' gcc/config/i386/t-linux64
sed -i 's|m32=.*|m32=../lib32\$\(call if_multiarch,:i386-linux-gnu\)|' gcc/config/i386/t-linux64
# Reproducible gcc-ada
patch -Np0 < "$srcdir/gcc-ada-repro.patch"
mkdir -p "$srcdir/gcc-build"
}
@ -123,16 +118,9 @@ build() {
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2}
"$srcdir/gcc/configure" \
--enable-languages=ada,c,c++,fortran,lto \
--enable-languages=c,c++,fortran,lto \
$_confflags
# link Ada host tools with host g++ - otherwise we run into linker errors because it would use the too old target glibc
# note: Since we don't need Ada anyways it maybe makes sense to just disable it in the future.
sed -i -r \
-e 's|\+\$\(GCC_LINK\)( .* \$\(TOOLS_LIBS\))|g++\1|g' \
-e 's|--LINK=\"\$\(GCC_LINK\)\"|--LINK=g++|g' \
gcc/ada/gcc-interface/Makefile
make
}
@ -167,7 +155,6 @@ package_gcc-libs-static-compat() {
make -C $CHOST/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
done
#make -C $CHOST/libobjc DESTDIR="$pkgdir" install-libs
make -C $CHOST/libstdc++-v3/po DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/$_libdir/include/d/
@ -243,7 +230,7 @@ package_gcc-static-compat() {
make -C gcc DESTDIR="$pkgdir" install-man install-info
rm "$pkgdir"$_prefix/share/man/man1/gfortran.1
rm "$pkgdir"$_prefix/share/info/{gfortran,gnat-style,gnat_rm,gnat_ugn}.info
rm "$pkgdir"$_prefix/share/info/gfortran.info
rm -r "$pkgdir"$_prefix/share/info/dir
make -C libcpp DESTDIR="$pkgdir" install
@ -294,44 +281,6 @@ package_gcc-fortran-static-compat() {
"$pkgdir$_prefix/share/licenses/$pkgname/"
}
package_gcc-ada-static-compat() {
pkgdesc='Ada front-end for GCC (GNAT)'
depends=("gcc-static-compat=$pkgver-$pkgrel" libisl.so)
options=(!emptydirs staticlibs debug)
cd gcc-build/gcc
make DESTDIR="$pkgdir" ada.install-{common,info}
install -m755 gnat1 "$pkgdir/${_libdir}"
cd "$srcdir"/gcc-build/$CHOST/libada
make DESTDIR="${pkgdir}" INSTALL="install" \
INSTALL_DATA="install -m644" install-libada
cd "$srcdir"/gcc-build/$CHOST/32/libada
make DESTDIR="${pkgdir}" INSTALL="install" \
INSTALL_DATA="install -m644" install-libada
ln -s gcc "$pkgdir$_prefix/bin/gnatgcc"
# insist on dynamic linking, but keep static libraries because gnatmake complains
mv "$pkgdir"/${_libdir}/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir$_prefix/lib"
ln -s libgnarl-${_majorver}.so "$pkgdir$_prefix/lib/libgnarl.so"
ln -s libgnat-${_majorver}.so "$pkgdir$_prefix/lib/libgnat.so"
rm -f "$pkgdir"/${_libdir}/adalib/libgna{rl,t}.so
rm -r "$pkgdir"$_prefix/share/info/dir
install -d "$pkgdir$_prefix/lib32/"
mv "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir$_prefix/lib32"
ln -s libgnarl-${_majorver}.so "$pkgdir$_prefix/lib32/libgnarl.so"
ln -s libgnat-${_majorver}.so "$pkgdir$_prefix/lib32/libgnat.so"
rm -f "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}.so
# Install Runtime Library Exception
install -d "$pkgdir$_prefix/share/licenses/$pkgname/"
ln -s $_prefix/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir$_prefix/share/licenses/$pkgname/"
}
package_lib32-gcc-libs-static-compat() {
pkgdesc='32-bit runtime libraries shipped by GCC'
depends=('lib32-glibc>=2.26')