[GRASS-dev] portable.h alternatives? [was: include/portable.h?]
glynn at gclements.plus.com
Sat Jul 1 14:58:24 EDT 2006
William Kyngesburye wrote:
> Speaking of portable.h, I had to mess with this recently so I could
> get a Universal Mac binary. It involves saving a copy configured on
> both platforms and creating a custom portable.h which is
> conditionalized on __BIG_ENDIAN__ (an OS X compiler def).
> Would it be possible to somehow make this so it doesn't need to be
> generated at compile time? or make it cross-compiler friendly? Or
> maybe there is already an option for that? Or some other way of
> handling this architecture endian/size thing. Something to make a
> Universal build on OS X simpler. Other than getting the universal
> build flags in the right place, this is the main sticky point for an
> easy universal build.
The ideal solution would be to re-write portable.c so that it doesn't
depend upon the host's byte order; i.e. [de]serialize in the correct
byte-order to start with, rather than assuming that the host's
byte-order matches that of the file then "byte-swap" if it doesn't.
Alternatively, most of portable.h could be generated by the configure
script, using the AC_CHECK_SIZEOF and AC_C_BIGENDIAN macros. However,
the latter only accounts for the simple cases; it doesn't handle
mixed-endian architectures (primarily some ARM-based platforms; I
don't think that the PDP-11 needs to be supported).
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev