[OE-core] [PATCH] fontconfig: Fix namespace conflicts with glibc

Burton, Ross ross.burton at intel.com
Mon Dec 12 12:45:34 UTC 2016


Has fallout, for example libxft:

| ../../libXft-2.3.2/src/xftfreetype.c:675:43: error: ‘FC_CHAR_WIDTH’
undeclared (first use in this function)

Ross

On 11 December 2016 at 23:07, Khem Raj <raj.khem at gmail.com> wrote:

> glibc 2.25 will come with TS 18661-1 macro definitions in limits.h which
> ends with following errors
>
> | ../../fontconfig-2.12.1/src/fcmatch.c:324:63: error:
> 'PRI_CHAR_WIDTH_STRONG' undeclared here (not in a function)
> |  #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp,
> PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
> |                                                                ^
> | ../../fontconfig-2.12.1/src/fcobjs.h:54:1: note: in expansion of macro
> 'FC_OBJECT'
> |  FC_OBJECT (CHAR_WIDTH,  FcTypeInteger, NULL)
> |  ^~~~~~~~~
> | ../../fontconfig-2.12.1/src/fcmatch.c:324:84: error:
> 'PRI_CHAR_WIDTH_WEAK' undeclared here (not in a function)
> |  #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp,
> PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
> |
>            ^
> | ../../fontconfig-2.12.1/src/fcobjs.h:54:1: note: in expansion of macro
> 'FC_OBJECT'
> |  FC_OBJECT (CHAR_WIDTH,  FcTypeInteger, NULL)
> |  ^~~~~~~~~
> | make[3]: *** [Makefile:632: fcmatch.lo] Error 1
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  ...icts-with-integer-width-macros-from-TS-18.patch | 74
> ++++++++++++++++++++++
>  .../fontconfig/fontconfig_2.12.1.bb                |  1 +
>  2 files changed, 75 insertions(+)
>  create mode 100644 meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
>
> diff --git a/meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> b/meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> new file mode 100644
> index 0000000..326ff3c
> --- /dev/null
> +++ b/meta/recipes-graphics/fontconfig/fontconfig/0001-
> Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> @@ -0,0 +1,74 @@
> +From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
> +From: Khem Raj <raj.khem at gmail.com>
> +Date: Sun, 11 Dec 2016 14:32:00 -0800
> +Subject: [PATCH] Avoid conflicts with integer width macros from TS
> + 18661-1:2014
> +
> +glibc 2.25+ has now defined these macros in <limits.h>
> +https://sourceware.org/git/?p=glibc.git;a=commit;h=
> 5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
> +
> +Signed-off-by: Khem Raj <raj.khem at gmail.com>
> +---
> +Upstream-Status: Submitted
> +
> + fontconfig/fontconfig.h | 2 +-
> + src/fcobjs.h            | 2 +-
> + src/fcobjshash.gperf    | 2 +-
> + src/fcobjshash.h        | 2 +-
> + 4 files changed, 4 insertions(+), 4 deletions(-)
> +
> +diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
> +index 5c72b22..843c532 100644
> +--- a/fontconfig/fontconfig.h
> ++++ b/fontconfig/fontconfig.h
> +@@ -128,7 +128,7 @@ typedef int                FcBool;
> + #define FC_USER_CACHE_FILE        ".fonts.cache-" FC_CACHE_VERSION
> +
> + /* Adjust outline rasterizer */
> +-#define FC_CHAR_WIDTH     "charwidth" /* Int */
> ++#define FC_CHARWIDTH      "charwidth" /* Int */
> + #define FC_CHAR_HEIGHT            "charheight"/* Int */
> + #define FC_MATRIX         "matrix"    /* FcMatrix */
> +
> +diff --git a/src/fcobjs.h b/src/fcobjs.h
> +index 1fc4f65..d27864b 100644
> +--- a/src/fcobjs.h
> ++++ b/src/fcobjs.h
> +@@ -51,7 +51,7 @@ FC_OBJECT (DPI,                      FcTypeDouble,
>  NULL)
> + FC_OBJECT (RGBA,              FcTypeInteger,  NULL)
> + FC_OBJECT (SCALE,             FcTypeDouble,   NULL)
> + FC_OBJECT (MINSPACE,          FcTypeBool,     NULL)
> +-FC_OBJECT (CHAR_WIDTH,                FcTypeInteger,  NULL)
> ++FC_OBJECT (CHARWIDTH,         FcTypeInteger,  NULL)
> + FC_OBJECT (CHAR_HEIGHT,               FcTypeInteger,  NULL)
> + FC_OBJECT (MATRIX,            FcTypeMatrix,   NULL)
> + FC_OBJECT (CHARSET,           FcTypeCharSet,  FcCompareCharSet)
> +diff --git a/src/fcobjshash.gperf b/src/fcobjshash.gperf
> +index 80a0237..eb4ad84 100644
> +--- a/src/fcobjshash.gperf
> ++++ b/src/fcobjshash.gperf
> +@@ -44,7 +44,7 @@ int id;
> + "rgba",FC_RGBA_OBJECT
> + "scale",FC_SCALE_OBJECT
> + "minspace",FC_MINSPACE_OBJECT
> +-"charwidth",FC_CHAR_WIDTH_OBJECT
> ++"charwidth",FC_CHARWIDTH_OBJECT
> + "charheight",FC_CHAR_HEIGHT_OBJECT
> + "matrix",FC_MATRIX_OBJECT
> + "charset",FC_CHARSET_OBJECT
> +diff --git a/src/fcobjshash.h b/src/fcobjshash.h
> +index 5a4d1ea..4e66bb0 100644
> +--- a/src/fcobjshash.h
> ++++ b/src/fcobjshash.h
> +@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char *str,
> register unsigned int len)
> +       {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
> +       {-1},
> + #line 47 "fcobjshash.gperf"
> +-      {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
> ++      {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
> + #line 48 "fcobjshash.gperf"
> +       {(int)(long)&((struct FcObjectTypeNamePool_t
> *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
> + #line 55 "fcobjshash.gperf"
> +--
> +2.10.2
> +
> diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> index 115f558..8616154 100644
> --- a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> +++ b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
> @@ -22,6 +22,7 @@ DEPENDS = "expat freetype zlib"
>
>  SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \
>             file://revert-static-pkgconfig.patch \
> +           file://0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
> \
>             "
>  SRC_URI[md5sum] = "ce55e525c37147eee14cc2de6cc09f6c"
>  SRC_URI[sha256sum] = "a9f42d03949f948a3a4f762287dbc1
> 6e53a927c91a07ee64207ebd90a9e5e292"
> --
> 2.10.2
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161212/d93cb7e9/attachment-0002.html>


More information about the Openembedded-core mailing list