diff options
author | Will Dietz <github@wdtz.org> | 2018-06-23 16:27:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-23 16:27:37 -0500 |
commit | 1667a3c2fa13631f072ed6c263736a20054c1995 (patch) | |
tree | 0007981a840e1c962d7c9165e7792de52c664352 /pkgs/development/compilers | |
parent | 469cca0ac701279d20473a2e4cafe86bdcd2a469 (diff) | |
parent | db7041a0471924ad17c9bf6308fbfd4eea15209c (diff) | |
download | nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.tar nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.tar.gz nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.tar.bz2 nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.tar.lz nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.tar.xz nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.tar.zst nixlib-1667a3c2fa13631f072ed6c263736a20054c1995.zip |
Merge pull request #42452 from dtzWill/feature/llvm-38-39-musl
llvmPackages_{38,39}: musl compat, minor cleanup
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/llvm/3.8/clang/default.nix | 5 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.8/libc++/default.nix | 13 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.8/libc++abi.nix | 3 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.8/llvm.nix | 18 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.9/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.9/libc++/default.nix | 18 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.9/libc++abi.nix | 3 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/3.9/llvm.nix | 15 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/4/libc++/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/4/libc++abi.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/4/llvm.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/dynamiclibrary-musl.patch (renamed from pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch) | 0 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/libcxx-max_align_t.patch (renamed from pkgs/development/compilers/llvm/4/libc++/max_align_t.patch) | 0 |
13 files changed, 65 insertions, 18 deletions
diff --git a/pkgs/development/compilers/llvm/3.8/clang/default.nix b/pkgs/development/compilers/llvm/3.8/clang/default.nix index 05893704d872..cc25a41b0400 100644 --- a/pkgs/development/compilers/llvm/3.8/clang/default.nix +++ b/pkgs/development/compilers/llvm/3.8/clang/default.nix @@ -13,7 +13,8 @@ let mv clang-tools-extra-* $sourceRoot/tools/extra ''; - buildInputs = [ cmake libxml2 llvm python ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ libxml2 llvm python ]; cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-std=c++11" @@ -27,6 +28,8 @@ let postPatch = '' sed -i -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/Tools.cpp sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/Tools.cpp ''; outputs = [ "out" "lib" "python" ]; diff --git a/pkgs/development/compilers/llvm/3.8/libc++/default.nix b/pkgs/development/compilers/llvm/3.8/libc++/default.nix index cc3f5545146c..5a0410302f2f 100644 --- a/pkgs/development/compilers/llvm/3.8/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.8/libc++/default.nix @@ -17,15 +17,22 @@ stdenv.mkDerivation rec { patches = [ # glibc 2.26 fix ../../3.9/libc++/xlocale-glibc-2.26.patch - ] ++ lib.optional stdenv.isDarwin ./darwin.patch; + ] + ++ lib.optional stdenv.isDarwin ./darwin.patch + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + ../../libcxx-0001-musl-hacks.patch + ../../libcxx-max_align_t.patch + ]; + + nativeBuildInputs = [ cmake ]; - buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; + buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; cmakeFlags = [ "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" "-DLIBCXX_CXX_ABI=libcxxabi" - ]; + ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.8/libc++abi.nix b/pkgs/development/compilers/llvm/3.8/libc++abi.nix index 45fb7b5be4f6..8b25681c2dbf 100644 --- a/pkgs/development/compilers/llvm/3.8/libc++abi.nix +++ b/pkgs/development/compilers/llvm/3.8/libc++abi.nix @@ -15,6 +15,9 @@ stdenv.mkDerivation { export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include" '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch} + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-max_align_t.patch} ''; installPhase = if stdenv.isDarwin diff --git a/pkgs/development/compilers/llvm/3.8/llvm.nix b/pkgs/development/compilers/llvm/3.8/llvm.nix index 2c65234b6a47..b847a67e7e3f 100644 --- a/pkgs/development/compilers/llvm/3.8/llvm.nix +++ b/pkgs/development/compilers/llvm/3.8/llvm.nix @@ -36,8 +36,12 @@ in stdenv.mkDerivation rec { # Fix a segfault in llc # See http://lists.llvm.org/pipermail/llvm-dev/2016-October/106500.html - patches = [ ./D17533-1.patch ] ++ - stdenv.lib.optionals (!stdenv.isDarwin) [./fix-llvm-config.patch]; + patches = [ ./D17533-1.patch ] + ++ stdenv.lib.optional (!stdenv.isDarwin) ./fix-llvm-config.patch + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + ../TLI-musl.patch + ../dynamiclibrary-musl.patch + ]; # hacky fix: New LLVM releases require a newer macOS SDK than # 10.9. This is a temporary measure until nixpkgs darwin support is @@ -49,7 +53,7 @@ in stdenv.mkDerivation rec { --replace 'set(CMAKE_INSTALL_NAME_DIR "@rpath")' "set(CMAKE_INSTALL_NAME_DIR "$out/lib")" \ --replace 'set(CMAKE_INSTALL_RPATH "@executable_path/../lib")' "" '' - + stdenv.lib.optionalString (stdenv ? glibc) '' + + '' ( cd projects/compiler-rt patch -p1 < ${ @@ -81,6 +85,14 @@ in stdenv.mkDerivation rec { ++ stdenv.lib.optionals ( isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" + ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" + # Not yet supported + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" + ]; postBuild = '' diff --git a/pkgs/development/compilers/llvm/3.9/clang/default.nix b/pkgs/development/compilers/llvm/3.9/clang/default.nix index 1f6d80ab3be9..f597c559dba6 100644 --- a/pkgs/development/compilers/llvm/3.9/clang/default.nix +++ b/pkgs/development/compilers/llvm/3.9/clang/default.nix @@ -29,6 +29,8 @@ let postPatch = '' sed -i -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/Tools.cpp sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/Tools.cpp ''; outputs = [ "out" "lib" "python" ]; diff --git a/pkgs/development/compilers/llvm/3.9/libc++/default.nix b/pkgs/development/compilers/llvm/3.9/libc++/default.nix index 7e5c30bdfd35..bd2cc19d2e0b 100644 --- a/pkgs/development/compilers/llvm/3.9/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.9/libc++/default.nix @@ -17,15 +17,21 @@ stdenv.mkDerivation rec { patches = [ # glibc 2.26 fix ./xlocale-glibc-2.26.patch - ] ++ lib.optional stdenv.isDarwin ./darwin.patch; + ] + ++ lib.optional stdenv.isDarwin ./darwin.patch + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + ../../libcxx-0001-musl-hacks.patch + ../../libcxx-max_align_t.patch + ]; - buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; + nativeBuildInputs = [ cmake ]; + buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" - "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" - ]; + "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" + "-DLIBCXX_LIBCPPABI_VERSION=2" + "-DLIBCXX_CXX_ABI=libcxxabi" + ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.9/libc++abi.nix b/pkgs/development/compilers/llvm/3.9/libc++abi.nix index dc508757ab6d..dffb207a32b6 100644 --- a/pkgs/development/compilers/llvm/3.9/libc++abi.nix +++ b/pkgs/development/compilers/llvm/3.9/libc++abi.nix @@ -15,6 +15,9 @@ stdenv.mkDerivation { export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include" '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch} + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-max_align_t.patch} ''; installPhase = if stdenv.isDarwin diff --git a/pkgs/development/compilers/llvm/3.9/llvm.nix b/pkgs/development/compilers/llvm/3.9/llvm.nix index 71b67aa7dc57..708e471bd4ac 100644 --- a/pkgs/development/compilers/llvm/3.9/llvm.nix +++ b/pkgs/development/compilers/llvm/3.9/llvm.nix @@ -62,7 +62,10 @@ in stdenv.mkDerivation rec { url = https://github.com/llvm-mirror/llvm/commit/5340b5b3d970069aebf3dde49d8964583742e01a.patch; sha256 = "095f8knplwqbc2p7rad1kq8633i34qynni9jna93an7kyc80wdxl"; }) - ]; + ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + ../TLI-musl.patch + ../dynamiclibrary-musl.patch + ]; postPatch = "" + '' @@ -91,7 +94,7 @@ in stdenv.mkDerivation rec { substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib patch -p1 < ./llvm-outputs.patch '' - + stdenv.lib.optionalString (stdenv ? glibc) '' + + '' ( cd projects/compiler-rt patch -p1 < ${ @@ -129,6 +132,14 @@ in stdenv.mkDerivation rec { ] ++ stdenv.lib.optionals (buildPlatform != hostPlatform) [ "-DCMAKE_CROSSCOMPILING=True" "-DLLVM_TABLEGEN=${buildPackages.llvmPackages_39.llvm}/bin/llvm-tblgen" + ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" + # Not yet supported + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" + ]; postBuild = '' diff --git a/pkgs/development/compilers/llvm/4/libc++/default.nix b/pkgs/development/compilers/llvm/4/libc++/default.nix index 718abc420a97..6ce9c0d4792b 100644 --- a/pkgs/development/compilers/llvm/4/libc++/default.nix +++ b/pkgs/development/compilers/llvm/4/libc++/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { ./xlocale-glibc-2.26.patch ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ ../../libcxx-0001-musl-hacks.patch - ./max_align_t.patch + ../../libcxx-max_align_t.patch ]; prePatch = '' diff --git a/pkgs/development/compilers/llvm/4/libc++abi.nix b/pkgs/development/compilers/llvm/4/libc++abi.nix index 41eb40e124eb..5eeec395b97a 100644 --- a/pkgs/development/compilers/llvm/4/libc++abi.nix +++ b/pkgs/development/compilers/llvm/4/libc++abi.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { export TRIPLE=x86_64-apple-darwin '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch} - patch -p1 -d $(ls -d libcxx-*) -i ${./libc++/max_align_t.patch} + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-max_align_t.patch} ''; installPhase = if stdenv.isDarwin diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix index a371296db326..06bcd74456c4 100644 --- a/pkgs/development/compilers/llvm/4/llvm.nix +++ b/pkgs/development/compilers/llvm/4/llvm.nix @@ -83,7 +83,7 @@ in stdenv.mkDerivation (rec { patch -p0 < ${../aarch64.patch} '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' patch -p1 -i ${../TLI-musl.patch} - patch -p1 -i ${./dynamiclibrary-musl.patch} + patch -p1 -i ${../dynamiclibrary-musl.patch} patch -p1 -i ${./sanitizers-nongnu.patch} -d projects/compiler-rt ''; diff --git a/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch b/pkgs/development/compilers/llvm/dynamiclibrary-musl.patch index d5d7f07b5e11..d5d7f07b5e11 100644 --- a/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch +++ b/pkgs/development/compilers/llvm/dynamiclibrary-musl.patch diff --git a/pkgs/development/compilers/llvm/4/libc++/max_align_t.patch b/pkgs/development/compilers/llvm/libcxx-max_align_t.patch index 060be5b23de8..060be5b23de8 100644 --- a/pkgs/development/compilers/llvm/4/libc++/max_align_t.patch +++ b/pkgs/development/compilers/llvm/libcxx-max_align_t.patch |