diff options
| -rw-r--r-- | PKGBUILD | 102 | 
1 files changed, 102 insertions, 0 deletions
| diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..889a0ba --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,102 @@ +# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net> +# Maintainer (Parabola): David P. <megver83@parabola.nu> + +# # I maintain this because: +# Required to build linux-libre-firmware + +_target=arm-linux-gnueabi +pkgname=$_target-gcc +_pkgver=8.3.0 +#_snapshot=8-20180824 +pkgver=$_pkgver${_snapshot/*-/+} +_islver=0.20 +pkgrel=1 +pkgdesc='The GNU Compiler Collection - cross compiler for ARM target' +arch=(x86_64 i686 armv7h) +url='http://gcc.gnu.org/' +license=(GPL LGPL FDL) +depends=($_target-binutils libmpc zlib) +makedepends=(gmp mpfr) +options=(!emptydirs !strip) +source=(https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgver/gcc-$_pkgver.tar.xz{,.sig} +        #https://gcc.gnu.org/pub/gcc/snapshots/$_snapshot/gcc-$_snapshot.tar.xz +        http://isl.gforge.inria.fr/isl-$_islver.tar.bz2) +sha512sums=('1811337ae3add9680cec64968a2509d085b6dc5b6783fc1e8c295e3e47416196fd1a3ad8dfe7e10be2276b4f62c357659ce2902f239f60a8648548231b4b5802' +            'SKIP' +            'afe2e159b74646a26449268637403d271f9e3f6410d8cc1c9cffca41370c4357b165dea844db0c2a654591f954e54710dda650c8088abd4711406aa6302da950') +validpgpkeys=(33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek <jakub@redhat.com> + +if [ -n "$_snapshot" ]; then +  _basedir=gcc-$_snapshot +else +  _basedir=gcc-$_pkgver +fi + +prepare() { +  cd $_basedir + +  # link isl for in-tree builds +  ln -sf ../isl-$_islver isl + +  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/gcc-build +} + +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/$_basedir/configure \ +    --target=$_target \ +    --prefix=/usr \ +    --libexecdir=/usr/lib \ +    --enable-languages=c,c++ \ +    --enable-plugins \ +    --enable-shared \ +    --disable-decimal-float \ +    --disable-libffi \ +    --disable-libgomp \ +    --disable-libmudflap \ +    --disable-libquadmath \ +    --disable-libssp \ +    --disable-libstdcxx-pch \ +    --disable-nls \ +    --disable-threads \ +    --disable-tls \ +    --disable-multilib \ +    --with-gnu-as \ +    --with-gnu-ld \ +    --with-system-zlib \ +    --with-gmp \ +    --with-mpfr \ +    --with-mpc \ +    --with-isl \ +    --with-libelf \ +    --enable-gnu-indirect-function + +  make $MAKEFLAGS all-gcc +} + +package() { +  cd gcc-build + +  make DESTDIR="$pkgdir" install-gcc + +  # strip target binaries +  find "$pkgdir"/usr/lib/gcc/$_target/ -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/ -type f -and \( -executable \) -exec strip '{}' \; + +  # Remove files that conflict with host gcc package +  rm -r "$pkgdir"/usr/share/man/man7 +  rm -r "$pkgdir"/usr/share/info +} | 
