mozilla-bindgen-systemlibs.patch
changeset 1008 77c890186192
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bindgen-systemlibs.patch	Sat Nov 11 10:08:36 2017 +0100
@@ -0,0 +1,102 @@
+# HG changeset patch
+# Parent  e85dde0eabf214916c69924aa49192ab412e00a1
+
+diff --git a/build/autoconf/config.status.m4 b/build/autoconf/config.status.m4
+--- a/build/autoconf/config.status.m4
++++ b/build/autoconf/config.status.m4
+@@ -40,16 +40,31 @@ define([AC_SUBST_LIST],
+ [ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST_SET and AC_SUBST_LIST on the same variable ($1)])],
+ [ifdef([AC_SUBST_LIST_$1], ,
+ [define([AC_SUBST_LIST_$1], )dnl
+ AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
+     (''' $1 ''', list(r''' [$]$1 '''.split()))
+ AC_DIVERT_POP()dnl
+ ])])])])
+ 
++dnl Like AC_SUBST, but makes the value available as a string of quoted strings
++dnl in python, with values got from the value of the environment variable,
++dnl split on whitespaces. The value is suitable for embedding into a .toml
++dnl list.
++define([AC_SUBST_TOML_LIST],
++[ifdef([AC_SUBST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST_SET and AC_SUBST_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_LIST_$1], ,
++[define([AC_SUBST_LIST_$1], )dnl
++AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
++    (''' $1 ''', r''' %s ''' % str(', '.join("'%s'" % s for s in r''' [$]$1 '''.split())))
++AC_DIVERT_POP()dnl
++])])])])
++
++
+ dnl Ignore AC_SUBSTs for variables we don't have use for but that autoconf
+ dnl itself exports.
+ define([AC_SUBST_CFLAGS], )
+ define([AC_SUBST_CPPFLAGS], )
+ define([AC_SUBST_CXXFLAGS], )
+ define([AC_SUBST_FFLAGS], )
+ define([AC_SUBST_DEFS], )
+ define([AC_SUBST_LDFLAGS], )
+diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -897,25 +897,24 @@ def check_have_64_bit(have_64_bit, compi
+         configure_error('The target compiler does not agree with configure '
+                         'about the target bitness.')
+ 
+ option(env='BINDGEN_CFLAGS',
+        nargs=1,
+        help='Options bindgen should pass to the C/C++ parser')
+ 
+ @depends('BINDGEN_CFLAGS')
+-@checking('bindgen cflags', lambda s: s if s and s.strip() else 'no')
++@checking('bindgen cflags', lambda s: s if s and s[0].strip() else 'no')
+ def bindgen_cflags(value):
+     if value and len(value):
+         # Reformat the env value for substitution into a toml list.
+         flags = value[0].split()
+-        return ', '.join('"' + flag + '"' for flag in flags)
+-    return ''
++        return flags
+ 
+-set_config('BINDGEN_CFLAGS', bindgen_cflags)
++add_old_configure_assignment('_BINDGEN_CFLAGS', bindgen_cflags)
+ 
+ @depends(c_compiler)
+ def default_debug_flags(compiler_info):
+     # Debug info is ON by default.
+     if compiler_info.type in ('msvc', 'clang-cl'):
+         return '-Zi'
+     return '-g'
+ 
+diff --git a/layout/style/bindgen.toml.in b/layout/style/bindgen.toml.in
+--- a/layout/style/bindgen.toml.in
++++ b/layout/style/bindgen.toml.in
+@@ -1,4 +1,4 @@
+ [build]
+ args = [
+-    @BINDGEN_CFLAGS@
++    @BINDGEN_SYSTEM_FLAGS@
+ ]
+diff --git a/old-configure.in b/old-configure.in
+--- a/old-configure.in
++++ b/old-configure.in
+@@ -4453,16 +4453,19 @@ android)
+ esac
+ 
+ AC_SUBST(MOZ_TREE_CAIRO)
+ AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
+ AC_SUBST_LIST(MOZ_CAIRO_LIBS)
+ AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
+ AC_SUBST(MOZ_TREE_PIXMAN)
+ 
++BINDGEN_SYSTEM_FLAGS="$_BINDGEN_CFLAGS $NSPR_CFLAGS $NSS_CFLAGS $MOZ_PIXMAN_CFLAGS $MOZ_CAIRO_CFLAGS"
++AC_SUBST_TOML_LIST(BINDGEN_SYSTEM_FLAGS)
++
+ dnl ========================================================
+ dnl disable xul
+ dnl ========================================================
+ MOZ_ARG_DISABLE_BOOL(xul,
+ [  --disable-xul           Disable XUL],
+     MOZ_XUL= )
+ if test "$MOZ_XUL"; then
+   AC_DEFINE(MOZ_XUL)