All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/2] pkg-meson/libglib2: restore use of system printf
@ 2020-03-10 12:44 John Keeping
  2020-03-10 12:44 ` [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES John Keeping
  2020-03-10 12:44 ` [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf John Keeping
  0 siblings, 2 replies; 9+ messages in thread
From: John Keeping @ 2020-03-10 12:44 UTC (permalink / raw)
  To: buildroot

The first patch here adds some meson infrastructure to allow per-package
properties to be set in cross-compilation.conf and the second uses it to
ensure libglib2 uses the system printf, which it will not otherwise do
as it depends on runtime tests to check these.

Note that patch 1 depends textually on the patch at
https://patchwork.ozlabs.org/patch/1252129/

John Keeping (2):
  package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES
  package/libglib2: restore use of system printf

 docs/manual/adding-packages-meson.txt | 8 ++++++++
 package/libglib2/libglib2.mk          | 5 +++++
 package/pkg-meson.mk                  | 4 ++++
 3 files changed, 17 insertions(+)

-- 
2.25.1

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES
  2020-03-10 12:44 [Buildroot] [PATCH 0/2] pkg-meson/libglib2: restore use of system printf John Keeping
@ 2020-03-10 12:44 ` John Keeping
  2020-03-10 14:07   ` Peter Seiderer
  2020-03-10 12:44 ` [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf John Keeping
  1 sibling, 1 reply; 9+ messages in thread
From: John Keeping @ 2020-03-10 12:44 UTC (permalink / raw)
  To: buildroot

With autoconf packages, we often specify ac_cv_func_... cached values to
avoid runtime checks during configure.  With meson the equivalent is
setting properties in cross-compilation.conf which we cannot do in
Buildroot at the moment.

For example, libglib2 used to set ac_cv_func_printf_unix98 and
ac_cv_func_vsnprintf_c99 so that the system printf could be used, but
with the conversion to meson these checks fail and the gnulib fallback
is used.

Add infrastructure in the same way as FOO_MESON_EXTRA_BINARIES to allow
per-package modification to the cross-compilation properties.

Signed-off-by: John Keeping <john@metanate.com>
---
 docs/manual/adding-packages-meson.txt | 8 ++++++++
 package/pkg-meson.mk                  | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/docs/manual/adding-packages-meson.txt b/docs/manual/adding-packages-meson.txt
index e84bf7f60a..c28828243c 100644
--- a/docs/manual/adding-packages-meson.txt
+++ b/docs/manual/adding-packages-meson.txt
@@ -116,6 +116,14 @@ will therefore only use a few of them.
   single quotes. By default, empty. Note that Buildroot already sets the
   correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+.
 
+* +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of
+  properties to add to the `[properties]` section of the meson
+  `cross-compilation.conf` configuration file. The format is
+  `property-name='value'`, with no space around the +=+ sign, and with the
+  value between single quotes. By default, empty. Note that Buildroot
+  already sets values for +needs_exe_wrapper+, +c_args+, +c_link_args+,
+  +cpp_args+, +cpp_link_args+, +sys_root+, and +pkg_config_libdir+.
+
 * +FOO_NINJA_ENV+, to specify additional environment variables to pass to
   +ninja+, meson companion tool in charge of the build operations. By default,
   empty.
diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
index 6ac3f79fe9..4df1326cad 100644
--- a/package/pkg-meson.mk
+++ b/package/pkg-meson.mk
@@ -80,6 +80,10 @@ define $(2)_CONFIGURE_CMDS
 		$$(foreach x,$$($(2)_MESON_EXTRA_BINARIES), \
 	            s:$$$$:\n$$(x): ; \
 		) }" \
+	    -e "/^\[properties\]$$$$/ { \
+		$$(foreach x,$$($(2)_MESON_EXTRA_PROPERTIES), \
+		    s:$$$$:\n$$(x): ; \
+		) }" \
 	    package/meson/cross-compilation.conf.in \
 	    > $$($$(PKG)_SRCDIR)/build/cross-compilation.conf
 	PATH=$$(BR_PATH) $$($$(PKG)_CONF_ENV) $$(MESON) \
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf
  2020-03-10 12:44 [Buildroot] [PATCH 0/2] pkg-meson/libglib2: restore use of system printf John Keeping
  2020-03-10 12:44 ` [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES John Keeping
@ 2020-03-10 12:44 ` John Keeping
  2020-03-10 14:13   ` Peter Seiderer
  1 sibling, 1 reply; 9+ messages in thread
From: John Keeping @ 2020-03-10 12:44 UTC (permalink / raw)
  To: buildroot

Prior to commit 4102db0f7a ("package/libglib2: bump to version 2.60.3")
which converted libglib2 to meson, Buildroot used to set a range of
autoconf options to bypass tests that require running binaries.

The meson version of libglib2's build system has many fewer of these
checks, but there are still some and these can be fed the "correct"
answer by adding properties to cross-compilation.conf.

Add the necessary properties to indicate that we have C99 compliant
print functions to avoid pulling in the gnulib fallback.

Signed-off-by: John Keeping <john@metanate.com>
---
 package/libglib2/libglib2.mk | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
index f00818f69c..a206639f74 100644
--- a/package/libglib2/libglib2.mk
+++ b/package/libglib2/libglib2.mk
@@ -52,6 +52,11 @@ LIBGLIB2_CONF_OPTS = \
 	-Dinstalled_tests=false \
 	-Doss_fuzz=disabled
 
+LIBGLIB2_MESON_EXTRA_PROPERTIES = \
+	have_c99_vsnprintf=true \
+	have_c99_snprintf=true \
+	have_unix98_printf=true
+
 ifneq ($(BR2_ENABLE_LOCALE),y)
 LIBGLIB2_DEPENDENCIES += libiconv
 endif
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES
  2020-03-10 12:44 ` [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES John Keeping
@ 2020-03-10 14:07   ` Peter Seiderer
  2020-03-10 14:42     ` John Keeping
  0 siblings, 1 reply; 9+ messages in thread
From: Peter Seiderer @ 2020-03-10 14:07 UTC (permalink / raw)
  To: buildroot

Hello John,

On Tue, 10 Mar 2020 12:44:58 +0000, John Keeping <john@metanate.com> wrote:

> With autoconf packages, we often specify ac_cv_func_... cached values to
> avoid runtime checks during configure.  With meson the equivalent is
> setting properties in cross-compilation.conf which we cannot do in
> Buildroot at the moment.
>
> For example, libglib2 used to set ac_cv_func_printf_unix98 and
> ac_cv_func_vsnprintf_c99 so that the system printf could be used, but
> with the conversion to meson these checks fail and the gnulib fallback
> is used.
>
> Add infrastructure in the same way as FOO_MESON_EXTRA_BINARIES to allow
> per-package modification to the cross-compilation properties.
>
> Signed-off-by: John Keeping <john@metanate.com>
> ---
>  docs/manual/adding-packages-meson.txt | 8 ++++++++
>  package/pkg-meson.mk                  | 4 ++++
>  2 files changed, 12 insertions(+)
>
> diff --git a/docs/manual/adding-packages-meson.txt b/docs/manual/adding-packages-meson.txt
> index e84bf7f60a..c28828243c 100644
> --- a/docs/manual/adding-packages-meson.txt
> +++ b/docs/manual/adding-packages-meson.txt
> @@ -116,6 +116,14 @@ will therefore only use a few of them.
>    single quotes. By default, empty. Note that Buildroot already sets the
>    correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+.
>
> +* +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of
> +  properties to add to the `[properties]` section of the meson
> +  `cross-compilation.conf` configuration file. The format is
> +  `property-name='value'`, with no space around the +=+ sign, and with the
> +  value between single quotes. By default, empty. Note that Buildroot
> +  already sets values for +needs_exe_wrapper+, +c_args+, +c_link_args+,
> +  +cpp_args+, +cpp_link_args+, +sys_root+, and +pkg_config_libdir+.
> +

The description does not fit the usage in the follow-up patch
(...value between single quoates...):

+LIBGLIB2_MESON_EXTRA_PROPERTIES = \
+	have_c99_vsnprintf=true \
+	have_c99_snprintf=true \
+	have_unix98_printf=true
+

With this fixed you can add my

Reviewed-by: Peter Seiderer <ps.report@gmx.net>

Regards,
Peter

>  * +FOO_NINJA_ENV+, to specify additional environment variables to pass to
>    +ninja+, meson companion tool in charge of the build operations. By default,
>    empty.
> diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
> index 6ac3f79fe9..4df1326cad 100644
> --- a/package/pkg-meson.mk
> +++ b/package/pkg-meson.mk
> @@ -80,6 +80,10 @@ define $(2)_CONFIGURE_CMDS
>  		$$(foreach x,$$($(2)_MESON_EXTRA_BINARIES), \
>  	            s:$$$$:\n$$(x): ; \
>  		) }" \
> +	    -e "/^\[properties\]$$$$/ { \
> +		$$(foreach x,$$($(2)_MESON_EXTRA_PROPERTIES), \
> +		    s:$$$$:\n$$(x): ; \
> +		) }" \
>  	    package/meson/cross-compilation.conf.in \
>  	    > $$($$(PKG)_SRCDIR)/build/cross-compilation.conf
>  	PATH=$$(BR_PATH) $$($$(PKG)_CONF_ENV) $$(MESON) \

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf
  2020-03-10 12:44 ` [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf John Keeping
@ 2020-03-10 14:13   ` Peter Seiderer
  2020-03-10 14:45     ` John Keeping
  2020-03-12 20:38     ` Adam Duskett
  0 siblings, 2 replies; 9+ messages in thread
From: Peter Seiderer @ 2020-03-10 14:13 UTC (permalink / raw)
  To: buildroot

Hello John,

On Tue, 10 Mar 2020 12:44:59 +0000, John Keeping <john@metanate.com> wrote:

> Prior to commit 4102db0f7a ("package/libglib2: bump to version 2.60.3")
> which converted libglib2 to meson, Buildroot used to set a range of
> autoconf options to bypass tests that require running binaries.
>
> The meson version of libglib2's build system has many fewer of these
> checks, but there are still some and these can be fed the "correct"
> answer by adding properties to cross-compilation.conf.
>
> Add the necessary properties to indicate that we have C99 compliant
> print functions to avoid pulling in the gnulib fallback.
>
> Signed-off-by: John Keeping <john@metanate.com>
> ---
>  package/libglib2/libglib2.mk | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
> index f00818f69c..a206639f74 100644
> --- a/package/libglib2/libglib2.mk
> +++ b/package/libglib2/libglib2.mk
> @@ -52,6 +52,11 @@ LIBGLIB2_CONF_OPTS = \
>  	-Dinstalled_tests=false \
>  	-Doss_fuzz=disabled
>
> +LIBGLIB2_MESON_EXTRA_PROPERTIES = \
> +	have_c99_vsnprintf=true \
> +	have_c99_snprintf=true \
> +	have_unix98_printf=true
> +

Not sure if the buildroot 'all configuration options should be set even if the
default fits' applies for the cross properties here too, but there are some
more:

	$ grep meson.get_cross_property build/libglib2-2.62.4/meson.build
      have_good_vsnprintf = meson.get_cross_property('have_c99_vsnprintf', false)
      have_good_snprintf = meson.get_cross_property('have_c99_snprintf', false)
      have_good_printf = meson.get_cross_property('have_unix98_printf', false)
  glib_va_val_copy = meson.get_cross_property('va_val_copy', true)
  growing_stack = meson.get_cross_property('growing_stack', false)
  elif meson.get_cross_property('have_strlcpy', false)
  have_proc_self_cmdline = meson.get_cross_property('have_proc_self_cmdline', false)

Besides of this as the patch is surely a fix/improvement...

Reviewed-by: Peter Seiderer <ps.report@gmx.net>

Regards,
Peter

>  ifneq ($(BR2_ENABLE_LOCALE),y)
>  LIBGLIB2_DEPENDENCIES += libiconv
>  endif

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES
  2020-03-10 14:07   ` Peter Seiderer
@ 2020-03-10 14:42     ` John Keeping
  2020-03-10 14:59       ` Peter Seiderer
  0 siblings, 1 reply; 9+ messages in thread
From: John Keeping @ 2020-03-10 14:42 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Tue, 10 Mar 2020 15:07:26 +0100
Peter Seiderer <ps.report@gmx.net> wrote:

> On Tue, 10 Mar 2020 12:44:58 +0000, John Keeping <john@metanate.com> wrote:
> 
> > With autoconf packages, we often specify ac_cv_func_... cached values to
> > avoid runtime checks during configure.  With meson the equivalent is
> > setting properties in cross-compilation.conf which we cannot do in
> > Buildroot at the moment.
> >
> > For example, libglib2 used to set ac_cv_func_printf_unix98 and
> > ac_cv_func_vsnprintf_c99 so that the system printf could be used, but
> > with the conversion to meson these checks fail and the gnulib fallback
> > is used.
> >
> > Add infrastructure in the same way as FOO_MESON_EXTRA_BINARIES to allow
> > per-package modification to the cross-compilation properties.
> >
> > Signed-off-by: John Keeping <john@metanate.com>
> > ---
> >  docs/manual/adding-packages-meson.txt | 8 ++++++++
> >  package/pkg-meson.mk                  | 4 ++++
> >  2 files changed, 12 insertions(+)
> >
> > diff --git a/docs/manual/adding-packages-meson.txt b/docs/manual/adding-packages-meson.txt
> > index e84bf7f60a..c28828243c 100644
> > --- a/docs/manual/adding-packages-meson.txt
> > +++ b/docs/manual/adding-packages-meson.txt
> > @@ -116,6 +116,14 @@ will therefore only use a few of them.
> >    single quotes. By default, empty. Note that Buildroot already sets the
> >    correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+.
> >
> > +* +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of
> > +  properties to add to the `[properties]` section of the meson
> > +  `cross-compilation.conf` configuration file. The format is
> > +  `property-name='value'`, with no space around the +=+ sign, and with the
> > +  value between single quotes. By default, empty. Note that Buildroot
> > +  already sets values for +needs_exe_wrapper+, +c_args+, +c_link_args+,
> > +  +cpp_args+, +cpp_link_args+, +sys_root+, and +pkg_config_libdir+.
> > +  
> 
> The description does not fit the usage in the follow-up patch
> (...value between single quoates...):
> 
> +LIBGLIB2_MESON_EXTRA_PROPERTIES = \
> +	have_c99_vsnprintf=true \
> +	have_c99_snprintf=true \
> +	have_unix98_printf=true
> +

This is a bit tricky because the meson configuration is typed, and we
need to avoid double quotes for the sed command.  How about changing the
description to:

    The format is `property-name=<value>` with no space around the +=+
    sign, and with single quotes around string values.

?


Regards,
John

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf
  2020-03-10 14:13   ` Peter Seiderer
@ 2020-03-10 14:45     ` John Keeping
  2020-03-12 20:38     ` Adam Duskett
  1 sibling, 0 replies; 9+ messages in thread
From: John Keeping @ 2020-03-10 14:45 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Tue, 10 Mar 2020 15:13:47 +0100
Peter Seiderer <ps.report@gmx.net> wrote:

> On Tue, 10 Mar 2020 12:44:59 +0000, John Keeping <john@metanate.com> wrote:
> 
> > Prior to commit 4102db0f7a ("package/libglib2: bump to version 2.60.3")
> > which converted libglib2 to meson, Buildroot used to set a range of
> > autoconf options to bypass tests that require running binaries.
> >
> > The meson version of libglib2's build system has many fewer of these
> > checks, but there are still some and these can be fed the "correct"
> > answer by adding properties to cross-compilation.conf.
> >
> > Add the necessary properties to indicate that we have C99 compliant
> > print functions to avoid pulling in the gnulib fallback.
> >
> > Signed-off-by: John Keeping <john@metanate.com>
> > ---
> >  package/libglib2/libglib2.mk | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
> > index f00818f69c..a206639f74 100644
> > --- a/package/libglib2/libglib2.mk
> > +++ b/package/libglib2/libglib2.mk
> > @@ -52,6 +52,11 @@ LIBGLIB2_CONF_OPTS = \
> >  	-Dinstalled_tests=false \
> >  	-Doss_fuzz=disabled
> >
> > +LIBGLIB2_MESON_EXTRA_PROPERTIES = \
> > +	have_c99_vsnprintf=true \
> > +	have_c99_snprintf=true \
> > +	have_unix98_printf=true
> > +  
> 
> Not sure if the buildroot 'all configuration options should be set even if the
> default fits' applies for the cross properties here too, but there are some
> more:
> 
> 	$ grep meson.get_cross_property build/libglib2-2.62.4/meson.build
>       have_good_vsnprintf = meson.get_cross_property('have_c99_vsnprintf', false)
>       have_good_snprintf = meson.get_cross_property('have_c99_snprintf', false)
>       have_good_printf = meson.get_cross_property('have_unix98_printf', false)
>   glib_va_val_copy = meson.get_cross_property('va_val_copy', true)
>   growing_stack = meson.get_cross_property('growing_stack', false)
>   elif meson.get_cross_property('have_strlcpy', false)
>   have_proc_self_cmdline = meson.get_cross_property('have_proc_self_cmdline', false)
> 
> Besides of this as the patch is surely a fix/improvement...

My understanding is that the policy is to avoid automatic configuration
where the order in which packages are built will affect the result.  For
all of these the value is fixed to "false" when cross-compiling, so I
don't think we need to specify that.


Regards,
John

> Reviewed-by: Peter Seiderer <ps.report@gmx.net>
> 
> Regards,
> Peter
> 
> >  ifneq ($(BR2_ENABLE_LOCALE),y)
> >  LIBGLIB2_DEPENDENCIES += libiconv
> >  endif  
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES
  2020-03-10 14:42     ` John Keeping
@ 2020-03-10 14:59       ` Peter Seiderer
  0 siblings, 0 replies; 9+ messages in thread
From: Peter Seiderer @ 2020-03-10 14:59 UTC (permalink / raw)
  To: buildroot

On Tue, 10 Mar 2020 14:42:44 +0000, John Keeping <john@metanate.com> wrote:

> Hi Peter,
>
> On Tue, 10 Mar 2020 15:07:26 +0100
> Peter Seiderer <ps.report@gmx.net> wrote:
>
> > On Tue, 10 Mar 2020 12:44:58 +0000, John Keeping <john@metanate.com> wrote:
> >
> > > With autoconf packages, we often specify ac_cv_func_... cached values to
> > > avoid runtime checks during configure.  With meson the equivalent is
> > > setting properties in cross-compilation.conf which we cannot do in
> > > Buildroot at the moment.
> > >
> > > For example, libglib2 used to set ac_cv_func_printf_unix98 and
> > > ac_cv_func_vsnprintf_c99 so that the system printf could be used, but
> > > with the conversion to meson these checks fail and the gnulib fallback
> > > is used.
> > >
> > > Add infrastructure in the same way as FOO_MESON_EXTRA_BINARIES to allow
> > > per-package modification to the cross-compilation properties.
> > >
> > > Signed-off-by: John Keeping <john@metanate.com>
> > > ---
> > >  docs/manual/adding-packages-meson.txt | 8 ++++++++
> > >  package/pkg-meson.mk                  | 4 ++++
> > >  2 files changed, 12 insertions(+)
> > >
> > > diff --git a/docs/manual/adding-packages-meson.txt b/docs/manual/adding-packages-meson.txt
> > > index e84bf7f60a..c28828243c 100644
> > > --- a/docs/manual/adding-packages-meson.txt
> > > +++ b/docs/manual/adding-packages-meson.txt
> > > @@ -116,6 +116,14 @@ will therefore only use a few of them.
> > >    single quotes. By default, empty. Note that Buildroot already sets the
> > >    correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+.
> > >
> > > +* +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of
> > > +  properties to add to the `[properties]` section of the meson
> > > +  `cross-compilation.conf` configuration file. The format is
> > > +  `property-name='value'`, with no space around the +=+ sign, and with the
> > > +  value between single quotes. By default, empty. Note that Buildroot
> > > +  already sets values for +needs_exe_wrapper+, +c_args+, +c_link_args+,
> > > +  +cpp_args+, +cpp_link_args+, +sys_root+, and +pkg_config_libdir+.
> > > +
> >
> > The description does not fit the usage in the follow-up patch
> > (...value between single quoates...):
> >
> > +LIBGLIB2_MESON_EXTRA_PROPERTIES = \
> > +	have_c99_vsnprintf=true \
> > +	have_c99_snprintf=true \
> > +	have_unix98_printf=true
> > +
>
> This is a bit tricky because the meson configuration is typed, and we
> need to avoid double quotes for the sed command.  How about changing the
> description to:
>
>     The format is `property-name=<value>` with no space around the +=+
>     sign, and with single quotes around string values.
>

Fine with me...

Regards,
Peter

> ?
>
>
> Regards,
> John
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf
  2020-03-10 14:13   ` Peter Seiderer
  2020-03-10 14:45     ` John Keeping
@ 2020-03-12 20:38     ` Adam Duskett
  1 sibling, 0 replies; 9+ messages in thread
From: Adam Duskett @ 2020-03-12 20:38 UTC (permalink / raw)
  To: buildroot

All;

reviewed-by: Adam Duskett <aduskett@gmail.com>

On Tue, Mar 10, 2020 at 7:13 AM Peter Seiderer <ps.report@gmx.net> wrote:
>
> Hello John,
>
> On Tue, 10 Mar 2020 12:44:59 +0000, John Keeping <john@metanate.com> wrote:
>
> > Prior to commit 4102db0f7a ("package/libglib2: bump to version 2.60.3")
> > which converted libglib2 to meson, Buildroot used to set a range of
> > autoconf options to bypass tests that require running binaries.
> >
> > The meson version of libglib2's build system has many fewer of these
> > checks, but there are still some and these can be fed the "correct"
> > answer by adding properties to cross-compilation.conf.
> >
> > Add the necessary properties to indicate that we have C99 compliant
> > print functions to avoid pulling in the gnulib fallback.
> >
> > Signed-off-by: John Keeping <john@metanate.com>
> > ---
> >  package/libglib2/libglib2.mk | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
> > index f00818f69c..a206639f74 100644
> > --- a/package/libglib2/libglib2.mk
> > +++ b/package/libglib2/libglib2.mk
> > @@ -52,6 +52,11 @@ LIBGLIB2_CONF_OPTS = \
> >       -Dinstalled_tests=false \
> >       -Doss_fuzz=disabled
> >
> > +LIBGLIB2_MESON_EXTRA_PROPERTIES = \
> > +     have_c99_vsnprintf=true \
> > +     have_c99_snprintf=true \
> > +     have_unix98_printf=true
> > +
>
> Not sure if the buildroot 'all configuration options should be set even if the
> default fits' applies for the cross properties here too, but there are some
> more:
>
>         $ grep meson.get_cross_property build/libglib2-2.62.4/meson.build
>       have_good_vsnprintf = meson.get_cross_property('have_c99_vsnprintf', false)
>       have_good_snprintf = meson.get_cross_property('have_c99_snprintf', false)
>       have_good_printf = meson.get_cross_property('have_unix98_printf', false)
>   glib_va_val_copy = meson.get_cross_property('va_val_copy', true)
>   growing_stack = meson.get_cross_property('growing_stack', false)
>   elif meson.get_cross_property('have_strlcpy', false)
>   have_proc_self_cmdline = meson.get_cross_property('have_proc_self_cmdline', false)
>
> Besides of this as the patch is surely a fix/improvement...
>
> Reviewed-by: Peter Seiderer <ps.report@gmx.net>
>
> Regards,
> Peter
>
> >  ifneq ($(BR2_ENABLE_LOCALE),y)
> >  LIBGLIB2_DEPENDENCIES += libiconv
> >  endif
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-03-12 20:38 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-10 12:44 [Buildroot] [PATCH 0/2] pkg-meson/libglib2: restore use of system printf John Keeping
2020-03-10 12:44 ` [Buildroot] [PATCH 1/2] package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES John Keeping
2020-03-10 14:07   ` Peter Seiderer
2020-03-10 14:42     ` John Keeping
2020-03-10 14:59       ` Peter Seiderer
2020-03-10 12:44 ` [Buildroot] [PATCH 2/2] package/libglib2: restore use of system printf John Keeping
2020-03-10 14:13   ` Peter Seiderer
2020-03-10 14:45     ` John Keeping
2020-03-12 20:38     ` Adam Duskett

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.