All of lore.kernel.org
 help / color / mirror / Atom feed
From: richard.purdie@linuxfoundation.org
To: Khem Raj <raj.khem@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 16/19] meson: update to 0.52.0
Date: Sun, 20 Oct 2019 13:32:20 +0100	[thread overview]
Message-ID: <311c58c4bbfdd575f4b0c3123d8f833482f580d1.camel@linuxfoundation.org> (raw)
In-Reply-To: <CAMKF1sr8xy+bW_UL_=B-nt7MG58bJj=WmB9VVZf5hxBqpXwPiQ@mail.gmail.com>

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

On Sun, 2019-10-20 at 06:51 +0530, Khem Raj wrote:
> 
> 
> On Sat, Oct 19, 2019 at 2:56 AM <richard.purdie@linuxfoundation.org>
> wrote:
> > On Fri, 2019-10-18 at 20:49 +0200, Alexander Kanavin wrote:
> > > I certainly don't mean to ignore those reports, it's just that
> > due to
> > > my ongoing health problems, and having to dedicate most of my
> > energy
> > > to the day job (https://mbition.io/en/home/), I am not currently
> > able
> > > to work on the upstream issues in a timely manner the way I used
> > to
> > > when maintaining core was actually my day job (at Intel).
> > > 
> > > The question of how much effort people who update things in core
> > > should allocate to fixing 'other' layers has been a conflict
> > point
> > > for a long time. I'd prefer to see more aggressive
> > > blacklisting/removal of recipes that no one has an interest in
> > fixing
> > > and updating.
> > 
> > If anything this would be my fault for merging things despite there
> > being concerns raised. I have to admit I'd seen other patches and
> > therefore erroneously thought the issues we mostly resolved.
> > 
> > Should OE-Core block on all issues being resolved before merging?
> > I'm
> > torn on that, I realise there are pros and cons.
> 
> If an issue is there and gets reported after it’s merged I think it’s
> fine to do whatever is needed after the fact however if testing
> master-next from oe-core and reported against it I think this will
> help you in longer run if these master-next issues are looked into
> and blocked on. We should not run Oe-core so fast that other layers
> fall way back behind where they start supporting just releases and
> you have lost free integration testing that other layers would offer
> 
> If there are too many reports then it would be questionable to block
> on it but I don’t think that’s the case 

Feeling suitably responsible for this breakage, I looked into it. The
following two patches, one for meson in OE-Core and the other for dconf
in meta-oe seem to address the problem. I'm not entirely sure they're
correct but they don't actually change the library binary so its
probably fine whilst upstream sorts it out.

If they look ok to you I'll submit them "properly".

Cheers,

Richard




[-- Attachment #2: 0001-dconf-Fix-build-with-meson-0.52.patch --]
[-- Type: text/x-patch, Size: 2294 bytes --]

From 7ebd50f90b3b7f4e1dc56f07ae7e8e02275d41c8 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Sun, 20 Oct 2019 13:27:07 +0100
Subject: [PATCH] dconf: Fix build with meson 0.52

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 .../dconf/dconf/fix-meson-0.52.patch          | 25 +++++++++++++++++++
 .../recipes-gnome/dconf/dconf_0.32.0.bb       |  1 +
 2 files changed, 26 insertions(+)
 create mode 100644 meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch

diff --git a/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch b/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch
new file mode 100644
index 000000000..bca021347
--- /dev/null
+++ b/meta-gnome/recipes-gnome/dconf/dconf/fix-meson-0.52.patch
@@ -0,0 +1,25 @@
+With meson 0.52 the build fails due to duplicate symbols. There is a fix
+to meson but the dconf build also needs tweaking.
+
+https://gitlab.gnome.org/GNOME/dconf/issues/59
+https://github.com/mesonbuild/meson/pull/5936
+
+Despite the comments there about this being incorrect, libdconf is unchanged
+between 0.51 and 0.52 and this patch.
+
+Upstream-Status: Pending [under discussion, see above links]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: dconf-0.32.0/client/meson.build
+===================================================================
+--- dconf-0.32.0.orig/client/meson.build
++++ dconf-0.32.0/client/meson.build
+@@ -28,7 +28,7 @@ libdconf_client = static_library(
+ 
+ libdconf_client_dep = declare_dependency(
+   dependencies: gio_dep,
+-  link_whole: libdconf_client,
++  link_with: libdconf_client,
+ )
+ 
+ libdconf = shared_library(
diff --git a/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb b/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb
index 8d1bbdfd1..fec04079e 100644
--- a/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb
+++ b/meta-gnome/recipes-gnome/dconf/dconf_0.32.0.bb
@@ -3,6 +3,7 @@ LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
 SECTION = "x11/gnome"
 
+SRC_URI += "file://fix-meson-0.52.patch"
 SRC_URI[archive.md5sum] = "e1ac0b6285abefeed69ca9e380e44f5a"
 SRC_URI[archive.sha256sum] = "68bce78b19bc94cb2c3bb8587e37f9e5e338568c3a674f86edde9c9f1624ffab"
 
-- 
2.17.1


[-- Attachment #3: 0001-meson-Backport-fix-to-assist-meta-oe-breakage.patch --]
[-- Type: text/x-patch, Size: 5577 bytes --]

From f52194e9806002e66235f63184a2eea0b15c19a1 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Sun, 20 Oct 2019 13:12:32 +0100
Subject: [PATCH] meson: Backport fix to assist meta-oe breakage

Add a backported commit from upstream which helps fix build failures
in meta-oe.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/recipes-devtools/meson/meson.inc         |  1 +
 ...e971bd320f3df15c1ee74f54858e6792b183.patch | 95 +++++++++++++++++++
 2 files changed, 96 insertions(+)
 create mode 100644 meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch

diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
index ae0091c051c..84bcc8409de 100644
--- a/meta/recipes-devtools/meson/meson.inc
+++ b/meta/recipes-devtools/meson/meson.inc
@@ -16,6 +16,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
            file://cross-prop-default.patch \
            file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \
            file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
+           file://dbc9e971bd320f3df15c1ee74f54858e6792b183.patch \
            "
 SRC_URI[sha256sum] = "d60f75f0dedcc4fd249dbc7519d6f3ce6df490033d276ef1cf27453ef4938d32"
 SRC_URI[md5sum] = "7ea7772414dda8ae11072244bf7ba991"
diff --git a/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch b/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch
new file mode 100644
index 00000000000..7ea8a133e6a
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch
@@ -0,0 +1,95 @@
+From dbc9e971bd320f3df15c1ee74f54858e6792b183 Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <xavier.claessens@collabora.com>
+Date: Fri, 11 Oct 2019 11:01:22 -0400
+Subject: [PATCH] Remove duplicated object files in static libraries
+
+When a static library link_whole to a bunch of other static libraries,
+we have to extract all their objects recursively. But that could
+introduce duplicated objects. ar is dumb enough to allow this without
+error, but once the resulting static library is linked into an
+executable or shared library, the linker will complain about duplicated
+symbols.
+
+Upstream-Status: Backport
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+---
+ mesonbuild/backend/backends.py                 |  3 ++-
+ test cases/unit/69 static link/lib/func17.c    |  4 ++++
+ test cases/unit/69 static link/lib/func18.c    |  6 ++++++
+ test cases/unit/69 static link/lib/func19.c    |  7 +++++++
+ test cases/unit/69 static link/lib/meson.build | 12 ++++++++++++
+ 5 files changed, 31 insertions(+), 1 deletion(-)
+ create mode 100644 test cases/unit/69 static link/lib/func17.c
+ create mode 100644 test cases/unit/69 static link/lib/func18.c
+ create mode 100644 test cases/unit/69 static link/lib/func19.c
+
+diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
+index 947be1cbef..e54809657f 100644
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -281,7 +281,8 @@ def relpath(self, todir, fromdir):
+                                os.path.join('dummyprefixdir', fromdir))
+ 
+     def flatten_object_list(self, target, proj_dir_to_build_root=''):
+-        return self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
++        obj_list = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
++        return list(dict.fromkeys(obj_list))
+ 
+     def _flatten_object_list(self, target, objects, proj_dir_to_build_root):
+         obj_list = []
+diff --git a/test cases/unit/69 static link/lib/func17.c b/test cases/unit/69 static link/lib/func17.c
+new file mode 100644
+index 0000000000..d1d8ec498c
+--- /dev/null
++++ b/test cases/unit/69 static link/lib/func17.c	
+@@ -0,0 +1,4 @@
++int func17()
++{
++  return 1;
++}
+diff --git a/test cases/unit/69 static link/lib/func18.c b/test cases/unit/69 static link/lib/func18.c
+new file mode 100644
+index 0000000000..c149085ba4
+--- /dev/null
++++ b/test cases/unit/69 static link/lib/func18.c	
+@@ -0,0 +1,6 @@
++int func17();
++
++int func18()
++{
++  return func17() + 1;
++}
+diff --git a/test cases/unit/69 static link/lib/func19.c b/test cases/unit/69 static link/lib/func19.c
+new file mode 100644
+index 0000000000..69120e4bf8
+--- /dev/null
++++ b/test cases/unit/69 static link/lib/func19.c	
+@@ -0,0 +1,7 @@
++int func17();
++int func18();
++
++int func19()
++{
++  return func17() + func18();
++}
+diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build
+index 5f04aab6a1..8f95fc4546 100644
+--- a/test cases/unit/69 static link/lib/meson.build	
++++ b/test cases/unit/69 static link/lib/meson.build	
+@@ -66,3 +66,15 @@ libfunc15 = static_library('func15', 'func15.c',
+ libfunc16 = static_library('func16', 'func16.c',
+   link_with : libfunc15,
+   install : true)
++
++# Verify func17.c.o gets included only once into libfunc19, otherwise
++# func19-shared would failed with duplicated symbol.
++libfunc17 = static_library('func17', 'func17.c',
++  install : false)
++libfunc18 = static_library('func18', 'func18.c',
++  link_with : libfunc17,
++  install : false)
++libfunc19 = static_library('func19', 'func19.c',
++  link_whole : [libfunc17, libfunc18],
++  install : false)
++shared_library('func19-shared', link_whole : [libfunc19])
-- 
2.17.1


  parent reply	other threads:[~2019-10-20 12:32 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 11:47 [PATCH 01/19] runqemu: add options that enable virgl with the SDL frontend Alexander Kanavin
2019-10-11 11:47 ` [PATCH 02/19] oe-selftest: extend virgl gtk test to also check the SDL option Alexander Kanavin
2019-10-11 11:47 ` [PATCH 03/19] runqemu: unset another environment variable for 'egl-headless' Alexander Kanavin
2019-10-11 11:47 ` [PATCH 04/19] gobject-introspection: update to 1.62.0 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 05/19] glib-2.0: upgrade to 2.62.1 Alexander Kanavin
2019-10-12 20:59   ` Khem Raj
2019-10-12 22:32     ` Khem Raj
2019-10-13  0:57   ` Khem Raj
2019-10-13  1:18   ` Khem Raj
2019-10-11 11:47 ` [PATCH 06/19] glib-networking: update " Alexander Kanavin
2019-10-11 11:47 ` [PATCH 07/19] sysprof: update to 3.34.1 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 08/19] epiphany: upgrade 3.32.4 -> 3.34.1 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 09/19] webkitgtk: update 2.24.4 -> 2.26.1 Alexander Kanavin
2019-10-11 14:39   ` Khem Raj
2019-10-11 11:47 ` [PATCH 10/19] gtk-doc: upgrade 1.31 -> 1.32 Alexander Kanavin
2019-10-11 19:30   ` akuster808
2019-10-11 19:39     ` Alexander Kanavin
2019-10-12 10:12       ` Adrian Bunk
2019-10-11 11:47 ` [PATCH 11/19] libdazzle: upgrade 3.32.3 -> 3.34.1 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 12/19] libsecret: upgrade 0.19.0 -> 0.19.1 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 13/19] mpg123: upgrade 1.25.11 -> 1.25.12 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 14/19] p11-kit: upgrade 0.23.16.1 -> 0.23.18.1 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 15/19] vala: upgrade 0.44.7 -> 0.46.3 Alexander Kanavin
2019-10-11 11:47 ` [PATCH 16/19] meson: update to 0.52.0 Alexander Kanavin
2019-10-13  0:20   ` Khem Raj
2019-10-17 13:15     ` Khem Raj
2019-10-17 23:31       ` Andreas Müller
2019-10-18 18:49       ` Alexander Kanavin
2019-10-18 21:26         ` richard.purdie
2019-10-20  1:21           ` Khem Raj
2019-10-20  9:50             ` richard.purdie
2019-10-20 12:32             ` richard.purdie [this message]
2019-10-20 15:08               ` Andreas Müller
2019-10-20 15:53                 ` Andreas Müller
2019-10-22  7:30                   ` Andreas Müller
2019-10-18 22:01         ` Andreas Müller
2019-10-18 22:19           ` Richard Purdie
2019-10-11 11:47 ` [PATCH 17/19] libmodulemd-v1: introduce the recipe Alexander Kanavin
2019-10-11 11:47 ` [PATCH 18/19] libmodulemd: remove " Alexander Kanavin
2019-10-11 11:47 ` [PATCH 19/19] createrepo-c: upgrade to 0.15.1 Alexander Kanavin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=311c58c4bbfdd575f4b0c3123d8f833482f580d1.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.