summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD138
1 files changed, 73 insertions, 65 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d8fe36f7bfb0..eade4e0277f8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -26,26 +26,39 @@ makedepends+=('lib32-glibc>=2.20' 'texinfo')
checkdepends=('dejagnu' 'inetutils')
provides=("gcc${_pkgver//\./}") # no version as it is completely contained in the name
conflicts=("gcc${_pkgver//\./}")
-options=('!emptydirs')
+options=('!emptydirs' '!strip' '!buildflags')
source=(
"ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2"
#ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
- "http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2"
- "http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz"
+ #"http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2"
+ "ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-${_islver}.tar.bz2"
+ #"http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz"
+ "ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-${_cloogver}.tar.gz"
'gcc-4.9-fix-build-with-gcc-6.patch'
'0000-gcc-4.9.ucontext.patch'
'0001-gcc-4.9-SIGSEGV.patch'
'0002-gcc-4.9-__res_state.patch'
+ '0003-gcc-4.9-ustate.patch'
+ '0004-glibc-2.31-libsanitizer.patch'
)
+md5sums=('87c24a4090c1577ba817ec6882602491'
+ 'e039bfcfb6c2ab039b8ee69bf883e824'
+ 'e34fca0540d840e5d0f6427e98c92252'
+ '91f27a8002df38cf2ca971ca80feb9d7'
+ '4a0dc704f1d92ceb4dd8608811241cec'
+ 'e787a03f0c38434490515a5823eca0b8'
+ 'c64d1e20274ff4fbfacdd11bef2e1273'
+ 'b27134678242f358c9b81cd73a1bcba1'
+ '931ee06584a47f3bdb5ea57fa2d5f76f')
sha256sums=('6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092'
'f4b3dbee9712850006e44f0db2103441ab3d13b406f77996d1df19ee89d11fb4'
'02500a4edd14875f94fe84cbeda4290425cb0c1c2474c6f75d75a303d64b4196'
'd775a053fad367f5490111038fde7c875b4e842919d2d197f95b915e1ae562a9'
'44ea987c9ee1ab3234f20eca51f8d6c68910b579e63ec58ff7a0dde38093f6ba'
'eb59578cbf32da94d7a11fabf83950c580f0f6fb58f893426d6a258b7e44351e'
- '9ce8a94aad61a26839687734b48f0628e610663cd0d5ad9edfc6e571cf294bac')
-
-PKGEXT='.pkg.tar.gz'
+ '9ce8a94aad61a26839687734b48f0628e610663cd0d5ad9edfc6e571cf294bac'
+ '11f2adf34c32ec2d121a14cd10751d79c77aebe7e4592d4cfaa7190953bdf782'
+ '526568532a879f2755fb7e834c1c55caae53252713562e21a51c861463cb5931')
if [ -n "${_snapshot:-}" ]; then
_basedir="gcc-${_snapshot}"
@@ -90,10 +103,18 @@ prepare() {
'x86_64') sed -e '/m64=/ s/lib64/lib/' -i 'gcc/config/i386/t-linux64' ;;
esac
- echo "${pkgver}" > 'gcc/BASE-VER'
+ patch -Nbup0 -i "${srcdir}/0003-gcc-4.9-ustate.patch"
+ patch -p1 -i "${srcdir}/0004-glibc-2.31-libsanitizer.patch"
- # hack! - some configure tests for header files using "$CPP $CPPFLAGS"
- sed -e '/^ac_cpp=/ s/\$CPPFLAGS/\$CPPFLAGS -O2/' -i {libiberty,gcc}/configure
+ if ! grep -qFxe "${pkgver%%_*}" 'gcc/BASE-VER'; then
+ echo "Version has changed from ${pkgver%%_*} to"
+ cat 'gcc/BASE-VER'
+ set +u
+ false
+ fi
+
+ # remove -V and -qversion as their aren't supported in gcc7
+ #sed -e 's/ -V -qversion/ /g' -i $(grep --include='configure' -lrFe '-V -qversion')
rm -rf 'gcc-build'
mkdir 'gcc-build'
@@ -106,73 +127,59 @@ build() {
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]/}"
-
# The following options are one per line, mostly sorted so they are easy to diff compare to other gcc packages.
- ../configure \
- --build="${CHOST}" \
- --disable-libssp \
- --disable-libstdcxx-pch \
- --disable-libunwind-exceptions \
- --enable-multilib \
- --disable-werror \
- --enable-__cxa_atexit \
- --enable-checking='release' \
- --enable-clocale='gnu' \
- --enable-cloog-backend='isl' \
- --enable-gnu-unique-object \
- --enable-install-libiberty \
- --enable-languages='c,c++,fortran,go,lto,objc,obj-c++' \
- --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-linker-hash-style='gnu' \
- --with-system-zlib \
+ local _conf=(
+ --build="${CHOST}"
+ --disable-libssp
+ --disable-libstdcxx-pch
+ --disable-libunwind-exceptions
+ --enable-multilib
+ --disable-werror
+ --enable-__cxa_atexit
+ --enable-checking='release'
+ --enable-clocale='gnu'
+ --enable-cloog-backend='isl'
+ --enable-gnu-unique-object
+ --enable-install-libiberty
+ --enable-languages='c,c++,fortran,go,lto,objc,obj-c++'
+ --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-linker-hash-style='gnu'
+ --with-system-zlib
--prefix='/usr'
-# CXX='g++-6.3' CC='gcc-6.3'
-
+ # CXX='g++-6.3' CC='gcc-6.3'
# gcc-5.0 changes
# --with-default-libstdcxx-abi=c++98 - before gcc-5.0 c++ rebuild
# --enable-gnu-indirect-function
-# --with-isl - cloog no longer needed
+# --with-isl - cloog no longer needed
+ )
+ ../configure "${_conf[@]}"
+
+ sed -e 's/^STAGE1_CXXFLAGS.*$/& -std=gnu++11/' -i 'Makefile'
fi
- local _nproc="$(nproc)"; _nproc=$((_nproc>8?8:_nproc))
+ # The GCC 4.9 library is otherwise found incorrectly when invoking host tools
LD_PRELOAD='/usr/lib/libstdc++.so' \
- nice make -j "${_nproc}"
+ nice make -s
+
+ set +u; msg 'Compile complete'; set -u
# make documentation
make -s -j1 -C "${CHOST}/libstdc++-v3/doc" 'doc-man-doxygen'
set +u
}
-_fn_check() {
+_check_disabled() {
set -u
cd "${_basedir}/gcc-build"
@@ -190,18 +197,19 @@ package() {
set -u
cd "${_basedir}/gcc-build"
+ # The GCC 4.9 library is otherwise found incorrectly zhen invoking host tools
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,include}/
- find "${pkgdir}/" -name '*iberty*' -exec rm '{}' '+'
+ find "${pkgdir}/" -name '*iberty*' -delete
# Move potentially conflicting stuff to version specific subdirectory
case "${CARCH}" in
- 'x86_64') mv "${pkgdir}/usr/lib/gcc/${CHOST}"/lib*/ "${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/" ;;
+ 'x86_64') mv "${pkgdir}/usr/lib/gcc/${CHOST}"/lib*/ "${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver%%_*}/" ;;
esac
- #mv "${pkgdir}/usr/lib"/lib* "${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/"
+ #mv "${pkgdir}/usr/lib"/lib* "${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver%%_*}/"
# Install Runtime Library Exception
install -Dpm644 '../COPYING.RUNTIME' \