On Tue, Sep 1, 2020 at 10:01 PM Daniel Shahaf <d...@daniel.shahaf.name> wrote: > > Fabrice Fontaine wrote on Mon, 31 Aug 2020 15:34 +0200: > > Le lun. 31 août 2020 à 04:40, Daniel Shahaf <d...@daniel.shahaf.name> a > > écrit : > > > Fabrice Fontaine wrote on Sun, 30 Aug 2020 17:24 +0200: > > > > +++ b/build/ac-macros/macosx.m4 > > > > @@ -38,7 +38,7 @@ AC_DEFUN(SVN_LIB_MACHO_ITERATE, > > > > AC_MSG_RESULT([yes]) > > > > ],[ > > > > AC_MSG_RESULT([no]) > > > > - ]) > > > > + ],[:]) > > > > > > Isn't that going to DTWT when cross-compiling for a macosx target? In > > > that case SVN_HAVE_MACHO_ITERATE should possibly be defined, but won't be. > > I can add an AC_COMPILE_IFELSE mimicking the AC_RUN_IFELSE in the > > action-if-cross-compiling if you prefer this solution. > > I suspect this wouldn't be correct, since if it were correct, whoever > wrote the existing AC_RUN_IFELSE() call would have used > AC_COMPILE_IFELSE() instead.
That would be brane. Looking at the history of build/ac-macros/macosx.m4, this dyld test originally (in r1381880) used AC_COMPILE_IFELSE. In r1413467, it is changed to actually run the test: [[[ r1413467 | brane | 2012-11-25 22:04:27 -0500 (Sun, 25 Nov 2012) | 8 lines Fix the MacOS-specific autoconf macros that just appeared to work sort of by accident. * build/ac-macros/macosx.m4 (SVN_LIB_MACHO_ITERATE): Actually run the test program, and use the IFELSE part to set results. (SVN_LIB_MACOS_PLIST, SVN_LIB_MACOS_KEYCHAIN): Make the tests independent, and use AC_COMPILE_IFELSE correctly. ]]] Looks like compiling alone to test the existence of headers and APIs 'mach-o/dyld.h', 'mach-o/loader.h', _dyld_get_image_header(), and _dyld_get_image_name() is insufficient. I haven't yet dug further into these APIs to learn under what circumstances they exist but shouldn't be called. SVN_HAVE_MACHO_ITERATE allows svn_sysinfo__loaded_libs() to list loaded shared libraries for 'svn --version --verbose'. It's important we don't break that, as it will be more difficult to help users when this information is needed. Thomas's suggestion to wrap it in an AC_CACHE_CHECK() sounds like an approach that should fix cross-compilation for buildroot and address Daniel's point when cross-compiling for a Mach-O target. If ya'll could provide a patch, I'll verify I can build on Mac OS X and the macro is defined as expected and 'svn --version --verbose' shows the loaded shared libs. Thanks, Nathan