2007.10.23 20:56 "Re: [Tiff] universal build patch", by Toby Thain
On 23-Oct-07, at 4:17 PM, Andrey Kiselev wrote:
On Tue, Oct 23, 2007 at 11:12:33AM -0500, Bob Friesenhahn wrote:
We can easily switch to this method instead of autoconf macro. I am only concerning about portability of this approach.
It is 100% portable as long as you stick to using Apple's modified GCC 4.X and OS X. Other targets are of no consequence. :-)
Solaris defines _LITTLE_ENDIAN or _BIG_ENDIAN by including <sys/types.h>
My feeling is that it the only completely correct approach is to configure/build on each native target since otherwise some decisions made may be wrong.
Whether this is true can be deduced from the set of parameters determined at configure-time.
Perhaps 32-bit OS X has managed to constrain PPC and Intel differences to only endian order but this is the exception rather than the rule. With Mac OS X Leopard (Arriving October 26) perhaps the rules will change (the rules for Apple always change).
I am sure that AC_C_BIGENDIAN macro can deduce the target byte order using some heuristics (that macro works in case of cross-compilation).
For separate configures, everything already works, of course.
The hitherto unsolved problem is building universally from a single configure, which is sometimes necessary. The runtime patch seems a clever solution?
So it can be adopted for OS X case too. The only problem for me is that I do not have a proper environment to develop and test such a macro. It shouldn't be too complicated. So my preference is to modify a test rather than libarary itself. I don't see any serious reason to replace the compile time switch.
> Tiff mailing list: Tiff@lists.maptools.org