[commit: ghc] master: Fix detection of llvm-x.x (1dfab7a)
git at git.haskell.org
git at git.haskell.org
Mon Mar 2 17:16:04 UTC 2015
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/1dfab7a8ace5f09f00f8fb695932b4324e88b822/ghc
>---------------------------------------------------------------
commit 1dfab7a8ace5f09f00f8fb695932b4324e88b822
Author: Thomas Miedema <thomasmiedema at gmail.com>
Date: Mon Mar 2 11:09:33 2015 -0600
Fix detection of llvm-x.x
Summary:
Four bug fixes and a little refactoring.
* `find -perm \mode` should be `find -perm /mode` (#9697)
* `find -regex '$3' should be `find -regex "$3"` (#7661)
From `man sh` on my system (Ubuntu 14.04):
"Enclosing characters in single quotes preserves the literal meaning of all
the characters ..."
* LlcCmd and OptCmd should be passed to ghc, using `-pgmlo` and `-pgmlc`, for
detection of #9439.
* -pgmlo and -pgmlc were undocumented because of an xml tag misplacement.
Test Plan:
The aclocal.m4 macro has seen about 10 iterations since its inception. Without a
testsuite, I can't guarantee this version is bug free either. It's all pretty
frustrating.
Reviewers: bgamari, austin
Reviewed By: austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D683
GHC Trac Issues: #9697, #7661, #9439
>---------------------------------------------------------------
1dfab7a8ace5f09f00f8fb695932b4324e88b822
aclocal.m4 | 20 +++++++++++++++-----
configure.ac | 4 ++--
docs/users_guide/flags.xml | 2 +-
3 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
index 73b8890..a4944c1 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -2095,21 +2095,31 @@ AC_DEFUN([XCODE_VERSION],[
AC_DEFUN([FIND_LLVM_PROG],[
FP_ARG_WITH_PATH_GNU_PROG_OPTIONAL_NOTARGET([$1], [$2], [$3])
if test "$$1" = ""; then
+ echo -n "checking for $3-x.x... "
save_IFS=$IFS
IFS=":;"
+ if test "$windows" = YES; then
+ PERM=
+ MODE=
+ else
+ # Search for executables.
+ PERM="-perm"
+ MODE="/+x"
+ fi
for p in ${PATH}; do
if test -d "${p}"; then
- if test "$windows" = YES; then
- $1=`${FindCmd} "${p}" -type f -maxdepth 1 -regex '.*/$3-[[0-9]]\.[[0-9]]' -or -type l -maxdepth 1 -regex '.*/$3-[[0-9]]\.[[0-9]]' | ${SortCmd} -n | tail -1`
- else
- $1=`${FindCmd} "${p}" -type f -perm \111 -maxdepth 1 -regex '.*/$3-[[0-9]]\.[[0-9]]' -or -type l -perm \111 -maxdepth 1 -regex '.*/$3-[[0-9]]\.[[0-9]]' | ${SortCmd} -n | tail -1`
- fi
+ $1=`${FindCmd} "${p}" -maxdepth 1 \( -type f -o -type l \) ${PERM} ${MODE} -regex ".*/$3-[[0-9]]\.[[0-9]]" | ${SortCmd} -n | tail -1`
if test -n "$$1"; then
break
fi
fi
done
IFS=$save_IFS
+ if test -n "$$1"; then
+ echo "$$1"
+ else
+ echo "no"
+ fi
fi
])
diff --git a/configure.ac b/configure.ac
index f65d133..c64af90 100644
--- a/configure.ac
+++ b/configure.ac
@@ -508,7 +508,7 @@ then
echo "main = putStrLn \"%function\"" > conftestghc.hs
# Check whether LLVM backend is default for this platform
- "${WithGhc}" conftestghc.hs 2>&1 >/dev/null
+ "${WithGhc}" -pgmlc="${LlcCmd}" -pgmlo="${OptCmd}" conftestghc.hs 2>&1 >/dev/null
res=`./conftestghc`
if test "x$res" = "x%object"
then
@@ -525,7 +525,7 @@ then
# -fllvm is not the default, but set a flag so the Makefile can check
# -for it in the build flags later on
- "${WithGhc}" -fforce-recomp -fllvm conftestghc.hs 2>&1 >/dev/null
+ "${WithGhc}" -fforce-recomp -pgmlc="${LlcCmd}" -pgmlo="${OptCmd}" -fllvm conftestghc.hs 2>&1 >/dev/null
if test $? = 0
then
res=`./conftestghc`
diff --git a/docs/users_guide/flags.xml b/docs/users_guide/flags.xml
index 3d90479..4bf78b6 100644
--- a/docs/users_guide/flags.xml
+++ b/docs/users_guide/flags.xml
@@ -2731,6 +2731,7 @@
<entry>Use <replaceable>cmd</replaceable> as the C compiler</entry>
<entry>dynamic</entry>
<entry>-</entry>
+ </row>
<row>
<entry><option>-pgmlo</option> <replaceable>cmd</replaceable></entry>
<entry>Use <replaceable>cmd</replaceable> as the LLVM optimiser</entry>
@@ -2743,7 +2744,6 @@
<entry>dynamic</entry>
<entry>-</entry>
</row>
- </row>
<row>
<entry><option>-pgms</option> <replaceable>cmd</replaceable></entry>
<entry>Use <replaceable>cmd</replaceable> as the splitter</entry>
More information about the ghc-commits
mailing list