1
0
Fork 1
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:
Sandro 2022-08-01 23:06:51 +02:00 committed by GitHub
commit 09cb5e8416
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 9 additions and 79 deletions

View file

@ -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

View file

@ -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 [

View file

@ -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" ]

View file

@ -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',

View file

@ -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 ''

View file

@ -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.

View file

@ -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}'