summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorChris Severance2016-06-12 05:26:56 -0400
committerChris Severance2016-06-12 05:26:56 -0400
commita0778eacb2d554b075812fcd6d3ac7ba819643bb (patch)
tree91263e1b1aa0d861f4455dd640ee942031105934 /PKGBUILD
parent1d968603d4c032947cd72471885f2774b34ce489 (diff)
downloadaur-a0778eacb2d554b075812fcd6d3ac7ba819643bb.tar.gz
Update to gcc 6.0 compile
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD178
1 files changed, 104 insertions, 74 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 3f8e2da94ec1..6a2b1c3b402d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,118 +1,148 @@
-# Maintainer: Felix Schindler <felix at schindlerfaimly dot de>
+# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
+# Contributor: Felix Schindler <felix at schindlerfaimly dot de>
# Contributor: Allan McRae <allan@archlinux.org>
#
-# This PKGBUILD is maintained at https://github.com/ftalbrecht/aur
+# This PKGBUILD has been maintained at https://github.com/ftalbrecht/aur
# in the gcc48 branch
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: libtool requires rebuilt with each new gcc version
-pkgname=gcc48
-_pkgver_minor=4.8
-pkgver=${_pkgver_minor}.5
-pkgrel=1
-pkgdesc="The GNU Compiler Collection - C and C++ frontends (4.8.x)"
+pkgname='gcc48'
+_pkgver='4.8'
+pkgver="${_pkgver}.5"
+pkgrel='1'
+pkgdesc="The GNU Compiler Collection - C and C++ frontends (${_pkgver}.x)"
arch=('i686' 'x86_64')
-license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
-depends=('binutils>=2.24' 'libmpc' 'cloog')
-makedepends=('binutils>=2.24' 'libmpc' 'cloog' 'doxygen')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+makedepends=('binutils>=2.24' 'libmpc' 'doxygen')
+makedepends+=('cloog')
checkdepends=('dejagnu' 'inetutils')
options=('!emptydirs' 'staticlibs' '!libtool')
-source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2)
-md5sums=('80d2c2982a3392bb0b89673ff136e223')
+source=(
+ "ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2"
+ "gcc-4.9-fix-build-with-gcc-6.patch"
+)
+sha256sums=('22fb1e7e0f68a63cee631d85b20461d1ea6bda162f03096350e38c8d427ecf23'
+ 'd775a053fad367f5490111038fde7c875b4e842919d2d197f95b915e1ae562a9')
+PKGEXT='.pkg.tar.gz'
-_basedir=gcc-${pkgver}
+ _basedir="gcc-${pkgver}"
-_libdir="usr/lib/gcc/$CHOST/$pkgver"
+#_libdir="usr/lib/gcc/${CHOST}/${pkgver}"
-build() {
- # prepare
- cd ${srcdir}/${_basedir}
+prepare() {
+ cd "${_basedir}"
# Do not run fixincludes
- sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+ sed -i -e 's@\./fixinc\.sh@-c true@' 'gcc/Makefile.in'
+
+ # fix build with GCC 6
+ patch -p1 < "${srcdir}/gcc-4.9-fix-build-with-gcc-6.patch"
# Arch Linux installs x86_64 libraries /lib
- [[ $CARCH == "x86_64" ]] && sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
+ case "${CARCH}" in
+ 'x86_64') sed -i -e '/m64=/s/lib64/lib/' 'gcc/config/i386/t-linux64' ;;
+ esac
- 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/" {libiberty,gcc}/configure
+ sed -i -e '/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/' {libiberty,gcc}/configure
# installing libiberty headers is broken
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56780#c6
- sed -i 's#@target_header_dir@#libiberty#' libiberty/Makefile.in
+ sed -i -e 's#@target_header_dir@#libiberty#' 'libiberty/Makefile.in'
- mkdir ${srcdir}/gcc-build
+ mkdir "${srcdir}/gcc-build"
# build
- cd ${srcdir}/gcc-build
+ cd "${srcdir}/gcc-build"
# Doesn't like FORTIFY_SOURCE
- CPPFLAGS=${CPPFLAGS//-D_FORTIFY_SOURCE=?/}
- export CPPFLAGS
+ export CPPFLAGS="${CPPFLAGS//-D_FORTIFY_SOURCE=?/}"
# Doesn't like -fstack-protector-strong
- CFLAGS=${CFLAGS//-fstack-protector-strong/-fstack-protector}
- export CFLAGS
- CXXFLAGS=${CXXFLAGS//-fstack-protector-strong/-fstack-protector}
- export CXXFLAGS
+ export CFLAGS="${CFLAGS//-fstack-protector-strong/-fstack-protector}"
+ export CXXFLAGS="${CXXFLAGS//-fstack-protector-strong/-fstack-protector}"
# using -pipe causes spurious test-suite failures
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
- CFLAGS=${CFLAGS/-pipe/}
- CXXFLAGS=${CXXFLAGS/-pipe/}
-
- LD_PRELOAD=/usr/lib/libstdc++.so.6 ${srcdir}/${_basedir}/configure --prefix=/usr \
- --libdir=/usr/lib --libexecdir=/usr/lib \
- --mandir=/usr/share/man --infodir=/usr/share/info \
- --with-bugurl=https://bugs.archlinux.org/ \
- --enable-languages=c,c++,fortran \
- --enable-shared --enable-threads=posix \
- --with-system-zlib --enable-__cxa_atexit \
- --disable-libunwind-exceptions --enable-clocale=gnu \
- --disable-libstdcxx-pch \
- --enable-gnu-unique-object \
- --with-ppl \
- --disable-multilib --disable-werror \
- --enable-linker-build-id \
- --enable-cloog-backend=isl \
- --enable-lto --enable-gold --enable-ld=default \
- --enable-plugin --with-plugin-ld=ld.gold \
- --program-suffix=-${pkgver} --enable-version-specific-runtime-libs \
- --enable-checking=release
-
- make
-
+ export CFLAGS="${CFLAGS/-pipe/}"
+ export CXXFLAGS="${CXXFLAGS/-pipe/}"
+
+ # The following options are one per line, mostly sorted so they are easy to diff compare to other gcc packages.
+ "${srcdir}/${_basedir}/configure" \
+ --build="${CHOST}" \
+ --disable-libstdcxx-pch \
+ --disable-libunwind-exceptions \
+ --disable-multilib \
+ --disable-werror \
+ --enable-__cxa_atexit \
+ --enable-checking='release' \
+ --enable-clocale='gnu' \
+ --enable-cloog-backend='isl' \
+ --enable-gnu-unique-object \
+ --enable-gold \
+ --enable-languages='c,c++,fortran' \
+ --enable-ld=default \
+ --enable-linker-build-id \
+ --enable-lto \
+ --enable-plugin \
+ --enable-shared \
+ --enable-threads='posix' \
+ --enable-version-specific-runtime-libs \
+ --infodir='/usr/share/info' \
+ --libdir='/usr/lib' \
+ --libexecdir='/usr/lib' \
+ --mandir='/usr/share/man' \
+ --program-suffix="-${_pkgver}" \
+ --with-bugurl='https://bugs.archlinux.org/' \
+ --with-plugin-ld='ld.gold' \
+ --with-ppl \
+ --with-system-zlib \
+ --prefix='/usr'
+# CXX='g++-4.9' CC='gcc-4.9'
+}
+
+build() {
+ cd "${srcdir}/gcc-build"
+
+ local _nproc="$(nproc)"; _nproc=$((_nproc>8?8:_nproc))
+ LD_PRELOAD='/usr/lib/libstdc++.so' \
+ make -s -j "${_nproc}"
+
# make documentation
- make -C $CHOST/libstdc++-v3/doc doc-man-doxygen
+ make -s -j1 -C "${CHOST}/libstdc++-v3/doc" 'doc-man-doxygen'
+}
+
+_fn_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
+
+ # do not abort on error as some are "expected"
+ make -k check || :
+ "${srcdir}/${_basedir}/contrib/test_summary"
}
package()
{
- cd ${srcdir}/gcc-build
+ cd "${srcdir}/gcc-build"
+
+ make -s -j1 DESTDIR="${pkgdir}" install
- make -j1 DESTDIR=${pkgdir} install
-
## Lazy way of dealing with conflicting man and info pages and locales...
- rm -rf ${pkgdir}/usr/share/
- rm -rf ${pkgdir}/usr/include/
- find ${pkgdir}/ -name \*iberty\* | xargs rm
-
+ rm -rf "${pkgdir}/usr"/{share,include}/
+ find "${pkgdir}/" -name '*iberty*' | xargs rm
+
# Move potentially conflicting stuff to version specific subdirectory
- $(ls "$pkgdir"/usr/lib/gcc/$CHOST/lib* &> /dev/null) && mv "$pkgdir"/usr/lib/gcc/$CHOST/lib* "$pkgdir/usr/lib/gcc/$CHOST/$pkgver/"
-
+ mv "${pkgdir}/usr/lib/gcc/${CHOST}"/lib*/ "${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/"
+
# Install Runtime Library Exception
- install -Dm644 ${srcdir}/gcc-${pkgver}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/$pkgname/RUNTIME.LIBRARY.EXCEPTION
-
- # create symlinks
- cd ${pkgdir}/usr/bin
- for ii in c++ g++ gcc gcc-ar gcc-nm gcc-ranlib gfortran; do
- ln -s ${ii}-${pkgver} ${ii}-${_pkgver_minor}
- ln -s ${CHOST}-${ii}-${pkgver} ${CHOST}-${ii}-${_pkgver_minor}
- done
- ln -s gcov-${pkgver} gcov-${_pkgver_minor}
+ install -Dm644 "${srcdir}/gcc-${pkgver}/COPYING.RUNTIME" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/RUNTIME.LIBRARY.EXCEPTION"
}