Merge pull request #215751 from Artturin/gccaddcallfile
This commit is contained in:
commit
8d4db5e081
|
@ -24,7 +24,7 @@
|
|||
, threadsCross ? null # for MinGW
|
||||
, crossStageStatic ? false
|
||||
, gnused ? null
|
||||
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, buildPackages
|
||||
, libxcrypt
|
||||
}:
|
||||
|
@ -83,6 +83,67 @@ let majorVersion = "10";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc10.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnatboot
|
||||
gnused
|
||||
isl
|
||||
langAda
|
||||
langC
|
||||
langCC
|
||||
langD
|
||||
langFortran
|
||||
langGo
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libcCross
|
||||
libmpc
|
||||
libxcrypt
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
which
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
|
@ -158,39 +219,12 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
langAda
|
||||
libxcrypt
|
||||
gnatboot
|
||||
version
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
zip
|
||||
perl
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = (import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
|
||||
}) + ''
|
||||
preConfigure = (callFile ../common/pre-configure.nix { }) + ''
|
||||
ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h
|
||||
'';
|
||||
|
||||
|
@ -198,32 +232,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langD
|
||||
langCC
|
||||
langFortran
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -232,8 +241,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -256,10 +264,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic langD libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -273,24 +278,17 @@ stdenv.mkDerivation ({
|
|||
inherit enableMultilib enableShared;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = lib.teams.gcc.members;
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
|
|
|
@ -89,6 +89,67 @@ let majorVersion = "11";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc11.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnatboot
|
||||
gnused
|
||||
isl
|
||||
langAda
|
||||
langC
|
||||
langCC
|
||||
langD
|
||||
langFortran
|
||||
langGo
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libcCross
|
||||
libmpc
|
||||
libxcrypt
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
which
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
|
@ -164,39 +225,12 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
langAda
|
||||
libxcrypt
|
||||
gnatboot
|
||||
version
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
zip
|
||||
perl
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = (import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
|
||||
}) + ''
|
||||
preConfigure = (callFile ../common/pre-configure.nix { }) + ''
|
||||
ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h
|
||||
'';
|
||||
|
||||
|
@ -204,32 +238,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langD
|
||||
langCC
|
||||
langFortran
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -238,8 +247,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -262,10 +270,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic langD libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -279,22 +284,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = lib.teams.gcc.members;
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -123,6 +123,67 @@ let majorVersion = "12";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc12.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnatboot
|
||||
gnused
|
||||
isl
|
||||
langAda
|
||||
langC
|
||||
langCC
|
||||
langD
|
||||
langFortran
|
||||
langGo
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libcCross
|
||||
libmpc
|
||||
libxcrypt
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
which
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
|
@ -198,42 +259,12 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
langAda
|
||||
langGo
|
||||
libucontext
|
||||
libxcrypt
|
||||
gnatboot
|
||||
version
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
zip
|
||||
perl
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { }) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
|
||||
preConfigure = (import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
|
||||
}) + ''
|
||||
preConfigure = (callFile ../common/pre-configure.nix { }) + ''
|
||||
ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h
|
||||
'';
|
||||
|
||||
|
@ -241,32 +272,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langD
|
||||
langCC
|
||||
langFortran
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -275,8 +281,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -299,10 +304,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic langD libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -316,22 +318,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = lib.teams.gcc.members;
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -111,6 +111,82 @@ let majorVersion = "4";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
javaEcj
|
||||
javaAntlr
|
||||
xlibs
|
||||
javaAwtGtk
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc48.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
boehmgc
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnused
|
||||
gtk2
|
||||
isl
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langJava
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libICE
|
||||
libSM
|
||||
libX11
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libXt
|
||||
libXtst
|
||||
libart_lgpl
|
||||
libcCross threadsCross
|
||||
libmpc
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
pkg-config
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
unzip
|
||||
which
|
||||
x11Support
|
||||
xorgproto
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
# We need all these X libraries when building AWT with GTK.
|
||||
|
@ -158,74 +234,16 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
version
|
||||
langJava
|
||||
javaAwtGtk
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
pkg-config
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
cloog
|
||||
isl
|
||||
zlib
|
||||
boehmgc
|
||||
zip
|
||||
unzip
|
||||
gtk2
|
||||
libart_lgpl
|
||||
perl
|
||||
xlibs
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform langJava langGo crossStageStatic enableMultilib;
|
||||
};
|
||||
preConfigure = callFile ../common/pre-configure.nix { };
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
cloog
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langJava javaAwtGtk javaAntlr javaEcj
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -234,8 +252,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -273,10 +290,7 @@ stdenv.mkDerivation ({
|
|||
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||
));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -291,22 +305,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
|
||||
as libraries for these languages (libstdc++, libgcj, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = with lib.maintainers; [ veprbl ];
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = lib.platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -127,6 +127,82 @@ let majorVersion = "4";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
javaEcj
|
||||
javaAntlr
|
||||
xlibs
|
||||
javaAwtGtk
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc49.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
boehmgc
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnused
|
||||
gtk2
|
||||
isl
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langJava
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libICE
|
||||
libSM
|
||||
libX11
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libXt
|
||||
libXtst
|
||||
libart_lgpl
|
||||
libcCross threadsCross
|
||||
libmpc
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
pkg-config
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
unzip
|
||||
which
|
||||
x11Support
|
||||
xorgproto
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
# We need all these X libraries when building AWT with GTK.
|
||||
|
@ -178,74 +254,16 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
version
|
||||
langJava
|
||||
javaAwtGtk
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
pkg-config
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
cloog
|
||||
isl
|
||||
zlib
|
||||
boehmgc
|
||||
zip
|
||||
unzip
|
||||
gtk2
|
||||
libart_lgpl
|
||||
perl
|
||||
xlibs
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform langJava langGo crossStageStatic enableMultilib;
|
||||
};
|
||||
preConfigure = callFile ../common/pre-configure.nix { };
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
cloog
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langJava javaAwtGtk javaAntlr javaEcj
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -254,8 +272,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -293,10 +310,7 @@ stdenv.mkDerivation ({
|
|||
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||
));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -310,22 +324,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
|
||||
as libraries for these languages (libstdc++, libgcj, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = with lib.maintainers; [ veprbl ];
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
, threadsCross ? null # for MinGW
|
||||
, crossStageStatic ? false
|
||||
, gnused ? null
|
||||
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
|
@ -115,6 +115,86 @@ let majorVersion = "6";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
javaEcj
|
||||
javaAntlr
|
||||
xlibs
|
||||
javaAwtGtk
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc6.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
boehmgc
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchFromGitHub
|
||||
fetchpatch
|
||||
fetchurl
|
||||
flex
|
||||
gettext
|
||||
gmp
|
||||
gnatboot
|
||||
gnused
|
||||
gtk2
|
||||
isl
|
||||
langAda
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langJava
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libICE
|
||||
libSM
|
||||
libX11
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libXt
|
||||
libXtst
|
||||
libart_lgpl
|
||||
libcCross
|
||||
libmpc
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
pkg-config
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
unzip
|
||||
which
|
||||
x11Support
|
||||
xorgproto
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
in
|
||||
|
||||
# We need all these X libraries when building AWT with GTK.
|
||||
|
@ -193,78 +273,18 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
version
|
||||
langAda
|
||||
gnatboot
|
||||
flex
|
||||
langJava
|
||||
javaAwtGtk
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
pkg-config
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
boehmgc
|
||||
zip
|
||||
unzip
|
||||
gtk2
|
||||
libart_lgpl
|
||||
perl
|
||||
xlibs
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform gnatboot langJava langAda langGo crossStageStatic enableMultilib;
|
||||
};
|
||||
preConfigure = callFile ../common/pre-configure.nix { };
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langJava javaAwtGtk javaAntlr javaEcj
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -273,8 +293,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -312,10 +331,7 @@ stdenv.mkDerivation ({
|
|||
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||
));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -329,20 +345,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
|
||||
as libraries for these languages (libstdc++, libgcj, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
, threadsCross ? null # for MinGW
|
||||
, crossStageStatic ? false
|
||||
, gnused ? null
|
||||
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
|
@ -91,6 +91,63 @@ let majorVersion = "7";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc7.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnused
|
||||
isl
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libcCross
|
||||
libmpc
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
which
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
|
@ -165,66 +222,20 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
version
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
zip
|
||||
perl
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument";
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform langGo crossStageStatic enableMultilib;
|
||||
};
|
||||
preConfigure = callFile ../common/pre-configure.nix { };
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
} ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419"
|
||||
configureFlags = (callFile ../common/configure-flags.nix { })
|
||||
++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419"
|
||||
++ optional targetPlatform.isNetBSD "--disable-libcilkrts"
|
||||
;
|
||||
|
||||
|
@ -235,8 +246,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -261,10 +271,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -278,22 +285,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = lib.teams.gcc.members;
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
, threadsCross ? null # for MinGW
|
||||
, crossStageStatic ? false
|
||||
, gnused ? null
|
||||
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, cloog ? null # unused; just for compat with gcc4, as we override the parameter on some places
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
|
@ -73,6 +73,63 @@ let majorVersion = "8";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc8.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnused
|
||||
isl
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libcCross
|
||||
libmpc
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
which
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
|
@ -147,65 +204,18 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
version
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
zip
|
||||
perl
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform langGo crossStageStatic enableMultilib;
|
||||
};
|
||||
preConfigure = callFile ../common/pre-configure.nix { };
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langCC
|
||||
langFortran
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -214,8 +224,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -238,10 +247,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -255,22 +261,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = lib.teams.gcc.members;
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -84,6 +84,66 @@ let majorVersion = "9";
|
|||
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
|
||||
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
|
||||
|
||||
callFile = lib.callPackageWith {
|
||||
# lets
|
||||
inherit
|
||||
majorVersion
|
||||
version
|
||||
buildPlatform
|
||||
hostPlatform
|
||||
targetPlatform
|
||||
patches
|
||||
crossMingw
|
||||
stageNameAddon
|
||||
crossNameAddon
|
||||
;
|
||||
# inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc9.cc.override)" | jq '.[]' --raw-output'
|
||||
inherit
|
||||
binutils
|
||||
buildPackages
|
||||
cloog
|
||||
crossStageStatic
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
fetchpatch
|
||||
fetchurl
|
||||
gettext
|
||||
gmp
|
||||
gnatboot
|
||||
gnused
|
||||
isl
|
||||
langAda
|
||||
langC
|
||||
langCC
|
||||
langD
|
||||
langFortran
|
||||
langGo
|
||||
langJit
|
||||
langObjC
|
||||
langObjCpp
|
||||
lib
|
||||
libcCross
|
||||
libmpc
|
||||
mpfr
|
||||
name
|
||||
noSysDirs
|
||||
patchelf
|
||||
perl
|
||||
profiledCompiler
|
||||
reproducibleBuild
|
||||
staticCompiler
|
||||
stdenv
|
||||
targetPackages
|
||||
texinfo
|
||||
threadsCross
|
||||
which
|
||||
zip
|
||||
zlib
|
||||
;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
|
@ -158,69 +218,18 @@ stdenv.mkDerivation ({
|
|||
inherit noSysDirs staticCompiler crossStageStatic
|
||||
libcCross crossMingw;
|
||||
|
||||
inherit (import ../common/dependencies.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
buildPackages
|
||||
targetPackages
|
||||
crossStageStatic
|
||||
threadsCross
|
||||
langAda
|
||||
gnatboot
|
||||
version
|
||||
texinfo
|
||||
which
|
||||
gettext
|
||||
gnused
|
||||
patchelf
|
||||
gmp
|
||||
mpfr
|
||||
libmpc
|
||||
isl
|
||||
zlib
|
||||
zip
|
||||
perl
|
||||
;
|
||||
}) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
inherit (callFile ../common/dependencies.nix { })
|
||||
depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget;
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = import ../common/pre-configure.nix {
|
||||
inherit lib;
|
||||
inherit version targetPlatform hostPlatform buildPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
|
||||
};
|
||||
preConfigure = callFile ../common/pre-configure.nix { };
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configurePlatforms = [ "build" "host" "target" ];
|
||||
|
||||
configureFlags = import ../common/configure-flags.nix {
|
||||
inherit
|
||||
lib
|
||||
stdenv
|
||||
targetPackages
|
||||
crossStageStatic libcCross threadsCross
|
||||
version
|
||||
|
||||
binutils gmp mpfr libmpc isl
|
||||
|
||||
enableLTO
|
||||
enableMultilib
|
||||
enablePlugin
|
||||
enableShared
|
||||
|
||||
langC
|
||||
langD
|
||||
langCC
|
||||
langFortran
|
||||
langAda
|
||||
langGo
|
||||
langObjC
|
||||
langObjCpp
|
||||
langJit
|
||||
;
|
||||
};
|
||||
configureFlags = callFile ../common/configure-flags.nix { };
|
||||
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
targetPlatformConfig = targetPlatform.config;
|
||||
|
@ -229,8 +238,7 @@ stdenv.mkDerivation ({
|
|||
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
|
||||
|
||||
inherit
|
||||
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
|
||||
inherit (callFile ../common/strip-attributes.nix { })
|
||||
stripDebugList
|
||||
stripDebugListTarget
|
||||
preFixup;
|
||||
|
@ -253,10 +261,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||
|
||||
inherit
|
||||
(import ../common/extra-target-flags.nix {
|
||||
inherit lib stdenv crossStageStatic langD libcCross threadsCross;
|
||||
})
|
||||
inherit (callFile ../common/extra-target-flags.nix { })
|
||||
EXTRA_FLAGS_FOR_TARGET
|
||||
EXTRA_LDFLAGS_FOR_TARGET
|
||||
;
|
||||
|
@ -270,22 +275,14 @@ stdenv.mkDerivation ({
|
|||
inherit enableShared enableMultilib;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
maintainers = lib.teams.gcc.members;
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
inherit (callFile ../common/meta.nix { })
|
||||
homepage
|
||||
license
|
||||
description
|
||||
longDescription
|
||||
platforms
|
||||
maintainers
|
||||
;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
, langJit
|
||||
}:
|
||||
|
||||
assert cloog != null -> lib.versionOlder version "5";
|
||||
assert langJava -> lib.versionOlder version "7";
|
||||
|
||||
# Note [Windows Exception Handling]
|
||||
|
@ -188,7 +187,7 @@ let
|
|||
|
||||
# Optional features
|
||||
++ lib.optional (isl != null) "--with-isl=${isl}"
|
||||
++ lib.optionals (cloog != null) [
|
||||
++ lib.optionals (lib.versionOlder version "5" && cloog != null) [
|
||||
"--with-cloog=${cloog}"
|
||||
"--disable-cloog-version-check"
|
||||
"--enable-cloog-backend=isl"
|
||||
|
|
|
@ -79,7 +79,7 @@ in
|
|||
++ [
|
||||
targetPackages.stdenv.cc.bintools # For linking code at run-time
|
||||
]
|
||||
++ optionals (cloog != null) [ cloog ]
|
||||
++ optionals (lib.versionOlder version "5" && cloog != null) [ cloog ]
|
||||
++ optionals (isl != null) [ isl ]
|
||||
++ optionals (zlib != null) [ zlib ]
|
||||
++ optionals langJava [ boehmgc zip unzip ]
|
||||
|
|
19
pkgs/development/compilers/gcc/common/meta.nix
Normal file
19
pkgs/development/compilers/gcc/common/meta.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, version, }:
|
||||
|
||||
with lib; {
|
||||
homepage = "https://gcc.gnu.org/";
|
||||
license = licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||
description = "GNU Compiler Collection, version ${version}";
|
||||
longDescription = ''
|
||||
The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the
|
||||
compiler used in the GNU system including the GNU/Linux variant.
|
||||
'';
|
||||
|
||||
platforms = platforms.unix;
|
||||
maintainers = if versionOlder version "5" then [ maintainers.veprbl ] else teams.gcc.members;
|
||||
|
||||
}
|
Loading…
Reference in a new issue