[OE-core] [PATCH] meson: Disable rpath stripping at install time

Richard Purdie richard.purdie at linuxfoundation.org
Fri Nov 23 15:32:13 UTC 2018


As discussed in https://github.com/mesonbuild/meson/issues/2567 there
needs to be a way to allow our rpath options passed to the linker to be
preserved, else we run into weird build failures.

(e.g. libmodulemd-native used by libdnf can't find libyaml)

Disable this for now until upstream come up with a better way of handling
this.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/recipes-devtools/meson/meson.inc         |  1 +
 ...pport-building-allarch-recipes-again.patch | 13 ++++------
 .../meson/meson/disable-rpath-handling.patch  | 26 +++++++++++++++++++
 3 files changed, 32 insertions(+), 8 deletions(-)
 create mode 100644 meta/recipes-devtools/meson/meson/disable-rpath-handling.patch

diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
index 32c6bfe5d3a..f8786959036 100644
--- a/meta/recipes-devtools/meson/meson.inc
+++ b/meta/recipes-devtools/meson/meson.inc
@@ -12,6 +12,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
            file://gi-flags.patch \
            file://gtkdoc-flags.patch \
            file://0001-python-module-do-not-manipulate-the-environment-when.patch \
+           file://disable-rpath-handling.patch \
            "
 SRC_URI[sha256sum] = "92d8afd921751261e36151643464efd3394162f69efbe8cd53e0a66b1cf395eb"
 SRC_URI[md5sum] = "31bda3519d8c0eb3438267268a78085e"
diff --git a/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch b/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch
index f6dd2309168..96be104a52f 100644
--- a/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch
+++ b/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch
@@ -11,11 +11,11 @@ Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
  mesonbuild/environment.py | 1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index a0580a2..712b1e8 100644
---- a/mesonbuild/environment.py
-+++ b/mesonbuild/environment.py
-@@ -73,6 +73,7 @@ from .compilers import (
+Index: meson-0.47.2/mesonbuild/environment.py
+===================================================================
+--- meson-0.47.2.orig/mesonbuild/environment.py
++++ meson-0.47.2/mesonbuild/environment.py
+@@ -75,6 +75,7 @@ from .compilers import (
  build_filename = 'meson.build'
  
  known_cpu_families = (
@@ -23,6 +23,3 @@ index a0580a2..712b1e8 100644
      'aarch64',
      'arm',
      'e2k',
--- 
-2.12.0
-
diff --git a/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch b/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
new file mode 100644
index 00000000000..4b1fb57dd44
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
@@ -0,0 +1,26 @@
+We need to allow our rpaths generated through the compiler flags to make it into 
+our binaries. Therefore disable the meson manipulations of these unless there
+is a specific directive to do something differently in the project.
+
+RP 2018/11/23
+
+Upstream-Status: Submitted [https://github.com/mesonbuild/meson/issues/2567]
+
+Index: meson-0.47.2/mesonbuild/minstall.py
+===================================================================
+--- meson-0.47.2.orig/mesonbuild/minstall.py
++++ meson-0.47.2/mesonbuild/minstall.py
+@@ -486,8 +486,11 @@ class Installer:
+                         printed_symlink_error = True
+             if os.path.isfile(outname):
+                 try:
+-                    depfixer.fix_rpath(outname, install_rpath, final_path,
+-                                       install_name_mappings, verbose=False)
++                    if install_rpath:
++                        depfixer.fix_rpath(outname, install_rpath, final_path,
++                                           install_name_mappings, verbose=False)
++                    else:
++                        print("RPATH changes at install time disabled")
+                 except SystemExit as e:
+                     if isinstance(e.code, int) and e.code == 0:
+                         pass
-- 
2.17.1



More information about the Openembedded-core mailing list