Jyri Virkki wrote:

>     2.4.1. Include [ header ] files.
> 
>     Public Apache header files which are generated at ./configure time
>     will be merged to include both 32- and 64-bit definitions.  The
>     differences between 32- and 64-bit datatypes will be guarded
>     either via the _LP64 macro, or via the appropriate ISA macros:
> 
>         #if defined(_LP64)
>         #define APR_SIZEOF_VOIDP 8
>         #else
>         #define APR_SIZEOF_VOIDP 4
>         #endif
> 
>         #if defined(__sparcv9)
>         #define APR_IS_BIGENDIAN       1
>         #else
>         #define APR_IS_BIGENDIAN       0
>         #endif

__sparcv9 is defined only for 64-bit builds, it is not defined for 32-bit 
builds.

#ifdef guarding on __sparcv9 only will result on (APR_IS_BIGENDIAN == 0) for 
32-bit sparcv8 builds.

the correct #ifdef guard should be:

#if defined(__sparc) || defined(__sparcv9)
/* ... */
#endif

/* testsparcdefines.c */

#include <stdio.h>

static char* endian = "LITTLE ENDIAN";

int
main(int argc, char* argv[])
{
#if defined(__sparcv9)
     endian = "BIG ENDIAN";
#endif
     (void) fprintf(stderr, "endian is %s.\n", endian);
     return 0;
}

--Stefan

-- 
Stefan Teleman
Sun Microsystems, Inc.
Stefan.Teleman at Sun.COM


Reply via email to