aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2013-10-21 13:30:38 -0400
committerNick Mathewson <nickm@torproject.org>2013-10-21 13:30:38 -0400
commitb7a17de454c9c2721059393d237f3984bd5aa74f (patch)
treebcf0a030d67a794f695d3c454ed730e0e8c7a8cd
parent21ac292820da5784cf3c87e77df57b7594071d09 (diff)
downloadtor-b7a17de454c9c2721059393d237f3984bd5aa74f.tar
tor-b7a17de454c9c2721059393d237f3984bd5aa74f.tar.gz
Better detection for certain broken cross-compiling situations.
Fixes bug 9869; patch from Benedikt Gollatz.
-rw-r--r--changes/bug98697
-rw-r--r--configure.ac17
2 files changed, 24 insertions, 0 deletions
diff --git a/changes/bug9869 b/changes/bug9869
new file mode 100644
index 000000000..d67156d38
--- /dev/null
+++ b/changes/bug9869
@@ -0,0 +1,7 @@
+ o Minor features (build):
+
+ - Assume that a user using configure --host wants to cross-
+ compile and error if we cannot find a properly named tool-
+ chain. Add --disable-tool-name-check to enable the user
+ to build nevertheless. Addresses ticket 9869. Patch by
+ Benedikt Gollatz.
diff --git a/configure.ac b/configure.ac
index f1fa8812f..8d21661f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -158,12 +158,29 @@ fi])
AC_ARG_ENABLE(bufferevents,
AS_HELP_STRING(--enable-bufferevents, use Libevent's buffered IO.))
+AC_ARG_ENABLE(tool-name-check,
+ AS_HELP_STRING(--disable-tool-name-check, check for sanely named toolchain when cross-compiling))
+
dnl check for the correct "ar" when cross-compiling
AN_MAKEVAR([AR], [AC_PROG_AR])
AN_PROGRAM([ar], [AC_PROG_AR])
AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL([AR], [ar], [ar])])
AC_PROG_AR
+dnl Check whether the above macro has settled for a simply named tool even
+dnl though we're cross compiling. We must do this before running AC_PROG_CC,
+dnl because that will find any cc on the system, not only the cross-compiler,
+dnl and then verify that a binary built with this compiler runs on the
+dnl build system. It will then come to the false conclusion that we're not
+dnl cross-compiling.
+if test x$enable_tool_name_check != xno; then
+ if test x$ac_tool_warned = xyes; then
+ AC_MSG_ERROR([We are cross compiling but could not find a properly named toolchain. Do you have your cross-compiling toolchain in PATH? (You can --disable-tool-name-check to ignore this.)])
+ elif test "x$ac_ct_AR" != x -a x$cross_compiling = xmaybe; then
+ AC_MSG_ERROR([We think we are cross compiling but could not find a properly named toolchain. Do you have your cross-compiling toolchain in PATH? (You can --disable-tool-name-check to ignore this.)])
+ fi
+fi
+
AC_PROG_CC
AC_PROG_CPP
AC_PROG_MAKE_SET