diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libdrm')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch | 47 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libdrm/default.nix | 45 |
2 files changed, 92 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch b/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch new file mode 100644 index 000000000000..547ef0d09691 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch @@ -0,0 +1,47 @@ +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 + diff --git a/nixpkgs/pkgs/development/libraries/libdrm/default.nix b/nixpkgs/pkgs/development/libraries/libdrm/default.nix new file mode 100644 index 000000000000..328c85830fbf --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix @@ -0,0 +1,45 @@ +{ stdenv, lib, fetchurl, pkgconfig, meson, ninja, libpthreadstubs, libpciaccess +, withValgrind ? valgrind-light.meta.available, valgrind-light, fetchpatch +}: + +stdenv.mkDerivation rec { + pname = "libdrm"; + version = "2.4.102"; + + src = fetchurl { + url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz"; + sha256 = "0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb"; + }; + + outputs = [ "out" "dev" "bin" ]; + + nativeBuildInputs = [ pkgconfig meson ninja ]; + buildInputs = [ libpthreadstubs libpciaccess ] + ++ lib.optional withValgrind valgrind-light; + + patches = [ ./cross-build-nm-path.patch ]; + + postPatch = '' + for a in */*-symbol-check ; do + patchShebangs $a + done + ''; + + mesonFlags = [ + "-Dnm-path=${stdenv.cc.targetPrefix}nm" + "-Dinstall-test-programs=true" + "-Domap=true" + ] ++ lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) [ + "-Dtegra=true" + "-Detnaviv=true" + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-Dintel=false"; + + enableParallelBuilding = true; + + meta = { + homepage = "https://dri.freedesktop.org/libdrm/"; + description = "Library for accessing the kernel's Direct Rendering Manager"; + license = "bsd"; + platforms = lib.platforms.unix; + }; +} |