ghc-7.8.4: fix build on Darwin
https://github.com/NixOS/nixpkgs/pull/5746
This commit is contained in:
parent
1b50c50432
commit
a92afcd34a
@ -62,8 +62,9 @@ stdenv.mkDerivation rec {
|
|||||||
'' else "");
|
'' else "");
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
|
./configure --prefix=$out \
|
||||||
--with-clang
|
--with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
|
||||||
|
${stdenv.lib.optionalString stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Stripping combined with patchelf breaks the executables (they die
|
# Stripping combined with patchelf breaks the executables (they die
|
||||||
|
46
pkgs/development/compilers/ghc/gcc-clang-wrapper.sh
Executable file
46
pkgs/development/compilers/ghc/gcc-clang-wrapper.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
inPreprocessorMode () {
|
||||||
|
hasE=0
|
||||||
|
hasU=0
|
||||||
|
hasT=0
|
||||||
|
for arg in "$@"
|
||||||
|
do
|
||||||
|
if [ 'x-E' = "x$arg" ]; then hasE=1; fi
|
||||||
|
if [ 'x-undef' = "x$arg" ]; then hasU=1; fi
|
||||||
|
if [ 'x-traditional' = "x$arg" ]; then hasT=1; fi
|
||||||
|
done
|
||||||
|
[ "$hasE$hasU$hasT" = '111' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
extraClangArgs="-Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs"
|
||||||
|
|
||||||
|
adjustPreprocessorLanguage () {
|
||||||
|
newArgs=''
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
newArgs="$newArgs $1"
|
||||||
|
if [ "$1" = '-x' ]
|
||||||
|
then
|
||||||
|
shift
|
||||||
|
if [ $# -gt 0 ]
|
||||||
|
then
|
||||||
|
if [ "$1" = 'c' ]
|
||||||
|
then
|
||||||
|
newArgs="$newArgs assembler-with-cpp"
|
||||||
|
else
|
||||||
|
newArgs="$newArgs $1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
echo $newArgs
|
||||||
|
}
|
||||||
|
|
||||||
|
if inPreprocessorMode "$@"
|
||||||
|
then
|
||||||
|
exec clang $extraClangArgs `adjustPreprocessorLanguage "$@"`
|
||||||
|
else
|
||||||
|
exec clang $extraClangArgs "${@/-nodefaultlibs/}"
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user