WIP: feat: support for x86_64-linux #1

Draft
isabelroses wants to merge 3 commits from feat/x86-64_linux into main
68 changed files with 312 additions and 125 deletions
Showing only changes of commit f3a30ae07d - Show all commits

View file

@ -14,7 +14,10 @@
modules = import ./src;
forEachSystem = lib.attrs.generate [ "i686-linux" ];
forEachSystem = lib.attrs.generate [
"i686-linux"
"x86_64-linux"
isabelroses marked this conversation as resolved Outdated

Pretty much all of the packages from stage1 and beyond are restricted to i686-linux. I don't think that adding the extra system here will do much unless we modify packages to build properly on x86_64-linux and set their meta.platforms to include the new system.

Pretty much all of the packages from `stage1` and beyond are restricted to `i686-linux`. I don't think that adding the extra system here will do much unless we modify packages to build properly on `x86_64-linux` and set their `meta.platforms` to include the new system.
];
in
{
extras =

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -42,7 +42,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -125,7 +125,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -41,7 +41,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -35,7 +35,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -35,7 +35,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -36,7 +36,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -37,7 +37,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -38,7 +38,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -39,7 +39,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -40,7 +40,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -41,7 +41,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -40,7 +40,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -40,7 +40,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -31,7 +31,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
# TODO: Support more platforms.
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -38,7 +38,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -31,7 +31,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -31,7 +31,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -34,43 +34,40 @@ in
sha256 = "02m6gajm647n8l9a5bnld6fnbgdpyi4i3i83p7xcwv0kif47xhy6";
};
package =
let
in
builders.bash.boot.build {
name = "gnutar-boot-${cfg.version}";
package = builders.bash.boot.build {
name = "gnutar-boot-${cfg.version}";
meta = stage1.gnutar.meta;
meta = stage1.gnutar.meta;
deps.build.host = [
stage1.tinycc.mes.compiler.package
stage1.gnumake.boot.package
stage1.gnused.boot.package
stage1.gnugrep.package
];
deps.build.host = [
stage1.tinycc.mes.compiler.package
stage1.gnumake.boot.package
stage1.gnused.boot.package
stage1.gnugrep.package
];
script = ''
# Unpack
ungz --file ${cfg.src} --output tar.tar
untar --file tar.tar
rm tar.tar
cd tar-${cfg.version}
script = ''
# Unpack
ungz --file ${cfg.src} --output tar.tar
untar --file tar.tar
rm tar.tar
cd tar-${cfg.version}
# Configure
export CC="tcc -B ${stage1.tinycc.mes.libs.package}/lib"
bash ./configure \
--build=${platform.build} \
--host=${platform.host} \
--disable-nls \
--prefix=$out
# Configure
export CC="tcc -B ${stage1.tinycc.mes.libs.package}/lib"
bash ./configure \
--build=${platform.build} \
--host=${platform.host} \
--disable-nls \
--prefix=$out
# Build
make AR="tcc -ar"
# Build
make AR="tcc -ar"
# Install
make install
'';
};
# Install
make install
'';
};
};
};
}

View file

@ -37,7 +37,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -31,7 +31,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};
@ -60,39 +63,37 @@ in
sha256 = "0ryr5b00qz3xcdcv03qwjdfji8pasp0007ay3ppmk71wl8c1i90w";
};
package =
let
in
builders.bash.boot.build {
name = "gzip-${cfg.version}";
meta = cfg.meta;
package = builders.bash.boot.build {
name = "gzip-${cfg.version}";
meta = cfg.meta;
deps.build.host = [
stage1.tinycc.mes.compiler.package
stage1.gnumake.boot.package
stage1.gnused.boot.package
stage1.gnugrep.package
];
deps.build.host = [
stage1.tinycc.mes.compiler.package
stage1.gnumake.boot.package
stage1.gnused.boot.package
stage1.gnugrep.package
];
script = ''
# Unpack
ungz --file ${cfg.src} --output gzip.tar
untar --file gzip.tar
rm gzip.tar
cd gzip-${cfg.version}
script = ''
# Unpack
ungz --file ${cfg.src} --output gzip.tar
untar --file gzip.tar
rm gzip.tar
cd gzip-${cfg.version}
# Configure
export CC="tcc -B ${stage1.tinycc.mes.libs.package}/lib -Dstrlwr=unused"
bash ./configure --prefix=$out
# Configure
export CC="tcc -B ${stage1.tinycc.mes.libs.package}/lib -Dstrlwr=unused"
chmod +x ./configure
./configure --prefix=$out
# Build
make
# Build
make
# Install
mkdir $out
make install
'';
};
# Install
mkdir $out
make install
'';
};
};
};
}

View file

@ -45,7 +45,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -53,7 +53,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};
};

View file

@ -26,7 +26,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -31,7 +31,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -131,7 +131,6 @@ in
# Install
make install
cp ${stage1.tinycc.mes.libs.package}/lib/libtcc1.a $out/lib
'';
};
};

View file

@ -35,7 +35,10 @@ in
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
# TODO: Support more platforms.
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -34,7 +34,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -38,6 +38,7 @@ in
default.value = [
"x86_64-linux"
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -37,7 +37,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -35,7 +35,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
# TODO: Support more platforms.
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
mainProgram = lib.options.create {

View file

@ -32,7 +32,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -33,7 +33,10 @@ in
platforms = lib.options.create {
type = lib.types.list.of lib.types.string;
description = "Platforms the package supports.";
default.value = [ "i686-linux" ];
default.value = [
"i686-linux"
"x86_64-linux"
];
};
};

View file

@ -3,7 +3,7 @@
options.aux = {
system = lib.options.create {
type = lib.types.string;
default.value = "i686-linux";
default.value = "x86_64-linux";
description = ''
The system to build packages for. This value can be provided as either
`config.aux.system` or by setting the `system` argument for modules.