Author: hartmannathan Date: Mon Sep 7 13:30:38 2020 New Revision: 1881534 URL: http://svn.apache.org/viewvc?rev=1881534&view=rev Log: Avoid 'configure' error: cannot run test program while cross compiling
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. See discussion "build/ac-macros/macosx.m4: workaround AC_RUN_IFELSE" started 2020/08/30, archived at (3 mail threads): https://lists.apache.org/thread.html/r932d960924ac514c003d22f499a8f1317a6005b5084d2be6141730e1%40%3Cdev.subversion.apache.org%3E https://lists.apache.org/thread.html/rbf56391984e7f8abc11ca78d48e09dd18d57d66390e6f5a63b046fa5%40%3Cdev.subversion.apache.org%3E https://lists.apache.org/thread.html/r935bf45f5a70d8d6247e1cf6323a4c9a6383b9cbd96d424768dce1f5%40%3Cdev.subversion.apache.org%3E build/ac-macros/macosx.m4 * (SVN_LIB_MACHO_ITERATE): Wrap AC_RUN_IFELSE with AC_CACHE_CHECK. New variable 'ac_cv_mach_o_dynamic_module_iteration_works' allows cache check. Patch by: Fabrice Fontaine Inspired by: Thomas Petazzoni (See https://git.buildroot.net/buildroot/tree/package/subversion/0002-workaround-ac-run-ifelse.patch?h=2020.08-rc3) Review by: hartmannathan danielsh (earlier versions of the patch) Tested by: hartmannathan (native macosx build) Modified: subversion/trunk/build/ac-macros/macosx.m4 Modified: subversion/trunk/build/ac-macros/macosx.m4 URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/macosx.m4?rev=1881534&r1=1881533&r2=1881534&view=diff ============================================================================== --- subversion/trunk/build/ac-macros/macosx.m4 (original) +++ subversion/trunk/build/ac-macros/macosx.m4 Mon Sep 7 13:30:38 2020 @@ -20,28 +20,31 @@ dnl dnl Mac OS X specific checks 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_DEFINE([SVN_HAVE_MACHO_ITERATE], [1], - [Is Mach-O low-level _dyld API available?]) - AC_MSG_RESULT([yes]) - ],[ - AC_MSG_RESULT([no]) - ]) -]) - -dnl SVN_LIB_MACOS_PLIST +dnl Check for _dyld_image_name and _dyld_image_header availability +AC_DEFUN(SVN_LIB_MACHO_ITERATE, +[ + 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?]) + fi +]) + +dnl SVN_LIB_MACOS_PLIST dnl Assign variables for Mac OS property list support AC_DEFUN(SVN_LIB_MACOS_PLIST, [
