ghc-7.8.4: fix build on Darwin

https://github.com/NixOS/nixpkgs/pull/5746
This commit is contained in:
Eric Seidel 2015-01-12 22:00:21 -08:00 committed by Peter Simons
parent 1b50c50432
commit a92afcd34a
2 changed files with 49 additions and 2 deletions

View file

@ -62,8 +62,9 @@ stdenv.mkDerivation rec {
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
--with-clang
./configure --prefix=$out \
--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

View 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