From 6948875e73a855b8a0c665301576dcd9653b9e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20W=C3=BCnsche?= Date: Fri, 16 Oct 2020 14:35:22 +0200 Subject: [PATCH] llvmPackages_11.compiler-rt: enable support for i486 i586 i686 compiler-rt (and as a result clang) can't be build for i686 (as noticed here: #99984). The patch adds the required variables and should result in the same behavior as in the nixpkgs-llvm10. It essentially forces to use i386 buildins when using i486, i586 or i686, which are not supported. Fixes #100392 --- .../compiler-rt-X86-support-extension.patch | 23 +++++++++++++++++++ .../compilers/llvm/11/compiler-rt.nix | 1 + 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/compilers/llvm/11/compiler-rt-X86-support-extension.patch diff --git a/pkgs/development/compilers/llvm/11/compiler-rt-X86-support-extension.patch b/pkgs/development/compilers/llvm/11/compiler-rt-X86-support-extension.patch new file mode 100644 index 00000000000..f6f9336ad5a --- /dev/null +++ b/pkgs/development/compilers/llvm/11/compiler-rt-X86-support-extension.patch @@ -0,0 +1,23 @@ +diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt +index 3a66dd9c3fb..7efc85d9f9f 100644 +--- a/lib/builtins/CMakeLists.txt ++++ b/lib/builtins/CMakeLists.txt +@@ -301,6 +301,10 @@ if (NOT MSVC) + i386/umoddi3.S + ) + ++ set(i486_SOURCES ${i386_SOURCES}) ++ set(i586_SOURCES ${i386_SOURCES}) ++ set(i686_SOURCES ${i386_SOURCES}) ++ + if (WIN32) + set(i386_SOURCES + ${i386_SOURCES} +@@ -608,6 +612,7 @@ else () + endif() + + foreach (arch ${BUILTIN_SUPPORTED_ARCH}) ++ message("arch: ${arch}") + if (CAN_TARGET_${arch}) + # For ARM archs, exclude any VFP builtins if VFP is not supported + if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/development/compilers/llvm/11/compiler-rt.nix b/pkgs/development/compilers/llvm/11/compiler-rt.nix index e0cb712fe61..db1f93f86ab 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt.nix @@ -47,6 +47,7 @@ stdenv.mkDerivation rec { patches = [ ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt-X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config ]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ stdenv.lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;