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:
parent
e1ffb3dcd4
commit
8cc4498122
|
@ -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>
|
||||||
|
|
|
@ -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));
|
||||||
|
|
23
src/fcarch.h
23
src/fcarch.h
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue