forked from auxolotl/labs
target-less cross compilation
This commit is contained in:
parent
ef2df44dd8
commit
d6e8691e34
45 changed files with 450 additions and 431 deletions
|
|
@ -114,9 +114,7 @@ in
|
|||
__toString =
|
||||
value:
|
||||
let
|
||||
all = builtins.mapAttrs (
|
||||
host: targets: builtins.mapAttrs (target: deps: builtins.map (dep: dep.package) deps) targets
|
||||
) collected;
|
||||
all = builtins.mapAttrs (host: deps: builtins.map (dep: dep.package) deps) collected;
|
||||
in
|
||||
builtins.toJSON (
|
||||
builtins.removeAttrs value [
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ in
|
|||
|
||||
builder = builders.foundation.basic;
|
||||
|
||||
deps.host.host = {
|
||||
deps.host = {
|
||||
inherit (packages.aux) b;
|
||||
};
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ in
|
|||
in
|
||||
{
|
||||
install = ''
|
||||
echo "a with b: ${config.deps.host.host.b.platform.host}" > $out
|
||||
echo "a with b: ${config.deps.host.b.platform.host}" > $out
|
||||
echo >> $out
|
||||
echo a=$out >> $out
|
||||
echo b=$AUX_B >> $out
|
||||
|
|
|
|||
|
|
@ -34,10 +34,8 @@ in
|
|||
|
||||
deps = {
|
||||
build = {
|
||||
host = {
|
||||
c = packages.aux.c.extend {
|
||||
propagate = true;
|
||||
};
|
||||
c = packages.aux.c.extend {
|
||||
propagate = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.bash.versions."5.2.15-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -75,13 +75,16 @@ in
|
|||
findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,8 +10,11 @@ let
|
|||
package = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
config.platform.build
|
||||
);
|
||||
|
|
|
|||
|
|
@ -130,17 +130,12 @@ in
|
|||
)
|
||||
// (lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
target = config.platform.host;
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
});
|
||||
|
||||
# host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
# gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
# binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
# };
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.bison.versions."3.8.2-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -74,13 +74,16 @@ in
|
|||
gnum4 = packages.foundation.gnum4.versions."1.4.19-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.bzip2.versions."1.0.8-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -65,13 +65,16 @@ in
|
|||
gzip = packages.foundation.gzip.versions."1.13-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
@ -88,10 +91,10 @@ in
|
|||
"CC=\"$CC\""
|
||||
]
|
||||
++ lib.lists.when (config.platform.build != config.platform.host) [
|
||||
"AR=\"${config.deps.build.host.binutils.package}/bin/${prefix}ar\""
|
||||
"RANLIB=\"${config.deps.build.host.binutils.package}/bin/${prefix}ranlib\""
|
||||
"STRIP=\"${config.deps.build.host.binutils.package}/bin/${prefix}strip\""
|
||||
"NM=\"${config.deps.build.host.binutils.package}/bin/${prefix}nm\""
|
||||
"AR=\"${config.deps.build.binutils-cross.package}/bin/${prefix}ar\""
|
||||
"RANLIB=\"${config.deps.build.binutils-cross.package}/bin/${prefix}ranlib\""
|
||||
"STRIP=\"${config.deps.build.binutils-cross.package}/bin/${prefix}strip\""
|
||||
"NM=\"${config.deps.build.binutils-cross.package}/bin/${prefix}nm\""
|
||||
]
|
||||
);
|
||||
in
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.coreutils.versions."9.4-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -81,13 +81,16 @@ in
|
|||
findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.diffutils.versions."3.10-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.findutils.versions."4.9.0-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gawk.versions."5.2.2-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -9,13 +9,14 @@ let
|
|||
|
||||
package =
|
||||
if
|
||||
config.platform.build == config.platform.host && config.platform.host != config.platform.target
|
||||
config.platform.build == config.platform.host && config.platform.host != config.settings.target
|
||||
then
|
||||
packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
platform = lib.modules.overrides.force config.platform;
|
||||
settings.target = config.settings.target;
|
||||
}
|
||||
else if
|
||||
config.platform.build != config.platform.host && config.platform.host == config.platform.target
|
||||
config.platform.build != config.platform.host && config.platform.host == config.settings.target
|
||||
then
|
||||
packages.foundation.gcc.versions."13.2.0-stage3".extend {
|
||||
platform = lib.modules.overrides.force config.platform;
|
||||
|
|
@ -26,6 +27,14 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
settings.target = lib.options.create {
|
||||
type = lib.types.string;
|
||||
default.value = config.platform.host;
|
||||
description = "Target of the compiler";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
meta = {
|
||||
description = "GNU Compiler Collection.";
|
||||
|
|
@ -41,17 +50,10 @@ in
|
|||
build = "i686-linux";
|
||||
host = "@linux";
|
||||
}
|
||||
{
|
||||
build = "i686-linux";
|
||||
target = "@linux";
|
||||
}
|
||||
{
|
||||
build = "x86_64-linux";
|
||||
host = "@linux";
|
||||
}
|
||||
{
|
||||
build = "x86_64-linux";
|
||||
}
|
||||
];
|
||||
|
||||
hooks = package.hooks;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,13 @@ let
|
|||
package = packages.foundation.gcc.versions."13.2.0-stage3".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.target.triple == "x86_64-linux" then "i686-linux" else "x86_64-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,20 +16,14 @@ let
|
|||
host = lib.systems.withBuildInfo config.platform.host;
|
||||
};
|
||||
|
||||
prefix = lib.strings.when (
|
||||
platform.build.triple != platform.target.triple
|
||||
) "${platform.target.triple}-";
|
||||
|
||||
patches = [
|
||||
../patches/libstdc++-target.patch
|
||||
];
|
||||
|
||||
gccFlags = [
|
||||
"-Wl,-dynamic-linker=${config.deps.host.host.glibc.dynamicLinker}"
|
||||
"-L${config.deps.host.host.glibc.package}/lib"
|
||||
"-B${config.deps.host.host.glibc.package}/lib"
|
||||
]
|
||||
++ lib.lists.when (config.platform.target == "riscv64-linux") [
|
||||
"-Wl,-dynamic-linker=${config.deps.host.glibc.dynamicLinker}"
|
||||
"-L${config.deps.host.glibc.package}/lib"
|
||||
"-B${config.deps.host.glibc.package}/lib"
|
||||
"-L${config.package.outPath}/lib"
|
||||
"-B${config.package.outPath}/lib"
|
||||
];
|
||||
|
|
@ -38,13 +32,13 @@ let
|
|||
"--prefix=${builtins.placeholder "out"}"
|
||||
"--build=${platform.build.triple}"
|
||||
"--host=${platform.host.triple}"
|
||||
"--target=${config.target.triple}"
|
||||
"--target=${platform.host.triple}"
|
||||
"--enable-languages=c,c++"
|
||||
"--disable-lto"
|
||||
"--disable-bootstrap"
|
||||
"--disable-libsanitizer"
|
||||
"--disable-multilib"
|
||||
"--with-native-system-header-dir=${config.deps.host.host.glibc.package}/include"
|
||||
"--with-native-system-header-dir=${config.deps.host.glibc.package}/include"
|
||||
"--with-gxx-include-dir=${builtins.placeholder "out"}/include/c++/${config.version}/"
|
||||
"--with-build-sysroot=/"
|
||||
];
|
||||
|
|
@ -97,7 +91,6 @@ in
|
|||
|
||||
builder = builders.foundation.basic;
|
||||
|
||||
target.triple = config.platform.host.triple;
|
||||
gmp.version = "6.3.0";
|
||||
mpfr.version = "4.2.1";
|
||||
mpc.version = "1.3.1";
|
||||
|
|
@ -131,8 +124,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
bzip2 = packages.foundation.bzip2.versions."1.0.8-bootstrap";
|
||||
|
|
@ -166,34 +159,30 @@ in
|
|||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
glibc = packages.foundation.glibc.versions."2.38-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
}
|
||||
)
|
||||
// {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
|
||||
target = {
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
};
|
||||
};
|
||||
|
||||
host = {
|
||||
host = {
|
||||
glibc = packages.foundation.glibc.versions."2.38-stage1";
|
||||
};
|
||||
glibc = packages.foundation.glibc.versions."2.38-stage1";
|
||||
};
|
||||
};
|
||||
|
||||
env = rec {
|
||||
CFLAGS_FOR_BUILD = "-Wl,-dynamic-linker -Wl,${config.deps.build.build.glibc.dynamicLinker} -B${config.deps.build.build.glibc.package}/lib";
|
||||
LDFLAGS_FOR_BUILD = "-L${config.deps.build.build.gcc.package}/lib -L${config.deps.build.build.glibc.package}/lib -Wl,-rpath,${config.deps.build.build.gcc.package}/lib -Wl,-rpath,${config.deps.build.build.glibc.package}/lib";
|
||||
CFLAGS_FOR_TARGET = "-Wl,-dynamic-linker -Wl,${config.deps.host.host.glibc.dynamicLinker} -B${config.deps.host.host.glibc.package}/lib";
|
||||
LDFLAGS_FOR_TARGET = "-L$(pwd)/${platform.target.triple}/libgcc -L${config.deps.host.host.glibc.package}/lib";
|
||||
CC = CC_FOR_TARGET;
|
||||
CXX = CXX_FOR_TARGET;
|
||||
CFLAGS_FOR_BUILD = "-Wl,-dynamic-linker -Wl,${config.deps.build.glibc.dynamicLinker} -B${config.deps.build.glibc.package}/lib";
|
||||
LDFLAGS_FOR_BUILD = "-L${config.deps.build.gcc.package}/lib -L${config.deps.build.glibc.package}/lib -Wl,-rpath,${config.deps.build.gcc.package}/lib -Wl,-rpath,${config.deps.build.glibc.package}/lib";
|
||||
CFLAGS_FOR_TARGET = "-Wl,-dynamic-linker -Wl,${config.deps.host.glibc.dynamicLinker} -B${config.deps.host.glibc.package}/lib";
|
||||
LDFLAGS_FOR_TARGET = "-L$(pwd)/${platform.host.triple}/libgcc -L${config.deps.host.glibc.package}/lib";
|
||||
CFLAGS = CFLAGS_FOR_TARGET;
|
||||
LDFLAGS = LDFLAGS_FOR_TARGET;
|
||||
LIBRARY_PATH = "${config.deps.host.host.glibc.package}/lib";
|
||||
LIBRARY_PATH = "${config.deps.host.glibc.package}/lib";
|
||||
};
|
||||
|
||||
hooks = ctx: {
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ let
|
|||
];
|
||||
|
||||
gccFlags = [
|
||||
"-Wl,-dynamic-linker=${config.deps.host.host.glibc.dynamicLinker}"
|
||||
"-L${config.deps.host.host.glibc.package}/lib"
|
||||
"-B${config.deps.host.host.glibc.package}/lib"
|
||||
"-Wl,-dynamic-linker=${config.deps.host.glibc.dynamicLinker}"
|
||||
"-L${config.deps.host.glibc.package}/lib"
|
||||
"-B${config.deps.host.glibc.package}/lib"
|
||||
"-L${config.package.outPath}/lib"
|
||||
"-B${config.package.outPath}/lib"
|
||||
];
|
||||
|
|
@ -32,14 +32,13 @@ let
|
|||
"--prefix=${builtins.placeholder "out"}"
|
||||
"--build=${platform.build.triple}"
|
||||
"--host=${platform.host.triple}"
|
||||
"--target=${config.target.triple}"
|
||||
"--enable-languages=c,c++"
|
||||
"--disable-lto"
|
||||
"--disable-bootstrap"
|
||||
"--disable-libsanitizer"
|
||||
"--disable-multilib"
|
||||
"--with-build-sysroot=/"
|
||||
"--with-native-system-header-dir=${config.deps.host.host.glibc.package}/include"
|
||||
"--with-native-system-header-dir=${config.deps.host.glibc.package}/include"
|
||||
];
|
||||
in
|
||||
{
|
||||
|
|
@ -63,11 +62,6 @@ in
|
|||
type = lib.types.string;
|
||||
description = "Version of isl.";
|
||||
};
|
||||
|
||||
target.triple = lib.options.create {
|
||||
type = lib.types.string;
|
||||
description = "Target platform of GCC";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
|
|
@ -81,7 +75,6 @@ in
|
|||
|
||||
builder = builders.foundation.basic;
|
||||
|
||||
target.triple = config.platform.host;
|
||||
gmp.version = "6.3.0";
|
||||
mpfr.version = "4.2.1";
|
||||
mpc.version = "1.3.1";
|
||||
|
|
@ -115,68 +108,54 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
bzip2 = packages.foundation.bzip2.versions."1.0.8-bootstrap";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-bootstrap";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-bootstrap";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-bootstrap";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap";
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap";
|
||||
gnused = packages.foundation.gnused.versions."4.9-bootstrap";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-bootstrap";
|
||||
gzip = packages.foundation.gzip.versions."1.13-bootstrap";
|
||||
xz = packages.foundation.xz.versions."5.4.3-bootstrap";
|
||||
binutils = packages.foundation.binutils.versions."2.41-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
bzip2 = packages.foundation.bzip2.versions."1.0.8-stage1-passthrough";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-stage1-passthrough";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-stage1-passthrough";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-stage1-passthrough";
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-stage1-passthrough";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-stage1-passthrough";
|
||||
gnused = packages.foundation.gnused.versions."4.9-stage1-passthrough";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-stage1-passthrough";
|
||||
gzip = packages.foundation.gzip.versions."1.13-stage1-passthrough";
|
||||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
build =
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
bzip2 = packages.foundation.bzip2.versions."1.0.8-bootstrap";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-bootstrap";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-bootstrap";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-bootstrap";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap";
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap";
|
||||
gnused = packages.foundation.gnused.versions."4.9-bootstrap";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-bootstrap";
|
||||
gzip = packages.foundation.gzip.versions."1.13-bootstrap";
|
||||
xz = packages.foundation.xz.versions."5.4.3-bootstrap";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-bootstrap";
|
||||
binutils = packages.foundation.binutils.versions."2.41-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
bzip2 = packages.foundation.bzip2.versions."1.0.8-stage1-passthrough";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-stage1-passthrough";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-stage1-passthrough";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-stage1-passthrough";
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-stage1-passthrough";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-stage1-passthrough";
|
||||
gnused = packages.foundation.gnused.versions."4.9-stage1-passthrough";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-stage1-passthrough";
|
||||
gzip = packages.foundation.gzip.versions."1.13-stage1-passthrough";
|
||||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage3-passthrough";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host =
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-bootstrap";
|
||||
binutils = packages.foundation.binutils.versions."2.41-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage3-passthrough";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
};
|
||||
|
||||
host = {
|
||||
host =
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
glibc = packages.foundation.glibc.versions."2.38-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
glibc = packages.foundation.glibc.versions."2.38-stage1-passthrough";
|
||||
};
|
||||
};
|
||||
host =
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
glibc = packages.foundation.glibc.versions."2.38-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
glibc = packages.foundation.glibc.versions."2.38-stage1-passthrough";
|
||||
};
|
||||
};
|
||||
|
||||
env = {
|
||||
CFLAGS_FOR_TARGET = "-Wl,-dynamic-linker -Wl,${config.deps.host.host.glibc.dynamicLinker}";
|
||||
LIBRARY_PATH = "${config.deps.host.host.glibc.package}/lib";
|
||||
CFLAGS_FOR_TARGET = "-Wl,-dynamic-linker -Wl,${config.deps.host.glibc.dynamicLinker}";
|
||||
LIBRARY_PATH = "${config.deps.host.glibc.package}/lib";
|
||||
};
|
||||
|
||||
hooks = ctx: {
|
||||
|
|
|
|||
|
|
@ -10,8 +10,11 @@ let
|
|||
package = packages.foundation.glibc.versions."2.38-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
config.platform.build
|
||||
);
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gnugrep.versions."3.11-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gnum4.versions."1.4.19-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gnumake.versions."4.4.1-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
|
||||
{
|
||||
|
|
@ -82,13 +82,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gnupatch.versions."2.7-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,10 +45,9 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap";
|
||||
|
|
@ -77,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gnused.versions."4.9-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gnutar.versions."1.35-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,10 +45,9 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap";
|
||||
|
|
@ -77,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.gzip.versions."1.13-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -76,13 +76,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc-cross = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils-cross = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ let
|
|||
package = packages.foundation.linux-headers.versions."6.5.6-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,15 +10,15 @@ let
|
|||
package = packages.foundation.musl.versions."1.2.4-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
target = lib.modules.overrides.force config.platform.target;
|
||||
};
|
||||
};
|
||||
in
|
||||
|
|
@ -35,10 +35,6 @@ in
|
|||
build = "@linux";
|
||||
host = "@linux";
|
||||
}
|
||||
{
|
||||
build = "@linux";
|
||||
target = "@linux";
|
||||
}
|
||||
];
|
||||
|
||||
builder = builders.foundation.passthrough.extend {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ let
|
|||
platform = {
|
||||
build = lib.systems.withBuildInfo config.platform.build;
|
||||
host = lib.systems.withBuildInfo config.platform.host;
|
||||
target = lib.systems.withBuildInfo config.platform.target;
|
||||
};
|
||||
|
||||
in
|
||||
|
|
@ -28,18 +27,10 @@ in
|
|||
build = "i686-linux";
|
||||
host = "x86_64-linux";
|
||||
}
|
||||
{
|
||||
build = "i686-linux";
|
||||
target = "x86_64-linux";
|
||||
}
|
||||
{
|
||||
build = "x86_64-linux";
|
||||
host = "@linux";
|
||||
}
|
||||
{
|
||||
build = "x86_64-linux";
|
||||
target = "@linux";
|
||||
}
|
||||
];
|
||||
|
||||
builder = builders.foundation.basic;
|
||||
|
|
@ -50,8 +41,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -73,20 +64,22 @@ in
|
|||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
bash = packages.foundation.bash.versions."5.2.15-stage1-passthrough";
|
||||
};
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
};
|
||||
target = lib.attrs.when (config.platform.host != config.platform.target) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
};
|
||||
};
|
||||
host = {
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
bash = packages.foundation.bash.versions."5.2.15-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
# target = lib.attrs.when (config.platform.host != config.platform.target) {
|
||||
# gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
# binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
# };
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
bash = packages.foundation.bash.versions."5.2.15-stage1";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -103,7 +96,7 @@ in
|
|||
patch = ''
|
||||
# Patch
|
||||
# https://github.com/ZilchOS/bootstrap-from-tcc/blob/2e0c68c36b3437386f786d619bc9a16177f2e149/using-nix/2a3-intermediate-musl.nix
|
||||
sed -i 's|/bin/sh|${config.deps.build.build.bash.package}/bin/bash|' \
|
||||
sed -i 's|/bin/sh|${config.deps.build.bash.package}/bin/bash|' \
|
||||
tools/*.sh
|
||||
# patch popen/system to search in PATH instead of hardcoding /bin/sh
|
||||
sed -i 's|posix_spawn(&pid, "/bin/sh",|posix_spawnp(\&pid, "sh",|' \
|
||||
|
|
@ -118,7 +111,6 @@ in
|
|||
--prefix=$out \
|
||||
--build=${platform.build.triple} \
|
||||
--host=${platform.host.triple} \
|
||||
--target=${platform.target.triple} \
|
||||
--syslibdir=$out/lib \
|
||||
--enable-wrapper
|
||||
'';
|
||||
|
|
@ -133,9 +125,9 @@ in
|
|||
make -j $NIX_BUILD_CORES install
|
||||
sed -i 's|/bin/sh|${
|
||||
if (config.platform.build != config.platform.host) then
|
||||
config.deps.host.host.bash.package
|
||||
config.deps.host.bash.package
|
||||
else
|
||||
config.deps.build.build.bash.package
|
||||
config.deps.build.bash.package
|
||||
}/bin/bash|' $out/bin/*
|
||||
ln -s ../lib/libc.so $out/bin/ldd
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -48,56 +48,53 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap";
|
||||
gnused = packages.foundation.gnused.versions."4.9-bootstrap";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-bootstrap";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-bootstrap";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-bootstrap";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-bootstrap";
|
||||
xz = packages.foundation.xz.versions."5.4.3-bootstrap";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-bootstrap";
|
||||
binutils = packages.foundation.binutils.versions."2.41-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-stage1-passthrough";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-stage1-passthrough";
|
||||
gnused = packages.foundation.gnused.versions."4.9-stage1-passthrough";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-stage1-passthrough";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-stage1-passthrough";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-stage1-passthrough";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-stage1-passthrough";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough";
|
||||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
python = packages.foundation.python.versions."3.12.0-stage1";
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap";
|
||||
gnused = packages.foundation.gnused.versions."4.9-bootstrap";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-bootstrap";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-bootstrap";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-bootstrap";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-bootstrap";
|
||||
xz = packages.foundation.xz.versions."5.4.3-bootstrap";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-bootstrap";
|
||||
binutils = packages.foundation.binutils.versions."2.41-bootstrap";
|
||||
}
|
||||
else
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-stage1-passthrough";
|
||||
gnupatch = packages.foundation.gnupatch.versions."2.7-stage1-passthrough";
|
||||
gnused = packages.foundation.gnused.versions."4.9-stage1-passthrough";
|
||||
gnutar = packages.foundation.gnutar.versions."1.35-stage1-passthrough";
|
||||
gnugrep = packages.foundation.gnugrep.versions."3.11-stage1-passthrough";
|
||||
gawk = packages.foundation.gawk.versions."5.2.2-stage1-passthrough";
|
||||
diffutils = packages.foundation.diffutils.versions."3.10-stage1-passthrough";
|
||||
findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough";
|
||||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
python = packages.foundation.python.versions."3.12.0-stage1";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
};
|
||||
};
|
||||
|
||||
host = {
|
||||
host = {
|
||||
zlib =
|
||||
if (config.platform.build == "i686-linux" && config.platform.build == config.platform.host) then
|
||||
packages.foundation.zlib.versions."1.3-bootstrap"
|
||||
else
|
||||
packages.foundation.zlib.versions."1.3-stage1";
|
||||
};
|
||||
zlib =
|
||||
if (config.platform.build == "i686-linux" && config.platform.build == config.platform.host) then
|
||||
packages.foundation.zlib.versions."1.3-bootstrap"
|
||||
else
|
||||
packages.foundation.zlib.versions."1.3-stage1";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -123,7 +120,7 @@ in
|
|||
"--host=${platform.host.triple}"
|
||||
]
|
||||
++ lib.lists.when (config.platform.build != config.platform.host) [
|
||||
"--with-build-python=\"${config.deps.build.build.python.package}/bin/python3\""
|
||||
"--with-build-python=\"${config.deps.build.python.package}/bin/python3\""
|
||||
"ac_cv_buggy_getaddrinfo=no"
|
||||
"ac_cv_file__dev_ptmx=yes"
|
||||
"ac_cv_file__dev_ptc=yes"
|
||||
|
|
|
|||
|
|
@ -10,12 +10,13 @@ let
|
|||
package = packages.foundation.xz.versions."5.4.3-stage1".extend {
|
||||
platform = {
|
||||
build = lib.modules.overrides.force (
|
||||
if config.platform.build != config.platform.target then
|
||||
config.platform.build
|
||||
else if config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux" then
|
||||
"i686-linux"
|
||||
if (config.platform.build == config.platform.host) then
|
||||
if (config.platform.build == "x86_64-linux" || config.platform.build == "i686-linux") then
|
||||
"i686-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
else
|
||||
"x86_64-linux"
|
||||
config.platform.build
|
||||
);
|
||||
host = lib.modules.overrides.force config.platform.host;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -72,13 +72,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phases = {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ let
|
|||
platform = {
|
||||
build = lib.systems.withBuildInfo config.platform.build;
|
||||
host = lib.systems.withBuildInfo config.platform.host;
|
||||
target = lib.systems.withBuildInfo config.platform.target;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
@ -45,8 +44,8 @@ in
|
|||
};
|
||||
|
||||
deps = {
|
||||
build = {
|
||||
build =
|
||||
build =
|
||||
(
|
||||
if (config.platform.build == "i686-linux") then
|
||||
{
|
||||
gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap";
|
||||
|
|
@ -66,13 +65,16 @@ in
|
|||
xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough";
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage4";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough";
|
||||
};
|
||||
|
||||
host = lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2";
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1";
|
||||
}
|
||||
)
|
||||
// lib.attrs.when (config.platform.build != config.platform.host) {
|
||||
gcc = packages.foundation.gcc.versions."13.2.0-stage2".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
binutils = packages.foundation.binutils.versions."2.41-stage1".extend {
|
||||
settings.target = config.platform.host;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
context = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue