diff options
Diffstat (limited to 'libre/sh-elf-gcc/PKGBUILD')
-rw-r--r-- | libre/sh-elf-gcc/PKGBUILD | 78 |
1 files changed, 29 insertions, 49 deletions
diff --git a/libre/sh-elf-gcc/PKGBUILD b/libre/sh-elf-gcc/PKGBUILD index fe43c3e3a..9084a653e 100644 --- a/libre/sh-elf-gcc/PKGBUILD +++ b/libre/sh-elf-gcc/PKGBUILD @@ -2,11 +2,12 @@ _target=sh-elf pkgname=$_target-gcc -pkgver=7.3.1 -_islver=0.18 -pkgrel=2 -_snapshot=7-20180125 -pkgdesc="The GNU Compiler Collection - cross compiler for $_target target" +_pkgver=8.1.0 +pkgver=$_pkgver+20180427 +_islver=0.19 +pkgrel=1 +_snapshot=${pkgver:0:1}-${pkgver##$_pkgver+} +pkgdesc="The GNU Compiler Collection - cross compiler for SuperH target" arch=('x86_64' 'i686' 'armv7h') url='http://gcc.gnu.org/' license=(GPL LGPL FDL) @@ -14,16 +15,16 @@ depends=($_target-binutils libmpc zlib) makedepends=(gmp mpfr $_target-newlib) optdepends=("$_target-newlib: Standard C library ($_target target)") options=(!emptydirs !strip) -source=(#https://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2 +source=(#https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgver/gcc-$_pkgver.tar.bz2 https://gcc.gnu.org/pub/gcc/snapshots/$_snapshot/gcc-$_snapshot.tar.xz http://isl.gforge.inria.fr/isl-$_islver.tar.bz2) -sha512sums=('87558e9cf6d44df0c45e2bde8ef4d4a8b77716382ae0cd787b80bb4650a0a033d2b815a3b3eaa1798a16d66afca0d38c83a268bed0b26bdf013a483f04923298' - '85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94') +sha512sums=('c38c382f2246e2164d5f8d0402c4cfad7de0084f0d63d2ef9b489b7fa1695b157a2983f282811b6089dcb447432866d80dae4e84561c7f41395558cd96901d67' + '08f4db964d9e02ec8aa9779378ed76e0ddf1d56f81f87664dbf787555ce496cdc87e836f8a51ae137f45e648c604870cce07ee45919eafb549e404afb8f27083') if [ -n "$_snapshot" ]; then _basedir=gcc-$_snapshot else - _basedir=gcc-$pkgver + _basedir=gcc-$_pkgver fi prepare() { @@ -32,23 +33,31 @@ prepare() { # link isl for in-tree builds ln -sf ../isl-$_islver isl - echo $pkgver > gcc/BASE-VER + echo $_pkgver > gcc/BASE-VER # hack! - some configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" "$srcdir"/$_basedir/{libiberty,gcc}/configure - mkdir $srcdir/build-{gcc,gcc-nano} + mkdir $srcdir/build-gcc } -_build_gcc() { +build() { + cd build-gcc + + # using -pipe causes spurious test-suite failures + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565 + CFLAGS=${CFLAGS/-pipe/} + CXXFLAGS=${CXXFLAGS/-pipe/} + $srcdir/$_basedir/configure \ --target=$_target \ --prefix=/usr \ + --libexecdir=/usr/lib \ --with-sysroot=/usr/$_target \ --with-native-system-header-dir=/include \ - --libexecdir=/usr/lib \ --enable-languages=c,c++ \ --enable-plugins \ + --enable-shared \ --disable-decimal-float \ --disable-libffi \ --disable-libgomp \ @@ -57,14 +66,12 @@ _build_gcc() { --disable-libssp \ --disable-libstdcxx-pch \ --disable-nls \ - --disable-shared \ --disable-threads \ --disable-tls \ --with-gnu-as \ --with-gnu-ld \ --with-system-zlib \ --with-newlib \ - --with-headers=/usr/$_target/include \ --with-python-dir=share/gcc-$_target \ --with-gmp \ --with-mpfr \ @@ -72,48 +79,21 @@ _build_gcc() { --with-isl \ --with-libelf \ --enable-gnu-indirect-function \ - --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' \ - --without-pkgversion \ - --with-bugurl='https://labs.parabola.nu/' \ - --with-multilib + --with-pkgversion='Parabola Repository' \ + --with-bugurl='https://labs.parabola.nu/' - make INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0' -} - -build() { - cd $srcdir/build-gcc - export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' - export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' - _build_gcc - - # Build libstdc++ without exceptions support (the 'nano' variant) - cd $srcdir/build-gcc-nano - export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' - export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' - _build_gcc + make $MAKEFLAGS } package() { - cd $srcdir/build-gcc - make DESTDIR="$pkgdir" install -j1 - - cd $srcdir/build-gcc-nano - make DESTDIR="$pkgdir.nano" install -j1 - # we need only libstdc nano files - multilibs=( $($pkgdir/usr/bin/$_target-gcc -print-multi-lib 2>/dev/null) ) - for multilib in "${multilibs[@]}"; do - dir="${multilib%%;*}" - from_dir=$pkgdir.nano/usr/$_target/lib/$dir - to_dir=$pkgdir/usr/$_target/lib/$dir - cp -f $from_dir/libstdc++.a $to_dir/libstdc++_nano.a - cp -f $from_dir/libsupc++.a $to_dir/libsupc++_nano.a - done + cd build-gcc + make DESTDIR="$pkgdir" install # strip target binaries - find "$pkgdir"/usr/lib/gcc/$_target/$pkgver "$pkgdir"/usr/$_target/lib -type f -and \( -name \*.a -or -name \*.o \) -exec $_target-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; + find "$pkgdir"/usr/lib/gcc/$_target/$_pkgver "$pkgdir"/usr/$_target/lib -type f -and \( -name \*.a -or -name \*.o \) -exec $_target-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; # strip host binaries - find "$pkgdir"/usr/bin/ "$pkgdir"/usr/lib/gcc/$_target/$pkgver -type f -and \( -executable \) -exec strip '{}' \; + find "$pkgdir"/usr/bin/ "$pkgdir"/usr/lib/gcc/$_target/$_pkgver -type f -and \( -executable \) -exec strip '{}' \; # Remove files that conflict with host gcc package rm -r "$pkgdir"/usr/share/man/man7 |