summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastiaan Lokhorst2018-08-09 11:22:58 +0200
committerSebastiaan Lokhorst2018-08-09 11:22:58 +0200
commit60127d671086fc9fa6220a09fea4c8d11df3068f (patch)
tree43db15044a5799aad58e383e27ee6c863f0c0b3d
parent3f6798c1e9767e6d14c425fa9f6c3f68fbc52f89 (diff)
downloadaur-60127d671086fc9fa6220a09fea4c8d11df3068f.tar.gz
Fix build with glibc 2.28
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD94
-rw-r--r--glibc2.28-ustat.patch31
3 files changed, 48 insertions, 98 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3a68f257d71d..4028a079e03e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = gcc6
pkgdesc = The GNU Compiler Collection (6.x.x)
pkgver = 6.4.1
- pkgrel = 7
+ pkgrel = 8
url = https://gcc.gnu.org/gcc-6/
arch = x86_64
license = GPL
@@ -14,23 +14,23 @@ pkgbase = gcc6
makedepends = libmpc
makedepends = doxygen
makedepends = subversion
- makedepends = java-environment-common
makedepends = zip
- makedepends = jdk8-openjdk
makedepends = gtk2
makedepends = libart-lgpl
makedepends = libxtst
options = !emptydirs
- source = gcc::svn://gcc.gnu.org/svn/gcc/branches/gcc-6-branch#revision=262598
+ source = gcc::svn://gcc.gnu.org/svn/gcc/branches/gcc-6-branch#revision=263436
source = http://isl.gforge.inria.fr/isl-0.18.tar.bz2
source = http://www.bastoul.net/cloog/pages/download/cloog-0.18.4.tar.gz
+ source = glibc2.28-ustat.patch
sha512sums = SKIP
sha512sums = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
sha512sums = d35d67b08ffe13c1a010b65bfe4dd02b0ae013d5b489e330dc950bd3514defca8f734bd37781856dcedf0491ff6122c34eecb4b0fe32a22d7e6bdadea98c8c23
+ sha512sums = db5d70f6f556c8b17bba89f29487136ce948f82afd064c1715fa1228cfa07e17724f65d3325312d833d2c9bfe37faa85721fa839d4f53c6b6bf1bc3c3e21dafb
pkgname = gcc6
pkgdesc = The GNU Compiler Collection - C and C++ frontends
- depends = gcc6-libs=6.4.1-7
+ depends = gcc6-libs=6.4.1-8
depends = binutils>=2.28
depends = libmpc
options = staticlibs
@@ -41,14 +41,3 @@ pkgname = gcc6-libs
options = !emptydirs
options = !strip
-pkgname = gcc6-fortran
- pkgdesc = Fortran front-end for GCC
- depends = gcc6=6.4.1-7
- options = !emptydirs
-
-pkgname = gcc6-gcj
- pkgdesc = Java front-end for GCC
- depends = gcc6=6.4.1-7
- replaces = gcc-gcj
- options = !emptydirs
-
diff --git a/PKGBUILD b/PKGBUILD
index fafc3eb8b4a6..c7b73defd231 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,32 +7,37 @@
# Contributor: Allan McRae <allan@archlinux.org>
pkgbase=gcc6
-pkgname=('gcc6' 'gcc6-libs' 'gcc6-fortran' 'gcc6-gcj')
+pkgname=('gcc6' 'gcc6-libs')
pkgver=6.4.1
_ver=6
-_svnrev=262598
+_svnrev=263436
_islver=0.18
_cloogver=0.18.4
-pkgrel=7
+pkgrel=8
pkgdesc="The GNU Compiler Collection (6.x.x)"
arch=(x86_64)
license=(GPL LGPL FDL custom)
url="https://gcc.gnu.org/gcc-6/"
-makedepends=(binutils libmpc doxygen subversion java-environment-common zip jdk8-openjdk gtk2 libart-lgpl libxtst)
+makedepends=(binutils libmpc doxygen subversion zip gtk2 libart-lgpl libxtst)
checkdepends=('dejagnu' 'inetutils')
options=(!emptydirs)
source=(gcc::svn://gcc.gnu.org/svn/gcc/branches/gcc-${_ver}-branch#revision=$_svnrev
http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
- http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz)
+ http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz
+ glibc2.28-ustat.patch)
sha512sums=('SKIP'
'85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94'
- 'd35d67b08ffe13c1a010b65bfe4dd02b0ae013d5b489e330dc950bd3514defca8f734bd37781856dcedf0491ff6122c34eecb4b0fe32a22d7e6bdadea98c8c23')
+ 'd35d67b08ffe13c1a010b65bfe4dd02b0ae013d5b489e330dc950bd3514defca8f734bd37781856dcedf0491ff6122c34eecb4b0fe32a22d7e6bdadea98c8c23'
+ 'db5d70f6f556c8b17bba89f29487136ce948f82afd064c1715fa1228cfa07e17724f65d3325312d833d2c9bfe37faa85721fa839d4f53c6b6bf1bc3c3e21dafb')
_libdir="/usr/lib/gcc/$CHOST/$pkgver"
prepare() {
cd gcc
+ # Fix build with glibc 2.28, which removes <sys/ustat.h>
+ patch -p0 -i "$srcdir/glibc2.28-ustat.patch"
+
# Link isl/cloog for in-tree builds
ln -sf ../isl-${_islver} isl
ln -sf ../cloog-${_cloogver} cloog
@@ -46,9 +51,6 @@ prepare() {
# hack! - some configure tests for header files using "$CPP $CPPFLAGS"
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
- # Arch uses python version 3 as default python (for gcc6-gcj).
- sed -i '1s+python+python2+' libjava/contrib/aot-compile.in
-
mkdir -p "${srcdir}/gcc-build"
}
@@ -66,7 +68,7 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-bugurl=https://bugs.archlinux.org/ \
- --enable-languages=c,c++,fortran,lto,java \
+ --enable-languages=c,c++,lto \
--enable-shared \
--enable-threads=posix \
--enable-libmpx \
@@ -86,8 +88,6 @@ build() {
--disable-multilib \
--disable-werror \
--enable-checking=release \
- --enable-java-awt=gtk \
- --with-java-home="$JAVA_HOME" \
--enable-libgcj-multifile \
--enable-default-pie \
--enable-default-ssp \
@@ -112,8 +112,6 @@ package_gcc6-libs() {
for lib in libatomic \
libcilkrts \
- libjava \
- libgfortran \
libgomp \
libitm \
libquadmath \
@@ -195,8 +193,6 @@ package_gcc6() {
#install -m644 ${srcdir}/gcc-${_snapshot}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/${_libdir}/
make -C gcc DESTDIR=${pkgdir} install-man install-info
- rm ${pkgdir}/usr/share/man/man1/gfortran-${_ver}.1
- rm ${pkgdir}/usr/share/info/gfortran.info
make -C libcpp DESTDIR=${pkgdir} install
make -C gcc DESTDIR=${pkgdir} install-po
@@ -248,69 +244,3 @@ EOF
install -Dm755 gcc/cc1 ${pkgdir}/${_libdir}/cc1
install -Dm755 gcc/cc1plus ${pkgdir}/${_libdir}/cc1plus
}
-
-package_gcc6-fortran() {
- pkgdesc="Fortran front-end for GCC"
- depends=("gcc6=$pkgver-$pkgrel")
- options=('!emptydirs')
-
- cd gcc-build
- make -C $CHOST/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
- install-{toolexeclibDATA,nodist_fincludeHEADERS}
- make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
- make -C gcc DESTDIR=$pkgdir fortran.install-common
- install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951
-
- ln -s gfortran-6 ${pkgdir}/usr/bin/f95-${_ver}
-
- # Install Runtime Library Exception
- install -d ${pkgdir}/usr/share/licenses/$pkgname
- ln -s ../gcc-libs/RUNTIME.LIBRARY.EXCEPTION ${pkgdir}/usr/share/licenses/$pkgname/
-}
-
-package_gcc6-gcj() {
- pkgdesc="Java front-end for GCC"
- depends=("gcc6=$pkgver-$pkgrel")
- replaces=('gcc-gcj')
- options=('!emptydirs')
-
- # Install libjava.
- cd gcc-build
- make -j1 DESTDIR=${pkgdir} install-target-libjava
-
- # Install java-common.
- cd gcc
- make -j1 DESTDIR=${pkgdir} java.install-common java.install-man
-
- install -m755 jc1 ${pkgdir}/${_libdir}/
- install -m755 jvgenmain ${pkgdir}/${_libdir}/
-
- # Remove conflicting files.
- rm -f ${pkgdir}/usr/lib/gcc/${CHOST}/lib/libgcc_s.so*
- rm -f ${pkgdir}/${_libdir}/libgcc_s.so*
- rm ${pkgdir}/${_libdir}/libg{cj,ij}*.so*
-
- # Rename two files to not conflict to classpath
- mv ${pkgdir}/usr/share/info/cp-tools.info ${pkgdir}/usr/share/info/cp-tools-gcj.info
-
- linkdir=`basename $pkgdir/usr/lib/gcj-${pkgver}*`
- ln -sf $linkdir ${pkgdir}/usr/lib/gcj-${pkgver%.?}
- ln -sf libgcj-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-${pkgver%.?}.jar
- ln -sf libgcj-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj.jar
- ln -sf libgcj-tools-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-tools-${pkgver%.?}.jar
- ln -sf libgcj-tools-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-tools.jar
-
- rm ${pkgdir}/${_libdir}/libgcc_eh.a
- rm ${pkgdir}/${_libdir}/crtbegin.o
- rm ${pkgdir}/${_libdir}/crtbeginS.o
- rm ${pkgdir}/${_libdir}/crtbeginT.o
- rm ${pkgdir}/${_libdir}/crtend.o
- rm ${pkgdir}/${_libdir}/crtendS.o
- rm ${pkgdir}/${_libdir}/crtfastmath.o
- rm ${pkgdir}/${_libdir}/crtprec32.o
- rm ${pkgdir}/${_libdir}/crtprec64.o
- rm ${pkgdir}/${_libdir}/crtprec80.o
- rm ${pkgdir}/${_libdir}/include/unwind.h
- rm ${pkgdir}/${_libdir}/libgcc.a
- rm ${pkgdir}/${_libdir}/libgcov.a
-}
diff --git a/glibc2.28-ustat.patch b/glibc2.28-ustat.patch
new file mode 100644
index 000000000000..7c56292d130f
--- /dev/null
+++ b/glibc2.28-ustat.patch
@@ -0,0 +1,31 @@
+--- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018/04/25 07:39:32 259630
++++ libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018/05/24 20:07:25 260687
+@@ -157,7 +157,6 @@
+ # include <sys/procfs.h>
+ #endif
+ #include <sys/user.h>
+-#include <sys/ustat.h>
+ #include <linux/cyclades.h>
+ #include <linux/if_eql.h>
+ #include <linux/if_plip.h>
+@@ -250,7 +249,19 @@
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+- unsigned struct_ustat_sz = sizeof(struct ustat);
++ // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
++ // has been removed from glibc 2.28.
++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
++ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
++ || defined(__x86_64__)
++#define SIZEOF_STRUCT_USTAT 32
++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
++ || defined(__powerpc__) || defined(__s390__)
++#define SIZEOF_STRUCT_USTAT 20
++#else
++#error Unknown size of struct ustat
++#endif
++ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
+ unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
+ unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
+ #endif // SANITIZER_LINUX && !SANITIZER_ANDROID