[commit: ghc] master: configure: Fix ar probed flags (66d1799)

git at git.haskell.org git at git.haskell.org
Tue Nov 21 21:49:45 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/66d17995a057c313fb22b0660a6327bd41afea4a/ghc

>---------------------------------------------------------------

commit 66d17995a057c313fb22b0660a6327bd41afea4a
Author: Ben Gamari <bgamari.foss at gmail.com>
Date:   Tue Nov 21 14:27:11 2017 -0500

    configure: Fix ar probed flags
    
    FP_PROG_AR_ARGS appears to be probing for what flags to use to build an
    archive with an index. However, none of the flags that it probed
    previously were valid as they all started with `c`, which isn't a mode
    character. This went unnoticed until someone attempted to use LLVM ar
    since we have a special case for gnu ar.
    
    Additionally, we work around a bug in llvm-ar 5.0 where ar will exit
    with code 0 even if it fails to parse the command line. Silliness.
    
    I believe these should rather all be mode `q` however I'll need to test
    this on a few platforms to be certain.
    
    Test Plan: Validate on OS X, BSD, and Linux with binutils and llvm ar
    
    Reviewers: hvr
    
    Subscribers: rwbarton, thomie, erikd
    
    Differential Revision: https://phabricator.haskell.org/D4214


>---------------------------------------------------------------

66d17995a057c313fb22b0660a6327bd41afea4a
 aclocal.m4 | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/aclocal.m4 b/aclocal.m4
index c77c8de..5dc618d 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1153,11 +1153,15 @@ if test $fp_prog_ar_is_gnu = yes; then
   fp_cv_prog_ar_args="q"
 else
   touch conftest.dummy
-  for fp_var in clqsZ clqs cqs clq cq ; do
+  for fp_var in qclsZ qcls qcs qcl qc ; do
      rm -f conftest.a
-     if "$fp_prog_ar" $fp_var conftest.a conftest.dummy > /dev/null 2> /dev/null; then
-        fp_cv_prog_ar_args=$fp_var
-        break
+     if "$fp_prog_ar" $fp_var conftest.a conftest.dummy > /dev/null 2> /dev/null ; then
+       # Also check that a result was created; it seems some llvm-ar versions
+       # exit with code zero even if they fail to parse the command line.
+       if test -f conftest.a ; then
+         fp_cv_prog_ar_args=$fp_var
+         break
+       fi
      fi
   done
   rm -f conftest*



More information about the ghc-commits mailing list