[morty] fontconfig: Fix namespace conflicts with glibc

Message ID 20171122175147.31931-1-ross.burton@intel.com
State New
Headers show
Series
  • [morty] fontconfig: Fix namespace conflicts with glibc
Related show

Commit Message

Ross Burton Nov. 22, 2017, 5:51 p.m.
From: Khem Raj <raj.khem@gmail.com>


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

(From OE-Core rev: 3575826752e7140da493c7f560fb5fcf483fc9b4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>

Signed-off-by: Ross Burton <ross.burton@intel.com>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

---
 ...icts-with-integer-width-macros-from-TS-18.patch | 72 ++++++++++++++++++++++
 .../fontconfig/fontconfig_2.12.1.bb                |  1 +
 2 files changed, 73 insertions(+)
 create mode 100644 meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch

-- 
2.11.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Armin Kuster Nov. 22, 2017, 6 p.m. | #1
On 11/22/2017 09:51 AM, Ross Burton wrote:
> From: Khem Raj <raj.khem@gmail.com>

>

> 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

>

> (From OE-Core rev: 3575826752e7140da493c7f560fb5fcf483fc9b4)

>

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> Signed-off-by: Ross Burton <ross.burton@intel.com>

> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

merged.

thanks
- armin
> ---

>  ...icts-with-integer-width-macros-from-TS-18.patch | 72 ++++++++++++++++++++++

>  .../fontconfig/fontconfig_2.12.1.bb                |  1 +

>  2 files changed, 73 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 00000000000..cad71707adc

> --- /dev/null

> +++ b/meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch

> @@ -0,0 +1,72 @@

> +From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001

> +From: Khem Raj <raj.khem@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@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(-)

> +

> +Index: fontconfig-2.12.1/fontconfig/fontconfig.h

> +===================================================================

> +--- fontconfig-2.12.1.orig/fontconfig/fontconfig.h

> ++++ fontconfig-2.12.1/fontconfig/fontconfig.h

> +@@ -128,7 +128,8 @@ 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_WIDTH	    FC_CHARWIDTH

> + #define FC_CHAR_HEIGHT	    "charheight"/* Int */

> + #define FC_MATRIX	    "matrix"    /* FcMatrix */

> + 

> +Index: fontconfig-2.12.1/src/fcobjs.h

> +===================================================================

> +--- fontconfig-2.12.1.orig/src/fcobjs.h

> ++++ fontconfig-2.12.1/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)

> +Index: fontconfig-2.12.1/src/fcobjshash.gperf

> +===================================================================

> +--- fontconfig-2.12.1.orig/src/fcobjshash.gperf

> ++++ fontconfig-2.12.1/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

> +Index: fontconfig-2.12.1/src/fcobjshash.h

> +===================================================================

> +--- fontconfig-2.12.1.orig/src/fcobjshash.h

> ++++ fontconfig-2.12.1/src/fcobjshash.h

> +@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char

> +       {(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"

> diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb

> index 115f558eefa..8616154c616 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] = "a9f42d03949f948a3a4f762287dbc16e53a927c91a07ee64207ebd90a9e5e292"


-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

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 00000000000..cad71707adc
--- /dev/null
+++ b/meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
@@ -0,0 +1,72 @@ 
+From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@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@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(-)
+
+Index: fontconfig-2.12.1/fontconfig/fontconfig.h
+===================================================================
+--- fontconfig-2.12.1.orig/fontconfig/fontconfig.h
++++ fontconfig-2.12.1/fontconfig/fontconfig.h
+@@ -128,7 +128,8 @@ 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_WIDTH	    FC_CHARWIDTH
+ #define FC_CHAR_HEIGHT	    "charheight"/* Int */
+ #define FC_MATRIX	    "matrix"    /* FcMatrix */
+ 
+Index: fontconfig-2.12.1/src/fcobjs.h
+===================================================================
+--- fontconfig-2.12.1.orig/src/fcobjs.h
++++ fontconfig-2.12.1/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)
+Index: fontconfig-2.12.1/src/fcobjshash.gperf
+===================================================================
+--- fontconfig-2.12.1.orig/src/fcobjshash.gperf
++++ fontconfig-2.12.1/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
+Index: fontconfig-2.12.1/src/fcobjshash.h
+===================================================================
+--- fontconfig-2.12.1.orig/src/fcobjshash.h
++++ fontconfig-2.12.1/src/fcobjshash.h
+@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char
+       {(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"
diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
index 115f558eefa..8616154c616 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] = "a9f42d03949f948a3a4f762287dbc16e53a927c91a07ee64207ebd90a9e5e292"