|
@ -0,0 +1,84 @@ |
|
|
|
|
|
From 12a10bcfb1999d07961206587d79ce27c432c6ce Mon Sep 17 00:00:00 2001 |
|
|
|
|
|
From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= <michal@isc.org> |
|
|
|
|
|
Date: Tue, 27 Oct 2020 12:40:45 +0100 |
|
|
|
|
|
Subject: [PATCH] Fix cross-compilation |
|
|
|
|
|
|
|
|
|
|
|
Using AC_RUN_IFELSE() in configure.ac breaks cross-compilation: |
|
|
|
|
|
|
|
|
|
|
|
configure: error: cannot run test program while cross compiling |
|
|
|
|
|
|
|
|
|
|
|
Commit 978c7b2e89aa37a7ddfe2f6b6ba12ce73dd04528 caused AC_RUN_IFELSE() |
|
|
|
|
|
to be used instead of AC_LINK_IFELSE() because the latter had seemingly |
|
|
|
|
|
been causing the check for --wrap support in the linker to not work as |
|
|
|
|
|
expected. However, it later turned out that the problem lied elsewhere: |
|
|
|
|
|
a minus sign ('-') was missing from the LDFLAGS variable used in the |
|
|
|
|
|
relevant check [1]. |
|
|
|
|
|
|
|
|
|
|
|
Revert to using AC_LINK_IFELSE() for checking whether the linker |
|
|
|
|
|
supports the --wrap option in order to make cross-compilation possible |
|
|
|
|
|
again. |
|
|
|
|
|
|
|
|
|
|
|
Fixes: https://gitlab.isc.org/isc-projects/bind9/-/issues/2237 |
|
|
|
|
|
|
|
|
|
|
|
[1] see commit cfa4ea64bc06685f210a4187dcc05cc0aac84851 |
|
|
|
|
|
---
|
|
|
|
|
|
configure | 16 ++++------------ |
|
|
|
|
|
configure.ac | 2 +- |
|
|
|
|
|
2 files changed, 5 insertions(+), 13 deletions(-) |
|
|
|
|
|
|
|
|
|
|
|
diff --git a/configure b/configure
|
|
|
|
|
|
index a408f0dcf6..7694a18c0b 100755
|
|
|
|
|
|
--- a/configure
|
|
|
|
|
|
+++ b/configure
|
|
|
|
|
|
@@ -22047,13 +22047,7 @@ $as_echo_n "checking for linker support for --wrap option... " >&6; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LDFLAGS="-Wl,--wrap,exit" |
|
|
|
|
|
-if test "$cross_compiling" = yes; then :
|
|
|
|
|
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
|
|
|
|
|
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
|
|
|
|
|
-as_fn_error $? "cannot run test program while cross compiling
|
|
|
|
|
|
-See \`config.log' for more details" "$LINENO" 5; }
|
|
|
|
|
|
-else
|
|
|
|
|
|
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
|
|
|
|
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
|
|
|
|
/* end confdefs.h. */ |
|
|
|
|
|
#include <stdlib.h> |
|
|
|
|
|
void __real_exit (int status); |
|
|
|
|
|
@@ -22067,7 +22061,7 @@ exit (1);
|
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
_ACEOF |
|
|
|
|
|
-if ac_fn_c_try_run "$LINENO"; then :
|
|
|
|
|
|
+if ac_fn_c_try_link "$LINENO"; then :
|
|
|
|
|
|
LD_WRAP_TESTS=true |
|
|
|
|
|
|
|
|
|
|
|
$as_echo "#define LD_WRAP 1" >>confdefs.h |
|
|
|
|
|
@@ -22078,10 +22072,8 @@ else
|
|
|
|
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
|
|
|
|
|
$as_echo "no" >&6; } |
|
|
|
|
|
fi |
|
|
|
|
|
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
|
|
|
|
|
- conftest.$ac_objext conftest.beam conftest.$ac_ext
|
|
|
|
|
|
-fi
|
|
|
|
|
|
-
|
|
|
|
|
|
+rm -f core conftest.err conftest.$ac_objext \
|
|
|
|
|
|
+ conftest$ac_exeext conftest.$ac_ext
|
|
|
|
|
|
|
|
|
|
|
|
CCASFLAGS=$CCASFLAGS_wrap_ax_save_flags |
|
|
|
|
|
|
|
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
|
|
|
|
index 1201b5e2a7..9648d9727a 100644
|
|
|
|
|
|
--- a/configure.ac
|
|
|
|
|
|
+++ b/configure.ac
|
|
|
|
|
|
@@ -2247,7 +2247,7 @@ LD_WRAP_TESTS=false
|
|
|
|
|
|
AC_MSG_CHECKING([for linker support for --wrap option]) |
|
|
|
|
|
AX_SAVE_FLAGS([wrap]) |
|
|
|
|
|
LDFLAGS="-Wl,--wrap,exit" |
|
|
|
|
|
-AC_RUN_IFELSE(
|
|
|
|
|
|
+AC_LINK_IFELSE(
|
|
|
|
|
|
[AC_LANG_PROGRAM([[#include <stdlib.h> |
|
|
|
|
|
void __real_exit (int status); |
|
|
|
|
|
void __wrap_exit (int status) { __real_exit (0); } |
|
|
|
|
|
--
|
|
|
|
|
|
GitLab |