On Sun, Oct 18, 2009 at 11:58 AM, Jim Jagielski <j...@jagunet.com> wrote: > > On Oct 18, 2009, at 11:11 AM, Barry Scott wrote: > >> I'm the author of pysvn that depends on subversion that depends on APR. >> >> The convient way to build universal binaries on the Mac is to use -arch. >> For example >> to get a binary that is 32bit and 64bit: >> >> gcc -arch i386 -arch x86_64 >> >> This works so long as the code that is being compile is portable between >> the >> arch chosen. >> >> I have found that I cannot build subversion as a Mac OS X Universal binary >> because of none portable code in apr.h created by configure. >> >> apr.h is configured for 32bit or 64bit and that causes either 32bit or >> 64bit to >> fail. >> >> Items that would need to handled are: >> >> apr_int64_t aways define as long long on Mac. >> >> APR_SIZEOF_VOIDP would need to be set based on preprocessor symbols. >> >> I'm sure there are more issues that I have not noticed. >> >> Are you aware of these issues? >> >> Do you consider they need fixing?
To solve the apr.h issue you can use diff to build a merged version of apr.h after performing separate 32-bit and 64-bit builds (diff -D some-symbol 32-bit/apr.h 64-bit/apr.h >merged/apr.h", where some-symbol is whatever the compiler provides to select between 32-bit and 64-bit). I don't think anybody has spelled out explicitly how to run the apr and apr-util builds and merge all necessary headers and so forth (not that it is complicated, but it would be useful as a FAQ...). (In addition to the apr.h issues you outline, some of the APU_HAVE_foo in apu.h could differ between 32-bit and 64-bit as well.) (sticking with just plain Leopard for now ;) )