summaryrefslogtreecommitdiff
path: root/libre/sh-elf-gcc
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2018-05-04 20:34:33 -0300
committerDavid P <megver83@parabola.nu>2018-05-04 20:35:01 -0300
commitc12017aaa54fa5eed820343c6df2c8ab122749c4 (patch)
tree989e3c4f18254803bdb9ddf0fe5c76916d27901a /libre/sh-elf-gcc
parent88d5eda679c3030071ca52196cf8c1f849be4c68 (diff)
downloadabslibre-c12017aaa54fa5eed820343c6df2c8ab122749c4.tar.gz
abslibre-c12017aaa54fa5eed820343c6df2c8ab122749c4.tar.bz2
abslibre-c12017aaa54fa5eed820343c6df2c8ab122749c4.zip
upgpkg: arm-linux-gnueabi-gcc, sh-elf-gcc; add xtensa-elf-{gcc,binutils}
Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'libre/sh-elf-gcc')
-rw-r--r--libre/sh-elf-gcc/PKGBUILD78
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