From 80d9fe945ba6b07d061b35ca4733ade583975937 Mon Sep 17 00:00:00 2001 From: Artemis Tosini Date: Tue, 5 Nov 2024 22:33:23 +0000 Subject: [PATCH] openbsd.stand: init This stand package builds all variants of OpenBSD's `stand` bootloader, including both UEFI and BIOS versions. This package will likely need changes if we ever support `aarch64-openbsd`, but that isn't even a target yet. Co-Authored-By: Audrey Dutcher --- pkgs/os-specific/bsd/openbsd/pkgs/stand.nix | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 pkgs/os-specific/bsd/openbsd/pkgs/stand.nix diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/stand.nix b/pkgs/os-specific/bsd/openbsd/pkgs/stand.nix new file mode 100644 index 000000000000..4ded2fb4c3fe --- /dev/null +++ b/pkgs/os-specific/bsd/openbsd/pkgs/stand.nix @@ -0,0 +1,32 @@ +{ + mkDerivation, + stdenv, + pkgsBuildTarget, +}: + +mkDerivation { + path = "sys/arch/amd64/stand"; + extraPaths = [ "sys" ]; + + # gcc compat + postPatch = '' + find $BSDSRCDIR -name Makefile -print0 | xargs -0 sed -E -i -e 's/-nopie/-no-pie/g' + substituteInPlace $BSDSRCDIR/sys/arch/*/stand/boot/check-boot.pl --replace-fail /usr/bin/objdump objdump + substituteInPlace $BSDSRCDIR/sys/arch/*/stand/Makefile --replace-quiet " boot " " " --replace-quiet " fdboot " " " + ''; + + # expects to be able to use unprefixed programs + # needs gnu assembler + objdump + objcopy + # this is really not designed for cross... + preBuild = '' + mkdir $TMP/bin + export PATH=$TMP/bin:$PATH + ln -s ${stdenv.cc}/bin/${stdenv.cc.targetPrefix}size $TMP/bin/size + ln -s ${pkgsBuildTarget.binutils}/bin/${pkgsBuildTarget.binutils.targetPrefix}as $TMP/bin/as + ln -s ${pkgsBuildTarget.binutils}/bin/${pkgsBuildTarget.binutils.targetPrefix}objdump $TMP/bin/objdump + ln -s ${pkgsBuildTarget.binutils}/bin/${pkgsBuildTarget.binutils.targetPrefix}objcopy $TMP/bin/objcopy + ln -s ${pkgsBuildTarget.binutils}/bin/${pkgsBuildTarget.binutils.targetPrefix}objcopy $TMP/bin/ + + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-pointer-sign" + ''; +}