diff options
-rw-r--r-- | pkgs/os-specific/linux/lttng-modules/default.nix | 31 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lttng-modules/lttng-fix-build-error-on-linux-3.2.patch | 33 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
3 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix new file mode 100644 index 00000000000..ee80b7632ba --- /dev/null +++ b/pkgs/os-specific/linux/lttng-modules/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, kernelDev }: + +stdenv.mkDerivation rec { + pname = "lttng-modules-2.2.1"; + name = "${pname}-${kernelDev.version}"; + + src = fetchurl { + url = "https://lttng.org/files/lttng-modules/${pname}.tar.bz2"; + sha256 = "00ww1443ssv614s1ix6zby8llaf6zzlxcf5k4w7jsyji47ng33m2"; + }; + + patches = [ ./lttng-fix-build-error-on-linux-3.2.patch ]; + + preConfigure = '' + export KERNELDIR="${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build" + export INSTALL_MOD_PATH="$out" + ''; + + installPhase = '' + make modules_install + ''; + + meta = with stdenv.lib; { + description = "Linux kernel modules for LTTng tracing"; + homepage = http://lttng.org/; + license = with licenses; [ lgpl21 gpl2 mit ]; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; + +} diff --git a/pkgs/os-specific/linux/lttng-modules/lttng-fix-build-error-on-linux-3.2.patch b/pkgs/os-specific/linux/lttng-modules/lttng-fix-build-error-on-linux-3.2.patch new file mode 100644 index 00000000000..dfe6d21be84 --- /dev/null +++ b/pkgs/os-specific/linux/lttng-modules/lttng-fix-build-error-on-linux-3.2.patch @@ -0,0 +1,33 @@ +When building against linux 3.2, we get this build error: + + building /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/lttng-probe-ext3.o + CC [M] /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/lttng-probe-ext3.o + In file included from /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/lttng-events.h:759:0, + from /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/define_trace.h:148, + from /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/ext3.h:868, + from /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/lttng-probe-ext3.c:48: + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h: In function '__event_probe__ext3__page_op': + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h:240:1: error: dereferencing pointer to incomplete type + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h:240:1: error: dereferencing pointer to incomplete type + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h:240:1: error: dereferencing pointer to incomplete type + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h: In function '__event_probe__ext3_invalidatepage': + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h:298:1: error: dereferencing pointer to incomplete type + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h:298:1: error: dereferencing pointer to incomplete type + /tmp/nix-build-lttng-modules-2.2.0.drv-0/lttng-modules-2.2.0/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/ext3.h:298:1: error: dereferencing pointer to incomplete type + +because a check for existing ext3/*h files in the kernel build tree is skipped +for linux < 3.4. Fix it by extending the ext3_dep_check thing to also be run +when building against linux >= 3.2 (not only linux >= 3.4). + +diff -uNr lttng-modules-2.2.0.orig/probes/Makefile lttng-modules-2.2.0/probes/Makefile +--- lttng-modules-2.2.0.orig/probes/Makefile 2013-06-19 03:22:44.000000000 +0200 ++++ lttng-modules-2.2.0/probes/Makefile 2013-07-06 13:22:15.902957717 +0200 +@@ -59,7 +59,7 @@ + ext3_dep_check = $(wildcard $(ext3_dep)) + ext3 = $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ +- if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 -a \ ++ if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 -a \ + -z "$(ext3_dep_check)" ] ; then \ + echo "warn" ; \ + exit ; \ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d2f6a3b5211..7c2e3647816 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6521,6 +6521,8 @@ let iwlwifi4965ucode = iwlwifi4965ucodeV2; + lttngModules = callPackage ../os-specific/linux/lttng-modules { }; + atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { }; broadcom_sta = callPackage ../os-specific/linux/broadcom-sta/default.nix { }; |