All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] glib: set glib-specific cross properties
@ 2019-03-26 12:01 Ross Burton
  2019-03-26 18:08 ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Ross Burton @ 2019-03-26 12:01 UTC (permalink / raw)
  To: openembedded-core

GLib wants to execute code to identify several properties of the system, for
example is vsprintf() broken and what direction does the stack grow. In
cross-compiled environments these fallback to the default values which are not
always correct (our vsprintf() is fine, but the test assumes it isn't) so set
these properties explicitly.

Ideally this happens magically by meson.bbclass using the same logic as
siteinfo.bbclass, but we need to fix glib now.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross | 6 ++++++
 meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb        | 1 +
 meta/recipes-core/glib-2.0/glib.inc                  | 1 +
 3 files changed, 8 insertions(+)
 create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross

diff --git a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
new file mode 100644
index 00000000000..8420f9874e1
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
@@ -0,0 +1,6 @@
+[properties]
+have_c99_vsnprintf = true
+have_c99_snprintf = true
+have_unix98_printf = true
+va_val_copy = true
+growing_stack = false
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
index 2de2affa51a..c872c749202 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
@@ -16,6 +16,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
            file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
            file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
            file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \
+           file://glib-meson.cross \
            "
 
 SRC_URI_append_class-native = " file://relocate-modules.patch"
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index 6f0ec1ad2e9..574bb38557b 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -53,6 +53,7 @@ PACKAGECONFIG[libelf] = ",,elfutils"
 PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
 
 EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=false"
+EXTRA_OEMESON_append_class-target = " --cross-file ${WORKDIR}/glib-meson.cross"
 
 do_configure_prepend() {
 	sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
-- 
2.11.0



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

* Re: [PATCH] glib: set glib-specific cross properties
  2019-03-26 12:01 [PATCH] glib: set glib-specific cross properties Ross Burton
@ 2019-03-26 18:08 ` Khem Raj
  2019-03-26 19:41   ` Andre McCurdy
  0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2019-03-26 18:08 UTC (permalink / raw)
  To: Ross Burton; +Cc: Patches and discussions about the oe-core layer

On Tue, Mar 26, 2019 at 5:02 AM Ross Burton <ross.burton@intel.com> wrote:
>
> GLib wants to execute code to identify several properties of the system, for
> example is vsprintf() broken and what direction does the stack grow. In
> cross-compiled environments these fallback to the default values which are not
> always correct (our vsprintf() is fine, but the test assumes it isn't) so set
> these properties explicitly.
>
> Ideally this happens magically by meson.bbclass using the same logic as
> siteinfo.bbclass, but we need to fix glib now.
>
> Signed-off-by: Ross Burton <ross.burton@intel.com>
> ---
>  meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross | 6 ++++++
>  meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb        | 1 +
>  meta/recipes-core/glib-2.0/glib.inc                  | 1 +
>  3 files changed, 8 insertions(+)
>  create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
>
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
> new file mode 100644
> index 00000000000..8420f9874e1
> --- /dev/null
> +++ b/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
> @@ -0,0 +1,6 @@
> +[properties]
> +have_c99_vsnprintf = true
> +have_c99_snprintf = true
> +have_unix98_printf = true
> +va_val_copy = true
> +growing_stack = false

this is mostly true for arches we support but maybe a comment
to check it when doing explicit arch ports ( e.g. arm can grown both ways)


> diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
> index 2de2affa51a..c872c749202 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
> +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
> @@ -16,6 +16,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
>             file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
>             file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
>             file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \
> +           file://glib-meson.cross \
>             "
>
>  SRC_URI_append_class-native = " file://relocate-modules.patch"
> diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
> index 6f0ec1ad2e9..574bb38557b 100644
> --- a/meta/recipes-core/glib-2.0/glib.inc
> +++ b/meta/recipes-core/glib-2.0/glib.inc
> @@ -53,6 +53,7 @@ PACKAGECONFIG[libelf] = ",,elfutils"
>  PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
>
>  EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=false"
> +EXTRA_OEMESON_append_class-target = " --cross-file ${WORKDIR}/glib-meson.cross"
>
>  do_configure_prepend() {
>         sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
> --
> 2.11.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH] glib: set glib-specific cross properties
  2019-03-26 18:08 ` Khem Raj
@ 2019-03-26 19:41   ` Andre McCurdy
  2019-03-28 12:48     ` Burton, Ross
  0 siblings, 1 reply; 5+ messages in thread
From: Andre McCurdy @ 2019-03-26 19:41 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On Tue, Mar 26, 2019 at 11:08 AM Khem Raj <raj.khem@gmail.com> wrote:
> On Tue, Mar 26, 2019 at 5:02 AM Ross Burton <ross.burton@intel.com> wrote:
> >
> > GLib wants to execute code to identify several properties of the system, for
> > example is vsprintf() broken and what direction does the stack grow. In
> > cross-compiled environments these fallback to the default values which are not
> > always correct (our vsprintf() is fine, but the test assumes it isn't) so set
> > these properties explicitly.
> >
> > Ideally this happens magically by meson.bbclass using the same logic as
> > siteinfo.bbclass, but we need to fix glib now.
> >
> > Signed-off-by: Ross Burton <ross.burton@intel.com>
> > ---
> >  meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross | 6 ++++++
> >  meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb        | 1 +
> >  meta/recipes-core/glib-2.0/glib.inc                  | 1 +
> >  3 files changed, 8 insertions(+)
> >  create mode 100644 meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
> >
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
> > new file mode 100644
> > index 00000000000..8420f9874e1
> > --- /dev/null
> > +++ b/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
> > @@ -0,0 +1,6 @@
> > +[properties]
> > +have_c99_vsnprintf = true
> > +have_c99_snprintf = true
> > +have_unix98_printf = true
> > +va_val_copy = true
> > +growing_stack = false
>
> this is mostly true for arches we support but maybe a comment
> to check it when doing explicit arch ports ( e.g. arm can grown both ways)

Not on EABI or any other ARM ABI which could possibly be targeted by
OE... unless you have evidence to prove otherwise?

> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
> > index 2de2affa51a..c872c749202 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
> > +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.58.3.bb
> > @@ -16,6 +16,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
> >             file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
> >             file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
> >             file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \
> > +           file://glib-meson.cross \
> >             "
> >
> >  SRC_URI_append_class-native = " file://relocate-modules.patch"
> > diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
> > index 6f0ec1ad2e9..574bb38557b 100644
> > --- a/meta/recipes-core/glib-2.0/glib.inc
> > +++ b/meta/recipes-core/glib-2.0/glib.inc
> > @@ -53,6 +53,7 @@ PACKAGECONFIG[libelf] = ",,elfutils"
> >  PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
> >
> >  EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=false"
> > +EXTRA_OEMESON_append_class-target = " --cross-file ${WORKDIR}/glib-meson.cross"
> >
> >  do_configure_prepend() {
> >         sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
> > --
> > 2.11.0
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH] glib: set glib-specific cross properties
  2019-03-26 19:41   ` Andre McCurdy
@ 2019-03-28 12:48     ` Burton, Ross
  2019-03-28 13:45       ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Burton, Ross @ 2019-03-28 12:48 UTC (permalink / raw)
  To: Andre McCurdy; +Cc: Patches and discussions about the oe-core layer

On Tue, 26 Mar 2019 at 19:41, Andre McCurdy <armccurdy@gmail.com> wrote:
> > > +growing_stack = false
> >
> > this is mostly true for arches we support but maybe a comment
> > to check it when doing explicit arch ports ( e.g. arm can grown both ways)
>
> Not on EABI or any other ARM ABI which could possibly be targeted by
> OE... unless you have evidence to prove otherwise?

Evidence, no.  Anecdotally:

$ grep glib_cv_stack_grows *
arc-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
arm-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
arm-darwin:glib_cv_stack_grows=${glib_cv_stack_grows=no}
arm-darwin8:glib_cv_stack_grows=${glib_cv_stack_grows=no}
ix86-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
microblaze-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mips64el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mips64el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mips64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mips64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsel-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsel-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa32r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa32r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa32r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa32r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa64r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa64r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa64r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mipsisa64r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mips-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
mips-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
nios2-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
powerpc-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
riscv32-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
riscv64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
sh-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
sparc-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
x86_64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}

Yes, this technique needs to be extended and generalised so it can be
overridden on a per-platform basis, but for now it appears that
everything we care about has the same values.

Ross


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

* Re: [PATCH] glib: set glib-specific cross properties
  2019-03-28 12:48     ` Burton, Ross
@ 2019-03-28 13:45       ` Khem Raj
  0 siblings, 0 replies; 5+ messages in thread
From: Khem Raj @ 2019-03-28 13:45 UTC (permalink / raw)
  To: Burton, Ross; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 2743 bytes --]

On Thu, Mar 28, 2019 at 5:48 AM Burton, Ross <ross.burton@intel.com> wrote:

> On Tue, 26 Mar 2019 at 19:41, Andre McCurdy <armccurdy@gmail.com> wrote:
> > > > +growing_stack = false
> > >
> > > this is mostly true for arches we support but maybe a comment
> > > to check it when doing explicit arch ports ( e.g. arm can grown both
> ways)
> >
> > Not on EABI or any other ARM ABI which could possibly be targeted by
> > OE... unless you have evidence to prove otherwise?
>
> Evidence, no.  Anecdotally:
>
> $ grep glib_cv_stack_grows *
> arc-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> arm-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> arm-darwin:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> arm-darwin8:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> ix86-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> microblaze-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mips64el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mips64el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mips64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mips64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsel-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsel-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa32r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa32r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa32r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa32r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa64r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa64r6el-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa64r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mipsisa64r6-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mips-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> mips-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> nios2-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> powerpc-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> riscv32-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> riscv64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> sh-common:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> sparc-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
> x86_64-linux:glib_cv_stack_grows=${glib_cv_stack_grows=no}
>
> Yes, this technique needs to be extended and generalised so it can be
> overridden on a per-platform basis, but for now it appears that
> everything we care about has the same values.


All I asked was to add a comment about it
So if someone is porting OE to new architecture then this will be a great
hint to check for


>
> Ross
>

[-- Attachment #2: Type: text/html, Size: 3402 bytes --]

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

end of thread, other threads:[~2019-03-28 13:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-26 12:01 [PATCH] glib: set glib-specific cross properties Ross Burton
2019-03-26 18:08 ` Khem Raj
2019-03-26 19:41   ` Andre McCurdy
2019-03-28 12:48     ` Burton, Ross
2019-03-28 13:45       ` Khem Raj

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.