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 | 52 |
2 files changed, 99 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..ca90750b8c24 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix @@ -0,0 +1,52 @@ +{ stdenv, lib, fetchurl, pkg-config, meson, ninja, docutils +, libpthreadstubs, libpciaccess +, withValgrind ? valgrind-light.meta.available, valgrind-light +}: + +stdenv.mkDerivation rec { + pname = "libdrm"; + version = "2.4.106"; + + src = fetchurl { + url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz"; + sha256 = "1m3vwpabjg3az84vmyxi96jyd7rrqm6qkhk1gq41w5wv89aarn4j"; + }; + + outputs = [ "out" "dev" "bin" ]; + + nativeBuildInputs = [ pkg-config meson ninja docutils ]; + 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.isAarch32 || stdenv.isAarch64) [ + "-Dtegra=true" + "-Detnaviv=true" + ]; + + meta = with lib; { + homepage = "https://gitlab.freedesktop.org/mesa/drm"; + downloadPage = "https://dri.freedesktop.org/libdrm/"; + description = "Direct Rendering Manager library and headers"; + longDescription = '' + A userspace library for accessing the DRM (Direct Rendering Manager) on + Linux, BSD and other operating systems that support the ioctl interface. + The library provides wrapper functions for the ioctls to avoid exposing + the kernel interface directly, and for chipsets with drm memory manager, + support for tracking relocations and buffers. + New functionality in the kernel DRM drivers typically requires a new + libdrm, but a new libdrm will always work with an older kernel. + + libdrm is a low-level library, typically used by graphics drivers such as + the Mesa drivers, the X drivers, libva and similar projects. + ''; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ primeos ]; + }; +} |