refactor: only support i686-linux for foundation gcc

This commit is contained in:
Jake Hamilton 2024-07-03 12:34:36 -07:00
parent 193a52cbc8
commit b315ae81f6
Signed by: jakehamilton
GPG key ID: 9762169A1B35EA68
2 changed files with 185 additions and 203 deletions

View file

@ -83,7 +83,6 @@ in {
}
);
in
(builtins.trace "${package.name}: ${system}")
built
// {
inherit (package) meta;

View file

@ -1,24 +1,24 @@
{
lib,
lib',
config,
options,
}:
let
inherit (config)
}: let
inherit
(config)
lib
mirrors
builders
# These are the upstream foundational packages exported from the Aux Foundation project.
foundation
packages
;
in
{
in {
config.packages.foundation.gcc = {
versions = {
"latest" =
{ config, meta }:
{
"latest" = {
config,
meta,
}: {
options = {
src = lib.options.create {
type = lib.types.derivation;
@ -82,7 +82,7 @@ in
config = {
meta = {
platforms = [ "i686-linux" ];
platforms = ["i686-linux"];
};
pname = "gcc";
@ -91,28 +91,7 @@ in
builder = builders.basic;
env = {
PATH =
let
gcc =
if
config.platform.build.triple == config.platform.host.triple
# If we're on the same system then we can use the existing GCC instance.
then
foundation.stage2-gcc
# Otherwise we are going to need a cross-compiler.
else
# TODO: Create a gcc-cross package.
(meta.extend (args: {
config = {
platform = {
build = config.platform.build.triple;
host = config.platform.build.triple;
target = lib.modules.override.force config.platform.host.triple;
};
};
})).config.package;
in
lib.paths.bin [
PATH = lib.paths.bin [
foundation.stage2-gcc
foundation.stage2-binutils
foundation.stage2-gnumake
@ -128,14 +107,18 @@ in
];
};
phases =
let
host = lib'.systems.withBuildInfo config.platform.host;
phases = let
host = lib.systems.withBuildInfo config.platform.host;
mbits = if host.system.cpu.family == "x86" then if host.is64bit then "-m64" else "-m32" else "";
in
{
unpack = lib.dag.entry.before [ "patch" ] ''
mbits =
if host.system.cpu.family == "x86"
then
if host.is64bit
then "-m64"
else "-m32"
else "";
in {
unpack = lib.dag.entry.before ["patch"] ''
# Unpack
tar xf ${config.src}
tar xf ${config.gmp.src}
@ -150,13 +133,13 @@ in
ln -s ../isl-${config.isl.version} isl
'';
patch = lib.dag.entry.between [ "configure" ] [ "unpack" ] ''
patch = lib.dag.entry.between ["configure"] ["unpack"] ''
# Patch
# force musl even if host triple is gnu
sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host
'';
configure = lib.dag.entry.between [ "build" ] [ "patch" ] ''
configure = lib.dag.entry.between ["build"] ["patch"] ''
# Configure
export CC="gcc -Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so"
export CXX="g++ -Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so"
@ -180,12 +163,12 @@ in
CXXFLAGS=-static
'';
build = lib.dag.entry.between [ "install" ] [ "configure" ] ''
build = lib.dag.entry.between ["install"] ["configure"] ''
# Build
make -j $NIX_BUILD_CORES
'';
install = lib.dag.entry.after [ "build" ] ''
install = lib.dag.entry.after ["build"] ''
# Install
make -j $NIX_BUILD_CORES install-strip
'';