summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorJames P. Harvey2018-10-17 18:47:08 -0400
committerJames P. Harvey2018-10-17 20:27:52 -0400
commit2f784559f42496cab455a9febf2323553eae656f (patch)
treec513375555db3b88d27b650170171e74f27a413f /PKGBUILD
parent7196202db28d20a5440c757e791b9390f3cf8649 (diff)
downloadaur-2f784559f42496cab455a9febf2323553eae656f.tar.gz
Restarting with fork from core's gcc 8.2.1+20180831-1. .SRCINFO intentionally delayed to avoid conflicts on this commit with core.
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD520
1 files changed, 265 insertions, 255 deletions
diff --git a/PKGBUILD b/PKGBUILD
index bbcc24ab25a2..0b13fba26739 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,57 +1,60 @@
-# $Id$
-# Original Core Repo
-# ==================
-# Maintainer: Allan McRae <allan@archlinux.org>
-#
-# Modifications to use Git Master Source
-# ======================================
-# Maintainer: James Harvey <jamespharvey20@gmail.com>
-# * This PKGBUILD as closely as possible matches core's gcc 6.3.1-1
-# * The github mirror is much more reliable and faster than the official upstream git repo
-# * _base_ver (in core, known as pkgver), _pkgver, and _libdir are parsed from gcc/BASE-VER. Unfortunately, these can't be parsed in the global scope because the git source isn't even downloaded yet. Setting to default value and updating in prepare() only makes chances within scope of that function. So, they're parsed in each function that needs them.
-# * Namcap differences with core's gcc 6.3.1-1
-# * gcc-git
-# * Duplicate: Unused shared library
-# * Ignored because: is a duplicate; and only indicates a possible upstream optimization
-# * gcc-ada-git
-# * Few missing: ELF file has executable stack
-# * Ignored because this is an improvement over core
-# * gcc-go-git
-# * Extra: lacks RELRO, check LDFLAGS
-# * Ignored because core has many similar messages
-# * Referenced library 'libgo.so.11' is an uninstalled dependency
-# * Ignored because this is provided within gcc-go-git, which is not installed in a chroot build because gcc-go is already installed, and it defaults to 'no' for the conflict
-# * gcc-libs-git
-# * Dependency gcc-libs detected and not included
-# * Ignored because this is referencing itself, which is not installed in a chroot build because gcc-libs is already installed, and it defaults to 'no' for the conflict
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: libtool requires rebuilt with each new gcc version
-pkgname=('gcc-git' 'gcc-libs-git' 'gcc-fortran-git' 'gcc-objc-git' 'gcc-ada-git' 'gcc-go-git')
-_pkgname=gcc
-pkgver=7.0.1.r152324.57eb019f9be
-_islver=0.18
+pkgname=(gcc gcc-libs gcc-fortran gcc-objc gcc-ada gcc-go lib32-gcc-libs)
+pkgver=8.2.1+20180831
+_majorver=${pkgver:0:1}
+_islver=0.19
pkgrel=1
-pkgdesc="The GNU Compiler Collection (developmental version)"
-arch=('i686' 'x86_64')
-license=('GPL' 'LGPL' 'FDL' 'custom')
-url="http://gcc.gnu.org"
-makedepends=('binutils>=2.26' 'libmpc' 'gcc-ada' 'doxygen' 'git')
-checkdepends=('dejagnu' 'inetutils')
-options=('!emptydirs')
-source=(git+https://github.com/gcc-mirror/gcc
- http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2)
-md5sums=('SKIP'
- '11436d6b205e516635b666090b94ab32')
-
-pkgver() {
- cd ${srcdir}/gcc
- echo $(cat gcc/BASE-VER).r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
+pkgdesc='The GNU Compiler Collection'
+arch=(x86_64)
+license=(GPL LGPL FDL custom)
+url='http://gcc.gnu.org'
+makedepends=(binutils libmpc gcc-ada doxygen lib32-glibc lib32-gcc-libs python)
+checkdepends=(dejagnu inetutils)
+options=(!emptydirs)
+#source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig}
+source=(https://sources.archlinux.org/other/gcc/gcc-${pkgver/+/-}.tar.xz{,.sig}
+ http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
+ c89 c99)
+validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
+ 86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com
+ 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com
+ 33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek <jakub@redhat.com>
+sha256sums=('725ec907fd7463568ec0c097802824b978a679523a2e3374bdc2e3d265cd2b6c'
+ 'SKIP'
+ 'd59726f34f7852a081fbd3defd1ab2136f174110fc2e0c8d10bb122173fa9ed8'
+ 'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931'
+ '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a')
+
+_svnrev=264010
+_svnurl=svn://gcc.gnu.org/svn/gcc/branches/gcc-${_majorver}-branch
+_libdir=usr/lib/gcc/$CHOST/${pkgver%%+*}
+
+snapshot() {
+ svn export -r${_svnrev} ${_svnurl} gcc-r${_svnrev}
+
+ local datestamp basever _pkgver
+ basever=$(< gcc-r${_svnrev}/gcc/BASE-VER)
+ datestamp=$(< gcc-r${_svnrev}/gcc/DATESTAMP)
+ _pkgver=${basever}-${datestamp}
+
+ mv gcc-r${_svnrev} gcc-${_pkgver}
+ tar cf - gcc-${_pkgver} | xz > gcc-${_pkgver}.tar.xz
+ rm -rf gcc-${_pkgver}
+ gpg -b gcc-${_pkgver}.tar.xz
+ scp gcc-${_pkgver}.tar.xz{,.sig} sources.archlinux.org:/srv/ftp/other/gcc/
+
+ echo
+ echo "pkgver=${_pkgver/-/+}"
}
prepare() {
- cd ${srcdir}/gcc
+ [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc
+ cd gcc
# link isl for in-tree build
ln -s ../isl-${_islver} isl
@@ -60,23 +63,23 @@ prepare() {
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
# Arch Linux installs x86_64 libraries /lib
- [[ $CARCH == "x86_64" ]] && sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
+ sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
# hack! - some configure tests for header files using "$CPP $CPPFLAGS"
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
- mkdir ${srcdir}/gcc-build
+ mkdir -p "$srcdir/gcc-build"
}
build() {
- cd ${srcdir}/gcc-build
+ cd gcc-build
# using -pipe causes spurious test-suite failures
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
CFLAGS=${CFLAGS/-pipe/}
CXXFLAGS=${CXXFLAGS/-pipe/}
- ${srcdir}/gcc/configure --prefix=/usr \
+ "$srcdir/gcc/configure" --prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--mandir=/usr/share/man \
@@ -100,283 +103,290 @@ build() {
--enable-install-libiberty \
--with-linker-hash-style=gnu \
--enable-gnu-indirect-function \
- --disable-multilib \
+ --enable-multilib \
--disable-werror \
- --enable-checking=release
+ --enable-checking=release \
+ --enable-default-pie \
+ --enable-default-ssp \
+ --enable-cet=auto
make
-
+
# make documentation
make -C $CHOST/libstdc++-v3/doc doc-man-doxygen
}
check() {
- cd ${srcdir}/gcc-build
-
- # increase stack size to prevent test failures
- # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
- ulimit -s 32768
+ cd gcc-build
# do not abort on error as some are "expected"
make -k check || true
- ${srcdir}/gcc/contrib/test_summary
+ "$srcdir/gcc/contrib/test_summary"
}
+package_gcc-libs() {
+ pkgdesc='Runtime libraries shipped by GCC'
+ groups=(base)
+ depends=('glibc>=2.27')
+ options+=(!strip)
+ provides=($pkgname-multilib libgo.so libgfortran.so libubsan.so libasan.so
+ libtsan.so liblsan.so)
+ replaces=($pkgname-multilib)
+
+ cd gcc-build
+ make -C $CHOST/libgcc DESTDIR="$pkgdir" install-shared
+ rm -f "$pkgdir/$_libdir/libgcc_eh.a"
-package_gcc-libs-git()
-{
- cd ${srcdir}/gcc
- _base_ver=$(cat gcc/BASE-VER)
- _libdir="usr/lib/gcc/$CHOST/$_base_ver"
-
- pkgdesc="Runtime libraries shipped by GCC (developmental version)"
- groups=('base')
- depends=('glibc>=2.24')
- provides=("gcc-libs=${_base_ver}")
- conflicts=('gcc-libs')
- options=('!emptydirs' '!strip')
-
- cd ${srcdir}/gcc-build
-
- make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
- rm ${pkgdir}/${_libdir}/libgcc_eh.a
-
for lib in libatomic \
- libcilkrts \
libgfortran \
libgo \
libgomp \
libitm \
libquadmath \
- libsanitizer/{a,l,ub}san \
+ libsanitizer/{a,l,ub,t}san \
libstdc++-v3/src \
libvtv; do
- make -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ make -C $CHOST/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
done
- [[ $CARCH == "x86_64" ]] && \
- make -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
-
- make -C $CHOST/libobjc DESTDIR=${pkgdir} install-libs
-
- make -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
-
- make -C $CHOST/libmpx DESTDIR=${pkgdir} install
- rm ${pkgdir}/usr/lib/libmpx.spec
+ make -C $CHOST/libobjc DESTDIR="$pkgdir" install-libs
+ make -C $CHOST/libstdc++-v3/po DESTDIR="$pkgdir" install
+ make -C $CHOST/libmpx DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/lib/libmpx.spec"
for lib in libgomp \
libitm \
libquadmath; do
- make -C $CHOST/$lib DESTDIR=${pkgdir} install-info
+ make -C $CHOST/$lib DESTDIR="$pkgdir" install-info
done
+ # remove files provided by lib32-gcc-libs
+ rm -rf "$pkgdir"/usr/lib32/
+
# Install Runtime Library Exception
- install -Dm644 ${srcdir}/gcc/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-libs-git/RUNTIME.LIBRARY.EXCEPTION
+ install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
+ "$pkgdir/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}
-package_gcc-git()
-{
- cd ${srcdir}/gcc
- _base_ver=$(cat gcc/BASE-VER)
- _libdir="usr/lib/gcc/$CHOST/$_base_ver"
-
- pkgdesc="The GNU Compiler Collection - C and C++ frontends (developmental version)"
- depends=("gcc-libs-git=$pkgver-$pkgrel" 'binutils>=2.26' 'libmpc')
- provides=('gcc=${_base_ver}')
- conflicts=('gcc')
+package_gcc() {
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends"
+ depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.28' libmpc)
groups=('base-devel')
- options=('staticlibs')
+ optdepends=('lib32-gcc-libs: for generating code for 32-bit ABI')
+ provides=($pkgname-multilib)
+ replaces=($pkgname-multilib)
+ options+=(staticlibs)
- cd ${srcdir}/gcc-build
+ cd gcc-build
- make -C gcc DESTDIR=${pkgdir} install-driver install-cpp install-gcc-ar \
+ make -C gcc DESTDIR="$pkgdir" install-driver install-cpp install-gcc-ar \
c++.install-common install-headers install-plugin install-lto-wrapper
- install -m755 -t $pkgdir/usr/bin/ gcc/gcov{,-tool}
- install -m755 -t $pkgdir/${_libdir}/ gcc/{cc1,cc1plus,collect2,lto1}
-
- make -C $CHOST/libgcc DESTDIR=${pkgdir} install
- rm ${pkgdir}/usr/lib/libgcc_s.so*
-
- make -C $CHOST/libstdc++-v3/src DESTDIR=${pkgdir} install
- make -C $CHOST/libstdc++-v3/include DESTDIR=${pkgdir} install
- make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install
- make -C $CHOST/libstdc++-v3/python DESTDIR=${pkgdir} install
-
- make DESTDIR=${pkgdir} install-libcc1
- install -d $pkgdir/usr/share/gdb/auto-load/usr/lib
- mv $pkgdir/usr/lib/libstdc++.so.6.*-gdb.py \
- $pkgdir/usr/share/gdb/auto-load/usr/lib/
- rm ${pkgdir}/usr/lib/libstdc++.so*
-
- make DESTDIR=${pkgdir} install-fixincludes
- make -C gcc DESTDIR=${pkgdir} install-mkheaders
-
- make -C lto-plugin DESTDIR=${pkgdir} install
- install -dm755 ${pkgdir}/usr/lib/bfd-plugins/
- ln -s /usr/lib/gcc/$CHOST/${_base_ver}/liblto_plugin.so \
- ${pkgdir}/usr/lib/bfd-plugins/
-
- make -C $CHOST/libcilkrts DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \
- install-nodist_cilkincludeHEADERS
- make -C $CHOST/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \
- install-nodist_libsubincludeHEADERS
- make -C $CHOST/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
- make -C $CHOST/libquadmath DESTDIR=${pkgdir} install-nodist_libsubincludeHEADERS
- make -C $CHOST/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
- make -C $CHOST/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
- make -C $CHOST/libmpx DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
-
- make -C libiberty DESTDIR=${pkgdir} install
- # install PIC version of libiberty
- install -m644 ${srcdir}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib
-
- make -C gcc DESTDIR=${pkgdir} install-man install-info
- rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1
- rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info
-
- make -C libcpp DESTDIR=${pkgdir} install
- make -C gcc DESTDIR=${pkgdir} install-po
+ install -m755 -t "$pkgdir/usr/bin/" gcc/gcov{,-tool}
+ install -m755 -t "$pkgdir/${_libdir}/" gcc/{cc1,cc1plus,collect2,lto1}
+
+ make -C $CHOST/libgcc DESTDIR="$pkgdir" install
+ make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install
+ rm -f "$pkgdir"/usr/lib{,32}/libgcc_s.so*
+
+ make -C $CHOST/libstdc++-v3/src DESTDIR="$pkgdir" install
+ make -C $CHOST/libstdc++-v3/include DESTDIR="$pkgdir" install
+ make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR="$pkgdir" install
+ make -C $CHOST/libstdc++-v3/python DESTDIR="$pkgdir" install
+ make -C $CHOST/32/libstdc++-v3/src DESTDIR="$pkgdir" install
+ make -C $CHOST/32/libstdc++-v3/include DESTDIR="$pkgdir" install
+ make -C $CHOST/32/libstdc++-v3/libsupc++ DESTDIR="$pkgdir" install
+
+ make DESTDIR="$pkgdir" install-libcc1
+ install -d "$pkgdir/usr/share/gdb/auto-load/usr/lib"
+ mv "$pkgdir"/usr/lib/libstdc++.so.6.*-gdb.py \
+ "$pkgdir/usr/share/gdb/auto-load/usr/lib/"
+ rm "$pkgdir"/usr/lib{,32}/libstdc++.so*
+
+ make DESTDIR="$pkgdir" install-fixincludes
+ make -C gcc DESTDIR="$pkgdir" install-mkheaders
+
+ make -C lto-plugin DESTDIR="$pkgdir" install
+ install -dm755 "$pkgdir"/usr/lib/bfd-plugins/
+ ln -s /${_libdir}/liblto_plugin.so \
+ "$pkgdir/usr/lib/bfd-plugins/"
+
+ make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_{libsubinclude,toolexeclib}HEADERS
+ make -C $CHOST/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/libquadmath DESTDIR="$pkgdir" install-nodist_libsubincludeHEADERS
+ make -C $CHOST/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
+ make -C $CHOST/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/libsanitizer/tsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/libsanitizer/lsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/libmpx DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/32/libgomp DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/32/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/32/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
+ make -C $CHOST/32/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/32/libmpx DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+
+ make -C libiberty DESTDIR="$pkgdir" install
+ install -m644 libiberty/pic/libiberty.a "$pkgdir/usr/lib"
+
+ make -C gcc DESTDIR="$pkgdir" install-man install-info
+ rm "$pkgdir"/usr/share/man/man1/{gccgo,gfortran}.1
+ rm "$pkgdir"/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info
+
+ make -C libcpp DESTDIR="$pkgdir" install
+ make -C gcc DESTDIR="$pkgdir" install-po
# many packages expect this symlink
- ln -s gcc ${pkgdir}/usr/bin/cc
+ ln -s gcc "$pkgdir"/usr/bin/cc
# POSIX conformance launcher scripts for c89 and c99
- cat > $pkgdir/usr/bin/c89 <<"EOF"
-#!/bin/sh
-fl="-std=c89"
-for opt; do
- case "$opt" in
- -ansi|-std=c89|-std=iso9899:1990) fl="";;
- -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- cat > $pkgdir/usr/bin/c99 <<"EOF"
-#!/bin/sh
-fl="-std=c99"
-for opt; do
- case "$opt" in
- -std=c99|-std=iso9899:1999) fl="";;
- -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- chmod 755 $pkgdir/usr/bin/c{8,9}9
+ install -Dm755 "$srcdir/c89" "$pkgdir/usr/bin/c89"
+ install -Dm755 "$srcdir/c99" "$pkgdir/usr/bin/c99"
# install the libstdc++ man pages
- make -C $CHOST/libstdc++-v3/doc DESTDIR=$pkgdir doc-install-man
+ make -C $CHOST/libstdc++-v3/doc DESTDIR="$pkgdir" doc-install-man
+
+ # remove files provided by lib32-gcc-libs
+ rm -f "$pkgdir"/usr/lib32/lib{stdc++,gcc_s}.so
+
+ # byte-compile python libraries
+ python -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/"
+ python -O -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/"
# Install Runtime Library Exception
- install -d ${pkgdir}/usr/share/licenses/gcc-git/
- ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-git/
+ install -d "$pkgdir/usr/share/licenses/$pkgname/"
+ ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
+ "$pkgdir/usr/share/licenses/$pkgname/"
}
-package_gcc-fortran-git()
-{
- cd ${srcdir}/gcc
- _base_ver=$(cat gcc/BASE-VER)
- _libdir="usr/lib/gcc/$CHOST/$_base_ver"
+package_gcc-fortran() {
+ pkgdesc='Fortran front-end for GCC'
+ depends=("gcc=$pkgver-$pkgrel")
+ provides=($pkgname-multilib)
+ replaces=($pkgname-multilib)
- pkgdesc="Fortran front-end for GCC (developmental version)"
- depends=("gcc-git=$pkgver-$pkgrel" 'libmpc' 'zlib')
- provides=('gcc-fortran=${_base_ver}')
- conflicts=('gcc-fortran')
- options=('!emptydirs')
-
- cd ${srcdir}/gcc-build
- make -C $CHOST/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
+ cd gcc-build
+ make -C $CHOST/libgfortran DESTDIR="$pkgdir" install-cafexeclibLTLIBRARIES \
+ install-{toolexeclibDATA,nodist_fincludeHEADERS}
+ make -C $CHOST/32/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
install-{toolexeclibDATA,nodist_fincludeHEADERS}
- make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
- make -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
- install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951
+ make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_fincludeHEADERS
+ make -C gcc DESTDIR="$pkgdir" fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 "$pkgdir/${_libdir}/f951"
- ln -s gfortran ${pkgdir}/usr/bin/f95
+ ln -s gfortran "$pkgdir/usr/bin/f95"
# Install Runtime Library Exception
- install -d ${pkgdir}/usr/share/licenses/gcc-fortran-git/
- ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-fortran-git/
+ install -d "$pkgdir/usr/share/licenses/$pkgname/"
+ ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
+ "$pkgdir/usr/share/licenses/$pkgname/"
}
-package_gcc-objc-git()
-{
- cd ${srcdir}/gcc
- _base_ver=$(cat gcc/BASE-VER)
- _libdir="usr/lib/gcc/$CHOST/$_base_ver"
+package_gcc-objc() {
+ pkgdesc='Objective-C front-end for GCC'
+ depends=("gcc=$pkgver-$pkgrel")
+ provides=($pkgname-multilib)
+ replaces=($pkgname-multilib)
- pkgdesc="Objective-C front-end for GCC (developmental version)"
- depends=("gcc-git=$pkgver-$pkgrel" 'libmpc' 'zlib')
- provides=('gcc-objc=${_base_ver}')
- conflicts=('gcc-objc')
-
- cd ${srcdir}/gcc-build
- make DESTDIR=$pkgdir -C $CHOST/libobjc install-headers
- install -dm755 $pkgdir/${_libdir}
- install -m755 gcc/cc1obj{,plus} $pkgdir/${_libdir}/
+ cd gcc-build
+ make DESTDIR="$pkgdir" -C $CHOST/libobjc install-headers
+ install -dm755 "$pkgdir/${_libdir}"
+ install -m755 gcc/cc1obj{,plus} "$pkgdir/${_libdir}/"
# Install Runtime Library Exception
- install -d ${pkgdir}/usr/share/licenses/gcc-objc-git/
- ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-objc-git/
+ install -d "$pkgdir/usr/share/licenses/$pkgname/"
+ ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
+ "$pkgdir/usr/share/licenses/$pkgname/"
}
-package_gcc-ada-git()
-{
- cd ${srcdir}/gcc
- _base_ver=$(cat gcc/BASE-VER)
- _libdir="usr/lib/gcc/$CHOST/$_base_ver"
- _pkgver=$(cat gcc/BASE-VER | sed 's/\..*//g')
+package_gcc-ada() {
+ pkgdesc='Ada front-end for GCC (GNAT)'
+ depends=("gcc=$pkgver-$pkgrel")
+ provides=($pkgname-multilib)
+ replaces=($pkgname-multilib)
+ options+=(staticlibs)
- pkgdesc="Ada front-end for GCC (GNAT) (developmental version)"
- depends=("gcc-git=$pkgver-$pkgrel" 'libmpc' 'zlib')
- provides=('gcc-ada=${_base_ver}')
- conflicts=('gcc-ada')
- options=('staticlibs' '!emptydirs')
+ cd gcc-build/gcc
+ make DESTDIR="$pkgdir" ada.install-{common,info}
+ install -m755 gnat1 "$pkgdir/${_libdir}"
- cd ${srcdir}/gcc-build/gcc
- make DESTDIR=$pkgdir ada.install-{common,info}
- install -m755 gnat1 $pkgdir/${_libdir}
+ cd "$srcdir"/gcc-build/$CHOST/32/libada
+ make DESTDIR=${pkgdir} INSTALL="install" \
+ INSTALL_DATA="install -m644" install-gnatlib
- ln -s gcc ${pkgdir}/usr/bin/gnatgcc
+ ln -s gcc "$pkgdir/usr/bin/gnatgcc"
# insist on dynamic linking, but keep static libraries because gnatmake complains
- mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib
- ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib/libgnarl.so
- ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib/libgnat.so
- rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.so
+ mv "$pkgdir"/${_libdir}/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir/usr/lib"
+ ln -s libgnarl-${_majorver}.so "$pkgdir/usr/lib/libgnarl.so"
+ ln -s libgnat-${_majorver}.so "$pkgdir/usr/lib/libgnat.so"
+ rm -f "$pkgdir"/${_libdir}/adalib/libgna{rl,t}.so
+
+ install -d "$pkgdir/usr/lib32/"
+ mv "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir/usr/lib32"
+ ln -s libgnarl-${_majorver}.so "$pkgdir/usr/lib32/libgnarl.so"
+ ln -s libgnat-${_majorver}.so "$pkgdir/usr/lib32/libgnat.so"
+ rm -f "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}.so
# Install Runtime Library Exception
- install -d ${pkgdir}/usr/share/licenses/gcc-ada-git/
- ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-ada-git/
+ install -d "$pkgdir/usr/share/licenses/$pkgname/"
+ ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
+ "$pkgdir/usr/share/licenses/$pkgname/"
}
-package_gcc-go-git()
-{
- cd ${srcdir}/gcc
- _base_ver=$(cat gcc/BASE-VER)
- _libdir="usr/lib/gcc/$CHOST/$_base_ver"
+package_gcc-go() {
+ pkgdesc='Go front-end for GCC'
+ depends=("gcc=$pkgver-$pkgrel")
+ provides=("go=1.10.1" $pkgname-multilib)
+ replaces=($pkgname-multilib)
+ conflicts=(go)
+
+ cd gcc-build
+ make -C $CHOST/libgo DESTDIR="$pkgdir" install-exec-am
+ make -C $CHOST/32/libgo DESTDIR="$pkgdir" install-exec-am
+ make DESTDIR="$pkgdir" install-gotools
+ make -C gcc DESTDIR="$pkgdir" go.install-{common,man,info}
+
+ rm -f "$pkgdir"/usr/lib{,32}/libgo.so*
+ install -Dm755 gcc/go1 "$pkgdir/${_libdir}/go1"
- pkgdesc="Go front-end for GCC (developmental version)"
- depends=("gcc-git=$pkgver-$pkgrel" 'libmpc' 'zlib')
- provides=('gcc-go=${_base_ver}')
- conflicts=('go' 'gcc-go')
- options=('!emptydirs')
+ # 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_lib32-gcc-libs() {
+ pkgdesc='32-bit runtime libraries shipped by GCC'
+ depends=('lib32-glibc>=2.27')
+ provides=(libgo.so libgfortran.so libubsan.so libasan.so)
+ groups=(multilib-devel)
+ options=(!emptydirs !strip)
+
+ cd gcc-build
+
+ make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install-shared
+ rm -f "$pkgdir/$_libdir/32/libgcc_eh.a"
+
+ for lib in libatomic \
+ libgfortran \
+ libgo \
+ libgomp \
+ libitm \
+ libquadmath \
+ libsanitizer/{a,l,ub}san \
+ libstdc++-v3/src \
+ libvtv; do
+ make -C $CHOST/32/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
+ done
- cd ${srcdir}/gcc-build
- make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am
- rm ${pkgdir}/usr/lib/libgo.so*
- make -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
- install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1
+ make -C $CHOST/32/libobjc DESTDIR="$pkgdir" install-libs
+ make -C $CHOST/32/libmpx DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/lib32/libmpx.spec"
- make DESTDIR=${pkgdir} install-gotools
+ # remove files provided by gcc-libs
+ rm -rf "$pkgdir"/usr/lib
# Install Runtime Library Exception
- install -d ${pkgdir}/usr/share/licenses/gcc-go-git/
- ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/gcc-go-git/
+ install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
+ "$pkgdir/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}