gcc{5,6,7,8}: share libgomp patch, propagate musl config flags

This commit is contained in:
Will Dietz 2018-09-24 20:03:50 -05:00
parent e845be1756
commit fecd326399
5 changed files with 23 additions and 5 deletions

View file

@ -60,6 +60,7 @@ let version = "5.5.0";
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch ++ optional noSysDirs ../no-sys-dirs.patch
++ optional langFortran ../gfortran-driving.patch ++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
++ optional stdenv.hostPlatform.isMusl (fetchpatch { ++ optional stdenv.hostPlatform.isMusl (fetchpatch {
url = https://raw.githubusercontent.com/richfelker/musl-cross-make/e84b1bd1fc12a3def33111ca6df522cd6e5ec361/patches/gcc-5.3.0/0001-musl.diff; url = https://raw.githubusercontent.com/richfelker/musl-cross-make/e84b1bd1fc12a3def33111ca6df522cd6e5ec361/patches/gcc-5.3.0/0001-musl.diff;
sha256 = "0pppbf8myi2kjhm3z3479ihn1cm60kycfv60gj8yy1bs0pl1qcfm"; sha256 = "0pppbf8myi2kjhm3z3479ihn1cm60kycfv60gj8yy1bs0pl1qcfm";
@ -331,7 +332,12 @@ stdenv.mkDerivation ({
# On Illumos/Solaris GNU as is preferred # On Illumos/Solaris GNU as is preferred
"--with-gnu-as" "--without-gnu-ld" "--with-gnu-as" "--without-gnu-ld"
] ]
++ optional (targetPlatform == hostPlatform && targetPlatform.libc == "musl") "--disable-libsanitizer" ++ optionals (targetPlatform == hostPlatform && targetPlatform.libc == "musl") [
"--disable-libsanitizer"
"--disable-symvers"
"libat_cv_have_ifunc=no"
"--disable-gnu-indirect-function"
]
; ;
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;

View file

@ -61,6 +61,7 @@ let version = "6.4.0";
++ optional langFortran ../gfortran-driving.patch ++ optional langFortran ../gfortran-driving.patch
++ [ ../struct-ucontext.patch ../struct-sigaltstack.patch ] # glibc-2.26 ++ [ ../struct-ucontext.patch ../struct-sigaltstack.patch ] # glibc-2.26
++ optional langJava [ ../struct-ucontext-libjava.patch ] # glibc-2.26 ++ optional langJava [ ../struct-ucontext-libjava.patch ] # glibc-2.26
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
; ;
javaEcj = fetchurl { javaEcj = fetchurl {
@ -336,7 +337,12 @@ stdenv.mkDerivation ({
# On Illumos/Solaris GNU as is preferred # On Illumos/Solaris GNU as is preferred
"--with-gnu-as" "--without-gnu-ld" "--with-gnu-as" "--without-gnu-ld"
] ]
++ optional (targetPlatform == hostPlatform && targetPlatform.libc == "musl") "--disable-libsanitizer" ++ optionals (targetPlatform == hostPlatform && targetPlatform.libc == "musl") [
"--disable-libsanitizer"
"--disable-symvers"
"libat_cv_have_ifunc=no"
"--disable-gnu-indirect-function"
]
; ;
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;

View file

@ -57,7 +57,7 @@ let version = "7.3.0";
}) })
++ optional langFortran ../gfortran-driving.patch ++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (targetPlatform.libc == "musl") ./libgomp-dont-force-initial-exec.patch; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch;
/* Cross-gcc settings (build == host != target) */ /* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";

View file

@ -51,7 +51,8 @@ let version = "8.2.0";
sha256 = ""; # TODO: uncomment and check hash when available. sha256 = ""; # TODO: uncomment and check hash when available.
}) */ }) */
++ optional langFortran ../gfortran-driving.patch ++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch;
/* Cross-gcc settings (build == host != target) */ /* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
@ -284,7 +285,12 @@ stdenv.mkDerivation ({
# On Illumos/Solaris GNU as is preferred # On Illumos/Solaris GNU as is preferred
"--with-gnu-as" "--without-gnu-ld" "--with-gnu-as" "--without-gnu-ld"
] ]
++ optional (targetPlatform == hostPlatform && targetPlatform.libc == "musl") "--disable-libsanitizer" ++ optionals (targetPlatform == hostPlatform && targetPlatform.libc == "musl") [
"--disable-libsanitizer"
"--disable-symvers"
"libat_cv_have_ifunc=no"
"--disable-gnu-indirect-function"
]
; ;
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;