Merge pull request #330722 from artemist/freebsd-machine

freebsd: Handle MACHINE/MACHINE_ARCH/MACHINE_CPUARCH differences
This commit is contained in:
John Ericson
2024-07-30 13:59:45 -05:00
committed by GitHub
3 changed files with 46 additions and 6 deletions
@@ -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;
@@ -14,7 +14,7 @@
}:
let
inherit (freebsd-lib) mkBsdArch;
inherit (freebsd-lib) mkBsdMachine;
in
mkDerivation {
@@ -81,7 +81,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" ]
++ [
@@ -121,8 +121,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
@@ -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;