From a0e3cb9a427b648544e0b6a144e2296e609522db Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Sat, 26 Nov 2016 19:02:36 +0100 Subject: [PATCH] gcc: update to 6.2.1. --- common/shlibs | 13 +- ...af6dbf178664c7b31174e08f2366be40e13b.patch | 5414 +++++++++++++++++ srcpkgs/gcc/files/gcc-4.9.2-musl.diff | 730 --- srcpkgs/gcc/files/gcc-6.2.1-musl.diff | 556 ++ .../gcc/patches/fix-cxxflags-passing.patch | 10 + srcpkgs/gcc/patches/fix-musl-execinfo.patch | 33 + srcpkgs/gcc/patches/gcc-spec-env-r1.patch | 87 - .../patches/libcpp-source_date_epoch.patch | 2 +- .../gcc/patches/musl-posix_memalign-c++.patch | 30 - srcpkgs/gcc/template | 146 +- srcpkgs/{gcc-c++ => libmpx} | 0 srcpkgs/libmpx-devel | 1 + xbps-src | 6 +- 13 files changed, 6120 insertions(+), 908 deletions(-) create mode 100644 srcpkgs/gcc/c18caf6dbf178664c7b31174e08f2366be40e13b.patch delete mode 100644 srcpkgs/gcc/files/gcc-4.9.2-musl.diff create mode 100644 srcpkgs/gcc/files/gcc-6.2.1-musl.diff create mode 100644 srcpkgs/gcc/patches/fix-cxxflags-passing.patch create mode 100644 srcpkgs/gcc/patches/fix-musl-execinfo.patch delete mode 100644 srcpkgs/gcc/patches/gcc-spec-env-r1.patch delete mode 100644 srcpkgs/gcc/patches/musl-posix_memalign-c++.patch rename srcpkgs/{gcc-c++ => libmpx} (100%) create mode 120000 srcpkgs/libmpx-devel diff --git a/common/shlibs b/common/shlibs index e43ee268595..e1f3a08123a 100644 --- a/common/shlibs +++ b/common/shlibs @@ -50,13 +50,18 @@ libmvec.so.1 glibc-2.22_1 libz.so.1 zlib-1.2.3_1 libbz2.so.1 bzip2-1.0.5_1 libarchive.so.13 libarchive-3.1.2_1 +libcc1.so.0 gcc-6.2.1_1 +libcc1plugin.so.0 gcc-6.2.1_1 libitm.so.1 libitm-4.7.3_1 libgcj_bc.so.1 libgcj-4.7.3_1 liblto_plugin.so.0 gcc-4.7.3_1 libgcc_s.so.1 libgcc-4.4.0_1 -libgcj.so.15 libgcj-4.9.0_1 -libgcj-tools.so.15 libgcj-4.9.0_1 -libgij.so.15 libgcj-4.9.0_1 +libgcj.so.17 libgcj-6.2.0_1 +libgcj-tools.so.17 libgcj-6.2.1_1 +libgij.so.17 libgcj-6.2.1_1 +libgo.so.9 libgo-6.2.1_1 +libmpx.so.2 libmpx-6.2.1_1 +libmpxwrappers.so.2 libmpx-6.2.1_1 libperl.so.5.24 perl-5.24.0_1 libmp.so.3 gmp-5.0.1_1 libgmp.so.10 gmp-5.0.1_1 @@ -1652,7 +1657,7 @@ libextractor_common.so.1 libextractor-1.1_1 libpano13.so.3 libpano13-2.9.19_1 libubsan.so.0 libsanitizer-4.9.0_1 libtsan.so.0 libsanitizer-4.9.0_1 -libasan.so.1 libsanitizer-4.9.0_1 +libasan.so.3 libsanitizer-6.2.0_1 liblsan.so.0 libsanitizer-4.9.0_1 libcilkrts.so.5 libcilkrts-4.9.0_1 libvtv.so.0 libvtv-4.9.0_1 diff --git a/srcpkgs/gcc/c18caf6dbf178664c7b31174e08f2366be40e13b.patch b/srcpkgs/gcc/c18caf6dbf178664c7b31174e08f2366be40e13b.patch new file mode 100644 index 00000000000..d141f465fff --- /dev/null +++ b/srcpkgs/gcc/c18caf6dbf178664c7b31174e08f2366be40e13b.patch @@ -0,0 +1,5414 @@ +From c18caf6dbf178664c7b31174e08f2366be40e13b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= +Date: Fri, 23 Sep 2016 17:16:17 +0200 +Subject: [PATCH] gcc: update to 6.2.1 + +--- + common/shlibs | 14 +- + srcpkgs/base-chroot-musl/template | 2 +- + srcpkgs/base-chroot/template | 2 +- + srcpkgs/base-devel/template | 2 +- + srcpkgs/chromium/template | 3 +- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-aarch64-linux-gnu/template | 142 ++-- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-aarch64-linux-musl/template | 89 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-arm-linux-gnueabi/template | 147 +++-- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-arm-linux-gnueabihf/template | 149 +++-- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-arm-linux-musleabi/template | 95 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-arm-linux-musleabihf/template | 94 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-armv7l-linux-gnueabihf/template | 150 +++-- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-armv7l-linux-musleabihf/template | 95 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-i686-linux-musl/template | 88 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-i686-pc-linux-gnu/template | 132 ++-- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-mips-linux-musl/template | 91 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-mipsel-linux-musl/template | 91 ++- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-mipsel-linux-muslhf/template | 91 ++- + srcpkgs/cross-vpkg-dummy/template | 4 +- + .../files/fix-cxxflags-passing.patch | 1 + + .../files/gcc-4.9.2-musl.diff | 1 - + .../files/gcc-6.2.1-musl.diff | 1 + + .../files/gcc-spec-env-r1.patch | 1 - + srcpkgs/cross-x86_64-linux-musl/template | 91 ++- + srcpkgs/efivar/template | 3 +- + srcpkgs/gcc-c++ | 1 - + .../gcc-multilib/patches/fix-libiberty_pic.patch | 8 +- + srcpkgs/gcc-multilib/template | 17 +- + srcpkgs/gcc/files/gcc-4.9.2-musl.diff | 730 --------------------- + srcpkgs/gcc/files/gcc-6.2.1-musl.diff | 556 ++++++++++++++++ + srcpkgs/gcc/patches/fix-cxxflags-passing.patch | 10 + + srcpkgs/gcc/patches/fix-musl-execinfo.patch | 33 + + srcpkgs/gcc/patches/gcc-spec-env-r1.patch | 87 --- + srcpkgs/gcc/patches/libcpp-source_date_epoch.patch | 2 +- + srcpkgs/gcc/patches/musl-posix_memalign-c++.patch | 30 - + srcpkgs/gcc/template | 147 +++-- + srcpkgs/isl15-devel | 1 + + srcpkgs/isl15/template | 31 + + srcpkgs/kernel-libc-headers/template | 4 +- + srcpkgs/libmpx | 1 + + srcpkgs/libmpx-devel | 1 + + srcpkgs/rr/template | 2 +- + srcpkgs/virtualbox-ose/template | 3 +- + xbps-src | 6 +- + 86 files changed, 1850 insertions(+), 1441 deletions(-) + create mode 120000 srcpkgs/cross-aarch64-linux-gnu/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-aarch64-linux-gnu/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-aarch64-linux-musl/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-aarch64-linux-musl/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-aarch64-linux-musl/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-aarch64-linux-musl/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-arm-linux-gnueabi/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-arm-linux-gnueabi/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-arm-linux-gnueabihf/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-arm-linux-gnueabihf/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-arm-linux-musleabi/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-arm-linux-musleabi/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-arm-linux-musleabi/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-arm-linux-musleabi/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-arm-linux-musleabihf/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-arm-linux-musleabihf/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-arm-linux-musleabihf/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-arm-linux-musleabihf/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-armv7l-linux-gnueabihf/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-armv7l-linux-gnueabihf/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-armv7l-linux-musleabihf/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-i686-linux-musl/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-i686-linux-musl/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-i686-linux-musl/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-i686-linux-musl/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-i686-pc-linux-gnu/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-i686-pc-linux-gnu/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-mips-linux-musl/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-mips-linux-musl/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-mips-linux-musl/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-mips-linux-musl/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-mipsel-linux-musl/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-mipsel-linux-musl/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-mipsel-linux-musl/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-mipsel-linux-musl/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-mipsel-linux-muslhf/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-mipsel-linux-muslhf/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-mipsel-linux-muslhf/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-mipsel-linux-muslhf/files/gcc-spec-env-r1.patch + create mode 120000 srcpkgs/cross-x86_64-linux-musl/files/fix-cxxflags-passing.patch + delete mode 120000 srcpkgs/cross-x86_64-linux-musl/files/gcc-4.9.2-musl.diff + create mode 120000 srcpkgs/cross-x86_64-linux-musl/files/gcc-6.2.1-musl.diff + delete mode 120000 srcpkgs/cross-x86_64-linux-musl/files/gcc-spec-env-r1.patch + delete mode 120000 srcpkgs/gcc-c++ + delete mode 100644 srcpkgs/gcc/files/gcc-4.9.2-musl.diff + create mode 100644 srcpkgs/gcc/files/gcc-6.2.1-musl.diff + create mode 100644 srcpkgs/gcc/patches/fix-cxxflags-passing.patch + create mode 100644 srcpkgs/gcc/patches/fix-musl-execinfo.patch + delete mode 100644 srcpkgs/gcc/patches/gcc-spec-env-r1.patch + delete mode 100644 srcpkgs/gcc/patches/musl-posix_memalign-c++.patch + create mode 120000 srcpkgs/isl15-devel + create mode 100644 srcpkgs/isl15/template + create mode 120000 srcpkgs/libmpx + create mode 120000 srcpkgs/libmpx-devel + +diff --git a/common/shlibs b/common/shlibs +index e43ee26..0b559c6 100644 +--- a/common/shlibs ++++ b/common/shlibs +@@ -50,13 +50,18 @@ libmvec.so.1 glibc-2.22_1 + libz.so.1 zlib-1.2.3_1 + libbz2.so.1 bzip2-1.0.5_1 + libarchive.so.13 libarchive-3.1.2_1 ++libcc1.so.0 gcc-6.2.1_1 ++libcc1plugin.so.0 gcc-6.2.1_1 + libitm.so.1 libitm-4.7.3_1 + libgcj_bc.so.1 libgcj-4.7.3_1 + liblto_plugin.so.0 gcc-4.7.3_1 + libgcc_s.so.1 libgcc-4.4.0_1 +-libgcj.so.15 libgcj-4.9.0_1 +-libgcj-tools.so.15 libgcj-4.9.0_1 +-libgij.so.15 libgcj-4.9.0_1 ++libgcj.so.17 libgcj-6.2.0_1 ++libgcj-tools.so.17 libgcj-6.2.1_1 ++libgij.so.17 libgcj-6.2.1_1 ++libgo.so.9 libgo-6.2.1_1 ++libmpx.so.2 libmpx-6.2.1_1 ++libmpxwrappers.so.2 libmpx-6.2.1_1 + libperl.so.5.24 perl-5.24.0_1 + libmp.so.3 gmp-5.0.1_1 + libgmp.so.10 gmp-5.0.1_1 +@@ -1048,6 +1053,7 @@ libsratom-0.so.0 sratom-0.4.0_1 + libmongoose.so.0 libmongoose-3.1_1 + libpwquality.so.1 libpwquality-1.1.1_1 + libisl.so.10 isl-0.10_1 ++libisl.so.15 isl15-0.16.1_1 + libcloog-isl.so.4 cloog-0.18.1_1 + librtmp.so.0 librtmp-2.4_1 + libORBit-2.so.0 libORBit2-2.14.19_1 +@@ -1652,7 +1658,7 @@ libextractor_common.so.1 libextractor-1.1_1 + libpano13.so.3 libpano13-2.9.19_1 + libubsan.so.0 libsanitizer-4.9.0_1 + libtsan.so.0 libsanitizer-4.9.0_1 +-libasan.so.1 libsanitizer-4.9.0_1 ++libasan.so.3 libsanitizer-6.2.0_1 + liblsan.so.0 libsanitizer-4.9.0_1 + libcilkrts.so.5 libcilkrts-4.9.0_1 + libvtv.so.0 libvtv-4.9.0_1 +diff --git a/srcpkgs/base-chroot-musl/template b/srcpkgs/base-chroot-musl/template +index 3271bb6..9aaa2ff 100644 +--- a/srcpkgs/base-chroot-musl/template ++++ b/srcpkgs/base-chroot-musl/template +@@ -16,7 +16,7 @@ only_for_archs="i686-musl x86_64-musl armv6l-musl armv7l-musl aarch64-musl mips- + + depends=" + base-files musl-devel musl-legacy-compat +- gcc gcc-c++ patch chroot-bash chroot-grep coreutils findutils ++ gcc patch chroot-bash chroot-grep coreutils findutils + gettext chroot-texinfo sed chroot-gawk diffutils + make gzip file tar chroot-util-linux chroot-distcc + chroot-git ccache xbps xz which" +diff --git a/srcpkgs/base-chroot/template b/srcpkgs/base-chroot/template +index 074fd21..9c9d09e 100644 +--- a/srcpkgs/base-chroot/template ++++ b/srcpkgs/base-chroot/template +@@ -12,6 +12,6 @@ license="Public domain" + + depends=" + base-files>=0.127 kernel-libc-headers glibc-devel glibc-locales binutils gcc +- gcc-c++ patch chroot-bash chroot-grep coreutils gettext ++ patch chroot-bash chroot-grep coreutils gettext + chroot-texinfo sed chroot-gawk findutils diffutils make gzip file tar + chroot-util-linux chroot-distcc chroot-git ccache xbps xz which" +diff --git a/srcpkgs/base-devel/template b/srcpkgs/base-devel/template +index 1fcdf72..d828744 100644 +--- a/srcpkgs/base-devel/template ++++ b/srcpkgs/base-devel/template +@@ -4,7 +4,7 @@ version=20150820 + revision=2 + build_style=meta + noarch=yes +-depends="autoconf automake bc binutils bison ed flex gcc gcc-c++ gettext ++depends="autoconf automake bc binutils bison ed flex gcc gettext + groff libtool m4 make patch pkg-config texinfo unzip xz" + case "$XBPS_TARGET_MACHINE" in + *-musl) depends+=" musl";; +diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template +index 0b49bbc..0a90c97 100644 +--- a/srcpkgs/chromium/template ++++ b/srcpkgs/chromium/template +@@ -30,7 +30,8 @@ depends="libexif hwids desktop-file-utils hicolor-icon-theme" + nostrip_files="nacl_irt_x86_64.nexe nacl_irt_x86_32.nexe" + + if [ -z "$CROSS_BUILD" -a "$XBPS_MACHINE" = "x86_64" ]; then +- hostmakedepends+=" gcc-c++-multilib" ++ # Is this required? ++ hostmakedepends+=" gcc-multilib" + fi + + post_extract() { +diff --git a/srcpkgs/cross-aarch64-linux-gnu/files/fix-cxxflags-passing.patch b/srcpkgs/cross-aarch64-linux-gnu/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-aarch64-linux-gnu/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-aarch64-linux-gnu/files/gcc-spec-env-r1.patch b/srcpkgs/cross-aarch64-linux-gnu/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-aarch64-linux-gnu/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template +index fecccec..5979ee9 100644 +--- a/srcpkgs/cross-aarch64-linux-gnu/template ++++ b/srcpkgs/cross-aarch64-linux-gnu/template +@@ -1,31 +1,31 @@ + # Template build file for 'cross-aarch64-linux-gnu' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _glibc_version=2.24 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=aarch64-linux-gnu + _archflags="-march=armv8-a" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=6 ++version=0.22 ++revision=1 + short_desc="GNU Cross toolchain for the ${_triplet} LE target (binutils/gcc/glibc)" + maintainer="Christian Neukirchen " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, LGPL-2.1" + distfiles=" + ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 +- ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz + ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz +- ${KERNEL_SITE}/kernel/v3.x/linux-${_linux_version}.tar.xz" ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92" ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af" + + lib32disabled=yes + nocross=yes +@@ -61,6 +61,8 @@ _linux_headers() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -68,10 +70,15 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} \ +- --with-sysroot=${_sysroot} --disable-nls --disable-shared \ +- --disable-multilib --disable-werror --enable-gold ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --enable-gold" ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -80,25 +87,40 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --without-headers \ +- --disable-nls --disable-shared --disable-libquadmath \ +- --disable-decimal-float --disable-libgomp --disable-libmudflap \ +- --disable-libssp --disable-libitm --disable-libatomic \ +- --disable-threads --enable-languages=c \ +- --disable-sjlj-exceptions --disable-multilib \ +- --with-gnu-ld --with-gnu-as ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --without-headers" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-threads" ++ _args+=" --enable-languages=c" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --disable-multilib" ++ _args+=" --with-gnu-ld" ++ _args+=" --with-gnu-as" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -107,6 +129,8 @@ _gcc_bootstrap() { + } + + _glibc_headers() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_headers_done ] && return 0 + + cd ${wrksrc} +@@ -122,12 +146,14 @@ _glibc_headers() { + AS="${_triplet}-as" CPP="${_triplet}-cpp" \ + NM="${_triplet}-nm" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache \ +- --enable-obsolete-rpc \ +- --enable-kernel=2.6.27 ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --enable-kernel=2.6.27" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make -k install-headers cross_compiling=yes \ + install_root=${_sysroot} +@@ -136,6 +162,8 @@ _glibc_headers() { + } + + _glibc_build() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_build_done ] && return 0 + + cd ${wrksrc} +@@ -152,12 +180,16 @@ _glibc_build() { + NM="${_triplet}-nm" + export CFLAGS="-Os -pipe -Wno-error ${_archflags}" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr --libdir=/usr/lib \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache \ +- --enable-obsolete-rpc --disable-profile \ +- --enable-kernel=2.6.27 ++ _args="--prefix=/usr" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --disable-profile" ++ _args+=" --enable-kernel=2.6.27" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make ${makejobs} + make install_root=${_sysroot} install +@@ -166,6 +198,8 @@ _glibc_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -186,19 +220,35 @@ _gcc_build() { + touch .sed_subst_done + fi + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --prefix=/usr --libdir=/usr/lib \ +- --with-sysroot=${_sysroot} --enable-languages=c,c++,lto \ +- --with-gnu-as --with-gnu-ld --disable-multilib \ +- --disable-nls --disable-sjlj-exceptions \ +- --enable-threads=posix --enable-long-longx \ +- --enable-shared --enable-linker-build-id \ +- --enable-gnu-unique-object --enable-lto \ +- --disable-libquadmath --disable-libatomic \ +- --disable-libssp --disable-libmudflap \ +- --disable-libsanitizer --disable-libcilkrts \ +- --disable-libitm --disable-libvtv --disable-libstdcxx-pch \ +- --enable-libstdcxx-time --with-linker-hash-style=gnu ++ _args="--prefix=/usr" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --with-gnu-as" ++ _args+=" --with-gnu-ld" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --enable-threads=posix" ++ _args+=" --enable-long-longx" ++ _args+=" --enable-shared" ++ _args+=" --enable-linker-build-id" ++ _args+=" --enable-gnu-unique-object" ++ _args+=" --enable-lto" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-libcilkrts" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libvtv" ++ _args+=" --disable-libstdcxx-pch" ++ _args+=" --enable-libstdcxx-time" ++ _args+=" --with-linker-hash-style=gnu" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-aarch64-linux-musl/files/fix-cxxflags-passing.patch b/srcpkgs/cross-aarch64-linux-musl/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-aarch64-linux-musl/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-aarch64-linux-musl/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-aarch64-linux-musl/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-aarch64-linux-musl/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-aarch64-linux-musl/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-aarch64-linux-musl/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-aarch64-linux-musl/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-aarch64-linux-musl/files/gcc-spec-env-r1.patch b/srcpkgs/cross-aarch64-linux-musl/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-aarch64-linux-musl/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template +index 96b7746..4463a29 100644 +--- a/srcpkgs/cross-aarch64-linux-musl/template ++++ b/srcpkgs/cross-aarch64-linux-musl/template +@@ -1,30 +1,30 @@ + # Template build file for 'cross-aarch64-linux-musl' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=aarch64-linux-musl + _archflags="-march=armv8-a" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=7 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for ARM64 LE target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -56,11 +58,15 @@ _binutils_build() { + + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,25 +75,39 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic --disable-symvers libat_cv_have_ifunc=no ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -118,7 +138,7 @@ _musl_build() { + CC="${_triplet}-gcc" LD="${_triplet}-ld" AR="${_triplet}-ar" \ + AS="${_triplet}-as" RANLIB="${_triplet}-ranlib" \ + CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -127,6 +147,8 @@ _musl_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -135,13 +157,22 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --libexecdir=/usr/lib --enable-languages=c,c++,lto \ +- --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared \ +- --disable-symvers libat_cv_have_ifunc=no ++ _args="--prefix=/usr" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-arm-linux-gnueabi/files/fix-cxxflags-passing.patch b/srcpkgs/cross-arm-linux-gnueabi/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-arm-linux-gnueabi/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-gnueabi/files/gcc-spec-env-r1.patch b/srcpkgs/cross-arm-linux-gnueabi/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-arm-linux-gnueabi/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template +index af76069..a51d7ea 100644 +--- a/srcpkgs/cross-arm-linux-gnueabi/template ++++ b/srcpkgs/cross-arm-linux-gnueabi/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-arm-linux-gnueabi' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _glibc_version=2.24 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=arm-linux-gnueabi + _fpuflags="--with-arch=armv5te --without-fp --with-float=soft" +@@ -11,22 +11,22 @@ _archflags="-march=armv5te -msoft-float -mfloat-abi=soft" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=4 ++version=0.22 ++revision=1 + short_desc="GNU Cross toolchain for the ${_triplet} LE target (binutils/gcc/glibc)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, LGPL-2.1" + distfiles=" + ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 +- ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz + ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz +- ${KERNEL_SITE}/kernel/v3.x/linux-${_linux_version}.tar.xz" ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92" ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af" + + lib32disabled=yes + nocross=yes +@@ -64,17 +64,23 @@ _linux_headers() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} + msg_normal "Building cross binutils\n" + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} \ +- --with-sysroot=${_sysroot} --disable-nls --disable-shared \ +- --disable-multilib --disable-werror ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host + make ${makejobs} +@@ -84,26 +90,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --without-headers" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-threads" ++ _args+=" --enable-languages=c" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --disable-multilib" ++ _args+=" --with-gnu-ld" ++ _args+=" --with-gnu-as" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --without-headers \ +- --disable-nls --disable-shared --disable-libquadmath \ +- --disable-decimal-float --disable-libgomp --disable-libmudflap \ +- --disable-libssp --disable-libitm --disable-libatomic \ +- --disable-threads --enable-languages=c \ +- --disable-sjlj-exceptions --disable-multilib \ +- --with-gnu-ld --with-gnu-as ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -112,6 +134,8 @@ _gcc_bootstrap() { + } + + _glibc_headers() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_headers_done ] && return 0 + + cd ${wrksrc} +@@ -126,11 +150,15 @@ _glibc_headers() { + export CC="${_triplet}-gcc" LD="${_triplet}-ld" \ + AS="${_triplet}-as" CPP="${_triplet}-cpp" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --enable-obsolete-rpc \ +- --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make -k install-headers cross_compiling=yes \ + install_root=${_sysroot} +@@ -139,6 +167,8 @@ _glibc_headers() { + } + + _glibc_build() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_build_done ] && return 0 + + cd ${wrksrc} +@@ -154,11 +184,17 @@ _glibc_build() { + AS="${_triplet}-as" CPP="${_triplet}-cpp" + export CFLAGS="-Os -pipe ${_archflags}" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --disable-profile --enable-obsolete-rpc \ +- --disable-werror --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --disable-profile" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --disable-werror" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make ${makejobs} + make install_root=${_sysroot} install +@@ -167,6 +203,8 @@ _glibc_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -185,20 +223,39 @@ _gcc_build() { + touch .sed_subst_done + fi + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --prefix=/usr --libdir=/usr/lib \ +- --libexecdir=/usr/lib --with-sysroot=${_sysroot} \ +- --enable-languages=c,c++,lto \ +- --with-gnu-as --with-gnu-ld --disable-multilib \ +- --disable-werror --disable-nls --disable-sjlj-exceptions \ +- --enable-threads=posix --enable-long-longx \ +- --enable-shared --enable-linker-build-id \ +- --enable-gnu-unique-object --enable-lto \ +- --disable-libquadmath --disable-libatomic \ +- --disable-libssp --disable-libmudflap \ +- --disable-libsanitizer --disable-libcilkrts \ +- --disable-libitm --disable-libvtv --disable-libstdcxx-pch \ +- --enable-libstdcxx-time --with-linker-hash-style=gnu ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --with-gnu-as" ++ _args+=" --with-gnu-ld" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-nls" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --enable-threads=posix" ++ _args+=" --enable-long-longx" ++ _args+=" --enable-shared" ++ _args+=" --enable-linker-build-id" ++ _args+=" --enable-gnu-unique-object" ++ _args+=" --enable-lto" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-libcilkrts" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libvtv" ++ _args+=" --disable-libstdcxx-pch" ++ _args+=" --enable-libstdcxx-time" ++ _args+=" --with-linker-hash-style=gnu" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-arm-linux-gnueabihf/files/fix-cxxflags-passing.patch b/srcpkgs/cross-arm-linux-gnueabihf/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-arm-linux-gnueabihf/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-gnueabihf/files/gcc-spec-env-r1.patch b/srcpkgs/cross-arm-linux-gnueabihf/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-arm-linux-gnueabihf/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template +index 0c4b879..8e57daa 100644 +--- a/srcpkgs/cross-arm-linux-gnueabihf/template ++++ b/srcpkgs/cross-arm-linux-gnueabihf/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-arm-linux-gnueabihf' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _glibc_version=2.24 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=arm-linux-gnueabihf + _fpuflags="--with-arch=armv6 --with-fpu=vfp --with-float=hard" +@@ -11,22 +11,22 @@ _archflags="-march=armv6 -mfpu=vfp -mfloat-abi=hard" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=5 ++version=0.22 ++revision=1 + short_desc="GNU Cross toolchain for the ${_triplet} LE target (binutils/gcc/glibc)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="Public Domain" + distfiles=" + ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 +- ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz + ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz +- ${KERNEL_SITE}/kernel/v3.x/linux-${_linux_version}.tar.xz" ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92" ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af" + + lib32disabled=yes + nocross=yes +@@ -64,6 +64,8 @@ _linux_headers() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -71,10 +73,15 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} \ +- --with-sysroot=${_sysroot} --disable-nls --disable-shared \ +- --disable-multilib --disable-werror ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host + make ${makejobs} +@@ -84,26 +91,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --without-headers" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-threads" ++ _args+=" --enable-languages=c" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --disable-multilib" ++ _args+=" --with-gnu-ld" ++ _args+=" --with-gnu-as" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --without-headers \ +- --disable-nls --disable-shared --disable-libquadmath \ +- --disable-decimal-float --disable-libgomp --disable-libmudflap \ +- --disable-libssp --disable-libitm --disable-libatomic \ +- --disable-threads --enable-languages=c \ +- --disable-sjlj-exceptions --disable-multilib \ +- --with-gnu-ld --with-gnu-as ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -112,6 +135,8 @@ _gcc_bootstrap() { + } + + _glibc_headers() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_headers_done ] && return 0 + + cd ${wrksrc} +@@ -126,11 +151,15 @@ _glibc_headers() { + export CC="${_triplet}-gcc" LD="${_triplet}-ld" \ + AS="${_triplet}-as" CPP="${_triplet}-cpp" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --enable-obsolete-rpc \ +- --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make -k install-headers cross_compiling=yes \ + install_root=${_sysroot} +@@ -139,6 +168,8 @@ _glibc_headers() { + } + + _glibc_build() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_build_done ] && return 0 + + cd ${wrksrc} +@@ -154,11 +185,17 @@ _glibc_build() { + AS="${_triplet}-as" CPP="${_triplet}-cpp" + export CFLAGS="-Os -pipe ${_archflags}" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --disable-profile --enable-obsolete-rpc \ +- --disable-werror --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --disable-profile" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --disable-werror" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make ${makejobs} + make install_root=${_sysroot} install +@@ -167,6 +204,8 @@ _glibc_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -184,21 +223,39 @@ _gcc_build() { + -i ${_sysroot}/lib/libc.so ${_sysroot}/lib/libpthread.so + touch .sed_subst_done + fi +- +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --prefix=/usr --libdir=/usr/lib \ +- --libexecdir=/usr/lib --with-sysroot=${_sysroot} \ +- --enable-languages=c,c++,lto \ +- --with-gnu-as --with-gnu-ld --disable-multilib \ +- --disable-werror --disable-nls --disable-sjlj-exceptions \ +- --enable-threads=posix --enable-long-longx \ +- --enable-shared --enable-linker-build-id \ +- --enable-gnu-unique-object --enable-lto \ +- --disable-libquadmath --disable-libatomic \ +- --disable-libssp --disable-libmudflap \ +- --disable-libsanitizer --disable-libcilkrts \ +- --disable-libitm --disable-libvtv --disable-libstdcxx-pch \ +- --enable-libstdcxx-time --with-linker-hash-style=gnu ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --with-gnu-as" ++ _args+=" --with-gnu-ld" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-nls" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --enable-threads=posix" ++ _args+=" --enable-long-longx" ++ _args+=" --enable-shared" ++ _args+=" --enable-linker-build-id" ++ _args+=" --enable-gnu-unique-object" ++ _args+=" --enable-lto" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-libcilkrts" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libvtv" ++ _args+=" --disable-libstdcxx-pch" ++ _args+=" --enable-libstdcxx-time" ++ _args+=" --with-linker-hash-style=gnu" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-arm-linux-musleabi/files/fix-cxxflags-passing.patch b/srcpkgs/cross-arm-linux-musleabi/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-arm-linux-musleabi/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabi/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-arm-linux-musleabi/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-arm-linux-musleabi/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabi/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-arm-linux-musleabi/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-arm-linux-musleabi/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabi/files/gcc-spec-env-r1.patch b/srcpkgs/cross-arm-linux-musleabi/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-arm-linux-musleabi/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template +index 529d084..da60012 100644 +--- a/srcpkgs/cross-arm-linux-musleabi/template ++++ b/srcpkgs/cross-arm-linux-musleabi/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-arm-linux-musleabi' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=arm-linux-musleabi + _fpuflags="--with-arch=armv5te --without-fp --with-float=soft" +@@ -11,21 +11,21 @@ _archflags="-march=armv5te -msoft-float -mfloat-abi=soft" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=5 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for ARMv5 TE target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -57,10 +59,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,26 +77,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -120,7 +144,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -129,6 +153,8 @@ _musl_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -137,12 +163,23 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --enable-languages=c,c++,lto --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared \ +- --disable-symvers libat_cv_have_ifunc=no ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libquadmath" ++ _args+=" --enable-shared" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-arm-linux-musleabihf/files/fix-cxxflags-passing.patch b/srcpkgs/cross-arm-linux-musleabihf/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-arm-linux-musleabihf/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabihf/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-arm-linux-musleabihf/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-arm-linux-musleabihf/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabihf/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-arm-linux-musleabihf/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-arm-linux-musleabihf/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabihf/files/gcc-spec-env-r1.patch b/srcpkgs/cross-arm-linux-musleabihf/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-arm-linux-musleabihf/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template +index 8da3773..60da6af 100644 +--- a/srcpkgs/cross-arm-linux-musleabihf/template ++++ b/srcpkgs/cross-arm-linux-musleabihf/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-arm-linux-musleabihf' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=arm-linux-musleabihf + _fpuflags="--with-arch=armv6 --with-fpu=vfp --with-float=hard" +@@ -11,21 +11,21 @@ _archflags="-march=armv6 -mfpu=vfp -mfloat-abi=hard" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=5 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for ARMv6 LE Hard Float target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -57,10 +59,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,26 +77,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -120,7 +144,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -129,6 +153,7 @@ _musl_build() { + } + + _gcc_build() { ++ local _args + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -137,12 +162,23 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --enable-languages=c,c++,lto --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/files/fix-cxxflags-passing.patch b/srcpkgs/cross-armv7l-linux-gnueabihf/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-armv7l-linux-gnueabihf/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/files/gcc-spec-env-r1.patch b/srcpkgs/cross-armv7l-linux-gnueabihf/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-armv7l-linux-gnueabihf/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template +index f183be2..aee5812 100644 +--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template ++++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-armv7l-linux-gnueabihf' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _glibc_version=2.24 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=armv7l-linux-gnueabihf + _fpuflags="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard" +@@ -11,22 +11,22 @@ _archflags="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=4 ++version=0.22 ++revision=1 + short_desc="GNU Cross toolchain for the ${_triplet} LE target (binutils/gcc/glibc)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3,GPL-2,LGPL-2.1" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz + http://ftp.gnu.org/gnu/glibc/glibc-${_glibc_version}.tar.xz +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz" ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92" ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af" + + lib32disabled=yes + nocross=yes +@@ -64,6 +64,8 @@ _linux_headers() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -71,10 +73,15 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} \ +- --with-sysroot=${_sysroot} --disable-nls --disable-shared \ +- --disable-multilib --disable-werror ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host + make ${makejobs} +@@ -84,26 +91,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --without-headers" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-threads" ++ _args+=" --enable-languages=c" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --disable-multilib" ++ _args+=" --with-gnu-ld" ++ _args+=" --with-gnu-as" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --without-headers \ +- --disable-nls --disable-shared --disable-libquadmath \ +- --disable-decimal-float --disable-libgomp --disable-libmudflap \ +- --disable-libssp --disable-libitm --disable-libatomic \ +- --disable-threads --enable-languages=c \ +- --disable-sjlj-exceptions --disable-multilib \ +- --with-gnu-ld --with-gnu-as ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -112,6 +135,8 @@ _gcc_bootstrap() { + } + + _glibc_headers() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_headers_done ] && return 0 + + cd ${wrksrc} +@@ -126,11 +151,15 @@ _glibc_headers() { + export CC="${_triplet}-gcc" LD="${_triplet}-ld" \ + AS="${_triplet}-as" CPP="${_triplet}-cpp" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --enable-obsolete-rpc \ +- --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make -k install-headers cross_compiling=yes \ + install_root=${_sysroot} +@@ -139,6 +168,8 @@ _glibc_headers() { + } + + _glibc_build() { ++ local _args ++ + [ -f ${wrksrc}/.glibc_build_done ] && return 0 + + cd ${wrksrc} +@@ -154,11 +185,17 @@ _glibc_build() { + AS="${_triplet}-as" CPP="${_triplet}-cpp" + export CFLAGS="-Os -pipe ${_archflags}" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --disable-profile --enable-obsolete-rpc \ +- --disable-werror --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --host=${_triplet}" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --disable-profile" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --disable-werror" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make ${makejobs} + make install_root=${_sysroot} install +@@ -167,6 +204,8 @@ _glibc_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -185,20 +224,39 @@ _gcc_build() { + touch .sed_subst_done + fi + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --prefix=/usr --libdir=/usr/lib \ +- --libexecdir=/usr/lib --with-sysroot=${_sysroot} \ +- --enable-languages=c,c++,lto \ +- --with-gnu-as --with-gnu-ld --disable-multilib \ +- --disable-werror --disable-nls --disable-sjlj-exceptions \ +- --enable-threads=posix --enable-long-longx \ +- --enable-shared --enable-linker-build-id \ +- --enable-gnu-unique-object --enable-lto \ +- --disable-libquadmath --disable-libatomic \ +- --disable-libssp --disable-libmudflap \ +- --disable-libsanitizer --disable-libcilkrts \ +- --disable-libitm --disable-libvtv --disable-libstdcxx-pch \ +- --enable-libstdcxx-time --with-linker-hash-style=gnu ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --with-gnu-as" ++ _args+=" --with-gnu-ld" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-nls" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --enable-threads=posix" ++ _args+=" --enable-long-longx" ++ _args+=" --enable-shared" ++ _args+=" --enable-linker-build-id" ++ _args+=" --enable-gnu-unique-object" ++ _args+=" --enable-lto" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-libcilkrts" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libvtv" ++ _args+=" --disable-libstdcxx-pch" ++ _args+=" --enable-libstdcxx-time" ++ _args+=" --with-linker-hash-style=gnu" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/files/fix-cxxflags-passing.patch b/srcpkgs/cross-armv7l-linux-musleabihf/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-armv7l-linux-musleabihf/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-spec-env-r1.patch b/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-armv7l-linux-musleabihf/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template +index 14f2db4..c4c885f 100644 +--- a/srcpkgs/cross-armv7l-linux-musleabihf/template ++++ b/srcpkgs/cross-armv7l-linux-musleabihf/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-armv7l-linux-musleabihf' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=armv7l-linux-musleabihf + _fpuflags="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard" +@@ -11,21 +11,21 @@ _archflags="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=5 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for ARMv7 LE Hard Float target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -57,10 +59,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,26 +77,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -121,7 +145,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -130,6 +154,8 @@ _musl_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -138,12 +164,23 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --enable-languages=c,c++,lto --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-i686-linux-musl/files/fix-cxxflags-passing.patch b/srcpkgs/cross-i686-linux-musl/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-i686-linux-musl/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-i686-linux-musl/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-i686-linux-musl/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-i686-linux-musl/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-i686-linux-musl/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-i686-linux-musl/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-i686-linux-musl/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-i686-linux-musl/files/gcc-spec-env-r1.patch b/srcpkgs/cross-i686-linux-musl/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-i686-linux-musl/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template +index ae8b102..83311c5 100644 +--- a/srcpkgs/cross-i686-linux-musl/template ++++ b/srcpkgs/cross-i686-linux-musl/template +@@ -1,30 +1,30 @@ + # Template build file for 'cross-i686-linux-musl' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=i686-linux-musl + _sysroot="/usr/${_triplet}" + _archflags="-march=i686" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=5 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for i686 target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -48,6 +48,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -55,11 +57,16 @@ _binutils_build() { + + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host + make ${makejobs} +@@ -69,26 +76,40 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args=--prefix=/usr \ ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -121,7 +142,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -130,6 +151,7 @@ _musl_build() { + } + + _gcc_build() { ++ local _args + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -138,11 +160,21 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --enable-languages=c,c++,lto --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-libmudflap --enable-shared \ +- --disable-symvers libat_cv_have_ifunc=no ${_fpuflags} ++ _args="--target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --prefix=/usr" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-i686-pc-linux-gnu/files/fix-cxxflags-passing.patch b/srcpkgs/cross-i686-pc-linux-gnu/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-i686-pc-linux-gnu/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-i686-pc-linux-gnu/files/gcc-spec-env-r1.patch b/srcpkgs/cross-i686-pc-linux-gnu/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-i686-pc-linux-gnu/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template +index bb4e0f2..6047c2b 100644 +--- a/srcpkgs/cross-i686-pc-linux-gnu/template ++++ b/srcpkgs/cross-i686-pc-linux-gnu/template +@@ -1,31 +1,31 @@ + # Template build file for 'cross-i686-pc-linux-gnu' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _glibc_version=2.24 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=i686-pc-linux-gnu + _archflags="-march=i686 -mtune=generic" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=4 ++version=0.22 ++revision=1 + short_desc="GNU Cross toolchain for the ${_triplet} target (binutils/gcc/glibc)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, LGPL-2.1" + distfiles=" + ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 +- ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz + ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz +- ${KERNEL_SITE}/kernel/v3.x/linux-${_linux_version}.tar.xz" ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92" ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af" + + only_for_archs="armv6l armv7l x86_64" + nocross=yes +@@ -34,7 +34,7 @@ nodebug=yes + lib32disabled=yes + create_wrksrc=yes + hostmakedepends="perl flex" +-makedepends="zlib-devel gmp-devel mpfr-devel libmpc-devel" ++makedepends="zlib-devel gmp-devel mpfr-devel libmpc-devel isl15-devel" + depends="${pkgname}-libc-${version}_${revision}" + nostrip_files="libgcc.a libgcov.a libgcc_eh.a" + +@@ -69,11 +69,12 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + +@@ -82,16 +83,29 @@ _gcc_bootstrap() { + + # Fix https://build.voidlinux.eu/builders/x86_64_builder/builds/24895/steps/shell_3/logs/stdio + export gcc_cv_libc_provides_ssp=yes ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --without-headers" ++ _args+=" --disable-nls" ++ _args+=" --disable-shared" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-threads" ++ _args+=" --enable-languages=c" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --disable-multilib" ++ _args+=" --with-gnu-ld" ++ _args+=" --with-gnu-as" ++ _args+=" ${_fpuflags}" + + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --without-headers \ +- --disable-nls --disable-shared --disable-libquadmath \ +- --disable-decimal-float --disable-libgomp --disable-libmudflap \ +- --disable-libssp --disable-libitm --disable-libatomic \ +- --disable-threads --enable-languages=c \ +- --disable-sjlj-exceptions --disable-multilib \ +- --with-gnu-ld --with-gnu-as ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -114,6 +128,7 @@ _linux_headers() { + } + + _glibc_headers() { ++ local _args + [ -f ${wrksrc}/.glibc_headers_done ] && return 0 + + cd ${wrksrc} +@@ -129,11 +144,15 @@ _glibc_headers() { + export CC="${_triplet}-gcc" LD="${_triplet}-ld" \ + AS="${_triplet}-as" CPP="${_triplet}-cpp" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --enable-obsolete-rpc \ +- --enable-kernel=2.6.27 ${_fpuflags} ++ _args="--target=${_triplet}" ++ _args+=" --prefix=/usr" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" ++ ++ ../glibc-${_glibc_version}/configure ${_args} + + make -k install-headers cross_compiling=yes \ + install_root=${_sysroot} +@@ -142,6 +161,7 @@ _glibc_headers() { + } + + _glibc_build() { ++ local _args + [ -f ${wrksrc}/.glibc_build_done ] && return 0 + + cd ${wrksrc} +@@ -156,13 +176,16 @@ _glibc_build() { + + export CC="${_triplet}-gcc" LD="${_triplet}-ld" \ + AS="${_triplet}-as" CPP="${_triplet}-cpp" +- export CFLAGS="-Os -pipe -Wno-error ${_archflags}" ++ export CFLAGS="-O2 -pipe -Wno-error ${_archflags}" ++ _args="--host=${_triplet}" ++ _args+=" --prefix=/usr" ++ _args+=" --with-headers=${_sysroot}/usr/include" ++ _args+=" --config-cache" ++ _args+=" --enable-obsolete-rpc" ++ _args+=" --enable-kernel=2.6.27" ++ _args+=" ${_fpuflags}" + +- ../glibc-${_glibc_version}/configure \ +- --host=${_triplet} --prefix=/usr \ +- --with-headers=${_sysroot}/usr/include \ +- --config-cache --enable-obsolete-rpc \ +- --enable-kernel=2.6.27 ${_fpuflags} ++ ../glibc-${_glibc_version}/configure ${_args} + + make ${makejobs} + make install_root=${_sysroot} install +@@ -171,6 +194,8 @@ _glibc_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -180,7 +205,6 @@ _gcc_build() { + cd gcc-build + + unset LD AS CPP +- export CC="gcc" CFLAGS="-Os -pipe" + + # Make this link to target libs. + if [ ! -f .sed_subst_done ]; then +@@ -188,20 +212,40 @@ _gcc_build() { + -i ${_sysroot}/lib/libc.so ${_sysroot}/lib/libpthread.so + touch .sed_subst_done + fi +- +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --prefix=/usr --libdir=/usr/lib \ +- --with-sysroot=${_sysroot} --enable-languages=c,c++,lto \ +- --with-gnu-as --with-gnu-ld --disable-multilib \ +- --disable-nls --disable-sjlj-exceptions \ +- --enable-threads=posix --enable-long-longx \ +- --enable-shared --enable-linker-build-id \ +- --enable-gnu-unique-object --enable-lto \ +- --disable-libquadmath --disable-libatomic \ +- --disable-libssp --disable-libmudflap \ +- --disable-libsanitizer --disable-libcilkrts \ +- --disable-libitm --disable-libvtv --disable-libstdcxx-pch \ +- --enable-libstdcxx-time --with-linker-hash-style=gnu ${_fpuflags} ++ _args="--target=${_triplet}" ++ _args+=" --target=${_triplet}" ++ _args+=" --prefix=/usr" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --with-gnu-as" ++ _args+=" --with-gnu-ld" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-sjlj-exceptions" ++ _args+=" --enable-threads=posix" ++ _args+=" --enable-long-longx" ++ _args+=" --enable-shared" ++ _args+=" --enable-linker-build-id" ++ _args+=" --enable-gnu-unique-object" ++ _args+=" --enable-lto" ++ _args+=" --enable-gnu-indirect-function" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-libssp" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-libcilkrts" ++ _args+=" --disable-libitm" ++ _args+=" --disable-libvtv" ++ _args+=" --disable-libstdcxx-pch" ++ _args+=" --enable-libstdcxx-time" ++ _args+=" --with-linker-hash-style=gnu" ++ _args+=" ${_fpuflags}" ++ ++ CC="gcc" CFLAGS="-O2 -pipe" \ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-mips-linux-musl/files/fix-cxxflags-passing.patch b/srcpkgs/cross-mips-linux-musl/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-mips-linux-musl/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-mips-linux-musl/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-mips-linux-musl/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-mips-linux-musl/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-mips-linux-musl/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-mips-linux-musl/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-mips-linux-musl/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-mips-linux-musl/files/gcc-spec-env-r1.patch b/srcpkgs/cross-mips-linux-musl/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-mips-linux-musl/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template +index a3ffca6..a6a16ed 100644 +--- a/srcpkgs/cross-mips-linux-musl/template ++++ b/srcpkgs/cross-mips-linux-musl/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-mips-linux-musl' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=mips-linux-musl + _fpuflags="--with-float=soft --without-fp" +@@ -11,21 +11,21 @@ _archflags="-march=mips32r2 -msoft-float" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=6 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for MIPS32r2 BE softfloat target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -57,10 +59,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,25 +77,40 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -116,7 +139,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -125,6 +148,8 @@ _musl_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -133,12 +158,22 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --libexecdir=/usr/lib --enable-languages=c,c++,lto \ +- --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-mipsel-linux-musl/files/fix-cxxflags-passing.patch b/srcpkgs/cross-mipsel-linux-musl/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-mipsel-linux-musl/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-musl/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-mipsel-linux-musl/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-mipsel-linux-musl/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-musl/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-mipsel-linux-musl/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-mipsel-linux-musl/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-musl/files/gcc-spec-env-r1.patch b/srcpkgs/cross-mipsel-linux-musl/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-mipsel-linux-musl/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template +index 970d595..d0c6fa5 100644 +--- a/srcpkgs/cross-mipsel-linux-musl/template ++++ b/srcpkgs/cross-mipsel-linux-musl/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-mipsel-linux-musl' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=mipsel-linux-musl + _fpuflags="--with-float=soft --without-fp" +@@ -11,21 +11,21 @@ _archflags="-march=mips32r2 -msoft-float" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=6 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for MIPS32r2 LE softfloat target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -57,10 +59,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,25 +77,40 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -116,7 +139,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -125,6 +148,8 @@ _musl_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -133,12 +158,22 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --libexecdir=/usr/lib --enable-languages=c,c++,lto \ +- --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-mipsel-linux-muslhf/files/fix-cxxflags-passing.patch b/srcpkgs/cross-mipsel-linux-muslhf/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-mipsel-linux-muslhf/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-spec-env-r1.patch b/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-mipsel-linux-muslhf/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template +index 347ea85..1200232 100644 +--- a/srcpkgs/cross-mipsel-linux-muslhf/template ++++ b/srcpkgs/cross-mipsel-linux-muslhf/template +@@ -1,9 +1,9 @@ + # Template build file for 'cross-mipsel-linux-muslhf' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=mipsel-linux-muslhf + _fpuflags="--with-float=hard --with-fp" +@@ -11,21 +11,21 @@ _archflags="-march=mips32r2 -mhard-float" + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=6 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for MIPS32r2 LE hardfloat target (musl)" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -49,6 +49,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -57,10 +59,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host && make ${makejobs} + make install +@@ -69,25 +77,40 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap + ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --with-newlib" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" ${_fpuflags}" ++ + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} --with-newlib \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -116,7 +139,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -125,6 +148,8 @@ _musl_build() { + } + + _gcc_build() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -133,12 +158,22 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --libexecdir=/usr/lib --enable-languages=c,c++,lto \ +- --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-nls --disable-libquadmath \ +- --disable-libmudflap --enable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template +index 0bfd58a..2b4c849 100644 +--- a/srcpkgs/cross-vpkg-dummy/template ++++ b/srcpkgs/cross-vpkg-dummy/template +@@ -1,6 +1,6 @@ + # Template file for 'cross-vpkg-dummy' + pkgname=cross-vpkg-dummy +-version=0.21 ++version=0.22 + revision=1 + build_style=meta + short_desc="Dummy meta-pkg for cross building packages with xbps-src" +@@ -23,7 +23,6 @@ provides=" + libgomp-9999_1 + libgomp-devel-9999_1 + gcc-9999_1 +- gcc-c++-9999_1 + glibc-9999_1 + glibc-devel-9999_1 + musl-9999_1" +@@ -36,7 +35,6 @@ conflicts=" + libgomp>=0 + libgomp-devel>=0 + gcc>=0 +- gcc-c++>=0 + glibc>=0 + glibc-devel>=0 + musl>=0" +diff --git a/srcpkgs/cross-x86_64-linux-musl/files/fix-cxxflags-passing.patch b/srcpkgs/cross-x86_64-linux-musl/files/fix-cxxflags-passing.patch +new file mode 120000 +index 0000000..4a8c831 +--- /dev/null ++++ b/srcpkgs/cross-x86_64-linux-musl/files/fix-cxxflags-passing.patch +@@ -0,0 +1 @@ ++../../gcc/patches/fix-cxxflags-passing.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-x86_64-linux-musl/files/gcc-4.9.2-musl.diff b/srcpkgs/cross-x86_64-linux-musl/files/gcc-4.9.2-musl.diff +deleted file mode 120000 +index 3d53eb4..0000000 +--- a/srcpkgs/cross-x86_64-linux-musl/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/files/gcc-4.9.2-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-x86_64-linux-musl/files/gcc-6.2.1-musl.diff b/srcpkgs/cross-x86_64-linux-musl/files/gcc-6.2.1-musl.diff +new file mode 120000 +index 0000000..9081d12 +--- /dev/null ++++ b/srcpkgs/cross-x86_64-linux-musl/files/gcc-6.2.1-musl.diff +@@ -0,0 +1 @@ ++../../gcc/files/gcc-6.2.1-musl.diff +\ No newline at end of file +diff --git a/srcpkgs/cross-x86_64-linux-musl/files/gcc-spec-env-r1.patch b/srcpkgs/cross-x86_64-linux-musl/files/gcc-spec-env-r1.patch +deleted file mode 120000 +index 8dd1493..0000000 +--- a/srcpkgs/cross-x86_64-linux-musl/files/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1 +0,0 @@ +-../../gcc/patches/gcc-spec-env-r1.patch +\ No newline at end of file +diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template +index f63adfc..74da0ea 100644 +--- a/srcpkgs/cross-x86_64-linux-musl/template ++++ b/srcpkgs/cross-x86_64-linux-musl/template +@@ -1,29 +1,29 @@ + # Template build file for 'cross-x86_64-linux-musl' + # + _binutils_version=2.27 +-_gcc_version=4.9.4 ++_gcc_version=6.2.1 + _musl_version=1.1.15 +-_linux_version=3.18.25 ++_linux_version=4.1.34 + + _triplet=x86_64-linux-musl + _sysroot="/usr/${_triplet}" + + pkgname=cross-${_triplet} +-version=0.21 +-revision=6 ++version=0.22 ++revision=1 + short_desc="Cross toolchain for x86_64 with musl" + maintainer="Juan RP " + homepage="http://www.voidlinux.eu" + license="GPL-3, GPL-2, MIT" + distfiles=" +- http://ftp.gnu.org/pub/gnu/binutils/binutils-${_binutils_version}.tar.bz2 +- http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 +- http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz ++ ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.bz2 ++ http://distfiles.voidlinux.de/gcc-$version/gcc-${_gcc_version}.tar.xz ++ ${KERNEL_SITE}/kernel/v4.x/linux-${_linux_version}.tar.xz + http://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz" + checksum=" + 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 +- 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +- c649874e2856101df7cefe5fdad313ebb2282a939fc1e95cf02222327745ff92 ++ 6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 ++ 412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa" + + lib32disabled=yes +@@ -47,6 +47,8 @@ _apply_patch() { + } + + _binutils_build() { ++ local _args ++ + [ -f ${wrksrc}/.binutils_build_done ] && return 0 + + cd ${wrksrc} +@@ -55,10 +57,16 @@ _binutils_build() { + [ ! -d binutils-build ] && mkdir binutils-build + cd binutils-build + +- ../binutils-${_binutils_version}/configure \ +- --prefix=/usr --target=${_triplet} --with-sysroot=${_sysroot} \ +- --disable-nls --disable-multilib --disable-werror \ +- --disable-shared ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --disable-nls" ++ _args+=" --disable-multilib" ++ _args+=" --disable-werror" ++ _args+=" --disable-shared" ++ _args+=" ${_fpuflags}" ++ ++ ../binutils-${_binutils_version}/configure ${_args} + + make configure-host + make ${makejobs} +@@ -68,26 +76,42 @@ _binutils_build() { + } + + _gcc_bootstrap() { ++ local _args ++ + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + cd ${wrksrc}/gcc-${_gcc_version} +- _apply_patch -p1 ${FILESDIR}/gcc-4.9.2-musl.diff ++ _apply_patch -p1 ${FILESDIR}/gcc-6.2.1-musl.diff + _apply_patch -p0 ${FILESDIR}/libcpp-source_date_epoch.patch +- _apply_patch -p0 ${FILESDIR}/gcc-spec-env-r1.patch ++ _apply_patch -p0 ${FILESDIR}/fix-cxxflags-passing.patch + + msg_normal "Building cross gcc bootstrap\n" + + [ ! -d ../gcc-bootstrap ] && mkdir ../gcc-bootstrap + cd ../gcc-bootstrap ++ export ac_cv_c_compiler_gnu=yes ++ ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c" ++ _args+=" --with-newlib" ++ _args+=" --disable-libssp" ++ _args+=" --disable-nls" ++ _args+=" --disable-libquadmath" ++ _args+=" --disable-threads" ++ _args+=" --disable-decimal-float" ++ _args+=" --disable-shared" ++ _args+=" --disable-libmudflap" ++ _args+=" --disable-libgomp" ++ _args+=" --disable-libatomic" ++ _args+=" --disable-symvers" ++ _args+=" --disable-libmpx" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" + + CFLAGS="-O0 -g0" CXXFLAGS="-O0 -g0" \ +- ../gcc-${_gcc_version}/configure --prefix=/usr \ +- --target=${_triplet} --with-sysroot=${_sysroot} \ +- --enable-languages=c --with-newlib --disable-libssp --disable-nls \ +- --disable-libquadmath --disable-threads --disable-decimal-float \ +- --disable-shared --disable-libmudflap --disable-libgomp \ +- --disable-libatomic --disable-symvers \ +- libat_cv_have_ifunc=no ${_fpuflags} ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + make install +@@ -120,7 +144,7 @@ _musl_build() { + msg_normal "Building cross musl libc\n" + + CC="${_triplet}-gcc" CFLAGS="-Os -pipe ${_archflags}" \ +- ./configure --prefix=/usr \ ++ ./configure --prefix=/usr + + make ${makejobs} + make DESTDIR=${_sysroot} install +@@ -129,6 +153,7 @@ _musl_build() { + } + + _gcc_build() { ++ local _args + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + cd ${wrksrc} +@@ -137,11 +162,21 @@ _gcc_build() { + [ ! -d gcc-build ] && mkdir gcc-build + cd gcc-build + +- ../gcc-${_gcc_version}/configure \ +- --target=${_triplet} --with-sysroot=${_sysroot} --prefix=/usr \ +- --enable-languages=c,c++,lto --enable-lto --disable-libsanitizer \ +- --disable-multilib --disable-libmudflap --enable-shared \ +- --disable-symvers libat_cv_have_ifunc=no ${_fpuflags} ++ _args="--prefix=/usr" ++ _args+=" --target=${_triplet}" ++ _args+=" --with-sysroot=${_sysroot}" ++ _args+=" --enable-languages=c,c++,lto" ++ _args+=" --enable-lto" ++ _args+=" --disable-libsanitizer" ++ _args+=" --disable-multilib" ++ _args+=" --disable-libmpx" ++ _args+=" --disable-libmudflap" ++ _args+=" --enable-shared" ++ _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ _args+=" ${_fpuflags}" ++ ++ ../gcc-${_gcc_version}/configure ${_args} + + make ${makejobs} + +diff --git a/srcpkgs/efivar/template b/srcpkgs/efivar/template +index 390aa8a..63dbc9b 100644 +--- a/srcpkgs/efivar/template ++++ b/srcpkgs/efivar/template +@@ -11,7 +11,8 @@ only_for_archs="i686 i686-musl x86_64 x86_64-musl" + distfiles="https://github.com/rhinstaller/efivar/releases/download/${version}/efivar-${version}.tar.bz2" + checksum=04b9b9de9d9a1a013395400438a033daf4a4290f497ec5be04a120e2ac535094 + +-CFLAGS="-Wno-error=deprecated-declarations" ++CFLAGS="-Wno-error -Wno-error=nonnull-compare -Wno-error=unused-const-variable=\ ++ -Wno-error=deprecated-declarations -Wno-error=strict-aliasing" + + do_build() { + sed 's|-rpath=$(TOPDIR)/src/|-rpath=$(libdir)|g' -i src/test/Makefile +diff --git a/srcpkgs/gcc-c++ b/srcpkgs/gcc-c++ +deleted file mode 120000 +index b08d5af..0000000 +--- a/srcpkgs/gcc-c++ ++++ /dev/null +@@ -1 +0,0 @@ +-gcc +\ No newline at end of file +diff --git a/srcpkgs/gcc-multilib/patches/fix-libiberty_pic.patch b/srcpkgs/gcc-multilib/patches/fix-libiberty_pic.patch +index 1707d41..134846c 100644 +--- a/srcpkgs/gcc-multilib/patches/fix-libiberty_pic.patch ++++ b/srcpkgs/gcc-multilib/patches/fix-libiberty_pic.patch +@@ -1,11 +1,13 @@ + --- libiberty/Makefile.in 2016-08-05 17:07:27.540554328 +0200 + +++ libiberty/Makefile.in 2016-08-05 17:18:39.727540789 +0200 +-@@ -112,7 +112,7 @@ ++@@ -112,8 +112,8 @@ + + INCDIR=$(srcdir)/$(MULTISRCTOP)../include + +--COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@ +-+COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -fPIC -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@ ++-COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) \ ++- $(HDEFINES) @ac_libiberty_warn_cflags@ -D_GNU_SOURCE +++COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -fPIC -I. -I$(INCDIR) \ +++ $(HDEFINES) @ac_libiberty_warn_cflags@ -D_DEFAULT_SOURCE + + # Just to make sure we don't use a built-in rule with VPATH + .c.$(objext): +diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template +index 7b6a119..c1b9d60 100644 +--- a/srcpkgs/gcc-multilib/template ++++ b/srcpkgs/gcc-multilib/template +@@ -1,18 +1,18 @@ + # Template build file for 'gcc-multilib' + only_for_archs="x86_64" + _triplet="x86_64-unknown-linux-gnu" +-_majorver=4.9 ++_majorver=6.2 + + pkgname=gcc-multilib +-version=${_majorver}.4 ++version=${_majorver}.1 + revision=2 + wrksrc="gcc-${version}" + short_desc="The GNU C Compiler (multilib files)" + maintainer="Juan RP " + homepage="http://gcc.gnu.org" + license="GFDL-1.2, GPL-3, LGPL-2.1" +-distfiles="${GNU_SITE}/gcc/gcc-$version/gcc-$version.tar.bz2" +-checksum=6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 ++distfiles="http://distfiles.voidlinux.de/gcc-${version}/gcc-${version}.tar.xz" ++checksum=6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + + hostmakedepends="perl flex zip unzip" + makedepends="zlib-devel libmpc-devel ppl-devel cloog-devel +@@ -40,6 +40,8 @@ do_configure() { + sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in + # Do not run fixincludes + sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in ++ # hack! some configure tests for header files using "$CPP $CPPFLAGS" ++ sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure + + ./configure --prefix=/usr --mandir=/usr/share/man \ + --infodir=/usr/share/info --libexecdir=/usr/lib \ +@@ -81,13 +83,6 @@ do_install() { + rm -f ${DESTDIR}/usr/lib64 + } + +-gcc-c++-multilib_package() { +- depends="gcc-c++>=${_majorver} gcc-multilib>=${_majorver} libstdc++-devel-32bit>=${_majorver}" +- short_desc="GCC C++ compiler (multilib files)" +- pkg_install() { +- vmove usr/include/c++ +- } +-} + gcc-objc-multilib_package() { + depends="gcc-multilib>=${_majorver} gcc-objc>=${_majorver} libobjc-devel-32bit>=${_majorver}" + short_desc="The GNU Objective-C compiler (multilib files)" +diff --git a/srcpkgs/gcc/files/gcc-4.9.2-musl.diff b/srcpkgs/gcc/files/gcc-4.9.2-musl.diff +deleted file mode 100644 +index 8baafd0..0000000 +--- a/srcpkgs/gcc/files/gcc-4.9.2-musl.diff ++++ /dev/null +@@ -1,730 +0,0 @@ +-820c77b17a4a +-# HG changeset patch +-# Parent 1f830bec5a3f04b2718ce1395743d8e35c26341c +-Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one. +- +-diff -r 1f830bec5a3f libstdc++-v3/configure.host +---- a/libstdc++-v3/configure.host Thu Jan 29 14:04:56 2015 -0500 +-+++ b/libstdc++-v3/configure.host Thu Jan 29 14:06:11 2015 -0500 +-@@ -264,6 +264,13 @@ +- os_include_dir="os/bsd/freebsd" +- ;; +- gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) +-+ # check for musl by target +-+ case "${host_os}" in +-+ *-musl*) +-+ os_include_dir="os/generic" +-+ ;; +-+ *) +-+ +- if [ "$uclibc" = "yes" ]; then +- os_include_dir="os/uclibc" +- elif [ "$bionic" = "yes" ]; then +-@@ -272,6 +279,9 @@ +- os_include_dir="os/gnu-linux" +- fi +- ;; +-+ +-+ esac +-+ ;; +- hpux*) +- os_include_dir="os/hpux" +- ;; +-# HG changeset patch +-# Parent fc7bb9343dcd071463a63dfc1b356d579eb0872f +-Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker. +- +-diff -r fc7bb9343dcd gcc/config.gcc +---- a/gcc/config.gcc Thu Jan 29 14:06:11 2015 -0500 +-+++ b/gcc/config.gcc Thu Jan 29 14:06:13 2015 -0500 +-@@ -594,7 +594,7 @@ +- esac +- +- # Common C libraries. +--tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3" +-+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4" +- +- # 32-bit x86 processors supported by --with-arch=. Each processor +- # MUST be separated by exactly one space. +-@@ -719,6 +719,9 @@ +- *-*-*uclibc*) +- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" +- ;; +-+ *-*-*musl*) +-+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL" +-+ ;; +- *) +- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" +- ;; +-diff -r fc7bb9343dcd gcc/config/linux.h +---- a/gcc/config/linux.h Thu Jan 29 14:06:11 2015 -0500 +-+++ b/gcc/config/linux.h Thu Jan 29 14:06:13 2015 -0500 +-@@ -32,10 +32,12 @@ +- #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC) +- #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC) +- #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC) +-+#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL) +- #else +- #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) +- #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC) +- #define OPTION_BIONIC (linux_libc == LIBC_BIONIC) +-+#define OPTION_MUSL (linux_libc == LIBC_MUSL) +- #endif +- +- #define GNU_USER_TARGET_OS_CPP_BUILTINS() \ +-@@ -53,18 +55,21 @@ +- uClibc or Bionic is the default C library and whether +- -muclibc or -mglibc or -mbionic has been passed to change the default. */ +- +--#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \ +-- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}" +-+#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \ +-+ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}" +- +- #if DEFAULT_LIBC == LIBC_GLIBC +--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ +-- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B) +-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ +-+ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M) +- #elif DEFAULT_LIBC == LIBC_UCLIBC +--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ +-- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B) +-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ +-+ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M) +- #elif DEFAULT_LIBC == LIBC_BIONIC +--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ +-- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U) +-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ +-+ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M) +-+#elif DEFAULT_LIBC == LIBC_MUSL +-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ +-+ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B) +- #else +- #error "Unsupported DEFAULT_LIBC" +- #endif /* DEFAULT_LIBC */ +-@@ -84,21 +89,92 @@ +- +- #define GNU_USER_DYNAMIC_LINKER \ +- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ +-- BIONIC_DYNAMIC_LINKER) +-+ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) +- #define GNU_USER_DYNAMIC_LINKER32 \ +- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \ +-- BIONIC_DYNAMIC_LINKER32) +-+ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32) +- #define GNU_USER_DYNAMIC_LINKER64 \ +- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \ +-- BIONIC_DYNAMIC_LINKER64) +-+ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64) +- #define GNU_USER_DYNAMIC_LINKERX32 \ +- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \ +-- BIONIC_DYNAMIC_LINKERX32) +-+ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32) +- +- /* Whether we have Bionic libc runtime */ +- #undef TARGET_HAS_BIONIC +- #define TARGET_HAS_BIONIC (OPTION_BIONIC) +- +-+/* musl avoids problematic includes by rearranging the include directories. +-+ * Unfortunately, this is mostly duplicated from cppdefault.c */ +-+#if DEFAULT_LIBC == LIBC_MUSL +-+#define INCLUDE_DEFAULTS_MUSL_GPP \ +-+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \ +-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \ +-+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \ +-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \ +-+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \ +-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, +-+ +-+#ifdef LOCAL_INCLUDE_DIR +-+#define INCLUDE_DEFAULTS_MUSL_LOCAL \ +-+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \ +-+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, +-+#else +-+#define INCLUDE_DEFAULTS_MUSL_LOCAL +-+#endif +-+ +-+#ifdef PREFIX_INCLUDE_DIR +-+#define INCLUDE_DEFAULTS_MUSL_PREFIX \ +-+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0}, +-+#else +-+#define INCLUDE_DEFAULTS_MUSL_PREFIX +-+#endif +-+ +-+#ifdef CROSS_INCLUDE_DIR +-+#define INCLUDE_DEFAULTS_MUSL_CROSS \ +-+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0}, +-+#else +-+#define INCLUDE_DEFAULTS_MUSL_CROSS +-+#endif +-+ +-+#ifdef TOOL_INCLUDE_DIR +-+#define INCLUDE_DEFAULTS_MUSL_TOOL \ +-+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0}, +-+#else +-+#define INCLUDE_DEFAULTS_MUSL_TOOL +-+#endif +-+ +-+#ifdef NATIVE_SYSTEM_HEADER_DIR +-+#define INCLUDE_DEFAULTS_MUSL_NATIVE \ +-+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ +-+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 }, +-+#else +-+#define INCLUDE_DEFAULTS_MUSL_NATIVE +-+#endif +-+ +-+#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) +-+# undef INCLUDE_DEFAULTS_MUSL_LOCAL +-+# define INCLUDE_DEFAULTS_MUSL_LOCAL +-+# undef INCLUDE_DEFAULTS_MUSL_NATIVE +-+# define INCLUDE_DEFAULTS_MUSL_NATIVE +-+#else +-+# undef INCLUDE_DEFAULTS_MUSL_CROSS +-+# define INCLUDE_DEFAULTS_MUSL_CROSS +-+#endif +-+ +-+#undef INCLUDE_DEFAULTS +-+#define INCLUDE_DEFAULTS \ +-+ { \ +-+ INCLUDE_DEFAULTS_MUSL_GPP \ +-+ INCLUDE_DEFAULTS_MUSL_PREFIX \ +-+ INCLUDE_DEFAULTS_MUSL_CROSS \ +-+ INCLUDE_DEFAULTS_MUSL_TOOL \ +-+ INCLUDE_DEFAULTS_MUSL_NATIVE \ +-+ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ +-+ { 0, 0, 0, 0, 0, 0 } \ +-+ } +-+#endif +-+ +- #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ +- /* This is a *uclinux* target. We don't define below macros to normal linux +- versions, because doing so would require *uclinux* targets to include +-diff -r fc7bb9343dcd gcc/config/linux.opt +---- a/gcc/config/linux.opt Thu Jan 29 14:06:11 2015 -0500 +-+++ b/gcc/config/linux.opt Thu Jan 29 14:06:13 2015 -0500 +-@@ -30,3 +30,7 @@ +- muclibc +- Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic) +- Use uClibc C library +-+ +-+mmusl +-+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc) +-+Use musl C library +-diff -r fc7bb9343dcd gcc/ginclude/stddef.h +---- a/gcc/ginclude/stddef.h Thu Jan 29 14:06:11 2015 -0500 +-+++ b/gcc/ginclude/stddef.h Thu Jan 29 14:06:13 2015 -0500 +-@@ -181,6 +181,7 @@ +- #ifndef _GCC_SIZE_T +- #ifndef _SIZET_ +- #ifndef __size_t +-+#ifndef __DEFINED_size_t /* musl */ +- #define __size_t__ /* BeOS */ +- #define __SIZE_T__ /* Cray Unicos/Mk */ +- #define _SIZE_T +-@@ -197,6 +198,7 @@ +- #define ___int_size_t_h +- #define _GCC_SIZE_T +- #define _SIZET_ +-+#define __DEFINED_size_t /* musl */ +- #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ +- || defined(__FreeBSD_kernel__) +- /* __size_t is a typedef on FreeBSD 5, must not trash it. */ +-@@ -214,6 +216,7 @@ +- typedef long ssize_t; +- #endif /* __BEOS__ */ +- #endif /* !(defined (__GNUG__) && defined (size_t)) */ +-+#endif /* __DEFINED_size_t */ +- #endif /* __size_t */ +- #endif /* _SIZET_ */ +- #endif /* _GCC_SIZE_T */ +-# HG changeset patch +-# Parent ad6952ac547606025a6fb8496584cbfe1b73a8b7 +-A fix for libgomp to correctly request a POSIX version for time support. +- +-diff -r ad6952ac5476 libgomp/config/posix/time.c +---- a/libgomp/config/posix/time.c Thu Jan 29 14:06:13 2015 -0500 +-+++ b/libgomp/config/posix/time.c Thu Jan 29 14:06:16 2015 -0500 +-@@ -28,6 +28,8 @@ +- The following implementation uses the most simple POSIX routines. +- If present, POSIX 4 clocks should be used instead. */ +- +-+#define _POSIX_C_SOURCE 199309L /* for clocks */ +-+ +- #include "libgomp.h" +- #include +- #if TIME_WITH_SYS_TIME +-diff -r ffa879f29d52 libgcc/unwind-dw2-fde-dip.c +---- a/libgcc/unwind-dw2-fde-dip.c Thu Jan 29 14:06:15 2015 -0500 +-+++ b/libgcc/unwind-dw2-fde-dip.c Thu Jan 29 14:06:18 2015 -0500 +-@@ -46,33 +46,13 @@ +- #include "unwind-compat.h" +- #include "gthr.h" +- +--#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ +-- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ +-- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) +-+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) +- # define USE_PT_GNU_EH_FRAME +--#endif +-- +--#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ +-- && defined(__BIONIC__) +--# define USE_PT_GNU_EH_FRAME +--#endif +-- +--#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ +-- && defined(__FreeBSD__) && __FreeBSD__ >= 7 +--# define ElfW __ElfN +--# define USE_PT_GNU_EH_FRAME +--#endif +-- +--#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ +-- && defined(__OpenBSD__) +--# define ElfW(type) Elf_##type +--# define USE_PT_GNU_EH_FRAME +--#endif +-- +--#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ +-- && defined(TARGET_DL_ITERATE_PHDR) \ +-- && defined(__sun__) && defined(__svr4__) +--# define USE_PT_GNU_EH_FRAME +-+# ifdef __OpenBSD__ +-+# define ElfW(type) Elf_##type +-+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7 +-+# define ElfW __ElfN +-+# endif +- #endif +- +- #if defined(USE_PT_GNU_EH_FRAME) +-diff -r b35df09b819f gcc/configure +---- a/gcc/configure Thu Jan 29 14:06:18 2015 -0500 +-+++ b/gcc/configure Thu Jan 29 14:06:20 2015 -0500 +-@@ -27356,6 +27356,9 @@ +- else +- gcc_cv_libc_provides_ssp=no +- case "$target" in +-+ *-*-musl*) +-+ # All versions of musl provide stack protector +-+ gcc_cv_libc_provides_ssp=yes;; +- *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) +- # glibc 2.4 and later provides __stack_chk_fail and +- # either __stack_chk_guard, or TLS access to stack guard canary. +-@@ -27388,6 +27391,7 @@ +- # ) and for now +- # simply assert that glibc does provide this, which is true for all +- # realistically usable GNU/Hurd configurations. +-+ # All supported versions of musl provide it as well +- gcc_cv_libc_provides_ssp=yes;; +- *-*-darwin* | *-*-freebsd*) +- ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail" +-@@ -27477,6 +27481,9 @@ +- gcc_cv_target_dl_iterate_phdr=no +- fi +- ;; +-+ *-linux-musl*) +-+ gcc_cv_target_dl_iterate_phdr=yes +-+ ;; +- esac +- +- if test x$gcc_cv_target_dl_iterate_phdr = xyes; then +-diff -r b35df09b819f gcc/configure.ac +---- a/gcc/configure.ac Thu Jan 29 14:06:18 2015 -0500 +-+++ b/gcc/configure.ac Thu Jan 29 14:06:20 2015 -0500 +-@@ -5039,6 +5039,9 @@ +- gcc_cv_libc_provides_ssp, +- [gcc_cv_libc_provides_ssp=no +- case "$target" in +-+ *-*-musl*) +-+ # All versions of musl provide stack protector +-+ gcc_cv_libc_provides_ssp=yes;; +- *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) +- # glibc 2.4 and later provides __stack_chk_fail and +- # either __stack_chk_guard, or TLS access to stack guard canary. +-@@ -5065,6 +5068,7 @@ +- # ) and for now +- # simply assert that glibc does provide this, which is true for all +- # realistically usable GNU/Hurd configurations. +-+ # All supported versions of musl provide it as well +- gcc_cv_libc_provides_ssp=yes;; +- *-*-darwin* | *-*-freebsd*) +- AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes], +-@@ -5131,6 +5135,9 @@ +- gcc_cv_target_dl_iterate_phdr=no +- fi +- ;; +-+ *-linux-musl*) +-+ gcc_cv_target_dl_iterate_phdr=yes +-+ ;; +- esac +- GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR]) +- if test x$gcc_cv_target_dl_iterate_phdr = xyes; then +-# HG changeset patch +-# Parent b6a339cae9f0607a291a2fe8de80caecd48f1ebd +-Get rid of ever-broken fixincludes on musl. +- +-diff -r b6a339cae9f0 fixincludes/mkfixinc.sh +---- a/fixincludes/mkfixinc.sh Thu Jan 29 14:06:20 2015 -0500 +-+++ b/fixincludes/mkfixinc.sh Thu Jan 29 14:06:22 2015 -0500 +-@@ -19,7 +19,8 @@ +- powerpc-*-eabi* | \ +- powerpc-*-rtems* | \ +- powerpcle-*-eabisim* | \ +-- powerpcle-*-eabi* ) +-+ powerpcle-*-eabi* | \ +-+ *-musl* ) +- # IF there is no include fixing, +- # THEN create a no-op fixer and exit +- (echo "#! /bin/sh" ; echo "exit 0" ) > ${target} +-# HG changeset patch +-# Parent 6c0bb7083dd2eba825f2693dc30d0e39359c1a66 +-Support for i386-linux-musl and x86_64-linux-musl. +- +-diff -r 6c0bb7083dd2 gcc/config/i386/linux.h +---- a/gcc/config/i386/linux.h Thu Jan 29 14:06:22 2015 -0500 +-+++ b/gcc/config/i386/linux.h Thu Jan 29 14:06:25 2015 -0500 +-@@ -21,3 +21,4 @@ +- +- #define GNU_USER_LINK_EMULATION "elf_i386" +- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" +-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" +-diff -r 6c0bb7083dd2 gcc/config/i386/linux64.h +---- a/gcc/config/i386/linux64.h Thu Jan 29 14:06:22 2015 -0500 +-+++ b/gcc/config/i386/linux64.h Thu Jan 29 14:06:25 2015 -0500 +-@@ -30,3 +30,7 @@ +- #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +- #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" +- #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" +-+ +-+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1" +-+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1" +-+#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1" +-diff -r 6c0bb7083dd2 libitm/config/linux/x86/tls.h +---- a/libitm/config/linux/x86/tls.h Thu Jan 29 14:06:22 2015 -0500 +-+++ b/libitm/config/linux/x86/tls.h Thu Jan 29 14:06:25 2015 -0500 +-@@ -25,16 +25,19 @@ +- #ifndef LIBITM_X86_TLS_H +- #define LIBITM_X86_TLS_H 1 +- +--#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) +-+#if defined(__GLIBC_PREREQ) +-+#if __GLIBC_PREREQ(2, 10) +- /* Use slots in the TCB head rather than __thread lookups. +- GLIBC has reserved words 10 through 13 for TM. */ +- #define HAVE_ARCH_GTM_THREAD 1 +- #define HAVE_ARCH_GTM_THREAD_DISP 1 +- #endif +-+#endif +- +- #include "config/generic/tls.h" +- +--#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) +-+#if defined(__GLIBC_PREREQ) +-+#if __GLIBC_PREREQ(2, 10) +- namespace GTM HIDDEN { +- +- #ifdef __x86_64__ +-@@ -101,5 +104,6 @@ +- +- } // namespace GTM +- #endif /* >= GLIBC 2.10 */ +-+#endif +- +- #endif // LIBITM_X86_TLS_H +-# HG changeset patch +-# Parent 4802c181abe099c2f903184ace267c6a527ca91c +-Support for arm-linux-musl. +- +-diff -r 4802c181abe0 gcc/config/arm/linux-eabi.h +---- a/gcc/config/arm/linux-eabi.h Thu Jan 29 14:06:25 2015 -0500 +-+++ b/gcc/config/arm/linux-eabi.h Thu Jan 29 14:06:27 2015 -0500 +-@@ -77,6 +77,23 @@ +- %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ +- %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" +- +-+/* For ARM musl currently supports four dynamic linkers: +-+ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI +-+ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI +-+ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB +-+ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB +-+ musl does not support the legacy OABI mode. +-+ All the dynamic linkers live in /lib. +-+ We default to soft-float, EL. */ +-+#undef MUSL_DYNAMIC_LINKER +-+#if TARGET_BIG_ENDIAN_DEFAULT +-+#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}" +-+#else +-+#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}" +-+#endif +-+#define MUSL_DYNAMIC_LINKER \ +-+ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" +-+ +- /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to +- use the GNU/Linux version, not the generic BPABI version. */ +- #undef LINK_SPEC +-diff -r 4802c181abe0 libitm/config/arm/hwcap.cc +---- a/libitm/config/arm/hwcap.cc Thu Jan 29 14:06:25 2015 -0500 +-+++ b/libitm/config/arm/hwcap.cc Thu Jan 29 14:06:27 2015 -0500 +-@@ -40,7 +40,11 @@ +- +- #ifdef __linux__ +- #include +-+#ifdef __GLIBC__ +- #include +-+#else +-+#include +-+#endif +- #include +- +- static void __attribute__((constructor)) +-# HG changeset patch +-# Parent f34ce414667f8513979b8a0507f3d6b934f1ebeb +-Support for mips-linux-musl. +- +-diff -r f34ce414667f gcc/config/mips/linux.h +---- a/gcc/config/mips/linux.h Thu Jan 29 14:06:27 2015 -0500 +-+++ b/gcc/config/mips/linux.h Thu Jan 29 14:06:29 2015 -0500 +-@@ -23,3 +23,10 @@ +- #undef UCLIBC_DYNAMIC_LINKER +- #define UCLIBC_DYNAMIC_LINKER \ +- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" +-+ +-+#if TARGET_ENDIAN_DEFAULT == 0 /* LE */ +-+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}" +-+#else +-+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" +-+#endif +-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1" +-# HG changeset patch +-# Parent d4bad9a6572b0e8eacc08d2b1c40d03a6608bee5 +-Support for powerpc-linux-musl. +- +-diff -r d4bad9a6572b gcc/config.gcc +---- a/gcc/config.gcc Thu Jan 29 14:06:29 2015 -0500 +-+++ b/gcc/config.gcc Thu Jan 29 14:06:32 2015 -0500 +-@@ -2334,6 +2334,10 @@ +- powerpc*-*-linux*paired*) +- tm_file="${tm_file} rs6000/750cl.h" ;; +- esac +-+ case ${target} in +-+ *-linux*-musl*) +-+ enable_secureplt=yes ;; +-+ esac +- if test x${enable_secureplt} = xyes; then +- tm_file="rs6000/secureplt.h ${tm_file}" +- fi +-diff -r d4bad9a6572b gcc/config/rs6000/linux64.h +---- a/gcc/config/rs6000/linux64.h Thu Jan 29 14:06:29 2015 -0500 +-+++ b/gcc/config/rs6000/linux64.h Thu Jan 29 14:06:32 2015 -0500 +-@@ -375,17 +375,21 @@ +- #endif +- #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" +- #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" +-+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-powerpc.so.1" +-+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-powerpc64.so.1" +- #if DEFAULT_LIBC == LIBC_UCLIBC +--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" +-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" +- #elif DEFAULT_LIBC == LIBC_GLIBC +--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" +-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}" +-+#elif DEFAULT_LIBC == LIBC_MUSL +-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}" +- #else +- #error "Unsupported DEFAULT_LIBC" +- #endif +- #define GNU_USER_DYNAMIC_LINKER32 \ +-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32) +-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32) +- #define GNU_USER_DYNAMIC_LINKER64 \ +-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64) +-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64) +- +- #undef DEFAULT_ASM_ENDIAN +- #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN) +-diff -r d4bad9a6572b gcc/config/rs6000/secureplt.h +---- a/gcc/config/rs6000/secureplt.h Thu Jan 29 14:06:29 2015 -0500 +-+++ b/gcc/config/rs6000/secureplt.h Thu Jan 29 14:06:32 2015 -0500 +-@@ -18,3 +18,4 @@ +- . */ +- +- #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt" +-+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt" +-diff -r d4bad9a6572b gcc/config/rs6000/sysv4.h +---- a/gcc/config/rs6000/sysv4.h Thu Jan 29 14:06:29 2015 -0500 +-+++ b/gcc/config/rs6000/sysv4.h Thu Jan 29 14:06:32 2015 -0500 +-@@ -537,6 +537,9 @@ +- #ifndef CC1_SECURE_PLT_DEFAULT_SPEC +- #define CC1_SECURE_PLT_DEFAULT_SPEC "" +- #endif +-+#ifndef LINK_SECURE_PLT_DEFAULT_SPEC +-+#define LINK_SECURE_PLT_DEFAULT_SPEC "" +-+#endif +- +- /* Pass -G xxx to the compiler. */ +- #define CC1_SPEC "%{G*} %(cc1_cpu)" \ +-@@ -585,7 +588,8 @@ +- +- /* Override the default target of the linker. */ +- #define LINK_TARGET_SPEC \ +-- ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") +-+ ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") \ +-+ "%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}" +- +- /* Any specific OS flags. */ +- #define LINK_OS_SPEC "\ +-@@ -763,15 +767,18 @@ +- +- #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" +- #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" +-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1" +- #if DEFAULT_LIBC == LIBC_UCLIBC +--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" +-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" +-+#elif DEFAULT_LIBC == LIBC_MUSL +-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}" +- #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC +--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" +-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}" +- #else +- #error "Unsupported DEFAULT_LIBC" +- #endif +- #define GNU_USER_DYNAMIC_LINKER \ +-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) +-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) +- +- #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ +- %{rdynamic:-export-dynamic} \ +-@@ -894,6 +901,7 @@ +- { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ +- { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ +- { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \ +-+ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \ +- { "cpp_os_ads", CPP_OS_ADS_SPEC }, \ +- { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \ +- { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \ +-diff -r 47a8492e5aa7 gcc/config/aarch64/aarch64-linux.h +---- a/gcc/config/aarch64/aarch64-linux.h Thu Jan 29 14:06:31 2015 -0500 +-+++ b/gcc/config/aarch64/aarch64-linux.h Thu Jan 29 14:06:34 2015 -0500 +-@@ -23,6 +23,8 @@ +- +- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}.so.1" +- +-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64.so.1" +-+ +- #define CPP_SPEC "%{pthread:-D_REENTRANT}" +- +- #define LINUX_TARGET_LINK_SPEC "%{h*} \ +-# HG changeset patch +-# Parent 9f4208089e8987637569ce7b294256c536396299 +-Microblaze support (again). +- +-diff -r 9f4208089e89 gcc/config/microblaze/linux.h +---- a/gcc/config/microblaze/linux.h Thu Jan 29 14:06:34 2015 -0500 +-+++ b/gcc/config/microblaze/linux.h Thu Jan 29 14:06:36 2015 -0500 +-@@ -25,7 +25,22 @@ +- #undef TLS_NEEDS_GOT +- #define TLS_NEEDS_GOT 1 +- +--#define DYNAMIC_LINKER "/lib/ld.so.1" +-+#if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */ +-+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}" +-+#else +-+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" +-+#endif +-+ +-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1" +-+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" +-+ +-+#if DEFAULT_LIBC == LIBC_MUSL +-+#define DYNAMIC_LINKER MUSL_DYNAMIC_LINKER +-+#else +-+#define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER +-+#endif +-+ +-+ +- #undef SUBTARGET_EXTRA_SPECS +- #define SUBTARGET_EXTRA_SPECS \ +- { "dynamic_linker", DYNAMIC_LINKER } +-From 478ee0c03a08e2ef9371fd88d516738936943e78 Mon Sep 17 00:00:00 2001 +-From: David Holsgrove +-Date: Fri, 28 Sep 2012 16:32:03 +1000 +-Subject: [PATCH 06/11] [Patch, microblaze]: Add SIZE_TYPE and PTRDIFF_TYPE to +- microblaze.h +- +-Fixes warnings like; +- +-warning: format '%zX' expects argument of type 'size_t', +-but argument 3 has type 'unsigned int' [-Wformat] +- +-Changelog +- +-2013-03-18 David Holsgrove +- +- * gcc/config/microblaze/microblaze.h: Define SIZE_TYPE +- and PTRDIFF_TYPE. +- +-Signed-off-by: David Holsgrove +---- +- gcc/config/microblaze/microblaze.h | 6 ++++++ +- 1 file changed, 6 insertions(+) +- +-diff -r 0dbe9a3f7670 gcc/config/microblaze/microblaze.h +---- a/gcc/config/microblaze/microblaze.h Thu Jan 29 14:06:36 2015 -0500 +-+++ b/gcc/config/microblaze/microblaze.h Thu Jan 29 14:06:38 2015 -0500 +-@@ -218,6 +218,12 @@ +- #undef PTRDIFF_TYPE +- #define PTRDIFF_TYPE "int" +- +-+#undef SIZE_TYPE +-+#define SIZE_TYPE "unsigned int" +-+ +-+#undef PTRDIFF_TYPE +-+#define PTRDIFF_TYPE "int" +-+ +- #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ +- ((TREE_CODE (EXP) == STRING_CST || TREE_CODE (EXP) == CONSTRUCTOR) \ +- && (ALIGN) < BITS_PER_WORD \ +-diff -r 94ebb0799454 gcc/config/sh/linux.h +---- a/gcc/config/sh/linux.h Fri Sep 28 16:32:03 2012 +1000 +-+++ b/gcc/config/sh/linux.h Thu Jan 29 14:06:41 2015 -0500 +-@@ -43,7 +43,14 @@ +- +- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack +- +-+#if TARGET_BIG_ENDIAN_DEFAULT /* BE */ +-+#define MUSL_DYNAMIC_LINKER_E "eb" +-+#else +-+#define MUSL_DYNAMIC_LINKER_E +-+#endif +-+ +- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" +-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1" +- +- #undef SUBTARGET_LINK_EMUL_SUFFIX +- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" +- +-Use libc write(2) instead of undefined __write() to get rid +-of an error when later linking against libgcc.a +-This should fix the webkitgtk build, see: +-http://build.voidlinux.eu/builders/armv6l-musl_builder/builds/2991/steps/shell_3/logs/stdio +- +---- a/libgcc/config/arm/linux-atomic-64bit.c 2014-01-02 23:25:22.000000000 +0100 +-+++ b/libgcc/config/arm/linux-atomic-64bit.c 2015-08-14 10:56:03.383219614 +0200 +-@@ -33,7 +33,7 @@ +- kernels; we check for that in an init section and bail out rather +- unceremoneously. */ +- +--extern unsigned int __write (int fd, const void *buf, unsigned int count); +-+extern unsigned int write (int fd, const void *buf, unsigned int count); +- extern void abort (void); +- +- /* Kernel helper for compare-and-exchange. */ +-@@ -56,7 +56,7 @@ +- for the user - I'm not sure I can rely on much else being +- available at this point, so do the same as generic-morestack.c +- write () and abort (). */ +-- __write (2 /* stderr. */, err, sizeof (err)); +-+ write (2 /* stderr. */, err, sizeof (err)); +- abort (); +- } +- }; +diff --git a/srcpkgs/gcc/files/gcc-6.2.1-musl.diff b/srcpkgs/gcc/files/gcc-6.2.1-musl.diff +new file mode 100644 +index 0000000..053d1ea +--- /dev/null ++++ b/srcpkgs/gcc/files/gcc-6.2.1-musl.diff +@@ -0,0 +1,556 @@ ++# HG changeset patch ++# Parent 90a7a3809a7ccb60e357b5e88382260877f82257 ++Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one. ++ ++diff -r 90a7a3809a7c libstdc++-v3/configure.host ++--- a/libstdc++-v3/configure.host Thu Dec 24 11:22:15 2015 -0500 +++++ b/libstdc++-v3/configure.host Thu Dec 24 11:24:45 2015 -0500 ++@@ -266,6 +266,13 @@ ++ os_include_dir="os/bsd/freebsd" ++ ;; ++ gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) +++ # check for musl by target +++ case "${host_os}" in +++ *-musl*) +++ os_include_dir="os/generic" +++ ;; +++ *) +++ ++ if [ "$uclibc" = "yes" ]; then ++ os_include_dir="os/uclibc" ++ elif [ "$bionic" = "yes" ]; then ++@@ -281,6 +281,9 @@ ++ os_include_dir="os/gnu-linux" ++ fi ++ ;; +++ +++ esac +++ ;; ++ hpux*) ++ os_include_dir="os/hpux" ++ ;; ++diff -r 30a957f60ddb gcc/ginclude/stddef.h ++--- a/gcc/ginclude/stddef.h Thu Dec 24 11:24:45 2015 -0500 +++++ b/gcc/ginclude/stddef.h Thu Dec 24 11:24:47 2015 -0500 ++@@ -184,6 +184,7 @@ ++ #ifndef _GCC_SIZE_T ++ #ifndef _SIZET_ ++ #ifndef __size_t +++#ifndef __DEFINED_size_t /* musl */ ++ #define __size_t__ /* BeOS */ ++ #define __SIZE_T__ /* Cray Unicos/Mk */ ++ #define _SIZE_T ++@@ -200,6 +201,7 @@ ++ #define ___int_size_t_h ++ #define _GCC_SIZE_T ++ #define _SIZET_ +++#define __DEFINED_size_t /* musl */ ++ #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ ++ || defined(__DragonFly__) \ ++ || defined(__FreeBSD_kernel__) ++@@ -218,6 +220,7 @@ ++ typedef long ssize_t; ++ #endif /* __BEOS__ */ ++ #endif /* !(defined (__GNUG__) && defined (size_t)) */ +++#endif /* __DEFINED_size_t */ ++ #endif /* __size_t */ ++ #endif /* _SIZET_ */ ++ #endif /* _GCC_SIZE_T */ ++# HG changeset patch ++# Parent 90228af47e55eb338c7f672e4aca5ac81cf5f14c ++A fix for libgomp to correctly request a POSIX version for time support. ++ ++diff -r 90228af47e55 libgomp/config/posix/time.c ++--- a/libgomp/config/posix/time.c Thu Dec 24 11:24:47 2015 -0500 +++++ b/libgomp/config/posix/time.c Thu Dec 24 11:24:49 2015 -0500 ++@@ -29,6 +29,8 @@ ++ The following implementation uses the most simple POSIX routines. ++ If present, POSIX 4 clocks should be used instead. */ ++ +++#define _POSIX_C_SOURCE 199309L /* for clocks */ +++ ++ #include "libgomp.h" ++ #include ++ #if TIME_WITH_SYS_TIME ++diff -r b08d4bc3d2ba libgcc/unwind-dw2-fde-dip.c ++--- a/libgcc/unwind-dw2-fde-dip.c Thu Dec 24 11:24:49 2015 -0500 +++++ b/libgcc/unwind-dw2-fde-dip.c Thu Dec 24 11:24:51 2015 -0500 ++@@ -46,6 +46,10 @@ ++ #include "unwind-compat.h" ++ #include "gthr.h" ++ +++#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) +++# define USE_PT_GNU_EH_FRAME +++#endif +++ ++ #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ ++ && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ ++ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) ++diff -r 1f375ed3689f gcc/gcc.c ++--- a/gcc/gcc.c Thu Dec 24 11:24:53 2015 -0500 +++++ b/gcc/gcc.c Thu Dec 24 11:24:56 2015 -0500 ++@@ -860,7 +860,7 @@ ++ #ifndef LINK_SSP_SPEC ++ #ifdef TARGET_LIBC_PROVIDES_SSP ++ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++- "|fstack-protector-strong|fstack-protector-explicit:}" +++ "|fstack-protector-strong|fstack-protector-explicit:-lssp_nonshared}" ++ #else ++ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++# HG changeset patch ++# Parent 76b553fabcf19eec5df2df7f05ce15a4bf8c3996 ++Support for mips-linux-musl. ++ ++diff -r 76b553fabcf1 gcc/config/mips/linux.h ++--- a/gcc/config/mips/linux.h Thu Dec 24 11:25:02 2015 -0500 +++++ b/gcc/config/mips/linux.h Thu Dec 24 11:25:04 2015 -0500 ++@@ -31,6 +31,13 @@ ++ #undef UCLIBC_DYNAMIC_LINKER32 ++ #define UCLIBC_DYNAMIC_LINKER32 \ ++ "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" +++ +++#undef MUSL_DYNAMIC_LINKER32 +++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1" +++#undef MUSL_DYNAMIC_LINKER64 +++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips64%{EL:el}%{msoft-float:-sf}.so.1" +++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mipsn32%{EL:el}%{msoft-float:-sf}.so.1" +++ ++ #undef UCLIBC_DYNAMIC_LINKER64 ++ #define UCLIBC_DYNAMIC_LINKER64 \ ++ "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" ++# HG changeset patch ++# Parent 971d410411735f0b04eb07236659097986926213 ++Support for powerpc-linux-musl. ++ ++diff -r 971d41041173 gcc/config.gcc ++--- a/gcc/config.gcc Fri Dec 25 08:44:09 2015 -0500 +++++ b/gcc/config.gcc Fri Dec 25 09:42:16 2015 -0500 ++@@ -2464,6 +2464,10 @@ ++ powerpc*-*-linux*paired*) ++ tm_file="${tm_file} rs6000/750cl.h" ;; ++ esac +++ case ${target} in +++ *-linux*-musl*) +++ enable_secureplt=yes ;; +++ esac ++ if test x${enable_secureplt} = xyes; then ++ tm_file="rs6000/secureplt.h ${tm_file}" ++ fi ++diff -r 9555ffb5873b gcc/config/aarch64/aarch64-linux.h ++--- a/gcc/config/aarch64/aarch64-linux.h Thu Dec 24 11:25:06 2015 -0500 +++++ b/gcc/config/aarch64/aarch64-linux.h Thu Dec 24 11:25:09 2015 -0500 ++@@ -32,6 +32,8 @@ ++ #undef CC1_SPEC ++ #define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC ++ +++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64.so.1" +++ ++ #define CPP_SPEC "%{pthread:-D_REENTRANT}" ++ ++ #define LINUX_TARGET_LINK_SPEC "%{h*} \ ++diff -r a522e4b04c77 gcc/config/microblaze/microblaze.h ++--- a/gcc/config/microblaze/microblaze.h Thu Dec 24 11:25:11 2015 -0500 +++++ b/gcc/config/microblaze/microblaze.h Thu Dec 24 11:25:13 2015 -0500 ++@@ -218,6 +218,12 @@ ++ #undef PTRDIFF_TYPE ++ #define PTRDIFF_TYPE "int" ++ +++#undef SIZE_TYPE +++#define SIZE_TYPE "unsigned int" +++ +++#undef PTRDIFF_TYPE +++#define PTRDIFF_TYPE "int" +++ ++ #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ ++ ((TREE_CODE (EXP) == STRING_CST || TREE_CODE (EXP) == CONSTRUCTOR) \ ++ && (ALIGN) < BITS_PER_WORD \ ++diff -r f2936ad874dd gcc/config/sh/linux.h ++--- a/gcc/config/sh/linux.h Fri Sep 28 16:32:03 2012 +1000 +++++ b/gcc/config/sh/linux.h Thu Dec 24 11:25:15 2015 -0500 ++@@ -64,7 +64,14 @@ ++ ++ #define TARGET_ASM_FILE_END file_end_indicate_exec_stack ++ +++#if TARGET_BIG_ENDIAN_DEFAULT /* BE */ +++#define MUSL_DYNAMIC_LINKER_E "eb" +++#else +++#define MUSL_DYNAMIC_LINKER_E +++#endif +++ ++ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" +++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1" ++ ++ #undef SUBTARGET_LINK_EMUL_SUFFIX ++ #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" ++Do not use weak references on any targets for gthread. Necessary on musl, safe elsewhere. ++ ++diff -r e180e4cfc879 libgcc/gthr.h ++--- a/libgcc/gthr.h Thu Dec 24 11:25:15 2015 -0500 +++++ b/libgcc/gthr.h Thu Dec 24 11:25:17 2015 -0500 ++@@ -136,10 +136,8 @@ ++ /* The pe-coff weak support isn't fully compatible to ELF's weak. ++ For static libraries it might would work, but as we need to deal ++ with shared versions too, we disable it for mingw-targets. */ ++-#ifdef __MINGW32__ ++ #undef GTHREAD_USE_WEAK ++ #define GTHREAD_USE_WEAK 0 ++-#endif ++ ++ #ifndef GTHREAD_USE_WEAK ++ #define GTHREAD_USE_WEAK 1 ++From 0a9ed0479203cb7e69c3745b0c259007410f39ba Mon Sep 17 00:00:00 2001 ++From: Szabolcs Nagy ++Date: Sat, 24 Oct 2015 20:09:53 +0000 ++Subject: [PATCH 47/47] libgcc_s: Use alias for __cpu_indicator_init instead of ++ symver ++ ++Adapter from ++ ++https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html ++ ++This fix was debated but hasnt been applied gcc upstream since ++they expect musl to support '@' in symbol versioning which is ++a sun/gnu versioning extention. This patch however avoids the ++need for the '@' symbols at all ++ ++libgcc/Changelog: ++ ++2015-05-11 Szabolcs Nagy ++ ++ * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. ++ (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. ++ ++ * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. ++ ++gcc/Changelog: ++ ++2015-05-11 Szabolcs Nagy ++ ++ * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init ++ call __cpu_indicator_init_local instead of __cpu_indicator_init. ++ ++Signed-off-by: Khem Raj ++--- ++Upstream-Status: Rejected ++ ++ gcc/config/i386/i386.c | 4 ++-- ++ libgcc/config/i386/cpuinfo.c | 6 +++--- ++ libgcc/config/i386/t-linux | 2 +- ++ 3 files changed, 6 insertions(+), 6 deletions(-) ++ ++diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c ++index 861a029..1c97d72 100644 ++--- a/gcc/config/i386/i386.c +++++ b/gcc/config/i386/i386.c ++@@ -40323,10 +40323,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, ++ { ++ case IX86_BUILTIN_CPU_INIT: ++ { ++- /* Make it call __cpu_indicator_init in libgcc. */ +++ /* Make it call __cpu_indicator_init_local in libgcc.a. */ ++ tree call_expr, fndecl, type; ++ type = build_function_type_list (integer_type_node, NULL_TREE); ++- fndecl = build_fn_decl ("__cpu_indicator_init", type); +++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); ++ call_expr = build_call_expr (fndecl, 0); ++ return expand_expr (call_expr, target, mode, EXPAND_NORMAL); ++ } ++diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c ++index 8c2248d..6c82f15 100644 ++--- a/libgcc/config/i386/cpuinfo.c +++++ b/libgcc/config/i386/cpuinfo.c ++@@ -485,7 +485,7 @@ __cpu_indicator_init (void) ++ return 0; ++ } ++ ++-#if defined SHARED && defined USE_ELF_SYMVER ++-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); ++-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); +++#ifndef SHARED +++int __cpu_indicator_init_local (void) +++ __attribute__ ((weak, alias ("__cpu_indicator_init"))); ++ #endif ++diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux ++index 11bb46e..4f47f7b 100644 ++--- a/libgcc/config/i386/t-linux +++++ b/libgcc/config/i386/t-linux ++@@ -3,4 +3,4 @@ ++ # t-slibgcc-elf-ver and t-linux ++ SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver ++ ++-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER +++HOST_LIBGCC2_CFLAGS += -mlong-double-80 ++-- ++2.9.0 ++ ++--- a/boehm-gc/os_dep.c 2013-09-17 07:46:00.969884340 +0000 +++++ b/boehm-gc/os_dep.c 2013-09-17 06:53:53.629884946 +0000 ++@@ -26,7 +26,7 @@ ++ # define __KERNEL__ ++ # include ++ # undef __KERNEL__ ++-# else +++# elif defined(__GLIBC__) ++ /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */ ++ /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */ ++ /* prototypes, so we have to include the top-level sigcontext.h to */ ++--- a/boehm-gc/dyn_load.c +++++ b/boehm-gc/dyn_load.c ++@@ -459,9 +459,7 @@ ++ /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */ ++ /* versions. Thanks to Jakub Jelinek for most of the code. */ ++ ++-# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \ ++- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ ++- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) +++# if (defined(LINUX) || defined (__GLIBC__)) ++ ++ /* We have the header files for a glibc that includes dl_iterate_phdr. */ ++ /* It may still not be available in the library on the target system. */ ++--- a/boehm-gc/include/private/gcconfig.h +++++ b/boehm-gc/include/private/gcconfig.h ++@@ -684,7 +684,7 @@ ++ # ifdef __ELF__ ++ # define DYNAMIC_LOADING ++ # include ++-# if defined(__GLIBC__)&& __GLIBC__>=2 +++# if 1 ++ # define SEARCH_FOR_DATA_START ++ # else /* !GLIBC2 */ ++ extern char **__environ; ++@@ -1147,7 +1147,7 @@ ++ # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff)) ++ # endif ++ # include ++-# if defined(__GLIBC__) && __GLIBC__ >= 2 +++# if 1 ++ # define SEARCH_FOR_DATA_START ++ # else ++ extern char **__environ; ++@@ -1367,7 +1367,7 @@ ++ # define HBLKSIZE 4096 ++ # endif ++ # define USE_GENERIC_PUSH_REGS ++-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2 +++# if 1 ++ # define LINUX_STACKBOTTOM ++ # else ++ # define STACKBOTTOM 0x80000000 ++@@ -1858,7 +1858,7 @@ ++ # ifdef __ELF__ ++ # define DYNAMIC_LOADING ++ # include ++-# if defined(__GLIBC__) && __GLIBC__ >= 2 +++# if 1 ++ # define SEARCH_FOR_DATA_START ++ # else ++ extern char **__environ; ++--- a/libjava/gnu/gcj/convert/natIconv.cc +++++ b/libjava/gnu/gcj/convert/natIconv.cc ++@@ -24,6 +24,13 @@ ++ ++ #ifdef HAVE_ICONV ++ #include +++#include +++ +++#if __BYTE_ORDER == __BIG_ENDIAN +++#define UCS2_CHARSET "UCS-2BE" +++#else +++#define UCS2_CHARSET "UCS-2LE" +++#endif ++ ++ template ++ static inline size_t ++@@ -45,7 +52,7 @@ ++ _Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer); ++ buffer[len] = '\0'; ++ ++- iconv_t h = iconv_open ("UCS-2", buffer); +++ iconv_t h = iconv_open (UCS2_CHARSET, buffer); ++ if (h == (iconv_t) -1) ++ throw new ::java::io::UnsupportedEncodingException (encoding); ++ ++@@ -99,18 +106,6 @@ ++ throw new ::java::io::CharConversionException (); ++ } ++ ++- if (iconv_byte_swap) ++- { ++- size_t max = (old_out - outavail) / sizeof (jchar); ++- for (size_t i = 0; i < max; ++i) ++- { ++- // Byte swap. ++- jchar c = (((out[outpos + i] & 0xff) << 8) ++- | ((out[outpos + i] >> 8) & 0xff)); ++- outbuf[i] = c; ++- } ++- } ++- ++ inpos += old_in - inavail; ++ return (old_out - outavail) / sizeof (jchar); ++ #else /* HAVE_ICONV */ ++@@ -145,7 +140,7 @@ ++ _Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer); ++ buffer[len] = '\0'; ++ ++- iconv_t h = iconv_open (buffer, "UCS-2"); +++ iconv_t h = iconv_open (buffer, UCS2_CHARSET); ++ if (h == (iconv_t) -1) ++ throw new ::java::io::UnsupportedEncodingException (encoding); ++ ++@@ -187,20 +182,6 @@ ++ char *inbuf = (char *) &chars[inpos]; ++ char *outbuf = (char *) &out[count]; ++ ++- if (iconv_byte_swap) ++- { ++- // Ugly performance penalty -- don't use losing systems! ++- temp_buffer = (jchar *) _Jv_Malloc (inlength * sizeof (jchar)); ++- for (int i = 0; i < inlength; ++i) ++- { ++- // Byte swap. ++- jchar c = (((chars[inpos + i] & 0xff) << 8) ++- | ((chars[inpos + i] >> 8) & 0xff)); ++- temp_buffer[i] = c; ++- } ++- inbuf = (char *) temp_buffer; ++- } ++- ++ size_t loop_old_in = old_in; ++ while (1) ++ { ++@@ -252,44 +233,7 @@ ++ jboolean ++ gnu::gcj::convert::IOConverter::iconv_init (void) ++ { ++- // Some versions of iconv() always return their UCS-2 results in ++- // big-endian order, and they also require UCS-2 inputs to be in ++- // big-endian order. For instance, glibc 2.1.3 does this. If the ++- // UTF-8=>UCS-2 iconv converter has this feature, then we assume ++- // that all UCS-2 converters do. (This might not be the best ++- // heuristic, but is is all we've got.) ++- jboolean result = false; ++-#ifdef HAVE_ICONV ++- iconv_t handle = iconv_open ("UCS-2", "UTF-8"); ++- if (handle != (iconv_t) -1) ++- { ++- jchar c; ++- unsigned char in[4]; ++- char *inp, *outp; ++- size_t inc, outc, r; ++- ++- // This is the UTF-8 encoding of \ufeff. At least Tru64 UNIX libiconv ++- // needs the trailing NUL byte, otherwise iconv fails with EINVAL. ++- in[0] = 0xef; ++- in[1] = 0xbb; ++- in[2] = 0xbf; ++- in[3] = 0x00; ++- ++- inp = (char *) in; ++- inc = 4; ++- outp = (char *) &c; ++- outc = 2; ++- ++- r = iconv_adapter (iconv, handle, &inp, &inc, &outp, &outc); ++- // Conversion must be complete for us to use the result. ++- if (r != (size_t) -1 && inc == 0 && outc == 0) ++- result = (c != 0xfeff); ++- ++- // Release iconv handle. ++- iconv_close (handle); ++- } ++-#endif /* HAVE_ICONV */ ++- return result; +++ return false; ++ } ++ ++ void ++--- a/libjava/gnu/classpath/natSystemProperties.cc +++++ b/libjava/gnu/classpath/natSystemProperties.cc ++@@ -289,7 +289,7 @@ ++ // just default to `en_US'. ++ setlocale (LC_ALL, ""); ++ char *locale = setlocale (LC_MESSAGES, ""); ++- if (locale && strlen (locale) >= 2) +++ if (locale && strlen (locale) >= 2 && (locale[2] == '\0' || locale[2] == '_')) ++ { ++ char buf[3]; ++ buf[2] = '\0'; ++--- a/libjava/posix-threads.cc +++++ b/libjava/posix-threads.cc ++@@ -657,6 +657,7 @@ ++ struct sched_param param; ++ pthread_attr_t attr; ++ struct starter *info; +++ size_t ss; ++ ++ if (data->flags & FLAG_START) ++ return; ++@@ -675,8 +676,25 @@ ++ // Set stack size if -Xss option was given. ++ if (gcj::stack_size > 0) ++ { ++- int e = pthread_attr_setstacksize (&attr, gcj::stack_size); +++ ss = gcj::stack_size; +++ } +++ else +++ { +++ int e = pthread_attr_getstacksize (&attr, &ss); +++ if (e != 0) +++ JvFail (strerror (e)); +++ +++ // Request at least 1meg of stack +++ if (ss >= 1024 * 1024) +++ ss = 0; +++ else +++ ss = 1024 * 1024; +++ } +++ +++ if (ss) +++ { +++ int e = pthread_attr_setstacksize (&attr, ss); ++ if (e != 0) ++ JvFail (strerror (e)); ++ } ++ ++ info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter)); ++--- a/libgo/mksysinfo.sh +++++ b/libgo/mksysinfo.sh ++@@ -166,6 +166,13 @@ cat > sysinfo.c < ++ #endif +++#if !defined(__GLIBC__) +++#include +++#undef off64_t +++#undef loff_t +++typedef off_t loff_t; +++typedef off_t off64_t; +++#endif ++ ++ /* Constants that may only be defined as expressions on some systems, ++ expressions too complex for -fdump-go-spec to handle. These are ++--- a/libgo/runtime/proc.c 2016-09-23 16:17:22.000000000 +0200 +++++ b/libgo/runtime/proc.c 2016-10-03 07:33:42.186000000 +0200 ++@@ -150,6 +150,20 @@ ++ asm ("st %%g7, %0" : "=m"(c->uc_mcontext.gregs[REG_G7])); ++ } ++ +++# elif !defined(__GLIBC__) +++ +++static inline void +++initcontext(void) +++{ +++ // FIXME: Do we need to save (part of) the current context? +++} +++ +++static inline void +++fixcontext(ucontext_t *c __attribute__ ((unused))) +++{ +++ // FIXME: Do we need to restore (part of) the current context? +++} +++ ++ # else ++ ++ # error unknown case for SETCONTEXT_CLOBBERS_TLS +diff --git a/srcpkgs/gcc/patches/fix-cxxflags-passing.patch b/srcpkgs/gcc/patches/fix-cxxflags-passing.patch +new file mode 100644 +index 0000000..dda2a50 +--- /dev/null ++++ b/srcpkgs/gcc/patches/fix-cxxflags-passing.patch +@@ -0,0 +1,10 @@ ++--- Makefile.in.orig +++++ Makefile.in ++@@ -169,6 +169,7 @@ ++ # built for the build system to override those in BASE_FLAGS_TO_PASSS. ++ EXTRA_BUILD_FLAGS = \ ++ CFLAGS="$(CFLAGS_FOR_BUILD)" \ +++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ ++ LDFLAGS="$(LDFLAGS_FOR_BUILD)" ++ ++ # This is the list of directories to built for the host system. +diff --git a/srcpkgs/gcc/patches/fix-musl-execinfo.patch b/srcpkgs/gcc/patches/fix-musl-execinfo.patch +new file mode 100644 +index 0000000..583eac7 +--- /dev/null ++++ b/srcpkgs/gcc/patches/fix-musl-execinfo.patch +@@ -0,0 +1,33 @@ ++There is no in musl libc ++ ++--- libvtv/vtv_rts.cc 2016-09-23 16:17:11.000000000 +0200 +++++ libvtc/vtv_rts.cc 2016-09-25 15:08:57.896000000 +0200 ++@@ -124,7 +124,7 @@ ++ #include ++ #include ++ #include ++-#else +++#elif defined (__GLIBC__) ++ #include ++ #endif ++ ++--- libvtv/vtv_utils.cc 2016-09-23 16:17:11.000000000 +0200 +++++ libvtv/vtv_utils.cc 2016-09-25 15:15:35.529000000 +0200 ++@@ -34,7 +34,7 @@ ++ #include ++ #if defined (__CYGWIN__) || defined (__MINGW32__) ++ #include ++-#else +++#elif defined (__GLIBC__) ++ #include ++ #endif ++ ++@@ -178,7 +178,7 @@ ++ ++ __vtv_add_to_log (vtv_failures_log_fd, "%s", log_msg); ++ ++-#if !defined (__CYGWIN__) && !defined (__MINGW32__) +++#if !defined (__CYGWIN__) && !defined (__MINGW32__) && defined(__GLIBC__) ++ if (generate_backtrace) ++ { ++ #define STACK_DEPTH 20 +diff --git a/srcpkgs/gcc/patches/gcc-spec-env-r1.patch b/srcpkgs/gcc/patches/gcc-spec-env-r1.patch +deleted file mode 100644 +index 3eb0141..0000000 +--- a/srcpkgs/gcc/patches/gcc-spec-env-r1.patch ++++ /dev/null +@@ -1,87 +0,0 @@ +-2013-08-22 Magnus Granberg +- +- * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var +- and move the process of the user specifed specs. +- +- This allows us to easily control pie/ssp defaults with gcc-config profiles. +- Original patch by Rob Holland +- Extended to support multiple entries separated by ':' by Kevin F. Quinn +- Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill +- Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg +- +---- gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100 +-+++ gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200 +-@@ -6427,6 +6428,48 @@ main (int argc, char **argv) +- do_option_spec (option_default_specs[i].name, +- option_default_specs[i].spec); +- +-+#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32)) +-+ /* Add specs listed in GCC_SPECS. Note; in the process of separating +-+ * each spec listed, the string is overwritten at token boundaries +-+ * (':') with '\0', an effect of strtok_r(). +-+ */ +-+ specs_file = getenv ("GCC_SPECS"); +-+ if (specs_file && (strlen(specs_file) > 0)) +-+ { +-+ char *spec, *saveptr; +-+ for (spec=strtok_r(specs_file,":",&saveptr); +-+ spec!=NULL; +-+ spec=strtok_r(NULL,":",&saveptr)) +-+ { +-+ struct user_specs *user = (struct user_specs *) +-+ xmalloc (sizeof (struct user_specs)); +-+ user->next = (struct user_specs *) 0; +-+ user->filename = spec; +-+ if (user_specs_tail) +-+ user_specs_tail->next = user; +-+ else +-+ user_specs_head = user; +-+ user_specs_tail = user; +-+ } +-+ } +-+#endif +-+ /* Process any user specified specs in the order given on the command +-+ * line. */ +-+ for (uptr = user_specs_head; uptr; uptr = uptr->next) +-+ { +-+ char *filename = find_a_file (&startfile_prefixes, uptr->filename, +-+ R_OK, true); +-+ read_specs (filename ? filename : uptr->filename, false, true); +-+ } +-+ /* Process any user self specs. */ +-+ { +-+ struct spec_list *sl; +-+ for (sl = specs; sl; sl = sl->next) +-+ if (sl->name_len == sizeof "self_spec" - 1 +-+ && !strcmp (sl->name, "self_spec")) +-+ do_self_spec (*sl->ptr_spec); +-+ } +-+ +- /* Process DRIVER_SELF_SPECS, adding any new options to the end +- of the command line. */ +- +-@@ -6535,24 +6578,6 @@ main (int argc, char **argv) +- PREFIX_PRIORITY_LAST, 0, 1); +- } +- +-- /* Process any user specified specs in the order given on the command +-- line. */ +-- for (uptr = user_specs_head; uptr; uptr = uptr->next) +-- { +-- char *filename = find_a_file (&startfile_prefixes, uptr->filename, +-- R_OK, true); +-- read_specs (filename ? filename : uptr->filename, false, true); +-- } +-- +-- /* Process any user self specs. */ +-- { +-- struct spec_list *sl; +-- for (sl = specs; sl; sl = sl->next) +-- if (sl->name_len == sizeof "self_spec" - 1 +-- && !strcmp (sl->name, "self_spec")) +-- do_self_spec (*sl->ptr_spec); +-- } +-- +- if (compare_debug) +- { +- enum save_temps save; +diff --git a/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch b/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch +index 7265900..e42f4d6 100644 +--- a/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch ++++ b/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch +@@ -12,7 +12,7 @@ time_t is some day promoted to a 64 bit value. + + --- libcpp/macro.c + +++ libcpp/macro.c +-@@ -349,14 +349,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) ++@@ -356,14 +356,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) + slow on some systems. */ + time_t tt; + struct tm *tb = NULL; +diff --git a/srcpkgs/gcc/patches/musl-posix_memalign-c++.patch b/srcpkgs/gcc/patches/musl-posix_memalign-c++.patch +deleted file mode 100644 +index f285f73..0000000 +--- a/srcpkgs/gcc/patches/musl-posix_memalign-c++.patch ++++ /dev/null +@@ -1,30 +0,0 @@ +-diff --git gcc/config/i386/pmm_malloc.h gcc/config/i386/pmm_malloc.h +-index 901001b..321fcd3 100644 +---- gcc/config/i386/pmm_malloc.h +-+++ gcc/config/i386/pmm_malloc.h +-@@ -27,12 +27,13 @@ +- #include +- +- /* We can't depend on since the prototype of posix_memalign +-- may not be visible. */ +-+ may not be visible and we can't pollute the namespace either. */ +- #ifndef __cplusplus +--extern int posix_memalign (void **, size_t, size_t); +-+extern int __gcc_posix_memalign (void **, size_t, size_t) +- #else +--extern "C" int posix_memalign (void **, size_t, size_t) throw (); +-+extern "C" int __gcc_posix_memalign (void **, size_t, size_t) throw () +- #endif +-+__asm__("posix_memalign"); +- +- static __inline void * +- _mm_malloc (size_t size, size_t alignment) +-@@ -42,7 +43,7 @@ _mm_malloc (size_t size, size_t alignment) +- return malloc (size); +- if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4)) +- alignment = sizeof (void *); +-- if (posix_memalign (&ptr, alignment, size) == 0) +-+ if (__gcc_posix_memalign (&ptr, alignment, size) == 0) +- return ptr; +- else +- return NULL; +diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template +index 6215817..e89394e 100644 +--- a/srcpkgs/gcc/template ++++ b/srcpkgs/gcc/template +@@ -1,15 +1,16 @@ + # Template build file for 'gcc' ++_majorver=6.2 ++_gcjrel=17 ++ + pkgname=gcc +-_majorver=4.9 +-version=${_majorver}.4 ++version=${_majorver}.1 + revision=1 + short_desc="The GNU C Compiler" + maintainer="Juan RP " + homepage="http://gcc.gnu.org" + license="GFDL-1.2, GPL-3, LGPL-2.1" +-distfiles="${GNU_SITE}/gcc/gcc-$version/gcc-$version.tar.bz2" +-checksum=6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 +-_gcjrel=15 ++distfiles="http://distfiles.voidlinux.de/gcc-$version/gcc-$version.tar.xz" ++checksum=6bc5af0d2138bb8492c62ced00776b76bbc98b7297287aaa55adbe7d07786ac8 + + nopie=yes + lib32disabled=yes +@@ -18,25 +19,24 @@ bootstrap=yes + if [ "$CHROOT_READY" ]; then + hostmakedepends="perl flex" + fi +-makedepends="zlib-devel libmpc-devel cloog-devel" +-depends="binutils libgcc-devel-${version}_${revision}" ++makedepends="zlib-devel libmpc-devel isl15-devel" ++depends="binutils libgcc-devel-${version}_${revision} ++ libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}" + + subpackages="libgcc libgomp libgomp-devel libatomic libatomic-devel" +-subpackages+=" libssp libssp-devel gcc-c++" ++subpackages+=" libssp libssp-devel" + + if [ -n "$CHROOT_READY" -a -z "$CROSS_BUILD" ]; then ++ # Required by gcj ++ hostmakedepends+=" zip unzip" + subpackages+=" gcc-fortran gcc-objc gcc-objc++" + subpackages+=" libgfortran-devel libgfortran" + subpackages+=" libobjc-devel libobjc" +- ++ subpackages+=" gcc-gcj libgcj-devel libgcj gcc-gcj-jdk-compat" + case "$XBPS_TARGET_MACHINE" in +- *-musl) +- # XXX disable go and java with musl ++ *-musl) # Go won't link for musl libc + ;; +- *) +- # Required by gcj +- hostmakedepends+=" zip unzip" +- subpackages+=" gcc-go libgo-devel libgo gcc-gcj libgcj-devel libgcj gcc-gcj-jdk-compat" ++ *) subpackages+=" gcc-go libgo-devel libgo" + ;; + esac + fi +@@ -74,19 +74,20 @@ case "$XBPS_TARGET_MACHINE" in + esac + case "$XBPS_TARGET_MACHINE" in + mips*) ;; ++ x86_64*|i686*) subpackages+=" libitm libitm-devel libmpx libmpx-devel";; + *) subpackages+=" libitm libitm-devel";; + esac + ++# gcc-c++ merged in main pkg ++replaces="gcc-c++>=0" ++ + pre_configure() { + case "$XBPS_TARGET_MACHINE" in +- *-musl) patch -Np1 -i ${FILESDIR}/gcc-4.9.2-musl.diff;; ++ *-musl) patch -Np1 -i ${FILESDIR}/gcc-${version}-musl.diff;; + esac + # _FORTIFY_SOURCE needs an optimization level. + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {gcc,libiberty}/configure +- # As specified in the LFS book, disable installing libiberty. +- sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in +- # Do not run fixincludes +- sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in ++ mkdir gcc_build + } + do_configure() { + local _langs _args _hash +@@ -118,7 +119,9 @@ do_configure() { + export GCC_FOR_TARGET="$CC" + export CXX_FOR_TARGET="$CXX" + +- _args+=" --disable-multilib --host=$XBPS_CROSS_TRIPLET --with-build-sysroot=${XBPS_CROSS_BASE}" ++ _args+=" --disable-multilib" ++ _args+=" --host=$XBPS_CROSS_TRIPLET" ++ _args+=" --with-build-sysroot=${XBPS_CROSS_BASE}" + _args+=" --enable-sjlj-exceptions=no" + else + if [ -z "$CHROOT_READY" ]; then +@@ -127,15 +130,18 @@ do_configure() { + _args+=" --with-mpfr=${XBPS_MASTERDIR}/usr" + _args+=" --with-isl=${XBPS_MASTERDIR}/usr" + _args+=" --with-mpc=${XBPS_MASTERDIR}/usr" +- _args+=" --with-cloog=${XBPS_MASTERDIR}/usr" + _args+=" --build=${_triplet}" + else ++ _langs="c,c++,objc,obj-c++,fortran,lto,java" + case "$XBPS_TARGET_MACHINE" in +- # XXX disable go and java with musl +- *-musl) _langs="c,c++,objc,obj-c++,fortran,lto";; +- *) _langs="c,c++,objc,obj-c++,fortran,lto,go,java";; ++ *-musl) # Linking libgo.so is broken for musl libc ++ ;; ++ *) _langs+=",go" ++ ;; + esac +- _args+=" --build=${_triplet} --enable-java-gc=boehm --enable-fast-character" ++ _args+=" --build=${_triplet}" ++ _args+=" --enable-java-gc=boehm" ++ _args+=" --enable-fast-character" + fi + fi + +@@ -143,34 +149,60 @@ do_configure() { + aarch64*|*-musl) _args+=" --disable-libsanitizer";; + esac + case "$XBPS_TARGET_MACHINE" in +- *-musl) _args+=" --disable-symvers libat_cv_have_ifunc=no";; ++ *-musl) _args+=" --disable-symvers" ++ _args+=" libat_cv_have_ifunc=no" ++ ;; + esac + + export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}" + export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}" + +- CONFIG_SHELL=/bin/bash \ +- ./configure --prefix=/usr --mandir=/usr/share/man \ +- --infodir=/usr/share/info --libexecdir=/usr/lib --libdir=/usr/lib \ +- --enable-threads=posix --enable-__cxa_atexit --disable-multilib \ +- --with-system-zlib --enable-shared --enable-lto \ +- --enable-linker-build-id --disable-werror --disable-nls \ +- --enable-checking=release --disable-libstdcxx-pch \ +- --enable-cloog-backend=isl --with-linker-hash-style=$_hash \ +- --enable-languages=${_langs} ${_args} ++ _args+=" --prefix=/usr" ++ _args+=" --mandir=/usr/share/man" ++ _args+=" --infodir=/usr/share/info" ++ _args+=" --libexecdir=/usr/lib" ++ _args+=" --libdir=/usr/lib" ++ _args+=" --enable-threads=posix" ++ _args+=" --enable-__cxa_atexit" ++ _args+=" --disable-multilib" ++ _args+=" --with-system-zlib" ++ _args+=" --enable-shared" ++ _args+=" --enable-lto" ++ _args+=" --enable-vtable-verify" ++ _args+=" --enable-linker-build-id" ++ _args+=" --enable-serial-configure" ++ _args+=" --disable-werror" ++ _args+=" --disable-nls" ++ _args+=" --enable-checking=release" ++ _args+=" --disable-libstdcxx-pch" ++ _args+=" --with-isl" ++ _args+=" --with-linker-hash-style=$_hash" ++ _args+=" --disable-libunwind-exceptions" ++ _args+=" --disable-target-libiberty" ++ _args+=" --with-default-libstdcxx-abi=gcc4-compatible" ++ _args+=" --enable-languages=${_langs}" ++ ++ mkdir -p build ++ cd build ++ CONFIG_SHELL=/bin/bash ${wrksrc}/configure ${_args} + } + do_build() { ++ if [ -z "$CHROOT_READY" ]; then ++ export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib" ++ fi ++ cd build + make ${makejobs} + } + pre_install() { + if [ "$CROSS_BUILD" ]; then + # XXX otherwise links to host libpthread +- for f in $(find ${wrksrc}/${XBPS_CROSS_TRIPLET} -type f -name libtool); do ++ for f in $(find ${wrksrc}/build/${XBPS_CROSS_TRIPLET} -type f -name libtool); do + sed -e "s,add_dir=\"-L\$libdir\",add_dir=\"-L${XBPS_CROSS_BASE}\$libdir\",g" -i $f + done + fi + } + do_install() { ++ cd build + case "$XBPS_TARGET_MACHINE" in + x86_64*|aarch64*) + vmkdir usr/lib +@@ -325,7 +357,7 @@ gcc-fortran_package() { + } + gcc-objc++_package() { + lib32disabled=yes +- depends="gcc-c++>=${_majorver} gcc-objc>=${_majorver}" ++ depends="gcc-objc>=${_majorver}" + short_desc+=" - Objective-C++ support" + pkg_install() { + vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1objplus +@@ -354,7 +386,7 @@ libgcj-devel_package() { + vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/gcj*" + vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jvm*" + vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jawt*" +- vmove usr/lib/pkgconfig/libgcj-${_majorver}.pc ++ vmove usr/lib/pkgconfig/libgcj-${_majorver%.*}.pc + } + } + libgcj_package() { +@@ -374,7 +406,10 @@ libgfortran-devel_package() { + short_desc+=" - Fortran library - development files" + pkg_install() { + vmove usr/lib/libgfortran.a +- vmove usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a ++ # This does not seem to exist anymore? ++ if [ -f usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a ]; then ++ vmove usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a ++ fi + } + } + libgfortran_package() { +@@ -391,6 +426,7 @@ libgo-devel_package() { + pkg_install() { + vmove usr/lib/libgo.a + vmove usr/lib/libgobegin.a ++ vmove usr/lib/libgo.so + } + } + libgo_package() { +@@ -529,6 +565,23 @@ libitm_package() { + vmove "usr/lib/libitm.so.*" + } + } ++libmpx-devel_package() { ++ depends="libmpx>=${_majorver}" ++ short_desc+=" - Intel MPX support - development files" ++ pkg_install() { ++ vmove usr/lib/libmpx.a ++ vmove usr/lib/libmpx.so ++ vmove usr/lib/libmpxwrappers.so ++ vmove usr/lib/libmpxwrappers.a ++ } ++} ++libmpx_package() { ++ short_desc+=" - Intel MPX support" ++ pkg_install() { ++ vmove usr/lib/libmpx.so.* ++ vmove usr/lib/libmpxwrappers.so.* ++ } ++} + libsanitizer-devel_package() { + depends="libsanitizer>=${_majorver}" + short_desc+=" - Sanitizer libraries - development files" +@@ -546,7 +599,7 @@ libsanitizer_package() { + } + } + libssp-devel_package() { +- depends="glibc-devel libssp>=${_majorver}" ++ depends="libssp>=${_majorver}" + short_desc+=" - SSP (StackSmashingProtection) library - development files" + pkg_install() { + vmove "usr/lib/libssp*.a" +@@ -576,15 +629,3 @@ libstdc++_package() { + vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION + } + } +-gcc-c++_package() { +- lib32disabled=yes +- depends="gcc>=${_majorver} libstdc++-devel>=${_majorver}" +- short_desc+=" - C++ support" +- pkg_install() { +- for f in g++ c++ ${_triplet}-g++ ${_triplet}-c++; do +- vmove usr/bin/${f} +- done +- vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1plus +- vmove usr/share/man/man1/g++.1 +- } +-} +diff --git a/srcpkgs/isl15-devel b/srcpkgs/isl15-devel +new file mode 120000 +index 0000000..ff1d954 +--- /dev/null ++++ b/srcpkgs/isl15-devel +@@ -0,0 +1 @@ ++isl15 +\ No newline at end of file +diff --git a/srcpkgs/isl15/template b/srcpkgs/isl15/template +new file mode 100644 +index 0000000..bc2c349 +--- /dev/null ++++ b/srcpkgs/isl15/template +@@ -0,0 +1,31 @@ ++# Template file for 'isl15' ++pkgname=isl15 ++version=0.16.1 ++revision=1 ++wrksrc="isl-${version}" ++bootstrap=yes ++build_style=gnu-configure ++makedepends="gmp-devel" ++short_desc="Integer Set Library" ++maintainer="Juan RP " ++homepage="http://freecode.com/projects/isl" ++license="LGPL-2.1" ++distfiles="http://isl.gforge.inria.fr/isl-${version}.tar.bz2" ++checksum=412538bb65c799ac98e17e8cfcdacbb257a57362acfaaff254b0fcae970126d2 ++ ++post_install() { ++ # Remove gdb python files. ++ rm -f ${DESTDIR}/usr/lib/*.py ++} ++ ++isl15-devel_package() { ++ depends="${makedepends} ${sourcepkg}>=${version}_${revision}" ++ short_desc+=" - development files" ++ conflicts="isl-devel>=0" ++ pkg_install() { ++ vmove usr/include ++ vmove usr/lib/pkgconfig ++ vmove "usr/lib/*.a" ++ vmove "usr/lib/*.so" ++ } ++} +diff --git a/srcpkgs/kernel-libc-headers/template b/srcpkgs/kernel-libc-headers/template +index 8e8a7f3..1c39f88 100644 +--- a/srcpkgs/kernel-libc-headers/template ++++ b/srcpkgs/kernel-libc-headers/template +@@ -1,6 +1,6 @@ + # Template file for 'kernel-libc-headers' + pkgname=kernel-libc-headers +-version=4.1.15 ++version=4.1.34 + revision=1 + bootstrap=yes + nostrip=yes +@@ -11,7 +11,7 @@ short_desc="The Linux API headers for userland development" + license="GPL-2" + homepage="http://www.kernel.org" + distfiles="http://www.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.xz" +-checksum=472288cc966188c5d7c511c6be0f78682843c9ca2d5d6c4d67d77455680359a3 ++checksum=412316b32b5c7a513ba3ab8e68fc443db4d9423f07b577473089def0ee7406af + + if [ "$CHROOT_READY" ]; then + hostmakedepends="perl" +diff --git a/srcpkgs/libmpx b/srcpkgs/libmpx +new file mode 120000 +index 0000000..b08d5af +--- /dev/null ++++ b/srcpkgs/libmpx +@@ -0,0 +1 @@ ++gcc +\ No newline at end of file +diff --git a/srcpkgs/libmpx-devel b/srcpkgs/libmpx-devel +new file mode 120000 +index 0000000..b08d5af +--- /dev/null ++++ b/srcpkgs/libmpx-devel +@@ -0,0 +1 @@ ++gcc +\ No newline at end of file +diff --git a/srcpkgs/rr/template b/srcpkgs/rr/template +index 1fa6abf..4b8c989 100644 +--- a/srcpkgs/rr/template ++++ b/srcpkgs/rr/template +@@ -16,7 +16,7 @@ checksum=b2b24a3f67df47576126421746cd2942a458d2825faa76e8bb3ca43edffa03d3 + nopie=yes + + case "$XBPS_MACHINE" in +- x86_64*) hostmakedepends+=" gcc-multilib gcc-c++-multilib" ;; ++ x86_64*) hostmakedepends+=" gcc-multilib" ;; + esac + + pre_configure() { +diff --git a/srcpkgs/virtualbox-ose/template b/srcpkgs/virtualbox-ose/template +index 1908c5d..b8e52cf 100644 +--- a/srcpkgs/virtualbox-ose/template ++++ b/srcpkgs/virtualbox-ose/template +@@ -22,7 +22,8 @@ makedepends="libressl-devel libcurl-devel libpng-devel libvpx-devel + xorg-server-devel device-mapper-devel docbook-xsl gsoap-devel" + + if [ "$XBPS_MACHINE" = "x86_64" ]; then +- makedepends+=" gcc-c++-multilib" ++ # Is this required? ++ makedepends+=" gcc-multilib" + fi + + depends="virtualbox-ose-dkms-${version}_${revision} hicolor-icon-theme desktop-file-utils dbus" +diff --git a/xbps-src b/xbps-src +index 03ac79d..87f3132 100755 +--- a/xbps-src ++++ b/xbps-src +@@ -403,9 +403,9 @@ readonly XBPS_VERSION_REQ="0.46" + readonly XBPS_VERSION=$(xbps-uhelper -V|awk '{print $2}') + readonly XBPS_SRC_VERSION="113" + export XBPS_MACHINE=$(xbps-uhelper arch) +-readonly XBPS_GCC_VERSION_MAJOR=4 +-readonly XBPS_GCC_VERSION_MINOR=9 +-readonly XBPS_GCC_VERSION_BUILD=4 ++readonly XBPS_GCC_VERSION_MAJOR=6 ++readonly XBPS_GCC_VERSION_MINOR=2 ++readonly XBPS_GCC_VERSION_BUILD=1 + readonly XBPS_GCC_VERSION=${XBPS_GCC_VERSION_MAJOR}.${XBPS_GCC_VERSION_MINOR}.${XBPS_GCC_VERSION_BUILD} + + # diff --git a/srcpkgs/gcc/files/gcc-4.9.2-musl.diff b/srcpkgs/gcc/files/gcc-4.9.2-musl.diff deleted file mode 100644 index 8baafd0bc9e..00000000000 --- a/srcpkgs/gcc/files/gcc-4.9.2-musl.diff +++ /dev/null @@ -1,730 +0,0 @@ -820c77b17a4a -# HG changeset patch -# Parent 1f830bec5a3f04b2718ce1395743d8e35c26341c -Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one. - -diff -r 1f830bec5a3f libstdc++-v3/configure.host ---- a/libstdc++-v3/configure.host Thu Jan 29 14:04:56 2015 -0500 -+++ b/libstdc++-v3/configure.host Thu Jan 29 14:06:11 2015 -0500 -@@ -264,6 +264,13 @@ - os_include_dir="os/bsd/freebsd" - ;; - gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) -+ # check for musl by target -+ case "${host_os}" in -+ *-musl*) -+ os_include_dir="os/generic" -+ ;; -+ *) -+ - if [ "$uclibc" = "yes" ]; then - os_include_dir="os/uclibc" - elif [ "$bionic" = "yes" ]; then -@@ -272,6 +279,9 @@ - os_include_dir="os/gnu-linux" - fi - ;; -+ -+ esac -+ ;; - hpux*) - os_include_dir="os/hpux" - ;; -# HG changeset patch -# Parent fc7bb9343dcd071463a63dfc1b356d579eb0872f -Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker. - -diff -r fc7bb9343dcd gcc/config.gcc ---- a/gcc/config.gcc Thu Jan 29 14:06:11 2015 -0500 -+++ b/gcc/config.gcc Thu Jan 29 14:06:13 2015 -0500 -@@ -594,7 +594,7 @@ - esac - - # Common C libraries. --tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3" -+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4" - - # 32-bit x86 processors supported by --with-arch=. Each processor - # MUST be separated by exactly one space. -@@ -719,6 +719,9 @@ - *-*-*uclibc*) - tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" - ;; -+ *-*-*musl*) -+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL" -+ ;; - *) - tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" - ;; -diff -r fc7bb9343dcd gcc/config/linux.h ---- a/gcc/config/linux.h Thu Jan 29 14:06:11 2015 -0500 -+++ b/gcc/config/linux.h Thu Jan 29 14:06:13 2015 -0500 -@@ -32,10 +32,12 @@ - #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC) - #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC) - #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC) -+#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL) - #else - #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) - #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC) - #define OPTION_BIONIC (linux_libc == LIBC_BIONIC) -+#define OPTION_MUSL (linux_libc == LIBC_MUSL) - #endif - - #define GNU_USER_TARGET_OS_CPP_BUILTINS() \ -@@ -53,18 +55,21 @@ - uClibc or Bionic is the default C library and whether - -muclibc or -mglibc or -mbionic has been passed to change the default. */ - --#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \ -- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}" -+#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \ -+ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}" - - #if DEFAULT_LIBC == LIBC_GLIBC --#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ -- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B) -+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ -+ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M) - #elif DEFAULT_LIBC == LIBC_UCLIBC --#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ -- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B) -+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ -+ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M) - #elif DEFAULT_LIBC == LIBC_BIONIC --#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ -- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U) -+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ -+ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M) -+#elif DEFAULT_LIBC == LIBC_MUSL -+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ -+ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B) - #else - #error "Unsupported DEFAULT_LIBC" - #endif /* DEFAULT_LIBC */ -@@ -84,21 +89,92 @@ - - #define GNU_USER_DYNAMIC_LINKER \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ -- BIONIC_DYNAMIC_LINKER) -+ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) - #define GNU_USER_DYNAMIC_LINKER32 \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \ -- BIONIC_DYNAMIC_LINKER32) -+ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32) - #define GNU_USER_DYNAMIC_LINKER64 \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \ -- BIONIC_DYNAMIC_LINKER64) -+ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64) - #define GNU_USER_DYNAMIC_LINKERX32 \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \ -- BIONIC_DYNAMIC_LINKERX32) -+ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32) - - /* Whether we have Bionic libc runtime */ - #undef TARGET_HAS_BIONIC - #define TARGET_HAS_BIONIC (OPTION_BIONIC) - -+/* musl avoids problematic includes by rearranging the include directories. -+ * Unfortunately, this is mostly duplicated from cppdefault.c */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#define INCLUDE_DEFAULTS_MUSL_GPP \ -+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \ -+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \ -+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \ -+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \ -+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \ -+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, -+ -+#ifdef LOCAL_INCLUDE_DIR -+#define INCLUDE_DEFAULTS_MUSL_LOCAL \ -+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \ -+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, -+#else -+#define INCLUDE_DEFAULTS_MUSL_LOCAL -+#endif -+ -+#ifdef PREFIX_INCLUDE_DIR -+#define INCLUDE_DEFAULTS_MUSL_PREFIX \ -+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0}, -+#else -+#define INCLUDE_DEFAULTS_MUSL_PREFIX -+#endif -+ -+#ifdef CROSS_INCLUDE_DIR -+#define INCLUDE_DEFAULTS_MUSL_CROSS \ -+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0}, -+#else -+#define INCLUDE_DEFAULTS_MUSL_CROSS -+#endif -+ -+#ifdef TOOL_INCLUDE_DIR -+#define INCLUDE_DEFAULTS_MUSL_TOOL \ -+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0}, -+#else -+#define INCLUDE_DEFAULTS_MUSL_TOOL -+#endif -+ -+#ifdef NATIVE_SYSTEM_HEADER_DIR -+#define INCLUDE_DEFAULTS_MUSL_NATIVE \ -+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ -+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 }, -+#else -+#define INCLUDE_DEFAULTS_MUSL_NATIVE -+#endif -+ -+#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) -+# undef INCLUDE_DEFAULTS_MUSL_LOCAL -+# define INCLUDE_DEFAULTS_MUSL_LOCAL -+# undef INCLUDE_DEFAULTS_MUSL_NATIVE -+# define INCLUDE_DEFAULTS_MUSL_NATIVE -+#else -+# undef INCLUDE_DEFAULTS_MUSL_CROSS -+# define INCLUDE_DEFAULTS_MUSL_CROSS -+#endif -+ -+#undef INCLUDE_DEFAULTS -+#define INCLUDE_DEFAULTS \ -+ { \ -+ INCLUDE_DEFAULTS_MUSL_GPP \ -+ INCLUDE_DEFAULTS_MUSL_PREFIX \ -+ INCLUDE_DEFAULTS_MUSL_CROSS \ -+ INCLUDE_DEFAULTS_MUSL_TOOL \ -+ INCLUDE_DEFAULTS_MUSL_NATIVE \ -+ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ -+ { 0, 0, 0, 0, 0, 0 } \ -+ } -+#endif -+ - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ - /* This is a *uclinux* target. We don't define below macros to normal linux - versions, because doing so would require *uclinux* targets to include -diff -r fc7bb9343dcd gcc/config/linux.opt ---- a/gcc/config/linux.opt Thu Jan 29 14:06:11 2015 -0500 -+++ b/gcc/config/linux.opt Thu Jan 29 14:06:13 2015 -0500 -@@ -30,3 +30,7 @@ - muclibc - Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic) - Use uClibc C library -+ -+mmusl -+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc) -+Use musl C library -diff -r fc7bb9343dcd gcc/ginclude/stddef.h ---- a/gcc/ginclude/stddef.h Thu Jan 29 14:06:11 2015 -0500 -+++ b/gcc/ginclude/stddef.h Thu Jan 29 14:06:13 2015 -0500 -@@ -181,6 +181,7 @@ - #ifndef _GCC_SIZE_T - #ifndef _SIZET_ - #ifndef __size_t -+#ifndef __DEFINED_size_t /* musl */ - #define __size_t__ /* BeOS */ - #define __SIZE_T__ /* Cray Unicos/Mk */ - #define _SIZE_T -@@ -197,6 +198,7 @@ - #define ___int_size_t_h - #define _GCC_SIZE_T - #define _SIZET_ -+#define __DEFINED_size_t /* musl */ - #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ - || defined(__FreeBSD_kernel__) - /* __size_t is a typedef on FreeBSD 5, must not trash it. */ -@@ -214,6 +216,7 @@ - typedef long ssize_t; - #endif /* __BEOS__ */ - #endif /* !(defined (__GNUG__) && defined (size_t)) */ -+#endif /* __DEFINED_size_t */ - #endif /* __size_t */ - #endif /* _SIZET_ */ - #endif /* _GCC_SIZE_T */ -# HG changeset patch -# Parent ad6952ac547606025a6fb8496584cbfe1b73a8b7 -A fix for libgomp to correctly request a POSIX version for time support. - -diff -r ad6952ac5476 libgomp/config/posix/time.c ---- a/libgomp/config/posix/time.c Thu Jan 29 14:06:13 2015 -0500 -+++ b/libgomp/config/posix/time.c Thu Jan 29 14:06:16 2015 -0500 -@@ -28,6 +28,8 @@ - The following implementation uses the most simple POSIX routines. - If present, POSIX 4 clocks should be used instead. */ - -+#define _POSIX_C_SOURCE 199309L /* for clocks */ -+ - #include "libgomp.h" - #include - #if TIME_WITH_SYS_TIME -diff -r ffa879f29d52 libgcc/unwind-dw2-fde-dip.c ---- a/libgcc/unwind-dw2-fde-dip.c Thu Jan 29 14:06:15 2015 -0500 -+++ b/libgcc/unwind-dw2-fde-dip.c Thu Jan 29 14:06:18 2015 -0500 -@@ -46,33 +46,13 @@ - #include "unwind-compat.h" - #include "gthr.h" - --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ -- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) -+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) - # define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__BIONIC__) --# define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__FreeBSD__) && __FreeBSD__ >= 7 --# define ElfW __ElfN --# define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__OpenBSD__) --# define ElfW(type) Elf_##type --# define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(TARGET_DL_ITERATE_PHDR) \ -- && defined(__sun__) && defined(__svr4__) --# define USE_PT_GNU_EH_FRAME -+# ifdef __OpenBSD__ -+# define ElfW(type) Elf_##type -+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7 -+# define ElfW __ElfN -+# endif - #endif - - #if defined(USE_PT_GNU_EH_FRAME) -diff -r b35df09b819f gcc/configure ---- a/gcc/configure Thu Jan 29 14:06:18 2015 -0500 -+++ b/gcc/configure Thu Jan 29 14:06:20 2015 -0500 -@@ -27356,6 +27356,9 @@ - else - gcc_cv_libc_provides_ssp=no - case "$target" in -+ *-*-musl*) -+ # All versions of musl provide stack protector -+ gcc_cv_libc_provides_ssp=yes;; - *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) - # glibc 2.4 and later provides __stack_chk_fail and - # either __stack_chk_guard, or TLS access to stack guard canary. -@@ -27388,6 +27391,7 @@ - # ) and for now - # simply assert that glibc does provide this, which is true for all - # realistically usable GNU/Hurd configurations. -+ # All supported versions of musl provide it as well - gcc_cv_libc_provides_ssp=yes;; - *-*-darwin* | *-*-freebsd*) - ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail" -@@ -27477,6 +27481,9 @@ - gcc_cv_target_dl_iterate_phdr=no - fi - ;; -+ *-linux-musl*) -+ gcc_cv_target_dl_iterate_phdr=yes -+ ;; - esac - - if test x$gcc_cv_target_dl_iterate_phdr = xyes; then -diff -r b35df09b819f gcc/configure.ac ---- a/gcc/configure.ac Thu Jan 29 14:06:18 2015 -0500 -+++ b/gcc/configure.ac Thu Jan 29 14:06:20 2015 -0500 -@@ -5039,6 +5039,9 @@ - gcc_cv_libc_provides_ssp, - [gcc_cv_libc_provides_ssp=no - case "$target" in -+ *-*-musl*) -+ # All versions of musl provide stack protector -+ gcc_cv_libc_provides_ssp=yes;; - *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) - # glibc 2.4 and later provides __stack_chk_fail and - # either __stack_chk_guard, or TLS access to stack guard canary. -@@ -5065,6 +5068,7 @@ - # ) and for now - # simply assert that glibc does provide this, which is true for all - # realistically usable GNU/Hurd configurations. -+ # All supported versions of musl provide it as well - gcc_cv_libc_provides_ssp=yes;; - *-*-darwin* | *-*-freebsd*) - AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes], -@@ -5131,6 +5135,9 @@ - gcc_cv_target_dl_iterate_phdr=no - fi - ;; -+ *-linux-musl*) -+ gcc_cv_target_dl_iterate_phdr=yes -+ ;; - esac - GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR]) - if test x$gcc_cv_target_dl_iterate_phdr = xyes; then -# HG changeset patch -# Parent b6a339cae9f0607a291a2fe8de80caecd48f1ebd -Get rid of ever-broken fixincludes on musl. - -diff -r b6a339cae9f0 fixincludes/mkfixinc.sh ---- a/fixincludes/mkfixinc.sh Thu Jan 29 14:06:20 2015 -0500 -+++ b/fixincludes/mkfixinc.sh Thu Jan 29 14:06:22 2015 -0500 -@@ -19,7 +19,8 @@ - powerpc-*-eabi* | \ - powerpc-*-rtems* | \ - powerpcle-*-eabisim* | \ -- powerpcle-*-eabi* ) -+ powerpcle-*-eabi* | \ -+ *-musl* ) - # IF there is no include fixing, - # THEN create a no-op fixer and exit - (echo "#! /bin/sh" ; echo "exit 0" ) > ${target} -# HG changeset patch -# Parent 6c0bb7083dd2eba825f2693dc30d0e39359c1a66 -Support for i386-linux-musl and x86_64-linux-musl. - -diff -r 6c0bb7083dd2 gcc/config/i386/linux.h ---- a/gcc/config/i386/linux.h Thu Jan 29 14:06:22 2015 -0500 -+++ b/gcc/config/i386/linux.h Thu Jan 29 14:06:25 2015 -0500 -@@ -21,3 +21,4 @@ - - #define GNU_USER_LINK_EMULATION "elf_i386" - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" -diff -r 6c0bb7083dd2 gcc/config/i386/linux64.h ---- a/gcc/config/i386/linux64.h Thu Jan 29 14:06:22 2015 -0500 -+++ b/gcc/config/i386/linux64.h Thu Jan 29 14:06:25 2015 -0500 -@@ -30,3 +30,7 @@ - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" - #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" - #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -+ -+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1" -+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1" -+#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1" -diff -r 6c0bb7083dd2 libitm/config/linux/x86/tls.h ---- a/libitm/config/linux/x86/tls.h Thu Jan 29 14:06:22 2015 -0500 -+++ b/libitm/config/linux/x86/tls.h Thu Jan 29 14:06:25 2015 -0500 -@@ -25,16 +25,19 @@ - #ifndef LIBITM_X86_TLS_H - #define LIBITM_X86_TLS_H 1 - --#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) -+#if defined(__GLIBC_PREREQ) -+#if __GLIBC_PREREQ(2, 10) - /* Use slots in the TCB head rather than __thread lookups. - GLIBC has reserved words 10 through 13 for TM. */ - #define HAVE_ARCH_GTM_THREAD 1 - #define HAVE_ARCH_GTM_THREAD_DISP 1 - #endif -+#endif - - #include "config/generic/tls.h" - --#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) -+#if defined(__GLIBC_PREREQ) -+#if __GLIBC_PREREQ(2, 10) - namespace GTM HIDDEN { - - #ifdef __x86_64__ -@@ -101,5 +104,6 @@ - - } // namespace GTM - #endif /* >= GLIBC 2.10 */ -+#endif - - #endif // LIBITM_X86_TLS_H -# HG changeset patch -# Parent 4802c181abe099c2f903184ace267c6a527ca91c -Support for arm-linux-musl. - -diff -r 4802c181abe0 gcc/config/arm/linux-eabi.h ---- a/gcc/config/arm/linux-eabi.h Thu Jan 29 14:06:25 2015 -0500 -+++ b/gcc/config/arm/linux-eabi.h Thu Jan 29 14:06:27 2015 -0500 -@@ -77,6 +77,23 @@ - %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ - %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" - -+/* For ARM musl currently supports four dynamic linkers: -+ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI -+ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI -+ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB -+ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB -+ musl does not support the legacy OABI mode. -+ All the dynamic linkers live in /lib. -+ We default to soft-float, EL. */ -+#undef MUSL_DYNAMIC_LINKER -+#if TARGET_BIG_ENDIAN_DEFAULT -+#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}" -+#else -+#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}" -+#endif -+#define MUSL_DYNAMIC_LINKER \ -+ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" -+ - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ - #undef LINK_SPEC -diff -r 4802c181abe0 libitm/config/arm/hwcap.cc ---- a/libitm/config/arm/hwcap.cc Thu Jan 29 14:06:25 2015 -0500 -+++ b/libitm/config/arm/hwcap.cc Thu Jan 29 14:06:27 2015 -0500 -@@ -40,7 +40,11 @@ - - #ifdef __linux__ - #include -+#ifdef __GLIBC__ - #include -+#else -+#include -+#endif - #include - - static void __attribute__((constructor)) -# HG changeset patch -# Parent f34ce414667f8513979b8a0507f3d6b934f1ebeb -Support for mips-linux-musl. - -diff -r f34ce414667f gcc/config/mips/linux.h ---- a/gcc/config/mips/linux.h Thu Jan 29 14:06:27 2015 -0500 -+++ b/gcc/config/mips/linux.h Thu Jan 29 14:06:29 2015 -0500 -@@ -23,3 +23,10 @@ - #undef UCLIBC_DYNAMIC_LINKER - #define UCLIBC_DYNAMIC_LINKER \ - "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" -+ -+#if TARGET_ENDIAN_DEFAULT == 0 /* LE */ -+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}" -+#else -+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" -+#endif -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1" -# HG changeset patch -# Parent d4bad9a6572b0e8eacc08d2b1c40d03a6608bee5 -Support for powerpc-linux-musl. - -diff -r d4bad9a6572b gcc/config.gcc ---- a/gcc/config.gcc Thu Jan 29 14:06:29 2015 -0500 -+++ b/gcc/config.gcc Thu Jan 29 14:06:32 2015 -0500 -@@ -2334,6 +2334,10 @@ - powerpc*-*-linux*paired*) - tm_file="${tm_file} rs6000/750cl.h" ;; - esac -+ case ${target} in -+ *-linux*-musl*) -+ enable_secureplt=yes ;; -+ esac - if test x${enable_secureplt} = xyes; then - tm_file="rs6000/secureplt.h ${tm_file}" - fi -diff -r d4bad9a6572b gcc/config/rs6000/linux64.h ---- a/gcc/config/rs6000/linux64.h Thu Jan 29 14:06:29 2015 -0500 -+++ b/gcc/config/rs6000/linux64.h Thu Jan 29 14:06:32 2015 -0500 -@@ -375,17 +375,21 @@ - #endif - #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" - #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" -+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-powerpc.so.1" -+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-powerpc64.so.1" - #if DEFAULT_LIBC == LIBC_UCLIBC --#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" -+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" - #elif DEFAULT_LIBC == LIBC_GLIBC --#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" -+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}" -+#elif DEFAULT_LIBC == LIBC_MUSL -+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}" - #else - #error "Unsupported DEFAULT_LIBC" - #endif - #define GNU_USER_DYNAMIC_LINKER32 \ -- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32) -+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32) - #define GNU_USER_DYNAMIC_LINKER64 \ -- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64) -+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64) - - #undef DEFAULT_ASM_ENDIAN - #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN) -diff -r d4bad9a6572b gcc/config/rs6000/secureplt.h ---- a/gcc/config/rs6000/secureplt.h Thu Jan 29 14:06:29 2015 -0500 -+++ b/gcc/config/rs6000/secureplt.h Thu Jan 29 14:06:32 2015 -0500 -@@ -18,3 +18,4 @@ - . */ - - #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt" -+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt" -diff -r d4bad9a6572b gcc/config/rs6000/sysv4.h ---- a/gcc/config/rs6000/sysv4.h Thu Jan 29 14:06:29 2015 -0500 -+++ b/gcc/config/rs6000/sysv4.h Thu Jan 29 14:06:32 2015 -0500 -@@ -537,6 +537,9 @@ - #ifndef CC1_SECURE_PLT_DEFAULT_SPEC - #define CC1_SECURE_PLT_DEFAULT_SPEC "" - #endif -+#ifndef LINK_SECURE_PLT_DEFAULT_SPEC -+#define LINK_SECURE_PLT_DEFAULT_SPEC "" -+#endif - - /* Pass -G xxx to the compiler. */ - #define CC1_SPEC "%{G*} %(cc1_cpu)" \ -@@ -585,7 +588,8 @@ - - /* Override the default target of the linker. */ - #define LINK_TARGET_SPEC \ -- ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") -+ ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") \ -+ "%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}" - - /* Any specific OS flags. */ - #define LINK_OS_SPEC "\ -@@ -763,15 +767,18 @@ - - #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" - #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1" - #if DEFAULT_LIBC == LIBC_UCLIBC --#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" -+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" -+#elif DEFAULT_LIBC == LIBC_MUSL -+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}" - #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC --#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" -+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}" - #else - #error "Unsupported DEFAULT_LIBC" - #endif - #define GNU_USER_DYNAMIC_LINKER \ -- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) -+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) - - #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -@@ -894,6 +901,7 @@ - { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ - { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ - { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \ -+ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \ - { "cpp_os_ads", CPP_OS_ADS_SPEC }, \ - { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \ - { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \ -diff -r 47a8492e5aa7 gcc/config/aarch64/aarch64-linux.h ---- a/gcc/config/aarch64/aarch64-linux.h Thu Jan 29 14:06:31 2015 -0500 -+++ b/gcc/config/aarch64/aarch64-linux.h Thu Jan 29 14:06:34 2015 -0500 -@@ -23,6 +23,8 @@ - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}.so.1" - -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64.so.1" -+ - #define CPP_SPEC "%{pthread:-D_REENTRANT}" - - #define LINUX_TARGET_LINK_SPEC "%{h*} \ -# HG changeset patch -# Parent 9f4208089e8987637569ce7b294256c536396299 -Microblaze support (again). - -diff -r 9f4208089e89 gcc/config/microblaze/linux.h ---- a/gcc/config/microblaze/linux.h Thu Jan 29 14:06:34 2015 -0500 -+++ b/gcc/config/microblaze/linux.h Thu Jan 29 14:06:36 2015 -0500 -@@ -25,7 +25,22 @@ - #undef TLS_NEEDS_GOT - #define TLS_NEEDS_GOT 1 - --#define DYNAMIC_LINKER "/lib/ld.so.1" -+#if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */ -+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}" -+#else -+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" -+#endif -+ -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1" -+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" -+ -+#if DEFAULT_LIBC == LIBC_MUSL -+#define DYNAMIC_LINKER MUSL_DYNAMIC_LINKER -+#else -+#define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER -+#endif -+ -+ - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ - { "dynamic_linker", DYNAMIC_LINKER } -From 478ee0c03a08e2ef9371fd88d516738936943e78 Mon Sep 17 00:00:00 2001 -From: David Holsgrove -Date: Fri, 28 Sep 2012 16:32:03 +1000 -Subject: [PATCH 06/11] [Patch, microblaze]: Add SIZE_TYPE and PTRDIFF_TYPE to - microblaze.h - -Fixes warnings like; - -warning: format '%zX' expects argument of type 'size_t', -but argument 3 has type 'unsigned int' [-Wformat] - -Changelog - -2013-03-18 David Holsgrove - - * gcc/config/microblaze/microblaze.h: Define SIZE_TYPE - and PTRDIFF_TYPE. - -Signed-off-by: David Holsgrove ---- - gcc/config/microblaze/microblaze.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff -r 0dbe9a3f7670 gcc/config/microblaze/microblaze.h ---- a/gcc/config/microblaze/microblaze.h Thu Jan 29 14:06:36 2015 -0500 -+++ b/gcc/config/microblaze/microblaze.h Thu Jan 29 14:06:38 2015 -0500 -@@ -218,6 +218,12 @@ - #undef PTRDIFF_TYPE - #define PTRDIFF_TYPE "int" - -+#undef SIZE_TYPE -+#define SIZE_TYPE "unsigned int" -+ -+#undef PTRDIFF_TYPE -+#define PTRDIFF_TYPE "int" -+ - #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ - ((TREE_CODE (EXP) == STRING_CST || TREE_CODE (EXP) == CONSTRUCTOR) \ - && (ALIGN) < BITS_PER_WORD \ -diff -r 94ebb0799454 gcc/config/sh/linux.h ---- a/gcc/config/sh/linux.h Fri Sep 28 16:32:03 2012 +1000 -+++ b/gcc/config/sh/linux.h Thu Jan 29 14:06:41 2015 -0500 -@@ -43,7 +43,14 @@ - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack - -+#if TARGET_BIG_ENDIAN_DEFAULT /* BE */ -+#define MUSL_DYNAMIC_LINKER_E "eb" -+#else -+#define MUSL_DYNAMIC_LINKER_E -+#endif -+ - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1" - - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" - -Use libc write(2) instead of undefined __write() to get rid -of an error when later linking against libgcc.a -This should fix the webkitgtk build, see: -http://build.voidlinux.eu/builders/armv6l-musl_builder/builds/2991/steps/shell_3/logs/stdio - ---- a/libgcc/config/arm/linux-atomic-64bit.c 2014-01-02 23:25:22.000000000 +0100 -+++ b/libgcc/config/arm/linux-atomic-64bit.c 2015-08-14 10:56:03.383219614 +0200 -@@ -33,7 +33,7 @@ - kernels; we check for that in an init section and bail out rather - unceremoneously. */ - --extern unsigned int __write (int fd, const void *buf, unsigned int count); -+extern unsigned int write (int fd, const void *buf, unsigned int count); - extern void abort (void); - - /* Kernel helper for compare-and-exchange. */ -@@ -56,7 +56,7 @@ - for the user - I'm not sure I can rely on much else being - available at this point, so do the same as generic-morestack.c - write () and abort (). */ -- __write (2 /* stderr. */, err, sizeof (err)); -+ write (2 /* stderr. */, err, sizeof (err)); - abort (); - } - }; diff --git a/srcpkgs/gcc/files/gcc-6.2.1-musl.diff b/srcpkgs/gcc/files/gcc-6.2.1-musl.diff new file mode 100644 index 00000000000..053d1eae79e --- /dev/null +++ b/srcpkgs/gcc/files/gcc-6.2.1-musl.diff @@ -0,0 +1,556 @@ +# HG changeset patch +# Parent 90a7a3809a7ccb60e357b5e88382260877f82257 +Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one. + +diff -r 90a7a3809a7c libstdc++-v3/configure.host +--- a/libstdc++-v3/configure.host Thu Dec 24 11:22:15 2015 -0500 ++++ b/libstdc++-v3/configure.host Thu Dec 24 11:24:45 2015 -0500 +@@ -266,6 +266,13 @@ + os_include_dir="os/bsd/freebsd" + ;; + gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) ++ # check for musl by target ++ case "${host_os}" in ++ *-musl*) ++ os_include_dir="os/generic" ++ ;; ++ *) ++ + if [ "$uclibc" = "yes" ]; then + os_include_dir="os/uclibc" + elif [ "$bionic" = "yes" ]; then +@@ -281,6 +281,9 @@ + os_include_dir="os/gnu-linux" + fi + ;; ++ ++ esac ++ ;; + hpux*) + os_include_dir="os/hpux" + ;; +diff -r 30a957f60ddb gcc/ginclude/stddef.h +--- a/gcc/ginclude/stddef.h Thu Dec 24 11:24:45 2015 -0500 ++++ b/gcc/ginclude/stddef.h Thu Dec 24 11:24:47 2015 -0500 +@@ -184,6 +184,7 @@ + #ifndef _GCC_SIZE_T + #ifndef _SIZET_ + #ifndef __size_t ++#ifndef __DEFINED_size_t /* musl */ + #define __size_t__ /* BeOS */ + #define __SIZE_T__ /* Cray Unicos/Mk */ + #define _SIZE_T +@@ -200,6 +201,7 @@ + #define ___int_size_t_h + #define _GCC_SIZE_T + #define _SIZET_ ++#define __DEFINED_size_t /* musl */ + #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ + || defined(__DragonFly__) \ + || defined(__FreeBSD_kernel__) +@@ -218,6 +220,7 @@ + typedef long ssize_t; + #endif /* __BEOS__ */ + #endif /* !(defined (__GNUG__) && defined (size_t)) */ ++#endif /* __DEFINED_size_t */ + #endif /* __size_t */ + #endif /* _SIZET_ */ + #endif /* _GCC_SIZE_T */ +# HG changeset patch +# Parent 90228af47e55eb338c7f672e4aca5ac81cf5f14c +A fix for libgomp to correctly request a POSIX version for time support. + +diff -r 90228af47e55 libgomp/config/posix/time.c +--- a/libgomp/config/posix/time.c Thu Dec 24 11:24:47 2015 -0500 ++++ b/libgomp/config/posix/time.c Thu Dec 24 11:24:49 2015 -0500 +@@ -29,6 +29,8 @@ + The following implementation uses the most simple POSIX routines. + If present, POSIX 4 clocks should be used instead. */ + ++#define _POSIX_C_SOURCE 199309L /* for clocks */ ++ + #include "libgomp.h" + #include + #if TIME_WITH_SYS_TIME +diff -r b08d4bc3d2ba libgcc/unwind-dw2-fde-dip.c +--- a/libgcc/unwind-dw2-fde-dip.c Thu Dec 24 11:24:49 2015 -0500 ++++ b/libgcc/unwind-dw2-fde-dip.c Thu Dec 24 11:24:51 2015 -0500 +@@ -46,6 +46,10 @@ + #include "unwind-compat.h" + #include "gthr.h" + ++#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) ++# define USE_PT_GNU_EH_FRAME ++#endif ++ + #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ + && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ + || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) +diff -r 1f375ed3689f gcc/gcc.c +--- a/gcc/gcc.c Thu Dec 24 11:24:53 2015 -0500 ++++ b/gcc/gcc.c Thu Dec 24 11:24:56 2015 -0500 +@@ -860,7 +860,7 @@ + #ifndef LINK_SSP_SPEC + #ifdef TARGET_LIBC_PROVIDES_SSP + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ +- "|fstack-protector-strong|fstack-protector-explicit:}" ++ "|fstack-protector-strong|fstack-protector-explicit:-lssp_nonshared}" + #else + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit" \ +# HG changeset patch +# Parent 76b553fabcf19eec5df2df7f05ce15a4bf8c3996 +Support for mips-linux-musl. + +diff -r 76b553fabcf1 gcc/config/mips/linux.h +--- a/gcc/config/mips/linux.h Thu Dec 24 11:25:02 2015 -0500 ++++ b/gcc/config/mips/linux.h Thu Dec 24 11:25:04 2015 -0500 +@@ -31,6 +31,13 @@ + #undef UCLIBC_DYNAMIC_LINKER32 + #define UCLIBC_DYNAMIC_LINKER32 \ + "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" ++ ++#undef MUSL_DYNAMIC_LINKER32 ++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1" ++#undef MUSL_DYNAMIC_LINKER64 ++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips64%{EL:el}%{msoft-float:-sf}.so.1" ++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mipsn32%{EL:el}%{msoft-float:-sf}.so.1" ++ + #undef UCLIBC_DYNAMIC_LINKER64 + #define UCLIBC_DYNAMIC_LINKER64 \ + "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" +# HG changeset patch +# Parent 971d410411735f0b04eb07236659097986926213 +Support for powerpc-linux-musl. + +diff -r 971d41041173 gcc/config.gcc +--- a/gcc/config.gcc Fri Dec 25 08:44:09 2015 -0500 ++++ b/gcc/config.gcc Fri Dec 25 09:42:16 2015 -0500 +@@ -2464,6 +2464,10 @@ + powerpc*-*-linux*paired*) + tm_file="${tm_file} rs6000/750cl.h" ;; + esac ++ case ${target} in ++ *-linux*-musl*) ++ enable_secureplt=yes ;; ++ esac + if test x${enable_secureplt} = xyes; then + tm_file="rs6000/secureplt.h ${tm_file}" + fi +diff -r 9555ffb5873b gcc/config/aarch64/aarch64-linux.h +--- a/gcc/config/aarch64/aarch64-linux.h Thu Dec 24 11:25:06 2015 -0500 ++++ b/gcc/config/aarch64/aarch64-linux.h Thu Dec 24 11:25:09 2015 -0500 +@@ -32,6 +32,8 @@ + #undef CC1_SPEC + #define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC + ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64.so.1" ++ + #define CPP_SPEC "%{pthread:-D_REENTRANT}" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ +diff -r a522e4b04c77 gcc/config/microblaze/microblaze.h +--- a/gcc/config/microblaze/microblaze.h Thu Dec 24 11:25:11 2015 -0500 ++++ b/gcc/config/microblaze/microblaze.h Thu Dec 24 11:25:13 2015 -0500 +@@ -218,6 +218,12 @@ + #undef PTRDIFF_TYPE + #define PTRDIFF_TYPE "int" + ++#undef SIZE_TYPE ++#define SIZE_TYPE "unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "int" ++ + #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ + ((TREE_CODE (EXP) == STRING_CST || TREE_CODE (EXP) == CONSTRUCTOR) \ + && (ALIGN) < BITS_PER_WORD \ +diff -r f2936ad874dd gcc/config/sh/linux.h +--- a/gcc/config/sh/linux.h Fri Sep 28 16:32:03 2012 +1000 ++++ b/gcc/config/sh/linux.h Thu Dec 24 11:25:15 2015 -0500 +@@ -64,7 +64,14 @@ + + #define TARGET_ASM_FILE_END file_end_indicate_exec_stack + ++#if TARGET_BIG_ENDIAN_DEFAULT /* BE */ ++#define MUSL_DYNAMIC_LINKER_E "eb" ++#else ++#define MUSL_DYNAMIC_LINKER_E ++#endif ++ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1" + + #undef SUBTARGET_LINK_EMUL_SUFFIX + #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" +Do not use weak references on any targets for gthread. Necessary on musl, safe elsewhere. + +diff -r e180e4cfc879 libgcc/gthr.h +--- a/libgcc/gthr.h Thu Dec 24 11:25:15 2015 -0500 ++++ b/libgcc/gthr.h Thu Dec 24 11:25:17 2015 -0500 +@@ -136,10 +136,8 @@ + /* The pe-coff weak support isn't fully compatible to ELF's weak. + For static libraries it might would work, but as we need to deal + with shared versions too, we disable it for mingw-targets. */ +-#ifdef __MINGW32__ + #undef GTHREAD_USE_WEAK + #define GTHREAD_USE_WEAK 0 +-#endif + + #ifndef GTHREAD_USE_WEAK + #define GTHREAD_USE_WEAK 1 +From 0a9ed0479203cb7e69c3745b0c259007410f39ba Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 24 Oct 2015 20:09:53 +0000 +Subject: [PATCH 47/47] libgcc_s: Use alias for __cpu_indicator_init instead of + symver + +Adapter from + +https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html + +This fix was debated but hasnt been applied gcc upstream since +they expect musl to support '@' in symbol versioning which is +a sun/gnu versioning extention. This patch however avoids the +need for the '@' symbols at all + +libgcc/Changelog: + +2015-05-11 Szabolcs Nagy + + * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. + (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. + + * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. + +gcc/Changelog: + +2015-05-11 Szabolcs Nagy + + * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init + call __cpu_indicator_init_local instead of __cpu_indicator_init. + +Signed-off-by: Khem Raj +--- +Upstream-Status: Rejected + + gcc/config/i386/i386.c | 4 ++-- + libgcc/config/i386/cpuinfo.c | 6 +++--- + libgcc/config/i386/t-linux | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c +index 861a029..1c97d72 100644 +--- a/gcc/config/i386/i386.c ++++ b/gcc/config/i386/i386.c +@@ -40323,10 +40323,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, + { + case IX86_BUILTIN_CPU_INIT: + { +- /* Make it call __cpu_indicator_init in libgcc. */ ++ /* Make it call __cpu_indicator_init_local in libgcc.a. */ + tree call_expr, fndecl, type; + type = build_function_type_list (integer_type_node, NULL_TREE); +- fndecl = build_fn_decl ("__cpu_indicator_init", type); ++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); + call_expr = build_call_expr (fndecl, 0); + return expand_expr (call_expr, target, mode, EXPAND_NORMAL); + } +diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c +index 8c2248d..6c82f15 100644 +--- a/libgcc/config/i386/cpuinfo.c ++++ b/libgcc/config/i386/cpuinfo.c +@@ -485,7 +485,7 @@ __cpu_indicator_init (void) + return 0; + } + +-#if defined SHARED && defined USE_ELF_SYMVER +-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); +-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); ++#ifndef SHARED ++int __cpu_indicator_init_local (void) ++ __attribute__ ((weak, alias ("__cpu_indicator_init"))); + #endif +diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux +index 11bb46e..4f47f7b 100644 +--- a/libgcc/config/i386/t-linux ++++ b/libgcc/config/i386/t-linux +@@ -3,4 +3,4 @@ + # t-slibgcc-elf-ver and t-linux + SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver + +-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER ++HOST_LIBGCC2_CFLAGS += -mlong-double-80 +-- +2.9.0 + +--- a/boehm-gc/os_dep.c 2013-09-17 07:46:00.969884340 +0000 ++++ b/boehm-gc/os_dep.c 2013-09-17 06:53:53.629884946 +0000 +@@ -26,7 +26,7 @@ + # define __KERNEL__ + # include + # undef __KERNEL__ +-# else ++# elif defined(__GLIBC__) + /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */ + /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */ + /* prototypes, so we have to include the top-level sigcontext.h to */ +--- a/boehm-gc/dyn_load.c ++++ b/boehm-gc/dyn_load.c +@@ -459,9 +459,7 @@ + /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */ + /* versions. Thanks to Jakub Jelinek for most of the code. */ + +-# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \ +- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ +- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) ++# if (defined(LINUX) || defined (__GLIBC__)) + + /* We have the header files for a glibc that includes dl_iterate_phdr. */ + /* It may still not be available in the library on the target system. */ +--- a/boehm-gc/include/private/gcconfig.h ++++ b/boehm-gc/include/private/gcconfig.h +@@ -684,7 +684,7 @@ + # ifdef __ELF__ + # define DYNAMIC_LOADING + # include +-# if defined(__GLIBC__)&& __GLIBC__>=2 ++# if 1 + # define SEARCH_FOR_DATA_START + # else /* !GLIBC2 */ + extern char **__environ; +@@ -1147,7 +1147,7 @@ + # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff)) + # endif + # include +-# if defined(__GLIBC__) && __GLIBC__ >= 2 ++# if 1 + # define SEARCH_FOR_DATA_START + # else + extern char **__environ; +@@ -1367,7 +1367,7 @@ + # define HBLKSIZE 4096 + # endif + # define USE_GENERIC_PUSH_REGS +-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2 ++# if 1 + # define LINUX_STACKBOTTOM + # else + # define STACKBOTTOM 0x80000000 +@@ -1858,7 +1858,7 @@ + # ifdef __ELF__ + # define DYNAMIC_LOADING + # include +-# if defined(__GLIBC__) && __GLIBC__ >= 2 ++# if 1 + # define SEARCH_FOR_DATA_START + # else + extern char **__environ; +--- a/libjava/gnu/gcj/convert/natIconv.cc ++++ b/libjava/gnu/gcj/convert/natIconv.cc +@@ -24,6 +24,13 @@ + + #ifdef HAVE_ICONV + #include ++#include ++ ++#if __BYTE_ORDER == __BIG_ENDIAN ++#define UCS2_CHARSET "UCS-2BE" ++#else ++#define UCS2_CHARSET "UCS-2LE" ++#endif + + template + static inline size_t +@@ -45,7 +52,7 @@ + _Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer); + buffer[len] = '\0'; + +- iconv_t h = iconv_open ("UCS-2", buffer); ++ iconv_t h = iconv_open (UCS2_CHARSET, buffer); + if (h == (iconv_t) -1) + throw new ::java::io::UnsupportedEncodingException (encoding); + +@@ -99,18 +106,6 @@ + throw new ::java::io::CharConversionException (); + } + +- if (iconv_byte_swap) +- { +- size_t max = (old_out - outavail) / sizeof (jchar); +- for (size_t i = 0; i < max; ++i) +- { +- // Byte swap. +- jchar c = (((out[outpos + i] & 0xff) << 8) +- | ((out[outpos + i] >> 8) & 0xff)); +- outbuf[i] = c; +- } +- } +- + inpos += old_in - inavail; + return (old_out - outavail) / sizeof (jchar); + #else /* HAVE_ICONV */ +@@ -145,7 +140,7 @@ + _Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer); + buffer[len] = '\0'; + +- iconv_t h = iconv_open (buffer, "UCS-2"); ++ iconv_t h = iconv_open (buffer, UCS2_CHARSET); + if (h == (iconv_t) -1) + throw new ::java::io::UnsupportedEncodingException (encoding); + +@@ -187,20 +182,6 @@ + char *inbuf = (char *) &chars[inpos]; + char *outbuf = (char *) &out[count]; + +- if (iconv_byte_swap) +- { +- // Ugly performance penalty -- don't use losing systems! +- temp_buffer = (jchar *) _Jv_Malloc (inlength * sizeof (jchar)); +- for (int i = 0; i < inlength; ++i) +- { +- // Byte swap. +- jchar c = (((chars[inpos + i] & 0xff) << 8) +- | ((chars[inpos + i] >> 8) & 0xff)); +- temp_buffer[i] = c; +- } +- inbuf = (char *) temp_buffer; +- } +- + size_t loop_old_in = old_in; + while (1) + { +@@ -252,44 +233,7 @@ + jboolean + gnu::gcj::convert::IOConverter::iconv_init (void) + { +- // Some versions of iconv() always return their UCS-2 results in +- // big-endian order, and they also require UCS-2 inputs to be in +- // big-endian order. For instance, glibc 2.1.3 does this. If the +- // UTF-8=>UCS-2 iconv converter has this feature, then we assume +- // that all UCS-2 converters do. (This might not be the best +- // heuristic, but is is all we've got.) +- jboolean result = false; +-#ifdef HAVE_ICONV +- iconv_t handle = iconv_open ("UCS-2", "UTF-8"); +- if (handle != (iconv_t) -1) +- { +- jchar c; +- unsigned char in[4]; +- char *inp, *outp; +- size_t inc, outc, r; +- +- // This is the UTF-8 encoding of \ufeff. At least Tru64 UNIX libiconv +- // needs the trailing NUL byte, otherwise iconv fails with EINVAL. +- in[0] = 0xef; +- in[1] = 0xbb; +- in[2] = 0xbf; +- in[3] = 0x00; +- +- inp = (char *) in; +- inc = 4; +- outp = (char *) &c; +- outc = 2; +- +- r = iconv_adapter (iconv, handle, &inp, &inc, &outp, &outc); +- // Conversion must be complete for us to use the result. +- if (r != (size_t) -1 && inc == 0 && outc == 0) +- result = (c != 0xfeff); +- +- // Release iconv handle. +- iconv_close (handle); +- } +-#endif /* HAVE_ICONV */ +- return result; ++ return false; + } + + void +--- a/libjava/gnu/classpath/natSystemProperties.cc ++++ b/libjava/gnu/classpath/natSystemProperties.cc +@@ -289,7 +289,7 @@ + // just default to `en_US'. + setlocale (LC_ALL, ""); + char *locale = setlocale (LC_MESSAGES, ""); +- if (locale && strlen (locale) >= 2) ++ if (locale && strlen (locale) >= 2 && (locale[2] == '\0' || locale[2] == '_')) + { + char buf[3]; + buf[2] = '\0'; +--- a/libjava/posix-threads.cc ++++ b/libjava/posix-threads.cc +@@ -657,6 +657,7 @@ + struct sched_param param; + pthread_attr_t attr; + struct starter *info; ++ size_t ss; + + if (data->flags & FLAG_START) + return; +@@ -675,8 +676,25 @@ + // Set stack size if -Xss option was given. + if (gcj::stack_size > 0) + { +- int e = pthread_attr_setstacksize (&attr, gcj::stack_size); ++ ss = gcj::stack_size; ++ } ++ else ++ { ++ int e = pthread_attr_getstacksize (&attr, &ss); ++ if (e != 0) ++ JvFail (strerror (e)); ++ ++ // Request at least 1meg of stack ++ if (ss >= 1024 * 1024) ++ ss = 0; ++ else ++ ss = 1024 * 1024; ++ } ++ ++ if (ss) ++ { ++ int e = pthread_attr_setstacksize (&attr, ss); + if (e != 0) + JvFail (strerror (e)); + } + + info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter)); +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -166,6 +166,13 @@ cat > sysinfo.c < + #endif ++#if !defined(__GLIBC__) ++#include ++#undef off64_t ++#undef loff_t ++typedef off_t loff_t; ++typedef off_t off64_t; ++#endif + + /* Constants that may only be defined as expressions on some systems, + expressions too complex for -fdump-go-spec to handle. These are +--- a/libgo/runtime/proc.c 2016-09-23 16:17:22.000000000 +0200 ++++ b/libgo/runtime/proc.c 2016-10-03 07:33:42.186000000 +0200 +@@ -150,6 +150,20 @@ + asm ("st %%g7, %0" : "=m"(c->uc_mcontext.gregs[REG_G7])); + } + ++# elif !defined(__GLIBC__) ++ ++static inline void ++initcontext(void) ++{ ++ // FIXME: Do we need to save (part of) the current context? ++} ++ ++static inline void ++fixcontext(ucontext_t *c __attribute__ ((unused))) ++{ ++ // FIXME: Do we need to restore (part of) the current context? ++} ++ + # else + + # error unknown case for SETCONTEXT_CLOBBERS_TLS diff --git a/srcpkgs/gcc/patches/fix-cxxflags-passing.patch b/srcpkgs/gcc/patches/fix-cxxflags-passing.patch new file mode 100644 index 00000000000..dda2a50460b --- /dev/null +++ b/srcpkgs/gcc/patches/fix-cxxflags-passing.patch @@ -0,0 +1,10 @@ +--- Makefile.in.orig ++++ Makefile.in +@@ -169,6 +169,7 @@ + # built for the build system to override those in BASE_FLAGS_TO_PASSS. + EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ ++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + + # This is the list of directories to built for the host system. diff --git a/srcpkgs/gcc/patches/fix-musl-execinfo.patch b/srcpkgs/gcc/patches/fix-musl-execinfo.patch new file mode 100644 index 00000000000..583eac7b0dc --- /dev/null +++ b/srcpkgs/gcc/patches/fix-musl-execinfo.patch @@ -0,0 +1,33 @@ +There is no in musl libc + +--- libvtv/vtv_rts.cc 2016-09-23 16:17:11.000000000 +0200 ++++ libvtc/vtv_rts.cc 2016-09-25 15:08:57.896000000 +0200 +@@ -124,7 +124,7 @@ + #include + #include + #include +-#else ++#elif defined (__GLIBC__) + #include + #endif + +--- libvtv/vtv_utils.cc 2016-09-23 16:17:11.000000000 +0200 ++++ libvtv/vtv_utils.cc 2016-09-25 15:15:35.529000000 +0200 +@@ -34,7 +34,7 @@ + #include + #if defined (__CYGWIN__) || defined (__MINGW32__) + #include +-#else ++#elif defined (__GLIBC__) + #include + #endif + +@@ -178,7 +178,7 @@ + + __vtv_add_to_log (vtv_failures_log_fd, "%s", log_msg); + +-#if !defined (__CYGWIN__) && !defined (__MINGW32__) ++#if !defined (__CYGWIN__) && !defined (__MINGW32__) && defined(__GLIBC__) + if (generate_backtrace) + { + #define STACK_DEPTH 20 diff --git a/srcpkgs/gcc/patches/gcc-spec-env-r1.patch b/srcpkgs/gcc/patches/gcc-spec-env-r1.patch deleted file mode 100644 index 3eb0141dad6..00000000000 --- a/srcpkgs/gcc/patches/gcc-spec-env-r1.patch +++ /dev/null @@ -1,87 +0,0 @@ -2013-08-22 Magnus Granberg - - * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var - and move the process of the user specifed specs. - - This allows us to easily control pie/ssp defaults with gcc-config profiles. - Original patch by Rob Holland - Extended to support multiple entries separated by ':' by Kevin F. Quinn - Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill - Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg - ---- gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100 -+++ gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200 -@@ -6427,6 +6428,48 @@ main (int argc, char **argv) - do_option_spec (option_default_specs[i].name, - option_default_specs[i].spec); - -+#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32)) -+ /* Add specs listed in GCC_SPECS. Note; in the process of separating -+ * each spec listed, the string is overwritten at token boundaries -+ * (':') with '\0', an effect of strtok_r(). -+ */ -+ specs_file = getenv ("GCC_SPECS"); -+ if (specs_file && (strlen(specs_file) > 0)) -+ { -+ char *spec, *saveptr; -+ for (spec=strtok_r(specs_file,":",&saveptr); -+ spec!=NULL; -+ spec=strtok_r(NULL,":",&saveptr)) -+ { -+ struct user_specs *user = (struct user_specs *) -+ xmalloc (sizeof (struct user_specs)); -+ user->next = (struct user_specs *) 0; -+ user->filename = spec; -+ if (user_specs_tail) -+ user_specs_tail->next = user; -+ else -+ user_specs_head = user; -+ user_specs_tail = user; -+ } -+ } -+#endif -+ /* Process any user specified specs in the order given on the command -+ * line. */ -+ for (uptr = user_specs_head; uptr; uptr = uptr->next) -+ { -+ char *filename = find_a_file (&startfile_prefixes, uptr->filename, -+ R_OK, true); -+ read_specs (filename ? filename : uptr->filename, false, true); -+ } -+ /* Process any user self specs. */ -+ { -+ struct spec_list *sl; -+ for (sl = specs; sl; sl = sl->next) -+ if (sl->name_len == sizeof "self_spec" - 1 -+ && !strcmp (sl->name, "self_spec")) -+ do_self_spec (*sl->ptr_spec); -+ } -+ - /* Process DRIVER_SELF_SPECS, adding any new options to the end - of the command line. */ - -@@ -6535,24 +6578,6 @@ main (int argc, char **argv) - PREFIX_PRIORITY_LAST, 0, 1); - } - -- /* Process any user specified specs in the order given on the command -- line. */ -- for (uptr = user_specs_head; uptr; uptr = uptr->next) -- { -- char *filename = find_a_file (&startfile_prefixes, uptr->filename, -- R_OK, true); -- read_specs (filename ? filename : uptr->filename, false, true); -- } -- -- /* Process any user self specs. */ -- { -- struct spec_list *sl; -- for (sl = specs; sl; sl = sl->next) -- if (sl->name_len == sizeof "self_spec" - 1 -- && !strcmp (sl->name, "self_spec")) -- do_self_spec (*sl->ptr_spec); -- } -- - if (compare_debug) - { - enum save_temps save; diff --git a/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch b/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch index 7265900fc4a..e42f4d6875a 100644 --- a/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch +++ b/srcpkgs/gcc/patches/libcpp-source_date_epoch.patch @@ -12,7 +12,7 @@ time_t is some day promoted to a 64 bit value. --- libcpp/macro.c +++ libcpp/macro.c -@@ -349,14 +349,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) +@@ -356,14 +356,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) slow on some systems. */ time_t tt; struct tm *tb = NULL; diff --git a/srcpkgs/gcc/patches/musl-posix_memalign-c++.patch b/srcpkgs/gcc/patches/musl-posix_memalign-c++.patch deleted file mode 100644 index f285f73e8b4..00000000000 --- a/srcpkgs/gcc/patches/musl-posix_memalign-c++.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git gcc/config/i386/pmm_malloc.h gcc/config/i386/pmm_malloc.h -index 901001b..321fcd3 100644 ---- gcc/config/i386/pmm_malloc.h -+++ gcc/config/i386/pmm_malloc.h -@@ -27,12 +27,13 @@ - #include - - /* We can't depend on since the prototype of posix_memalign -- may not be visible. */ -+ may not be visible and we can't pollute the namespace either. */ - #ifndef __cplusplus --extern int posix_memalign (void **, size_t, size_t); -+extern int __gcc_posix_memalign (void **, size_t, size_t) - #else --extern "C" int posix_memalign (void **, size_t, size_t) throw (); -+extern "C" int __gcc_posix_memalign (void **, size_t, size_t) throw () - #endif -+__asm__("posix_memalign"); - - static __inline void * - _mm_malloc (size_t size, size_t alignment) -@@ -42,7 +43,7 @@ _mm_malloc (size_t size, size_t alignment) - return malloc (size); - if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4)) - alignment = sizeof (void *); -- if (posix_memalign (&ptr, alignment, size) == 0) -+ if (__gcc_posix_memalign (&ptr, alignment, size) == 0) - return ptr; - else - return NULL; diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template index 6215817049c..b5e320ebf5a 100644 --- a/srcpkgs/gcc/template +++ b/srcpkgs/gcc/template @@ -1,15 +1,16 @@ # Template build file for 'gcc' +_majorver=6.2 +_gcjrel=17 + pkgname=gcc -_majorver=4.9 -version=${_majorver}.4 +version=${_majorver}.1 revision=1 short_desc="The GNU C Compiler" maintainer="Juan RP " homepage="http://gcc.gnu.org" license="GFDL-1.2, GPL-3, LGPL-2.1" -distfiles="${GNU_SITE}/gcc/gcc-$version/gcc-$version.tar.bz2" -checksum=6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 -_gcjrel=15 +distfiles="https://repo.voidlinux.eu/distfiles/gcc-$version.tar.xz" +checksum=a7addd2d4e42e66c3b56ced8baee5a11ef7fb577e23615a4f43877273eaf9409 nopie=yes lib32disabled=yes @@ -18,25 +19,24 @@ bootstrap=yes if [ "$CHROOT_READY" ]; then hostmakedepends="perl flex" fi -makedepends="zlib-devel libmpc-devel cloog-devel" -depends="binutils libgcc-devel-${version}_${revision}" +makedepends="zlib-devel libmpc-devel isl15-devel" +depends="binutils libgcc-devel-${version}_${revision} + libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}" subpackages="libgcc libgomp libgomp-devel libatomic libatomic-devel" -subpackages+=" libssp libssp-devel gcc-c++" +subpackages+=" libssp libssp-devel" if [ -n "$CHROOT_READY" -a -z "$CROSS_BUILD" ]; then + # Required by gcj + hostmakedepends+=" zip unzip" subpackages+=" gcc-fortran gcc-objc gcc-objc++" subpackages+=" libgfortran-devel libgfortran" subpackages+=" libobjc-devel libobjc" - + subpackages+=" gcc-gcj libgcj-devel libgcj gcc-gcj-jdk-compat" case "$XBPS_TARGET_MACHINE" in - *-musl) - # XXX disable go and java with musl + *-musl) # Go won't link for musl libc ;; - *) - # Required by gcj - hostmakedepends+=" zip unzip" - subpackages+=" gcc-go libgo-devel libgo gcc-gcj libgcj-devel libgcj gcc-gcj-jdk-compat" + *) subpackages+=" gcc-go libgo-devel libgo" ;; esac fi @@ -74,19 +74,19 @@ case "$XBPS_TARGET_MACHINE" in esac case "$XBPS_TARGET_MACHINE" in mips*) ;; + x86_64*|i686*) subpackages+=" libitm libitm-devel libmpx libmpx-devel";; *) subpackages+=" libitm libitm-devel";; esac +# gcc-c++ merged in main pkg +replaces="gcc-c++>=0" + pre_configure() { case "$XBPS_TARGET_MACHINE" in - *-musl) patch -Np1 -i ${FILESDIR}/gcc-4.9.2-musl.diff;; + *-musl) patch -Np1 -i ${FILESDIR}/gcc-${version}-musl.diff;; esac # _FORTIFY_SOURCE needs an optimization level. sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {gcc,libiberty}/configure - # As specified in the LFS book, disable installing libiberty. - sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in - # Do not run fixincludes - sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in } do_configure() { local _langs _args _hash @@ -118,7 +118,9 @@ do_configure() { export GCC_FOR_TARGET="$CC" export CXX_FOR_TARGET="$CXX" - _args+=" --disable-multilib --host=$XBPS_CROSS_TRIPLET --with-build-sysroot=${XBPS_CROSS_BASE}" + _args+=" --disable-multilib" + _args+=" --host=$XBPS_CROSS_TRIPLET" + _args+=" --with-build-sysroot=${XBPS_CROSS_BASE}" _args+=" --enable-sjlj-exceptions=no" else if [ -z "$CHROOT_READY" ]; then @@ -127,15 +129,18 @@ do_configure() { _args+=" --with-mpfr=${XBPS_MASTERDIR}/usr" _args+=" --with-isl=${XBPS_MASTERDIR}/usr" _args+=" --with-mpc=${XBPS_MASTERDIR}/usr" - _args+=" --with-cloog=${XBPS_MASTERDIR}/usr" _args+=" --build=${_triplet}" else + _langs="c,c++,objc,obj-c++,fortran,lto,java" case "$XBPS_TARGET_MACHINE" in - # XXX disable go and java with musl - *-musl) _langs="c,c++,objc,obj-c++,fortran,lto";; - *) _langs="c,c++,objc,obj-c++,fortran,lto,go,java";; + *-musl) # Linking libgo.so is broken for musl libc + ;; + *) _langs+=",go" + ;; esac - _args+=" --build=${_triplet} --enable-java-gc=boehm --enable-fast-character" + _args+=" --build=${_triplet}" + _args+=" --enable-java-gc=boehm" + _args+=" --enable-fast-character" fi fi @@ -143,34 +148,60 @@ do_configure() { aarch64*|*-musl) _args+=" --disable-libsanitizer";; esac case "$XBPS_TARGET_MACHINE" in - *-musl) _args+=" --disable-symvers libat_cv_have_ifunc=no";; + *-musl) _args+=" --disable-symvers" + _args+=" libat_cv_have_ifunc=no" + ;; esac export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}" export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}" - CONFIG_SHELL=/bin/bash \ - ./configure --prefix=/usr --mandir=/usr/share/man \ - --infodir=/usr/share/info --libexecdir=/usr/lib --libdir=/usr/lib \ - --enable-threads=posix --enable-__cxa_atexit --disable-multilib \ - --with-system-zlib --enable-shared --enable-lto \ - --enable-linker-build-id --disable-werror --disable-nls \ - --enable-checking=release --disable-libstdcxx-pch \ - --enable-cloog-backend=isl --with-linker-hash-style=$_hash \ - --enable-languages=${_langs} ${_args} + _args+=" --prefix=/usr" + _args+=" --mandir=/usr/share/man" + _args+=" --infodir=/usr/share/info" + _args+=" --libexecdir=/usr/lib" + _args+=" --libdir=/usr/lib" + _args+=" --enable-threads=posix" + _args+=" --enable-__cxa_atexit" + _args+=" --disable-multilib" + _args+=" --with-system-zlib" + _args+=" --enable-shared" + _args+=" --enable-lto" + _args+=" --enable-vtable-verify" + _args+=" --enable-linker-build-id" + _args+=" --enable-serial-configure" + _args+=" --disable-werror" + _args+=" --disable-nls" + _args+=" --enable-checking=release" + _args+=" --disable-libstdcxx-pch" + _args+=" --with-isl" + _args+=" --with-linker-hash-style=$_hash" + _args+=" --disable-libunwind-exceptions" + _args+=" --disable-target-libiberty" + _args+=" --with-default-libstdcxx-abi=gcc4-compatible" + _args+=" --enable-languages=${_langs}" + + mkdir -p build + cd build + CONFIG_SHELL=/bin/bash ${wrksrc}/configure ${_args} } do_build() { + if [ -z "$CHROOT_READY" ]; then + export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib" + fi + cd build make ${makejobs} } pre_install() { if [ "$CROSS_BUILD" ]; then # XXX otherwise links to host libpthread - for f in $(find ${wrksrc}/${XBPS_CROSS_TRIPLET} -type f -name libtool); do + for f in $(find ${wrksrc}/build/${XBPS_CROSS_TRIPLET} -type f -name libtool); do sed -e "s,add_dir=\"-L\$libdir\",add_dir=\"-L${XBPS_CROSS_BASE}\$libdir\",g" -i $f done fi } do_install() { + cd build case "$XBPS_TARGET_MACHINE" in x86_64*|aarch64*) vmkdir usr/lib @@ -325,7 +356,7 @@ gcc-fortran_package() { } gcc-objc++_package() { lib32disabled=yes - depends="gcc-c++>=${_majorver} gcc-objc>=${_majorver}" + depends="gcc-objc>=${_majorver}" short_desc+=" - Objective-C++ support" pkg_install() { vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1objplus @@ -354,7 +385,7 @@ libgcj-devel_package() { vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/gcj*" vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jvm*" vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jawt*" - vmove usr/lib/pkgconfig/libgcj-${_majorver}.pc + vmove usr/lib/pkgconfig/libgcj-${_majorver%.*}.pc } } libgcj_package() { @@ -374,7 +405,10 @@ libgfortran-devel_package() { short_desc+=" - Fortran library - development files" pkg_install() { vmove usr/lib/libgfortran.a - vmove usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a + # This does not seem to exist anymore? + if [ -f usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a ]; then + vmove usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a + fi } } libgfortran_package() { @@ -391,6 +425,7 @@ libgo-devel_package() { pkg_install() { vmove usr/lib/libgo.a vmove usr/lib/libgobegin.a + vmove usr/lib/libgo.so } } libgo_package() { @@ -529,6 +564,23 @@ libitm_package() { vmove "usr/lib/libitm.so.*" } } +libmpx-devel_package() { + depends="libmpx>=${_majorver}" + short_desc+=" - Intel MPX support - development files" + pkg_install() { + vmove usr/lib/libmpx.a + vmove usr/lib/libmpx.so + vmove usr/lib/libmpxwrappers.so + vmove usr/lib/libmpxwrappers.a + } +} +libmpx_package() { + short_desc+=" - Intel MPX support" + pkg_install() { + vmove usr/lib/libmpx.so.* + vmove usr/lib/libmpxwrappers.so.* + } +} libsanitizer-devel_package() { depends="libsanitizer>=${_majorver}" short_desc+=" - Sanitizer libraries - development files" @@ -546,7 +598,7 @@ libsanitizer_package() { } } libssp-devel_package() { - depends="glibc-devel libssp>=${_majorver}" + depends="libssp>=${_majorver}" short_desc+=" - SSP (StackSmashingProtection) library - development files" pkg_install() { vmove "usr/lib/libssp*.a" @@ -576,15 +628,3 @@ libstdc++_package() { vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION } } -gcc-c++_package() { - lib32disabled=yes - depends="gcc>=${_majorver} libstdc++-devel>=${_majorver}" - short_desc+=" - C++ support" - pkg_install() { - for f in g++ c++ ${_triplet}-g++ ${_triplet}-c++; do - vmove usr/bin/${f} - done - vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1plus - vmove usr/share/man/man1/g++.1 - } -} diff --git a/srcpkgs/gcc-c++ b/srcpkgs/libmpx similarity index 100% rename from srcpkgs/gcc-c++ rename to srcpkgs/libmpx diff --git a/srcpkgs/libmpx-devel b/srcpkgs/libmpx-devel new file mode 120000 index 00000000000..b08d5af5795 --- /dev/null +++ b/srcpkgs/libmpx-devel @@ -0,0 +1 @@ +gcc \ No newline at end of file diff --git a/xbps-src b/xbps-src index 03ac79d3be3..87f31321e14 100755 --- a/xbps-src +++ b/xbps-src @@ -403,9 +403,9 @@ readonly XBPS_VERSION_REQ="0.46" readonly XBPS_VERSION=$(xbps-uhelper -V|awk '{print $2}') readonly XBPS_SRC_VERSION="113" export XBPS_MACHINE=$(xbps-uhelper arch) -readonly XBPS_GCC_VERSION_MAJOR=4 -readonly XBPS_GCC_VERSION_MINOR=9 -readonly XBPS_GCC_VERSION_BUILD=4 +readonly XBPS_GCC_VERSION_MAJOR=6 +readonly XBPS_GCC_VERSION_MINOR=2 +readonly XBPS_GCC_VERSION_BUILD=1 readonly XBPS_GCC_VERSION=${XBPS_GCC_VERSION_MAJOR}.${XBPS_GCC_VERSION_MINOR}.${XBPS_GCC_VERSION_BUILD} #