summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorNicolas Mattia <nicolas@nmattia.com>2019-10-02 13:28:04 +0200
committerNicolas Mattia <nicolas@nmattia.com>2019-10-04 10:51:10 +0200
commite494de20b3bde5d670a11f7f6d0e6c5beb2ee590 (patch)
treeaa955e486a9ac0b43fc2549c480edd5a73bd5b2b /pkgs/development/compilers
parent761df21d6f6707e62caef0fb38ebc49d612515d2 (diff)
downloadnixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.tar
nixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.tar.gz
nixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.tar.bz2
nixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.tar.lz
nixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.tar.xz
nixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.tar.zst
nixpkgs-e494de20b3bde5d670a11f7f6d0e6c5beb2ee590.zip
libcxxapi: don't produce shared libs on musl
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/llvm/7/libc++abi.nix14
1 files changed, 9 insertions, 5 deletions
diff --git a/pkgs/development/compilers/llvm/7/libc++abi.nix b/pkgs/development/compilers/llvm/7/libc++abi.nix
index 522c8d1a163..9067bf43a8f 100644
--- a/pkgs/development/compilers/llvm/7/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/7/libc++abi.nix
@@ -1,4 +1,6 @@
-{ stdenv, cmake, fetch, libcxx, llvm, version }:
+{ stdenv, cmake, fetch, libcxx, llvm, version
+  # on musl the shared objects don't build
+, enableShared ? ! stdenv.hostPlatform.isMusl }:
 
 stdenv.mkDerivation {
   pname = "libc++abi";
@@ -11,13 +13,15 @@ stdenv.mkDerivation {
   postUnpack = ''
     unpackFile ${libcxx.src}
     unpackFile ${llvm.src}
-    export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
+    cmakeFlagsArray=($cmakeFlagsArray -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*) )
   '' + 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}
   '';
 
+  cmakeFlags = stdenv.lib.optional (!enableShared) "-DLIBCXXABI_ENABLE_SHARED=OFF";
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -34,10 +38,10 @@ stdenv.mkDerivation {
     else ''
       install -d -m 755 $out/include $out/lib
       install -m 644 lib/libc++abi.a $out/lib
-      install -m 644 lib/libc++abi.so.1.0 $out/lib
+      ${stdenv.lib.optionalString enableShared "install -m 644 lib/libc++abi.so.1.0 $out/lib"}
       install -m 644 ../include/cxxabi.h $out/include
-      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
-      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
+      ${stdenv.lib.optionalString enableShared "ln -s libc++abi.so.1.0 $out/lib/libc++abi.so"}
+      ${stdenv.lib.optionalString enableShared "ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1"}
     '';
 
   meta = {