Merge pull request #215751 from Artturin/gccaddcallfile

This commit is contained in:
Artturi 2023-02-12 18:00:49 +02:00 committed by GitHub
commit 8d4db5e081
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 741 additions and 718 deletions

View file

@ -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) {

View file

@ -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
;
};
}

View file

@ -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
;
};
}

View file

@ -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;
};
}

View file

@ -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" ];
};
}

View file

@ -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" ];
};
}

View file

@ -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" ];
};
}

View file

@ -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" ];
};
}

View file

@ -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" ];
};
}

View file

@ -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"

View file

@ -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 ]

View 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;
}