From 7e893695b859a693f5c1e40134383e41e02b3174 Mon Sep 17 00:00:00 2001 From: Artemis Tosini Date: Sat, 27 Jul 2024 22:37:32 +0000 Subject: [PATCH] freebsd: Handle MACHINE/MACHINE_ARCH/MACHINE_CPUARCH differences --- pkgs/os-specific/bsd/freebsd/lib/default.nix | 40 +++++++++++++++++++ .../bsd/freebsd/pkgs/compat/package.nix | 8 ++-- .../bsd/freebsd/pkgs/mkDerivation.nix | 4 +- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/pkgs/os-specific/bsd/freebsd/lib/default.nix b/pkgs/os-specific/bsd/freebsd/lib/default.nix index 3fea3bc3e7f2..d8d975ef71ad 100644 --- a/pkgs/os-specific/bsd/freebsd/lib/default.nix +++ b/pkgs/os-specific/bsd/freebsd/lib/default.nix @@ -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; diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix index f597d6e3705b..c64b17d41622 100644 --- a/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix +++ b/pkgs/os-specific/bsd/freebsd/pkgs/compat/package.nix @@ -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 diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix b/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix index 19b4b1720304..aae852c48798 100644 --- a/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix +++ b/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix @@ -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;