mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 11:40:45 +00:00
Merge pull request #183507 from Artturin/stdenvmeson1
This commit is contained in:
commit
09cb5e8416
|
@ -1,47 +0,0 @@
|
|||
From 9e05fece7918edce9c6aa5a1f1ea375108e5b2be Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
|
||||
Date: Fri, 2 Aug 2019 10:26:37 +0100
|
||||
Subject: [PATCH] meson: support for custom nm path
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When cross-compiling target toolchains i.e. binutils are often
|
||||
prefixed by its target architecture. This patch gives the user
|
||||
to option to specify the nm used during the build process.
|
||||
|
||||
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
|
||||
---
|
||||
meson.build | 2 +-
|
||||
meson_options.txt | 6 ++++++
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
--- meson.build.orig 2020-06-18 11:13:57.716321962 +0200
|
||||
+++ meson.build 2020-06-18 11:19:50.456861311 +0200
|
||||
@@ -45,7 +45,7 @@
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
symbols_check = find_program('symbols-check.py')
|
||||
-prog_nm = find_program('nm')
|
||||
+prog_nm = find_program(get_option('nm-path'))
|
||||
|
||||
# Check for atomics
|
||||
intel_atomics = false
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 8af33f1c..b4f46a52 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -141,3 +141,9 @@ option(
|
||||
value : false,
|
||||
description : 'Enable support for using udev instead of mknod.',
|
||||
)
|
||||
+option(
|
||||
+ 'nm-path',
|
||||
+ type : 'string',
|
||||
+ description : 'path to nm',
|
||||
+ value : 'nm'
|
||||
+)
|
||||
--
|
||||
2.22.0
|
||||
|
|
@ -18,10 +18,7 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [ libpthreadstubs libpciaccess ]
|
||||
++ lib.optional withValgrind valgrind-light;
|
||||
|
||||
patches = [ ./cross-build-nm-path.patch ];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dnm-path=${stdenv.cc.targetPrefix}nm"
|
||||
"-Dinstall-test-programs=true"
|
||||
"-Domap=true"
|
||||
] ++ lib.optionals stdenv.hostPlatform.isAarch [
|
||||
|
|
|
@ -81,19 +81,11 @@ self = stdenv.mkDerivation {
|
|||
postPatch = ''
|
||||
patchShebangs .
|
||||
|
||||
substituteInPlace meson.build --replace \
|
||||
"find_program('pkg-config')" \
|
||||
"find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')"
|
||||
|
||||
# The drirc.d directory cannot be installed to $drivers as that would cause a cyclic dependency:
|
||||
substituteInPlace src/util/xmlconfig.c --replace \
|
||||
'DATADIR "/drirc.d"' '"${placeholder "out"}/share/drirc.d"'
|
||||
substituteInPlace src/util/meson.build --replace \
|
||||
"get_option('datadir')" "'${placeholder "out"}/share'"
|
||||
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
|
||||
substituteInPlace meson.build --replace \
|
||||
"find_program('nm')" \
|
||||
"find_program('${stdenv.cc.targetPrefix}nm')"
|
||||
'';
|
||||
|
||||
outputs = [ "out" "dev" "drivers" ]
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/egl/meson.build b/egl/meson.build
|
||||
index b3cbdf3..cdc15ca 100644
|
||||
--- a/egl/meson.build
|
||||
+++ b/egl/meson.build
|
||||
@@ -11,7 +11,7 @@ wayland_egl = library(
|
||||
|
||||
executable('wayland-egl-abi-check', 'wayland-egl-abi-check.c')
|
||||
|
||||
-nm_path = find_program('nm').full_path()
|
||||
+nm_path = find_program('@nm@').full_path()
|
||||
|
||||
test(
|
||||
'wayland-egl symbols check',
|
|
@ -36,13 +36,6 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1b0ixya9bfw5c9jx8mzlr7yqnlyvd3jv5z8wln9scdv8q5zlvikd";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./add-placeholder-for-nm.patch;
|
||||
nm = "${stdenv.cc.targetPrefix}nm";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString withDocumentation ''
|
||||
patchShebangs doc/doxygen/gen-doxygen.py
|
||||
'' + lib.optionalString stdenv.hostPlatform.isStatic ''
|
||||
|
|
|
@ -29,6 +29,14 @@ python3.pkgs.buildPythonApplication rec {
|
|||
# https://github.com/mesonbuild/meson/pull/6827
|
||||
./more-env-vars.patch
|
||||
|
||||
# Use more binutils variables, so we don't have to define them in stdenv.
|
||||
# pr has been merged
|
||||
# https://github.com/mesonbuild/meson/pull/10640
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mesonbuild/meson/commit/8a8ab9a8e0c2cefb6faa0734e52803c74790576c.patch";
|
||||
sha256 = "sha256-BdBf1NB4SZLFyFRDzD0p//XUgUeAHpo6XXUtsHdCgKE=";
|
||||
})
|
||||
|
||||
# Unlike libtool, vanilla Meson does not pass any information
|
||||
# about the path library will be installed to to g-ir-scanner,
|
||||
# breaking the GIR when path other than ${!outputLib}/lib is used.
|
||||
|
|
|
@ -384,7 +384,7 @@ else let
|
|||
|
||||
crossFile = builtins.toFile "cross-file.conf" ''
|
||||
[properties]
|
||||
needs_exe_wrapper = true
|
||||
needs_exe_wrapper = ${lib.boolToString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)}
|
||||
|
||||
[host_machine]
|
||||
system = '${stdenv.targetPlatform.parsed.kernel.name}'
|
||||
|
|
Loading…
Reference in a new issue