freebsd: Handle MACHINE/MACHINE_ARCH/MACHINE_CPUARCH differences

This commit is contained in:
Artemis Tosini 2024-07-27 22:37:32 +00:00
parent 9412d1b908
commit 7e893695b8
No known key found for this signature in database
GPG Key ID: EE5227935FE3FF18
3 changed files with 46 additions and 6 deletions

View File

@ -8,6 +8,40 @@
inherit version;
mkBsdArch =
stdenv':
{
x86_64 = "amd64";
aarch64 = "aarch64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
armv6l = "armv6";
armv7l = "armv7";
powerpc = "powerpc";
powerpc64 = "powerpc64";
powerpc64le = "powerpc64le";
riscv64 = "riscv64";
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
mkBsdCpuArch =
stdenv':
{
x86_64 = "amd64";
aarch64 = "aarch64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
armv6l = "arm";
armv7l = "arm";
powerpc = "powerpc";
powerpc64 = "powerpc";
powerpc64le = "powerpc";
riscv64 = "riscv";
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
mkBsdMachine =
stdenv':
{
x86_64 = "amd64";
@ -15,6 +49,12 @@
i486 = "i386";
i586 = "i386";
i686 = "i386";
armv6l = "arm";
armv7l = "arm";
powerpc = "powerpc";
powerpc64 = "powerpc";
powerpc64le = "powerpc";
riscv64 = "riscv";
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;

View File

@ -14,7 +14,7 @@
}:
let
inherit (freebsd-lib) mkBsdArch;
inherit (freebsd-lib) mkBsdMachine;
in
mkDerivation {
@ -78,7 +78,7 @@ mkDerivation {
"sys/sys/elf64.h"
"sys/sys/elf_common.h"
"sys/sys/elf_generic.h"
"sys/${mkBsdArch stdenv}/include"
"sys/${mkBsdMachine stdenv}/include"
]
++ lib.optionals stdenv.hostPlatform.isx86 [ "sys/x86/include" ]
++ [
@ -118,8 +118,8 @@ mkDerivation {
''
NIX_CFLAGS_COMPILE+=' -I../../include -I../../sys'
cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys
cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys/${mkBsdArch stdenv}
cp ../../sys/${mkBsdMachine stdenv}/include/elf.h ../../sys/sys
cp ../../sys/${mkBsdMachine stdenv}/include/elf.h ../../sys/sys/${mkBsdMachine stdenv}
''
+ lib.optionalString stdenv.hostPlatform.isx86 ''
cp ../../sys/x86/include/elf.h ../../sys/x86

View File

@ -65,9 +65,9 @@ lib.makeOverridable (
# amd64 not x86_64 for this on unlike NetBSD
MACHINE_ARCH = freebsd-lib.mkBsdArch stdenv';
MACHINE = freebsd-lib.mkBsdArch stdenv';
MACHINE = freebsd-lib.mkBsdMachine stdenv';
MACHINE_CPUARCH = MACHINE_ARCH;
MACHINE_CPUARCH = freebsd-lib.mkBsdCpuArch stdenv';
COMPONENT_PATH = attrs.path or null;