diff options
author | Chris Severance | 2022-09-24 23:55:08 -0400 |
---|---|---|
committer | Chris Severance | 2022-09-24 23:55:08 -0400 |
commit | 35d921264c5245f8dcc18959b311123eb5fbefca (patch) | |
tree | 72cd8dc9a55ea965b1e4bc079edc5b2c0878239b /PKGBUILD | |
parent | 325a55dde127fce6b4e85a38ba512ad2a66e6d9a (diff) | |
download | aur-gcc46.tar.gz |
autu: Update to 4.6.4-4 Remove ppl cloog isl
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 229 |
1 files changed, 144 insertions, 85 deletions
@@ -1,4 +1,5 @@ -# Maintainer: Felix Schindler <felix at schindlerfamily dot de> +# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com +# Contributor: Felix Schindler <felix at schindlerfamily dot de> # Contributor: Tianjiao Yin <ytj000(at)gmail(dot)(see)(oh)(em)> # Allan McRae <allan@archlinux.org> # @@ -8,115 +9,173 @@ # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc # NOTE: libtool requires rebuilt with each new gcc version -pkgname=gcc46 -_ver=4.6 -pkgver=4.6.4 -pkgrel=4 -pkgdesc="The GNU Compiler Collection (4.6.x)" +set -u +_pkgver='4.6' +pkgname="gcc${_pkgver//./}" +pkgver="${_pkgver}.4" +#_islver='0.15' +#_cloogver='0.18.1' +pkgrel='4' +pkgdesc="The GNU Compiler Collection (${_pkgver}.x)" arch=('i686' 'x86_64') -license=('GPL' 'LGPL' 'custom') -url="http://gcc.gnu.org" -provides=('gcc-4.6') -depends=('glibc' 'binutils' 'gmp' 'mpfr' 'libmpc' 'ppl' 'isl15' 'cloog' 'elfutils') -makedepends=('flex' 'bison' 'aria2') -# makedepends=('flex' 'bison' 'aria2' 'dejagnu') # For test -options=('staticlibs' '!libtool' '!emptydirs') - -_mirror="ftp://ftp.lip6.fr/pub/gcc" -source=(gcc-hash-style-both.patch - gcc_pure64.patch - ${_mirror}/releases/gcc-4.6.4/gcc-${pkgver}.tar.bz2 - ) - -md5sums=('4df25b623799b148a0703eaeec8fdf3f' +url='http://gcc.gnu.org' +license=('GPL' 'LGPL' 'FDL' 'custom') +depends=('glibc' 'zlib' 'gmp' 'mpfr' 'elfutils') +makedepends=('binutils>=2.24' 'libmpc' 'texinfo') +#makedepends+=('ppl') # cloog +makedepends+=('flex' 'bison' 'aria2') +provides=("gcc-${_pkgver//\./}") # no version as it is completely contained in the name +# makedepends+=('dejagnu') # For test +#makedepends+=('gcc49') +conflicts=("gcc${_pkgver//\./}-multilib") +options=('staticlibs' '!libtool' '!buildflags') +options+=('!emptydirs') +source=( + "ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2" + #"http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2" + #"https://libisl.sourceforge.io/isl-${_islver}.tar.bz2" + #"http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz" + 'gcc-hash-style-both.patch' + 'gcc_pure64.patch' + 'gcc.texi.49.patch' +) + +md5sums=('b407a3d1480c11667f293bfb1f17d1a4' + '4df25b623799b148a0703eaeec8fdf3f' '00b105ff3bc237381169d476c7f50cfb' - 'b407a3d1480c11667f293bfb1f17d1a4') - -if [ -n "${_snapshot}" ]; then - _basedir=gcc-${_snapshot} + 'f3c42a9cfa840a062897da0468102771') +sha256sums=('35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8' + '3492332fa78b545ff46c2b5293d17c63c122be6f8f6fa4798864b7d4572b0024' + '0a6d182d91371d40820031b92e9aaca04e04afe48d89744d7b4fcac363f1f1b8' + '9f8c50a715a921d3d2c9d5809ac9592ca66f682b2cc496606ff6eb4de79d46b6') + +if [ -n "${_snapshot:-}" ]; then + _basedir="gcc-${_snapshot}" else - _basedir=gcc-${pkgver} + _basedir="gcc-${pkgver}" fi -build() { - cd ${srcdir}/${_basedir} +prepare() { + set -u + cd "${_basedir}" + + # link isl/cloog for in-tree builds + #ln -s "../isl-${_islver}" 'isl' + #ln -s "../cloog-${_cloogver}" 'cloog' - #"Add" ppl-0.11 compatibility - sed -i "/ppl_minor_version=/s#10#11#" configure + # "Add" ppl-0.11 compatibility + sed -e '/ppl_minor_version=/s#10#11#' -i 'configure' # Do not install libiberty - sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in + sed -e 's/install_to_$(INSTALL_DEST) //' -i 'libiberty/Makefile.in' # Do not run fixincludes - sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in + sed -e 's@\./fixinc\.sh@-c true@' -i 'gcc/Makefile.in' + + # Update gcc.texi to gcc49 version, needed as of texinfo>=6.3 and possibly texinfo=6.2 + # diff -pNau5 gcc/doc/gcc.texi{,.49} > 'gcc.texi.49.patch' + patch -Nup0 -i "${srcdir}/gcc.texi.49.patch" + + #if [ "${CARCH}" = "x86_64" ]; then + # : patch -Np1 -i "${srcdir}/gcc_pure64.patch" + #fi + patch -Np0 -i "${srcdir}/gcc-hash-style-both.patch" + + # fix build with glibc 2.26 + sed -e 's:\bstruct ucontext\b:ucontext_t:g' -i $(grep --include '*.[ch]' --include '*.cc' -lre '\bstruct ucontext\b') + sed -e 's:\bstruct sigaltstack\b:stack_t:g' -i $(grep --include '*.[ch]' --include '*.cc' -lre '\bstruct sigaltstack\b') + + echo "${pkgver}" > 'gcc/BASE-VER' + + rm -rf 'gcc-build' + mkdir 'gcc-build' + + set +u +} - if [ "${CARCH}" = "x86_64" ]; then - patch -Np1 -i ${srcdir}/gcc_pure64.patch +build() { + set -u + if [ ! -s "${_basedir}/gcc-build/Makefile" ]; then + cd "${_basedir}" + + cd 'gcc-build' + # The following options are one per line, mostly sorted so they are easy to diff compare to other gcc packages. + local _conf=( + --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-cloog + #--with-cloog-include='/usr/include/cloog-ppl' + --with-plugin-ld='ld.gold' + #--with-ppl # for cloog, requires ppl 0.11 to 0.99 + --with-system-zlib + --prefix='/usr' + #CXX='g++-4.9' CC='gcc-4.9' + ) + ../configure "${_conf[@]}" + + sed -e 's/^STAGE1_CXXFLAGS.*$/& -std=gnu++11/' -i 'Makefile' fi - patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch - - # Doesn't like FORTIFY_SOURCE - CPPFLAGS=${CPPFLAGS//-D_FORTIFY_SOURCE=?/} - export CPPFLAGS - - # Doesn't like -fstack-protector-strong - CFLAGS=${CFLAGS//-fstack-protector-strong/-fstack-protector} - export CFLAGS - CXXFLAGS=${CXXFLAGS//-fstack-protector-strong/-fstack-protector} - export CXXFLAGS - - echo ${pkgver} > gcc/BASE-VER - - cd ${srcdir} - mkdir -p gcc-build && cd gcc-build - ${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=-${_ver} --enable-version-specific-runtime-libs \ - --enable-checking=release - - # --with-cloog --with-cloog-include=/usr/include/cloog-ppl \ - make + + cd "${srcdir}/${_basedir}/gcc-build" + LD_PRELOAD='/usr/lib/libstdc++.so' \ + nice make -s + + set +u } -_check() { - cd ${srcdir}/gcc-build +_fn_check() { + set -u + cd "${_basedir}/gcc-build" # increase stack size to prevent test failures # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827 - # do not abort on error as some are "expected" - ulimit -s 32768 - make -k -j3 check || true - ${_basedir}/contrib/test_summary -} + # do not abort on error as some are "expected" + make -j1 -k check || : + "${srcdir}/${_basedir}/contrib/test_summary" + set +u +} package() { - cd ${srcdir}/gcc-build + set -u + cd "${_basedir}/gcc-build" - make -j1 DESTDIR=${pkgdir} install + LD_PRELOAD='/usr/lib/libstdc++.so' \ + 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/share/" # Move potentially conflicting stuff to version specific subdirectory - $(ls "$pkgdir"/usr/lib/gcc/$CHOST/lib* 2&> /dev/null) && mv "$pkgdir"/usr/lib/gcc/$CHOST/lib* "$pkgdir/usr/lib/gcc/$CHOST/$pkgver/" + $(ls "${pkgdir}"/usr/lib/gcc/${CHOST}/lib* 2&> /dev/null) && mv "${pkgdir}/usr/lib/gcc/${CHOST}"/lib* "${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/" - install -Dm644 ${srcdir}/gcc-${pkgver}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/$pkgname/RUNTIME.LIBRARY.EXCEPTION + # Install Runtime Library Exception + install -Dpm644 '../COPYING.RUNTIME' \ + "${pkgdir}/usr/share/licenses/${pkgname}/RUNTIME.LIBRARY.EXCEPTION" || : + set +u } - +set +u |