From b51cf6ec0e0bc9a192a6595d69e6817fec93c56c Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Fri, 7 Jun 2024 00:02:22 -0700 Subject: [PATCH] kexec-tools: fix compiling with llvm Fixes #317526 --- pkgs/os-specific/linux/kexec-tools/default.nix | 2 +- .../kexec-tools/fix-purgatory-llvm-libunwind.patch | 11 +++++++++++ pkgs/top-level/all-packages.nix | 12 +----------- 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch diff --git a/pkgs/os-specific/linux/kexec-tools/default.nix b/pkgs/os-specific/linux/kexec-tools/default.nix index 3861d5d0cd6f..caecc7f9c10e 100644 --- a/pkgs/os-specific/linux/kexec-tools/default.nix +++ b/pkgs/os-specific/linux/kexec-tools/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { url = "https://github.com/horms/kexec-tools/commit/328de8e00e298f00d7ba6b25dc3950147e9642e6.patch"; hash = "sha256-wVQI4oV+hBLq3kGIp2+F5J3f6s/TypDu3Xq583KYc3U="; }) - ]; + ] ++ lib.optional (stdenv.hostPlatform.useLLVM or false) ./fix-purgatory-llvm-libunwind.patch; hardeningDisable = [ "format" "pic" "relro" "pie" ]; diff --git a/pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch b/pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch new file mode 100644 index 000000000000..235410da94f2 --- /dev/null +++ b/pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch @@ -0,0 +1,11 @@ +--- a/purgatory/Makefile 2024-06-06 23:59:33.089005832 -0700 ++++ b/purgatory/Makefile 2024-06-06 23:59:56.761169892 -0700 +@@ -62,7 +62,7 @@ + $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\ + -Wl,--no-undefined -nostartfiles -nostdlib \ + -nodefaultlibs -e purgatory_start -r \ +- -Wl,-Map=$(PURGATORY_MAP) ++ -Wl,-Map=$(PURGATORY_MAP) -static + + $(PURGATORY): $(PURGATORY_OBJS) + $(MKDIR) -p $(@D) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c0ffbf8bf6e2..1dae626a8a35 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9474,17 +9474,7 @@ with pkgs; kestrel = callPackage ../tools/security/kestrel { }; - kexec-tools = callPackage ../os-specific/linux/kexec-tools { - # clangStdenv fails with - # purgatory/arch/i386/entry32-16.S:23:2: error: unknown directive - # .arch i386 - # ^ - # purgatory/arch/i386/entry32-16.S:115:11: error: unknown token in expression - # ljmp %cs:*(realdest - entry16) - # ^ - # make: *** [Makefile:128: purgatory/arch/i386/entry32-16.o] Error 1 - stdenv = gccStdenv; - }; + kexec-tools = callPackage ../os-specific/linux/kexec-tools { }; keepkey-agent = with python3Packages; toPythonApplication keepkey-agent;