From 2ca39fe86b4c5581e4a3aa9d716df05db895d582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sat, 8 Dec 2018 19:25:43 +0000 Subject: [PATCH] llvm_7: fix cross-compiling --- pkgs/development/compilers/llvm/7/llvm.nix | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/llvm/7/llvm.nix b/pkgs/development/compilers/llvm/7/llvm.nix index 67bde813fee..06024856356 100644 --- a/pkgs/development/compilers/llvm/7/llvm.nix +++ b/pkgs/development/compilers/llvm/7/llvm.nix @@ -23,6 +23,18 @@ let # Used when creating a version-suffixed symlink of libLLVM.dylib shortVersion = with stdenv.lib; concatStringsSep "." (take 1 (splitString "." release_version)); + + llvmTarget = platform: + if platform.parsed.cpu.family == "x86" then + "X86" + else if platform.parsed.cpu.name == "aarch64" then + "AArch64" + else if platform.parsed.cpu.family == "arm" then + "ARM" + else if platform.parsed.cpu.family == "mips" then + "Mips" + else + throw "Unsupported system"; in stdenv.mkDerivation (rec { name = "llvm-${version}"; @@ -78,10 +90,9 @@ in stdenv.mkDerivation (rec { "-DLLVM_BUILD_TESTS=ON" "-DLLVM_ENABLE_FFI=ON" "-DLLVM_ENABLE_RTTI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DLLVM_TARGETS_TO_BUILD=${llvmTarget stdenv.hostPlatform};${llvmTarget stdenv.targetPlatform}" "-DLLVM_ENABLE_DUMP=ON" ]