[Fontconfig] fontconfig: Branch 'master' - 2 commits
Jon TURNEY
jon.turney at dronecode.org.uk
Sat Jan 1 09:35:46 PST 2011
On 28/12/2010 07:23, Behdad Esfahbod wrote:
> New commits:
> commit d1a0fca316ab8d9d61474028da54615e4d9f7540
> Author: Behdad Esfahbod <behdad at behdad.org>
> Date: Tue Dec 28 00:59:19 2010 -0600
>
> Make fc-arch stuff cross-compiling-safe
>
> Fixes:
> Bug 32679 - fontconfig-2.8.0 does not cross compile
> Bug 25462 - Cross-compilation doesn't work
> +++ b/src/fcarch.c
> @@ -0,0 +1,72 @@
> +/*
> + * Copyright © 2002 Keith Packard
> + *
> + * 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.
> + */
> +
> +#include <stdio.h>
> +
> +#ifdef HAVE_CONFIG_H
> +#include <config.h>
> +#endif
> +
> +/* If architecture is hardcoded, skip the assert tests */
> +
> +#ifndef FC_ARCHITECTURE
> +
> +#include "fcarch.h"
> +
> +/* Make sure the cache structure is consistent with what we expect */
> +
> +#include "fcint.h"
> +
> +FC_ASSERT_STATIC (1 == sizeof (char));
> +FC_ASSERT_STATIC (2 == sizeof (FcChar16));
> +FC_ASSERT_STATIC (4 == sizeof (int));
> +FC_ASSERT_STATIC (4 == sizeof (FcChar32));
> +FC_ASSERT_STATIC (4 == sizeof (FcObject));
> +FC_ASSERT_STATIC (4 == sizeof (FcValueBinding));
> +FC_ASSERT_STATIC (8 == sizeof (FcAlign));
> +FC_ASSERT_STATIC (0x20 == sizeof (FcCharLeaf));
> +
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (intptr_t));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcPatternEltPtr));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcValueListPtr));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (char *));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (struct FcPatternElt *));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcValueList *));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcStrSet *));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcCharLeaf **));
> +FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcChar16 *));
> +
> +FC_ASSERT_STATIC (0x08 + 1*SIZEOF_VOID_P == sizeof (FcValue));
This compile-time assert fails on cygwin, see [1].
/opt/jhbuild/git/fontconfig/src/fcarch.c:58: error: size of array
'_static_assert_on_line_58_failed' is negative
make[3]: *** [fcarch.o] Error 1
cygwin is le32d8, and it looks to me like that assert isn't going to be
correct for 8-byte aligned doubles.
I'm not sure what the invariant should be, would the following be better?
-FC_ASSERT_STATIC (0x08 + 1*SIZEOF_VOID_P == sizeof (FcValue));
+FC_ASSERT_STATIC (ALIGNOF_DOUBLE + sizeof(double) == sizeof (FcValue));
[1] http://tinderbox.freedesktop.org/builds/2010-12-31-0009/logs/fontconfig/#build
> +FC_ASSERT_STATIC (0x00 + 2*SIZEOF_VOID_P == sizeof (FcPatternElt));
> +FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcPattern));
> +FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcCharSet));
> +FC_ASSERT_STATIC (0x08 + 6*SIZEOF_VOID_P == sizeof (FcCache));
> +
> +#endif
> +
> +
> +int
> +main (int argc, char **argv)
> +{
> + printf ("%s\n", FC_ARCHITECTURE);
> + return 0;
> +}
More information about the Fontconfig
mailing list