diff options
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | PKGBUILD | 110 |
2 files changed, 66 insertions, 56 deletions
@@ -1,5 +1,3 @@ -# Generated by mksrcinfo v8 -# Sun Jul 30 17:26:06 UTC 2017 pkgbase = gcc44 pkgdesc = The GNU Compiler Collection (4.4.x) pkgver = 4.4.7 @@ -11,7 +9,6 @@ pkgbase = gcc44 license = LGPL license = custom makedepends = setconf - makedepends = gcc49 depends = binutils depends = mpfr depends = cloog @@ -20,14 +17,21 @@ pkgbase = gcc44 conflicts = gcc44-multilib options = staticlibs options = !libtool + options = !buildflags source = http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-4.4.7/gcc-4.4.7.tar.bz2 source = gcc-hash-style-both.patch source = gcc_pure64.patch source = siginfo_t_fix.patch + source = 0000-gcc-c11-toplev.diff::https://www.rockbox.org/gcc/gcc-c11-toplev.diff + md5sums = 295709feb4441b04e87dea3f1bab4281 + md5sums = 6fd395bacbd7b6e47c7b74854b478363 + md5sums = 4030ee1c08dd1e843c0225b772360e76 + md5sums = eba17a209cf9550b66a4af0527956565 + md5sums = ea3bba5ee50ba043b992eaa22161e141 sha256sums = 5ff75116b8f763fa0fb5621af80fc6fb3ea0f1b1a57520874982f03f26cd607f sha256sums = a600550d3d2b2fb8ee6a547c68c3a08a2af7579290b340c35ee5598c9bb305a5 sha256sums = 2d369cf93c6e15c3559c3560bce581e0ae5f1f34dc86bca013ac67ef1c1a9ff9 sha256sums = 4df866dcfd528835393d2b6897651158faf6d84852158fbf2e4ffc113ec7d201 + sha256sums = aa81059bc71f335c962db6bbb8c5857a5cc76e2eb33b82ce1ccd6cb536b2bc31 pkgname = gcc44 - @@ -19,22 +19,34 @@ url='http://gcc.gnu.org/' license=('GPL' 'LGPL' 'custom') depends=('binutils' 'mpfr' 'cloog' 'zlib' 'elfutils') makedepends=('setconf') -makedepends+=('gcc49') +#makedepends+=('gcc49') conflicts=("gcc${_pkgver//\./}-multilib") -options=('staticlibs' '!libtool') +options=('staticlibs' '!libtool' '!buildflags') source=( "http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2" 'gcc-hash-style-both.patch' 'gcc_pure64.patch' 'siginfo_t_fix.patch' + '0000-gcc-c11-toplev.diff::https://www.rockbox.org/gcc/gcc-c11-toplev.diff' ) +md5sums=('295709feb4441b04e87dea3f1bab4281' + '6fd395bacbd7b6e47c7b74854b478363' + '4030ee1c08dd1e843c0225b772360e76' + 'eba17a209cf9550b66a4af0527956565' + 'ea3bba5ee50ba043b992eaa22161e141') sha256sums=('5ff75116b8f763fa0fb5621af80fc6fb3ea0f1b1a57520874982f03f26cd607f' 'a600550d3d2b2fb8ee6a547c68c3a08a2af7579290b340c35ee5598c9bb305a5' '2d369cf93c6e15c3559c3560bce581e0ae5f1f34dc86bca013ac67ef1c1a9ff9' - '4df866dcfd528835393d2b6897651158faf6d84852158fbf2e4ffc113ec7d201') -PKGEXT='.pkg.tar.gz' + '4df866dcfd528835393d2b6897651158faf6d84852158fbf2e4ffc113ec7d201' + 'aa81059bc71f335c962db6bbb8c5857a5cc76e2eb33b82ce1ccd6cb536b2bc31') +if [ -n "${_snapshot:-}" ]; then + _basedir="gcc-${_snapshot}" +else _basedir="gcc-${pkgver}" +fi + +#_libdir="usr/lib/gcc/${CHOST}/${pkgver}" prepare() { set -u @@ -50,10 +62,16 @@ prepare() { patch -Np1 -i "${srcdir}/siginfo_t_fix.patch" + patch -Np1 -i "${srcdir}/0000-gcc-c11-toplev.diff" + case "${CARCH}" in 'x86_64') patch -Np1 -i '../gcc_pure64.patch';; esac + # 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' setconf 'gcc/configure' 'BUILD_INFO' '' @@ -66,57 +84,44 @@ prepare() { build() { set -u - cd "${_basedir}/gcc-build" - - if [ ! -s 'Makefile' ]; then - # Doesn't like FORTIFY_SOURCE - CPPFLAGS="${CPPFLAGS//-D_FORTIFY_SOURCE=?/}" - - # Doesn't like -fstack-protector-strong - CFLAGS="${CFLAGS//-fstack-protector-strong/-fstack-protector}" - 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/}" - - # Flags from new compilers that old compilers don't recognize - CFLAGS="${CFLAGS/-fno-plt/}" - CXXFLAGS="${CXXFLAGS/-fno-plt/}" - - CFLAGS="${CFLAGS/-Wformat-overflow=[0-9]/}" - CXXFLAGS="${CXXFLAGS/-Wformat-overflow=[0-9]/}" + 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. - ../configure \ - --build="${CHOST}" \ - --enable-libgomp \ - --disable-libmudflap \ - --disable-libssp \ - --disable-libstdcxx-pch \ - --disable-multilib \ - --enable-__cxa_atexit \ - --enable-clocale='gnu' \ - --enable-languages='c,c++,fortran,objc,obj-c++' \ - --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-cloog \ - --with-ppl \ - --with-system-zlib \ - --with-tune='generic' \ - --prefix='/usr' \ - CXX='g++-4.9' CC='gcc-4.9' + local _conf=( + --build="${CHOST}" + --disable-libmudflap + --disable-libssp + --disable-libstdcxx-pch + --disable-multilib + --enable-__cxa_atexit + --enable-clocale='gnu' + --enable-languages='c,c++,fortran,objc,obj-c++' + --enable-libgomp + --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-cloog + --with-ppl + --with-system-zlib + --with-tune='generic' + --prefix='/usr' + #CXX='g++-4.9' CC='gcc-4.9' + ) + ../configure "${_conf[@]}" + + sed -e 's/^STAGE1_CXXFLAGS.*$/& -std=gnu++11/' -i 'Makefile' fi - local _nproc="$(nproc)"; _nproc=$((_nproc>8?8:_nproc)) - nice make -s -j "${_nproc}" + #LD_PRELOAD='/usr/lib/libstdc++.so' \\ + nice make -s + set +u } @@ -124,7 +129,8 @@ package() { set -u cd "${_basedir}/gcc-build" - make -s -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/man/man7" |