[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/09: build-system/meson: Remove RUNPATH workarounds.
From: |
Marius Bakke |
Subject: |
07/09: build-system/meson: Remove RUNPATH workarounds. |
Date: |
Sat, 28 Jul 2018 08:56:43 -0400 (EDT) |
mbakke pushed a commit to branch staging
in repository guix.
commit 94eb59fb4ac3dfa501e9cac42454c030506ab7f1
Author: Marius Bakke <address@hidden>
Date: Thu Jul 26 23:44:26 2018 +0200
build-system/meson: Remove RUNPATH workarounds.
* guix/build-system/meson.scm (default-patchelf): Remove.
(lower)[build-inputs]: Remove PATCHELF.
(meson-build): Don't delete 'fix-runpath' phase on armhf.
* guix/build/meson-build-system.scm (configure): Add "--c_link_args" and
"-cpp_link_args" instead of setting LDFLAGS.
(meson-build): Don't apply 'fix-runpath' phase.
---
guix/build-system/meson.scm | 20 +-------------------
guix/build/meson-build-system.scm | 23 ++++++++++++-----------
2 files changed, 13 insertions(+), 30 deletions(-)
diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm
index e894e14..fddf899 100644
--- a/guix/build-system/meson.scm
+++ b/guix/build-system/meson.scm
@@ -58,12 +58,6 @@
(let ((module (resolve-interface '(gnu packages build-tools))))
(module-ref module 'meson-for-build)))
-(define (default-patchelf)
- "Return the default patchelf package."
- ;; Lazily resolve the binding to avoid a circular dependency.
- (let ((module (resolve-interface '(gnu packages elf))))
- (module-ref module 'patchelf)))
-
(define* (lower name
#:key source inputs native-inputs outputs system target
(meson (default-meson))
@@ -81,15 +75,6 @@
(system system)
(build-inputs `(("meson" ,meson)
("ninja" ,ninja)
- ;; XXX PatchELF fails to build on armhf, so we skip
- ;; the 'fix-runpath' phase there for now. It is used
- ;; to avoid superfluous entries in RUNPATH as
described
- ;; in <https://bugs.gnu.org/28444#46>, so armhf may
now
- ;; have different runtime dependencies from other
arches.
- ,@(if (not (string-prefix? "arm" (or
(%current-target-system)
-
(%current-system))))
- `(("patchelf" ,(default-patchelf)))
- '())
,@native-inputs))
(host-inputs `(,@(if source
`(("source" ,source))
@@ -147,10 +132,7 @@ has a 'meson.build' file."
#:inputs %build-inputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
- #:phases
- (if (string-prefix? "arm" ,system)
- (modify-phases build-phases (delete 'fix-runpath))
- build-phases)
+ #:phases build-phases
#:configure-flags ,configure-flags
#:build-type ,build-type
#:tests? ,tests?
diff --git a/guix/build/meson-build-system.scm
b/guix/build/meson-build-system.scm
index e4aae82..80e5472 100644
--- a/guix/build/meson-build-system.scm
+++ b/guix/build/meson-build-system.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Peter Mikkelsen <address@hidden>
+;;; Copyright © 2018 Marius Bakke <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,18 +45,13 @@
(prefix (assoc-ref outputs "out"))
(args `(,(string-append "--prefix=" prefix)
,(string-append "--buildtype=" build-type)
+ ,(string-append "-Dc_link_args=-Wl,-rpath="
+ (assoc-ref outputs "out") "/lib")
+ ,(string-append "-Dcpp_link_args=-Wl,-rpath="
+ (assoc-ref outputs "out") "/lib")
,@configure-flags
,source-dir)))
- ;; Meson lacks good facilities for dealing with RUNPATH, so we
- ;; add the output "lib" directory here to avoid doing that in
- ;; many users. Related issues:
- ;; * <https://github.com/mesonbuild/meson/issues/314>
- ;; * <https://github.com/mesonbuild/meson/issues/3038>
- ;; * <https://github.com/NixOS/nixpkgs/issues/31222>
- (unless (getenv "LDFLAGS")
- (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib")))
-
(mkdir build-dir)
(chdir build-dir)
(apply invoke "meson" args)))
@@ -148,8 +144,13 @@ for example libraries only needed for the tests."
(replace 'configure configure)
(replace 'build build)
(replace 'check check)
- (replace 'install install)
- (add-after 'strip 'fix-runpath fix-runpath)))
+ ;; XXX: We used to have 'fix-runpath' here, but it appears no longer
+ ;; necessary with newer Meson. However on 'core-updates' there is a
+ ;; useful 'strip-runpath' procedure to ensure no bogus directories in
+ ;; RUNPATH (remember that we tell Meson to not touch RUNPATH in
+ ;; (@ (gnu packages build-tools) meson-for-build)), so it should be
+ ;; re-added there sans the augment-rpath calls (which are not needed).
+ (replace 'install install)))
(define* (meson-build #:key inputs phases
#:allow-other-keys #:rest args)
- branch staging updated (9d21601 -> 3b6f8a4), Marius Bakke, 2018/07/28
- 01/09: gnu: mariadb: Install pkg-config file to a standard location., Marius Bakke, 2018/07/28
- 02/09: gnu: mariadb: Disable plugin that fails on armhf., Marius Bakke, 2018/07/28
- 06/09: gnu: mariadb: Delete test files and static libraries., Marius Bakke, 2018/07/28
- 05/09: gnu: mariadb: Remove some bundled libraries., Marius Bakke, 2018/07/28
- 09/09: gnu: libinput: Update to 1.11.3., Marius Bakke, 2018/07/28
- 03/09: gnu: mariadb: Run the full test suite., Marius Bakke, 2018/07/28
- 04/09: gnu: mariadb: Update to 10.1.34., Marius Bakke, 2018/07/28
- 07/09: build-system/meson: Remove RUNPATH workarounds.,
Marius Bakke <=
- 08/09: gnu: meson: Update to 0.47.1., Marius Bakke, 2018/07/28