Merge master into staging-next

This commit is contained in:
Frederik Rietdijk
2020-05-24 10:03:22 +02:00
74 changed files with 1073 additions and 521 deletions

View File

@@ -3,6 +3,7 @@
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langD ? false
, langGo ? false
, profiledCompiler ? false
, langJit ? false
@@ -59,6 +60,7 @@ let majorVersion = "9";
sha256 = ""; # TODO: uncomment and check hash when available.
}) */
++ optional langAda ../gnat-cflags.patch
++ optional langD ../libphobos.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
@@ -137,10 +139,10 @@ stdenv.mkDerivation ({
)
else "")
+ stdenv.lib.optionalString targetPlatform.isAvr ''
makeFlagsArray+=(
'LIMITS_H_TEST=false'
)
'';
makeFlagsArray+=(
'LIMITS_H_TEST=false'
)
'';
inherit noSysDirs staticCompiler crossStageStatic
libcCross crossMingw;
@@ -197,6 +199,7 @@ stdenv.mkDerivation ({
enableShared
langC
langD
langCC
langFortran
langAda
@@ -237,14 +240,14 @@ stdenv.mkDerivation ({
inherit
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
inherit stdenv crossStageStatic langD libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
;
passthru = {
inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version;
isGNU = true;
};

View File

@@ -14,6 +14,7 @@
, langC
, langCC
, langD ? false
, langFortran
, langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null
, langAda ? false
@@ -115,6 +116,7 @@ let
lib.concatStrings (lib.intersperse ","
( lib.optional langC "c"
++ lib.optional langCC "c++"
++ lib.optional langD "d"
++ lib.optional langFortran "fortran"
++ lib.optional langJava "java"
++ lib.optional langAda "ada"
@@ -175,7 +177,13 @@ let
"--disable-symvers"
"libat_cv_have_ifunc=no"
"--disable-gnu-indirect-function"
] ++ lib.optional langJit "--enable-host-shared"
]
++ lib.optionals langJit [
"--enable-host-shared"
]
++ lib.optionals (langD) [
"--with-target-system-zlib=yes"
]
;
in configureFlags

View File

@@ -1,4 +1,4 @@
{ stdenv, crossStageStatic, libcCross, threadsCross }:
{ stdenv, crossStageStatic, langD ? false, libcCross, threadsCross }:
let
inherit (stdenv) lib hostPlatform targetPlatform;
@@ -6,13 +6,13 @@ in
{
EXTRA_TARGET_FLAGS = let
mkFlags = dep: lib.optionals (targetPlatform != hostPlatform && dep != null) ([
mkFlags = dep: langD: lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ([
"-idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
] ++ stdenv.lib.optionals (! crossStageStatic) [
"-B${lib.getLib dep}${dep.libdir or "/lib"}"
]);
in mkFlags libcCross
++ lib.optionals (!crossStageStatic) (mkFlags threadsCross)
in mkFlags libcCross langD
++ lib.optionals (!crossStageStatic) (mkFlags threadsCross langD)
;
EXTRA_TARGET_LDFLAGS = let

View File

@@ -0,0 +1,119 @@
diff --git a/Makefile.in b/Makefile.in
index a375471..83c5ecb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -804,7 +804,7 @@ BASE_FLAGS_TO_PASS = \
"STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \
"GNATBIND=$(GNATBIND)" \
"GNATMAKE=$(GNATMAKE)" \
- "GDC=$(GDC)" \
+ "`echo 'GDC=$(GDC)' | sed -e 's/-idirafter [^ ]*//g'`" \
"GDCFLAGS=$(GDCFLAGS)" \
"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
@@ -817,7 +817,7 @@ BASE_FLAGS_TO_PASS = \
"GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \
"GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \
"GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \
- "GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \
+ "`echo 'GDC_FOR_TARGET=$(GDC_FOR_TARGET)' | sed -e 's/-idirafter [^ ]*//g'`" \
"GDCFLAGS_FOR_TARGET=$(GDCFLAGS_FOR_TARGET)" \
"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
"LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \
@@ -890,7 +890,7 @@ EXTRA_HOST_FLAGS = \
'DLLTOOL=$(DLLTOOL)' \
'GFORTRAN=$(GFORTRAN)' \
'GOC=$(GOC)' \
- 'GDC=$(GDC)' \
+ "`echo 'GDC=$(GDC)' | sed -e 's/-idirafter [^ ]*//g'`" \
'LD=$(LD)' \
'LIPO=$(LIPO)' \
'NM=$(NM)' \
@@ -966,8 +966,11 @@ EXTRA_TARGET_FLAGS = \
'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
"TFLAGS=$$TFLAGS"
+EXTRA_TARGET_FLAGS_D = \
+ "`echo $(EXTRA_TARGET_FLAGS) | sed -e 's/-idirafter [^ ]*//g'`"
TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
+TARGET_FLAGS_TO_PASS_D = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS_D)
# Flags to pass down to gcc. gcc builds a library, libgcc.a, so it
# unfortunately needs the native compiler and the target ar and
@@ -47285,7 +47288,7 @@ check-target-libphobos:
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(NORMAL_TARGET_EXPORTS) \
(cd $(TARGET_SUBDIR)/libphobos && \
- $(MAKE) $(TARGET_FLAGS_TO_PASS) check)
+ $(MAKE) $(TARGET_FLAGS_TO_PASS_D) check)
@endif target-libphobos
@@ -47300,7 +47303,7 @@ install-target-libphobos: installdirs
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(NORMAL_TARGET_EXPORTS) \
(cd $(TARGET_SUBDIR)/libphobos && \
- $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+ $(MAKE) $(TARGET_FLAGS_TO_PASS_D) install)
@endif target-libphobos
@@ -47315,7 +47318,7 @@ install-strip-target-libphobos: installdirs
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(NORMAL_TARGET_EXPORTS) \
(cd $(TARGET_SUBDIR)/libphobos && \
- $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip)
+ $(MAKE) $(TARGET_FLAGS_TO_PASS_D) install-strip)
@endif target-libphobos
diff --git a/Makefile.tpl b/Makefile.tpl
index 41cae58..b3d32e7 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -721,8 +721,11 @@ EXTRA_TARGET_FLAGS = \
'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
"TFLAGS=$$TFLAGS"
+EXTRA_TARGET_FLAGS_D = \
+ "`echo $(EXTRA_TARGET_FLAGS) | sed -e 's/-idirafter [^ ]*//g'`"
TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
+TARGET_FLAGS_TO_PASS_D = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS_D)
# Flags to pass down to gcc. gcc builds a library, libgcc.a, so it
# unfortunately needs the native compiler and the target ar and
diff --git a/libphobos/Makefile.in b/libphobos/Makefile.in
index e894417..2d18dcb 100644
--- a/libphobos/Makefile.in
+++ b/libphobos/Makefile.in
@@ -365,6 +365,7 @@ AM_MAKEFLAGS = \
"LIBCFLAGS=$(LIBCFLAGS)" \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"MAKE=$(MAKE)" \
+ "`echo 'MAKEFLAGS=$(MAKEFLAGS)' | sed -e 's/-j[0-9]+/-j1/'`" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
"PICFLAG=$(PICFLAG)" \
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
@@ -694,6 +695,8 @@ uninstall-am:
.PRECIOUS: Makefile
+.NOTPARALLEL:
+
# GNU Make needs to see an explicit $(MAKE) variable in the command it
# runs to enable its job server during parallel builds. Hence the
# comments below.
diff --git a/libphobos/configure b/libphobos/configure
index b3cb5f3..25adf2b 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -5122,6 +5122,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+GDC=`$as_echo "$GDC" | sed -e 's/-idirafter [^ ]*//g'`
ac_ext=d
ac_compile='$GDC -c $GDCFLAGS conftest.$ac_ext >&5'