From c839c57ed372203b05407b2042d00c188af75310 Mon Sep 17 00:00:00 2001 From: Tamar Christina Date: Mon, 25 Sep 2017 19:12:35 +0100 Subject: [PATCH] Fix the searching of target AR tool Summary: Ar was being checked twice prior to D3883 where I removed one of the checks because the converted path was being overridden after the check because of the second check for Ar. However the one in configure.ac was a target check so I'm changing the path check to a target check now. Test Plan: ./configure Reviewers: angerman, austin, hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #14274 Differential Revision: https://phabricator.haskell.org/D4020 --- aclocal.m4 | 16 ++++++++++++---- configure.ac | 4 +--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index 30fd220b11..754a13ad96 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1071,9 +1071,20 @@ AC_SUBST([LdHasFilelist]) # FP_PROG_AR # ---------- # Sets fp_prog_ar to a path to ar. Exits if no ar can be found +# The host normalization on Windows breaks autoconf, it no longer +# thinks that target == host so it never checks the unqualified +# tools for Windows. See #14274. AC_DEFUN([FP_PROG_AR], [if test -z "$fp_prog_ar"; then - AC_PATH_PROG([fp_prog_ar], [ar]) + if test "$HostOS" = "mingw32" + then + AC_PATH_PROG([fp_prog_ar], [ar]) + if test -n "$fp_prog_ar"; then + fp_prog_ar=$(cygpath -m $fp_prog_ar) + fi + else + AC_CHECK_TARGET_TOOL([fp_prog_ar], [ar]) + fi fi if test -z "$fp_prog_ar"; then AC_MSG_ERROR([cannot find ar in your PATH, no idea how to make a library]) @@ -1151,9 +1162,6 @@ else fi fi]) fp_prog_ar_args=$fp_cv_prog_ar_args -if test "$HostOS" = "mingw32"; then - ArCmd=$(cygpath -m $ArCmd) -fi AC_SUBST([ArCmd], ["$fp_prog_ar"]) AC_SUBST([ArArgs], ["$fp_prog_ar_args"]) diff --git a/configure.ac b/configure.ac index 98fffe1bae..5eae83db96 100644 --- a/configure.ac +++ b/configure.ac @@ -609,9 +609,7 @@ dnl ** which libtool to use? dnl -------------------------------------------------------------- # The host normalization on Windows breaks autoconf, it no longer # thinks that target == host so it never checks the unqualified -# tools for Windows. I don't know why we do this whole normalization thing -# as it just breaks everything.. but for now, just check the unqualified one -# if on Windows. +# tools for Windows. See #14274. if test "$HostOS" = "mingw32" then AC_PATH_PROG([LIBTOOL],[libtool]) -- GitLab