From e803f6650dca03b4adeef49b60db94c30c4c7f4b Mon Sep 17 00:00:00 2001
From: Thierry Reding <thierry.reding@avionic-design.de>
Date: Wed, 21 Nov 2012 10:41:13 +0100
Subject: [PATCH] Unbreak AX_PROG_CC_FOR_BUILD

Instead of pushing the cross_compiling and ac_tool_prefix definitions,
override them by assignment. Pushing the definition will cause the
variable names to be replaced instead of the content.

While at it, remove the AC_TRY_COMPILER redefinition as it was removed
in autoconf 2.50. Also push LDFLAGS to prevent flags specific to the
host tools from leaking into the build tools. Furthermore, consistently
pop definitions in the reverse order than they were pushed.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
---
 m4/ax_prog_cc_for_build.m4 | 44 +++++++++++++-------------------------------
 1 file changed, 13 insertions(+), 31 deletions(-)

diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4
index 5eb6daa..96cd98a 100644
--- a/m4/ax_prog_cc_for_build.m4
+++ b/m4/ax_prog_cc_for_build.m4
@@ -32,7 +32,7 @@
 #   and this notice are preserved. This file is offered as-is, without any
 #   warranty.
 
-#serial 6
+#serial 7
 
 AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
 AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
@@ -40,30 +40,9 @@ AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_PROG_CPP])dnl
 AC_REQUIRE([AC_EXEEXT])dnl
 AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
-dnl
-pushdef([AC_TRY_COMPILER], [
-cat > conftest.$ac_ext << EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-[$1]
-EOF
-# If we can't run a trivial program, we are probably using a cross
-compiler.
-# Fail miserably.
-if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest;
-exit) 2>/dev/null; then
-  [$2]=yes
-else
-  echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
-  cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
-  [$2]=no
-fi
-[$3]=no
-rm -fr conftest*])dnl
 
 dnl Use the standard macros, but make them use other variable names
 dnl
-pushdef([cross_compiling], [#])dnl
 pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
 pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
 pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
@@ -77,6 +56,7 @@ pushdef([CC], CC_FOR_BUILD)dnl
 pushdef([CPP], CPP_FOR_BUILD)dnl
 pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
 pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
+pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
 pushdef([host], build)dnl
 pushdef([host_alias], build_alias)dnl
 pushdef([host_cpu], build_cpu)dnl
@@ -91,19 +71,20 @@ pushdef([ac_cpp], ac_build_cpp)dnl
 pushdef([ac_compile], ac_build_compile)dnl
 pushdef([ac_link], ac_build_link)dnl
 
-dnl Defeat the anti-duplication mechanism
-dnl
-undefine([AC_PROVIDE_AC_PROG_CPP])dnl
-undefine([AC_PROVIDE_AC_PROG_C])dnl
-undefine([AC_PROVIDE_AC_EXEEXT])dnl
+save_cross_compiling=$cross_compiling
+save_ac_tool_prefix=$ac_tool_prefix
+cross_compiling=no
+ac_tool_prefix=
 
 AC_PROG_CC
 AC_PROG_CPP
 AC_EXEEXT
 
+ac_tool_prefix=$save_ac_tool_prefix
+cross_compiling=$save_cross_compiling
+
 dnl Restore the old definitions
 dnl
-popdef([AC_TRY_COMPILER])dnl
 popdef([ac_link])dnl
 popdef([ac_compile])dnl
 popdef([ac_cpp])dnl
@@ -117,6 +98,7 @@ popdef([host_vendor])dnl
 popdef([host_cpu])dnl
 popdef([host_alias])dnl
 popdef([host])dnl
+popdef([LDFLAGS])dnl
 popdef([CPPFLAGS])dnl
 popdef([CFLAGS])dnl
 popdef([CPP])dnl
@@ -126,11 +108,10 @@ popdef([ac_exeext])dnl
 popdef([ac_cv_objext])dnl
 popdef([ac_cv_exeext])dnl
 popdef([ac_cv_prog_cc_g])dnl
-popdef([ac_cv_prog_cc_works])dnl
 popdef([ac_cv_prog_cc_cross])dnl
+popdef([ac_cv_prog_cc_works])dnl
 popdef([ac_cv_prog_gcc])dnl
-popdef([ac_cv_prog_cc])dnl
-popdef([cross_compiling])dnl
+popdef([ac_cv_prog_CPP])dnl
 
 dnl Finally, set Makefile variables
 dnl
@@ -140,4 +121,5 @@ AC_SUBST(BUILD_EXEEXT)dnl
 AC_SUBST(BUILD_OBJEXT)dnl
 AC_SUBST([CFLAGS_FOR_BUILD])dnl
 AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
+AC_SUBST([LDFLAGS_FOR_BUILD])dnl
 ])
-- 
1.8.0

