[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH v3] build/ac-macros/macosx.m4: workaround AC_RUN_IFELSE

From: Fabrice Fontaine <fontaine.fabrice_at_gmail.com>
Date: Fri, 4 Sep 2020 23:01:57 +0200

[[[
Patch by: Fabrice Fontaine

The SVN_LIB_MACHO_ITERATE macro contains an AC_RUN_IFELSE test that
will raise the following build failure when cross-compiling:

checking for Mach-O dynamic module iteration functions... configure: error: in `/home/fabrice/buildroot/output/build/subversion-1.14.0':
configure: error: cannot run test program while cross compiling

To avoid this build failure, set the action-if-cross-compiling of
AC_RUN_IFELSE to a pessimistic value (no).
Moreover, encapsulate this call with AC_CACHE_CHECK as suggested by
Thomas Petazzoni to allow the user to override this value when
cross-compiling for macosx target.

Inspired by: Thomas Petazzoni
(See https://git.buildroot.net/buildroot/tree/package/subversion/0002-workaround-ac-run-ifelse.patch?h=2020.08-rc3)
]]]

Signed-off-by: Fabrice Fontaine <fontaine.fabrice_at_gmail.com>

---
 build/ac-macros/macosx.m4 | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/build/ac-macros/macosx.m4 b/build/ac-macros/macosx.m4
index 92fa58e0bc..b131379e83 100644
--- a/build/ac-macros/macosx.m4
+++ b/build/ac-macros/macosx.m4
@@ -23,22 +23,25 @@ dnl SVN_LIB_MACHO_ITERATE
 dnl Check for _dyld_image_name and _dyld_image_header availability
 AC_DEFUN(SVN_LIB_MACHO_ITERATE,
 [
-  AC_MSG_CHECKING([for Mach-O dynamic module iteration functions])
-  AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-    #include <mach-o/dyld.h>
-    #include <mach-o/loader.h>
-  ]],[[
-    const struct mach_header *header = _dyld_get_image_header(0);
-    const char *name = _dyld_get_image_name(0);
-    if (name && header) return 0;
-    return 1;
-  ]])],[
+  AC_CACHE_CHECK([for Mach-O dynamic module iteration functions],
+    [ac_cv_mach_o_dynamic_module_iteration_works], [
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+      #include <mach-o/dyld.h>
+      #include <mach-o/loader.h>
+    ]],[[
+      const struct mach_header *header = _dyld_get_image_header(0);
+      const char *name = _dyld_get_image_name(0);
+      if (name && header) return 0;
+      return 1;
+    ]])],
+    [ac_cv_mach_o_dynamic_module_iteration_works=yes],
+    [ac_cv_mach_o_dynamic_module_iteration_works=no],
+    [ac_cv_mach_o_dynamic_module_iteration_works=no])
+  ])
+  if test "$ac_cv_mach_o_dynamic_module_iteration_works" = yes; then
     AC_DEFINE([SVN_HAVE_MACHO_ITERATE], [1],
               [Is Mach-O low-level _dyld API available?])
-    AC_MSG_RESULT([yes])
-  ],[
-    AC_MSG_RESULT([no])
-  ])
+  fi
 ])
 
 dnl SVN_LIB_MACOS_PLIST
-- 
2.28.0
Received on 2020-09-05 01:16:20 CEST

This is an archived mail posted to the Subversion Dev mailing list.