On Wed, Oct 14, 2009 at 08:00:20AM -0400, Jim Jagielski wrote: > On Oct 14, 2009, at 7:00 AM, Joe Orton wrote: >> Reducing half of our configure-time tests to build-time compiler macro >> tests for one platform is not going to be maintainable. Why is it >> useful for Joe Random APR User to be building for more than one ABI in >> the first place? Why the heck would he care? Just pick a default and >> run with it by setting $CC to select an ABI. > > If APR is built with i386, and installed, then any apps built for > 64 bit will core dump on it. The reverse is true as well.
If APR changes $CC to force a platform ABI choice as I suggested, then any apps built against APR will be (must be) built using the same $CC, inherited via `apr-N-config --cc`. Otherwise all bets are off, as has always been true. > The default is to build for *both*. And when this is done, then > the bit sizes locked in apr.h may or may not be correct depending > on how you build the app that will be *using* it. The __LP64__ > tests in the apr.h (etal) files is to ensure that depending on > how people are building *against an installed APR* will have > the right values. Otherwise, anyone shipping an APR lib must > built it for just 1 architecture and ensure that any consumers > build against just that architecture. Packagers/redistributors can build APR twice (or N times) and merge the results to get a "fat" binary - this is a problem for Darwin packagers, not for upstream. From a 10 second google, this seems to be how Apple recommend you do it: http://developer.apple.com/opensource/buildingopensourceuniversal.html I would not be averse to including (configure --enable-flag conditional) a solution like the apr-wrapper.h we use in Fedora to allow distribution of a single arch-independent apr.h which will DTRT on multiple platforms, if there's wider support for that. But that wouldn't distract from the need to build the thing twice and merge the results. > At the very least we should create an APR define that specifies > what bitsize was used APR_SIZEOF_VOIDP? Regards, Joe
