From becbdaebe3d77726900072de1a0fb6a95c938da5 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Wed, 28 Mar 2012 15:09:25 +0900 Subject: [PATCH] Move workaround macros for fat binaries into the separate header file --- Makefile.am | 5 +++-- config-fixups.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ configure.in | 4 +++- src/fcarch.h | 13 ------------- 4 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 config-fixups.h diff --git a/Makefile.am b/Makefile.am index 9342f8e..1b94367 100644 --- a/Makefile.am +++ b/Makefile.am @@ -25,14 +25,15 @@ DOCSRC=@DOCSRC@ SUBDIRS=fontconfig fc-case fc-lang fc-glyphname src \ fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \ conf.d $(DOCSRC) test - + EXTRA_DIST = \ fontconfig.pc.in \ fonts.conf.in \ fonts.dtd \ fontconfig.spec.in \ fontconfig.spec \ - fontconfig-zip.in + fontconfig-zip.in \ + config-fixups.h CLEANFILES = fonts.conf DISTCLEANFILES = config.cache doltcompile MAINTAINERCLEANFILES = \ diff --git a/config-fixups.h b/config-fixups.h new file mode 100644 index 0000000..0e70846 --- /dev/null +++ b/config-fixups.h @@ -0,0 +1,44 @@ +/* + * Copyright 息 2006 Keith Packard + * Copyright 息 2010 Behdad Esfahbod + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +#ifndef _CONFIG_FIXUPS_H_ +#define _CONFIG_FIXUPS_H_ + +/* This header file is supposed to be included in config.h */ + +/* just a hack to build the fat binaries: + * https://bugs.freedesktop.org/show_bug.cgi?id=20208 + */ +#ifdef __APPLE__ +# include +# 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 + +#endif /* _CONFIG_FIXUPS_H_ */ diff --git a/configure.in b/configure.in index 3204f2e..e0aba19 100644 --- a/configure.in +++ b/configure.in @@ -496,7 +496,9 @@ AC_C_BIGENDIAN AC_CHECK_SIZEOF([void *]) AC_CHECK_ALIGNOF([double]) - +dnl include the header file for workaround of miscalculating size on autoconf +dnl particularly for fat binaries +AH_BOTTOM([#include "config-fixups.h"]) AC_OUTPUT([ Makefile diff --git a/src/fcarch.h b/src/fcarch.h index 22e6f8e..cf7fd3c 100644 --- a/src/fcarch.h +++ b/src/fcarch.h @@ -46,19 +46,6 @@ * be64 1234 8 8 */ -#ifdef __APPLE__ -# include -# 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