diff options
author | Joel Taylor <me@joelt.io> | 2014-08-17 13:17:13 -0700 |
---|---|---|
committer | Joel Taylor <me@joelt.io> | 2014-09-09 13:54:24 -0700 |
commit | 3e8344d334d42824ac3061a919ac15b19a1bf21d (patch) | |
tree | 5ecad4218357caec8ddc27d5df150a5734db0281 /pkgs/build-support | |
parent | e3fd4499ef296f4769cf4e9e91f1ccfd16325b0f (diff) | |
download | nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.gz nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.bz2 nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.lz nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.xz nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.zst nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.zip |
suitable clang stdenv
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/cabal/default.nix | 5 | ||||
-rw-r--r-- | pkgs/build-support/clang-wrapper/builder.sh | 40 | ||||
-rw-r--r-- | pkgs/build-support/clang-wrapper/default.nix | 2 |
3 files changed, 35 insertions, 12 deletions
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index d73b4a1f364c..bf91de0bd505 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -214,6 +214,10 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES" ''} + ${optionalString self.stdenv.isDarwin '' + configureFlags+=" --with-gcc=clang" + ''} + echo "configure flags: $extraConfigureFlags $configureFlags" ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \ --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \ @@ -236,6 +240,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; export GHC_PACKAGE_PATH=$(${ghc.GHCPackages}) test -n "$noHaddock" || ./Setup haddock --html --hoogle \ + --ghc-options=-optP-P \ ${optionalString self.hyperlinkSource "--hyperlink-source"} eval "$postBuild" diff --git a/pkgs/build-support/clang-wrapper/builder.sh b/pkgs/build-support/clang-wrapper/builder.sh index 0cdb2b96135e..2dec6c59933b 100644 --- a/pkgs/build-support/clang-wrapper/builder.sh +++ b/pkgs/build-support/clang-wrapper/builder.sh @@ -28,20 +28,32 @@ if test -z "$nativeLibc"; then fi if test -n "$nativeTools"; then - clangPath="$nativePrefix/bin" + if [ -n "$isDarwin" ]; then + clangPath="$clang/bin" + else + clangPath="$nativePrefix/bin" + fi ldPath="$nativePrefix/bin" else - basePath=`echo $gcc/lib/*/*/*` - # Need libgcc until the llvm compiler-rt library is complete - clangLDFlags="$clangLDFlags -L$basePath" - if test -e "$gcc/lib64"; then - clangLDFlags="$clangLDFlags -L$gcc/lib64" - else - clangLDFlags="$clangLDFlags -L$gcc/lib" + clangLDFlags="" + if test -d "$gcc/lib"; then + basePath=`echo $gcc/lib/*/*/*` + # Need libgcc until the llvm compiler-rt library is complete + clangLDFlags="$clangLDFlags -L$basePath" + if test -e "$gcc/lib64"; then + clangLDFlags="$clangLDFlags -L$gcc/lib64" + else + clangLDFlags="$clangLDFlags -L$gcc/lib" + fi fi - clangLDFlags="$clangLDFlags -L$clang/lib" - echo "$clangLDFlags" > $out/nix-support/clang-ldflags + if test -d "$clang/lib"; then + clangLDFlags="$clangLDFlags -L$clang/lib" + fi + + if [ -n "$clangLDFlags" ]; then + echo "$clangLDFlags" > $out/nix-support/clang-ldflags + fi # Need files like crtbegin.o from gcc # It's unclear if these will ever be provided by an LLVM project @@ -49,9 +61,9 @@ else clangCFlags="$clangCFlags -isystem$clang/lib/clang/$clangVersion/include" echo "$clangCFlags" > $out/nix-support/clang-cflags - - clangPath="$clang/bin" + ldPath="$binutils/bin" + clangPath="$clang/bin" fi @@ -125,6 +137,10 @@ test -n "$libc" && echo $libc > $out/nix-support/orig-libc doSubstitute "$addFlags" "$out/nix-support/add-flags.sh" doSubstitute "$setupHook" "$out/nix-support/setup-hook" +cat >> "$out/nix-support/setup-hook" << EOF +export CC=clang +export CXX=clang++ +EOF cp -p $utils $out/nix-support/utils.sh diff --git a/pkgs/build-support/clang-wrapper/default.nix b/pkgs/build-support/clang-wrapper/default.nix index 7a5d87127d90..e61c07ca9d23 100644 --- a/pkgs/build-support/clang-wrapper/default.nix +++ b/pkgs/build-support/clang-wrapper/default.nix @@ -26,6 +26,8 @@ stdenv.mkDerivation { (if name != "" then name else clangName + "-wrapper") + (if clang != null && clangVersion != "" then "-" + clangVersion else ""); + isDarwin = stdenv.isDarwin; + builder = ./builder.sh; setupHook = ./setup-hook.sh; clangWrapper = ./clang-wrapper.sh; |