From a92afcd34a9e1535083a7b97fd8a5ceb6c04287c Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Mon, 12 Jan 2015 22:00:21 -0800 Subject: ghc-7.8.4: fix build on Darwin https://github.com/NixOS/nixpkgs/pull/5746 --- .../development/compilers/ghc/gcc-clang-wrapper.sh | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 pkgs/development/compilers/ghc/gcc-clang-wrapper.sh (limited to 'pkgs/development/compilers/ghc/gcc-clang-wrapper.sh') diff --git a/pkgs/development/compilers/ghc/gcc-clang-wrapper.sh b/pkgs/development/compilers/ghc/gcc-clang-wrapper.sh new file mode 100755 index 00000000000..d081be231a1 --- /dev/null +++ b/pkgs/development/compilers/ghc/gcc-clang-wrapper.sh @@ -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 -- cgit 1.4.1