fcarch: Check for architecture signature at compile time rather than configure time

https://bugs.freedesktop.org/show_bug.cgi?id=20208

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
This commit is contained in:
Jeremy Huddleston 2012-03-19 02:16:41 -07:00 committed by Akira TAGOH
parent e1ffb3dcd4
commit 8cc4498122
3 changed files with 24 additions and 6 deletions

View File

@ -22,8 +22,6 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
#include "../src/fcarch.h"
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include <config.h> #include <config.h>
#else #else
@ -34,6 +32,7 @@
#endif #endif
#include <fontconfig/fontconfig.h> #include <fontconfig/fontconfig.h>
#include "../src/fcarch.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>

View File

@ -31,12 +31,12 @@
#ifndef FC_ARCHITECTURE #ifndef FC_ARCHITECTURE
#include "fcarch.h"
/* Make sure the cache structure is consistent with what we expect */ /* Make sure the cache structure is consistent with what we expect */
#include "fcint.h" #include "fcint.h"
#include "fcarch.h"
FC_ASSERT_STATIC (1 == sizeof (char)); FC_ASSERT_STATIC (1 == sizeof (char));
FC_ASSERT_STATIC (2 == sizeof (FcChar16)); FC_ASSERT_STATIC (2 == sizeof (FcChar16));
FC_ASSERT_STATIC (4 == sizeof (int)); FC_ASSERT_STATIC (4 == sizeof (int));

View File

@ -46,9 +46,28 @@
* be64 1234 8 8 * be64 1234 8 8
*/ */
#if defined(WORDS_BIGENDIAN) && WORDS_BIGENDIAN #ifdef __APPLE__
# include <machine/endian.h>
# undef SIZEOF_VOID_P
# undef ALIGNOF_DOUBLE
# ifdef __LP64__
# define SIZEOF_VOID_P 8
# define ALIGNOF_DOUBLE 8
# else
# define SIZEOF_VOID_P 4
# define ALIGNOF_DOUBLE 4
# endif
#endif
#if defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN
# define FC_ARCH_ENDIAN "le"
#elif defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN
# define FC_ARCH_ENDIAN "be" # define FC_ARCH_ENDIAN "be"
#else /* !WORDS_BIGENDIAN */ #elif defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_PDP_ENDIAN
# define FC_ARCH_ENDIAN "pe"
#elif defined(WORDS_BIGENDIAN) && WORDS_BIGENDIAN
# define FC_ARCH_ENDIAN "be"
#else
# define FC_ARCH_ENDIAN "le" # define FC_ARCH_ENDIAN "le"
#endif #endif