gcc: add langJit option for gcclangjit
This option can be used to set the “jit” language which enable the libgccjit functionality. Also adds a “libgccjit” attr which is gcc built with just jit enabled.
This commit is contained in:
parent
9c4fbf9cb1
commit
fe1955588a
@ -5,6 +5,7 @@
|
||||
, langJava ? false
|
||||
, langGo ? false
|
||||
, profiledCompiler ? false
|
||||
, langJit ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, enableLTO ? true
|
||||
@ -212,6 +213,7 @@ stdenv.mkDerivation ({
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
, langJava ? false
|
||||
, langGo ? false
|
||||
, profiledCompiler ? false
|
||||
, langJit ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, enableLTO ? true
|
||||
@ -224,6 +225,7 @@ stdenv.mkDerivation ({
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
, langJava ? false
|
||||
, langGo ? false
|
||||
, profiledCompiler ? false
|
||||
, langJit ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, enableLTO ? true
|
||||
@ -126,7 +127,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
inherit patches;
|
||||
|
||||
outputs = if langJava || langGo then ["out" "man" "info"]
|
||||
outputs = if langJava || langGo || langJit then ["out" "man" "info"]
|
||||
else [ "out" "lib" "man" "info" ];
|
||||
setOutputFlags = false;
|
||||
NIX_NO_SELF_RPATH = true;
|
||||
@ -136,13 +137,9 @@ stdenv.mkDerivation ({
|
||||
hardeningDisable = [ "format" "pie" ];
|
||||
|
||||
prePatch =
|
||||
(stdenv.lib.optionalString (langJava || langGo) ''
|
||||
export lib=$out
|
||||
'')
|
||||
|
||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||
# insert into default search paths.
|
||||
+ stdenv.lib.optionalString hostPlatform.isDarwin ''
|
||||
stdenv.lib.optionalString hostPlatform.isDarwin ''
|
||||
substituteInPlace gcc/config/darwin-c.c \
|
||||
--replace 'if (stdinc)' 'if (0)'
|
||||
|
||||
@ -244,6 +241,7 @@ stdenv.mkDerivation ({
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||
, langGo ? false
|
||||
, profiledCompiler ? false
|
||||
, langJit ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, enableLTO ? true
|
||||
@ -90,7 +91,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
inherit patches;
|
||||
|
||||
outputs = [ "out" "lib" "man" "info" ];
|
||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
||||
setOutputFlags = false;
|
||||
NIX_NO_SELF_RPATH = true;
|
||||
|
||||
@ -206,6 +207,7 @@ stdenv.mkDerivation ({
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
} ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419"
|
||||
++ optional targetPlatform.isNetBSD "--disable-libcilkrts"
|
||||
|
@ -4,6 +4,7 @@
|
||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||
, langGo ? false
|
||||
, profiledCompiler ? false
|
||||
, langJit ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, enableLTO ? true
|
||||
@ -82,7 +83,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
inherit patches;
|
||||
|
||||
outputs = [ "out" "lib" "man" "info" ];
|
||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
||||
setOutputFlags = false;
|
||||
NIX_NO_SELF_RPATH = true;
|
||||
|
||||
@ -197,6 +198,7 @@ stdenv.mkDerivation ({
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||
, langGo ? false
|
||||
, profiledCompiler ? false
|
||||
, langJit ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, enableLTO ? true
|
||||
@ -85,7 +86,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
inherit patches;
|
||||
|
||||
outputs = [ "out" "man" "info" ] ++ lib.optional langJit "lib";
|
||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
||||
setOutputFlags = false;
|
||||
NIX_NO_SELF_RPATH = true;
|
||||
|
||||
@ -202,6 +203,7 @@ stdenv.mkDerivation ({
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
, langGo
|
||||
, langObjC
|
||||
, langObjCpp
|
||||
, langJit
|
||||
}:
|
||||
|
||||
assert cloog != null -> stdenv.lib.versionOlder version "5";
|
||||
@ -121,6 +122,7 @@ let
|
||||
++ lib.optional langObjC "objc"
|
||||
++ lib.optional langObjCpp "obj-c++"
|
||||
++ lib.optionals crossDarwin [ "objc" "obj-c++" ]
|
||||
++ lib.optional langJit "jit"
|
||||
)
|
||||
)
|
||||
}"
|
||||
@ -173,7 +175,7 @@ let
|
||||
"--disable-symvers"
|
||||
"libat_cv_have_ifunc=no"
|
||||
"--disable-gnu-indirect-function"
|
||||
]
|
||||
] ++ lib.optional langJit "--enable-host-shared"
|
||||
;
|
||||
|
||||
in configureFlags
|
||||
|
@ -8390,6 +8390,16 @@ in
|
||||
profiledCompiler = false;
|
||||
});
|
||||
|
||||
libgccjit = gcc9.cc.override {
|
||||
name = "libgccjit";
|
||||
langFortran = false;
|
||||
langCC = false;
|
||||
langC = false;
|
||||
profiledCompiler = false;
|
||||
langJit = true;
|
||||
enableLTO = false;
|
||||
};
|
||||
|
||||
gcj = gcj6;
|
||||
gcj6 = wrapCC (gcc6.cc.override {
|
||||
name = "gcj";
|
||||
|
Loading…
Reference in New Issue
Block a user