diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2017-07-17 13:52:01 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2017-07-17 13:52:01 +0200 |
commit | 3eceecb90db691f22e46eb892bd7800f953d605e (patch) | |
tree | d7dae792d8f7a6f9eea7d8164e9849ab232d1d7d /pkgs/os-specific | |
parent | 8e98811f76fa29e8a3782e9b0b0acc6d16926cac (diff) | |
parent | 8669fb1f96cfd68ed68d9d76ff1f0237d4d96748 (diff) | |
download | nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.tar nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.tar.gz nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.tar.bz2 nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.tar.lz nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.tar.xz nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.tar.zst nixlib-3eceecb90db691f22e46eb892bd7800f953d605e.zip |
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/kernel/common-config.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.11.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.12.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.4.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-4.9.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-testing.nix | 8 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/perf-offline-probe.patch | 224 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/perf.nix | 2 | ||||
-rw-r--r-- | pkgs/os-specific/linux/spl/default.nix | 8 | ||||
-rw-r--r-- | pkgs/os-specific/linux/zfs/default.nix | 10 |
11 files changed, 27 insertions, 249 deletions
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 73dce131cf8b..9700373c852f 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -302,7 +302,9 @@ with stdenv.lib; CIFS_UPCALL y CIFS_ACL y CIFS_DFS_UPCALL y - CIFS_SMB2 y + ${optionalString (versionOlder version "4.13") '' + CIFS_SMB2 y + ''} ${optionalString (versionAtLeast version "3.12") '' CEPH_FSCACHE y ''} diff --git a/pkgs/os-specific/linux/kernel/linux-4.11.nix b/pkgs/os-specific/linux/kernel/linux-4.11.nix index eded1422440d..9bb4e85d3f91 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.11.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.11.nix @@ -1,12 +1,12 @@ { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.11.10"; + version = "4.11.11"; extraMeta.branch = "4.11"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1dma031rcj8nvcb3znbcffafwm5cpax3cvqkq9zspa8lf5ah52si"; + sha256 = "1dvs1r3vq15akyv0yxvim6j09pqac5dagqbchvdlsw5yi4fnylc8"; }; kernelPatches = args.kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-4.12.nix b/pkgs/os-specific/linux/kernel/linux-4.12.nix index 5ce28029c112..4cb408d33cb6 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.12.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.12.nix @@ -1,12 +1,12 @@ { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.12.1"; + version = "4.12.2"; extraMeta.branch = "4.12"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0qm8lp6z3f2frqb585i5r7cb6hbzd0m13p0ywz4s8bqxwmrym1cw"; + sha256 = "1ql5y6bvb1bx9b2k5iksdzjgzxnq852rvq69kdnkwa98p8p8ayha"; }; kernelPatches = args.kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix index 5ac5a52c0a5e..76dc8f030cd2 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix @@ -1,12 +1,12 @@ { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.4.76"; + version = "4.4.77"; extraMeta.branch = "4.4"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "180mngyar7ky2aiaszmgfqpfvwi0kxcym8j3ifflzggwqjkgrrki"; + sha256 = "1s5l5b3hpm691w94a3ddliy4gcxi2s9xm3hsazdwgzqrqdv70ysy"; }; kernelPatches = args.kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index c42dbad57568..260b776999d0 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,12 +1,12 @@ { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.9.37"; + version = "4.9.38"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "14300vddyz7x6vg1mx64a0i8i61fk5bl8azcvv7rf3b97c4cy7pn"; + sha256 = "0x4h2b6xapqyxgivj9ay5yclmyl434bjfmq9ikajy7fmgpc8kmvn"; }; kernelPatches = args.kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix index 4b44ce9b00db..878f69dbaa57 100644 --- a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix +++ b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix @@ -1,9 +1,9 @@ { stdenv, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args: let - version = "4.12.1"; + version = "4.12.2"; revision = "a"; - sha256 = "0fjw5fmxpvdhfqkr4lcpmqw8xxj92q19ya8q48yhxvv149ahcvhq"; + sha256 = "0w3k5a30li2qz2msach9sg9qsvmjsc4mf9k3ad5dxd0667a0hygm"; in import ./generic.nix (args // { diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 60dfe85a1606..c7a4ca30a7c1 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -1,13 +1,13 @@ { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.12-rc7"; - modDirVersion = "4.12.0-rc7"; - extraMeta.branch = "4.12"; + version = "4.13-rc1"; + modDirVersion = "4.13.0-rc1"; + extraMeta.branch = "4.13"; src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "1svfswv0b4gagv1yiavwb22p726h0w81lgxjqq0h9m3gf4xlqp3x"; + sha256 = "1pdbykp2336vk7ynrz0l95rwqags6kklbr08wjc7zpmdaad6yd6m"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/perf-offline-probe.patch b/pkgs/os-specific/linux/kernel/perf-offline-probe.patch deleted file mode 100644 index 7334a339c858..000000000000 --- a/pkgs/os-specific/linux/kernel/perf-offline-probe.patch +++ /dev/null @@ -1,224 +0,0 @@ -From 8a937a25a7e3c19d5fb3f9d92f605cf5fda219d8 Mon Sep 17 00:00:00 2001 -From: Masami Hiramatsu <mhiramat@kernel.org> -Date: Wed, 4 Jan 2017 12:30:19 +0900 -Subject: perf probe: Fix to probe on gcc generated symbols for offline kernel - -From: Masami Hiramatsu <mhiramat@kernel.org> - -commit 8a937a25a7e3c19d5fb3f9d92f605cf5fda219d8 upstream. - -Fix perf-probe to show probe definition on gcc generated symbols for -offline kernel (including cross-arch kernel image). - -gcc sometimes optimizes functions and generate new symbols with suffixes -such as ".constprop.N" or ".isra.N" etc. Since those symbol names are -not recorded in DWARF, we have to find correct generated symbols from -offline ELF binary to probe on it (kallsyms doesn't correct it). For -online kernel or uprobes we don't need it because those are rebased on -_text, or a section relative address. - -E.g. Without this: - - $ perf probe -k build-arm/vmlinux -F __slab_alloc* - __slab_alloc.constprop.9 - $ perf probe -k build-arm/vmlinux -D __slab_alloc - p:probe/__slab_alloc __slab_alloc+0 - -If you put above definition on target machine, it should fail -because there is no __slab_alloc in kallsyms. - -With this fix, perf probe shows correct probe definition on -__slab_alloc.constprop.9: - - $ perf probe -k build-arm/vmlinux -D __slab_alloc - p:probe/__slab_alloc __slab_alloc.constprop.9+0 - -Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> -Cc: Jiri Olsa <jolsa@redhat.com> -Cc: Namhyung Kim <namhyung@kernel.org> -Cc: Peter Zijlstra <peterz@infradead.org> -Link: http://lkml.kernel.org/r/148350060434.19001.11864836288580083501.stgit@devbox -Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> -Cc: Krister Johansen <kjlx@templeofstupid.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - tools/perf/util/probe-event.c | 48 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 47 insertions(+), 1 deletion(-) - ---- a/tools/perf/util/probe-event.c -+++ b/tools/perf/util/probe-event.c -@@ -618,6 +618,51 @@ error: - return ret ? : -ENOENT; - } - -+/* -+ * Rename DWARF symbols to ELF symbols -- gcc sometimes optimizes functions -+ * and generate new symbols with suffixes such as .constprop.N or .isra.N -+ * etc. Since those symbols are not recorded in DWARF, we have to find -+ * correct generated symbols from offline ELF binary. -+ * For online kernel or uprobes we don't need this because those are -+ * rebased on _text, or already a section relative address. -+ */ -+static int -+post_process_offline_probe_trace_events(struct probe_trace_event *tevs, -+ int ntevs, const char *pathname) -+{ -+ struct symbol *sym; -+ struct map *map; -+ unsigned long stext = 0; -+ u64 addr; -+ int i; -+ -+ /* Prepare a map for offline binary */ -+ map = dso__new_map(pathname); -+ if (!map || get_text_start_address(pathname, &stext) < 0) { -+ pr_warning("Failed to get ELF symbols for %s\n", pathname); -+ return -EINVAL; -+ } -+ -+ for (i = 0; i < ntevs; i++) { -+ addr = tevs[i].point.address + tevs[i].point.offset - stext; -+ sym = map__find_symbol(map, addr); -+ if (!sym) -+ continue; -+ if (!strcmp(sym->name, tevs[i].point.symbol)) -+ continue; -+ /* If we have no realname, use symbol for it */ -+ if (!tevs[i].point.realname) -+ tevs[i].point.realname = tevs[i].point.symbol; -+ else -+ free(tevs[i].point.symbol); -+ tevs[i].point.symbol = strdup(sym->name); -+ tevs[i].point.offset = addr - sym->start; -+ } -+ map__put(map); -+ -+ return 0; -+} -+ - static int add_exec_to_probe_trace_events(struct probe_trace_event *tevs, - int ntevs, const char *exec) - { -@@ -694,7 +739,8 @@ post_process_kernel_probe_trace_events(s - - /* Skip post process if the target is an offline kernel */ - if (symbol_conf.ignore_vmlinux_buildid) -- return 0; -+ return post_process_offline_probe_trace_events(tevs, ntevs, -+ symbol_conf.vmlinux_name); - - reloc_sym = kernel_get_ref_reloc_sym(); - if (!reloc_sym) { - ---- - -From 3e96dac7c956089d3f23aca98c4dfca57b6aaf8a Mon Sep 17 00:00:00 2001 -From: Masami Hiramatsu <mhiramat@kernel.org> -Date: Wed, 11 Jan 2017 15:00:47 +0900 -Subject: perf probe: Add error checks to offline probe post-processing - -From: Masami Hiramatsu <mhiramat@kernel.org> - -commit 3e96dac7c956089d3f23aca98c4dfca57b6aaf8a upstream. - -Add error check codes on post processing and improve it for offline -probe events as: - - - post processing fails if no matched symbol found in map(-ENOENT) - or strdup() failed(-ENOMEM). - - - Even if the symbol name is the same, it updates symbol address - and offset. - -Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> -Cc: Jiri Olsa <jolsa@redhat.com> -Cc: Namhyung Kim <namhyung@kernel.org> -Cc: Peter Zijlstra <peterz@infradead.org> -Link: http://lkml.kernel.org/r/148411443738.9978.4617979132625405545.stgit@devbox -Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> -Cc: Krister Johansen <kjlx@templeofstupid.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - tools/perf/util/probe-event.c | 50 +++++++++++++++++++++++++++--------------- - 1 file changed, 33 insertions(+), 17 deletions(-) - ---- a/tools/perf/util/probe-event.c -+++ b/tools/perf/util/probe-event.c -@@ -618,6 +618,33 @@ error: - return ret ? : -ENOENT; - } - -+/* Adjust symbol name and address */ -+static int post_process_probe_trace_point(struct probe_trace_point *tp, -+ struct map *map, unsigned long offs) -+{ -+ struct symbol *sym; -+ u64 addr = tp->address + tp->offset - offs; -+ -+ sym = map__find_symbol(map, addr); -+ if (!sym) -+ return -ENOENT; -+ -+ if (strcmp(sym->name, tp->symbol)) { -+ /* If we have no realname, use symbol for it */ -+ if (!tp->realname) -+ tp->realname = tp->symbol; -+ else -+ free(tp->symbol); -+ tp->symbol = strdup(sym->name); -+ if (!tp->symbol) -+ return -ENOMEM; -+ } -+ tp->offset = addr - sym->start; -+ tp->address -= offs; -+ -+ return 0; -+} -+ - /* - * Rename DWARF symbols to ELF symbols -- gcc sometimes optimizes functions - * and generate new symbols with suffixes such as .constprop.N or .isra.N -@@ -630,11 +657,9 @@ static int - post_process_offline_probe_trace_events(struct probe_trace_event *tevs, - int ntevs, const char *pathname) - { -- struct symbol *sym; - struct map *map; - unsigned long stext = 0; -- u64 addr; -- int i; -+ int i, ret = 0; - - /* Prepare a map for offline binary */ - map = dso__new_map(pathname); -@@ -644,23 +669,14 @@ post_process_offline_probe_trace_events( - } - - for (i = 0; i < ntevs; i++) { -- addr = tevs[i].point.address + tevs[i].point.offset - stext; -- sym = map__find_symbol(map, addr); -- if (!sym) -- continue; -- if (!strcmp(sym->name, tevs[i].point.symbol)) -- continue; -- /* If we have no realname, use symbol for it */ -- if (!tevs[i].point.realname) -- tevs[i].point.realname = tevs[i].point.symbol; -- else -- free(tevs[i].point.symbol); -- tevs[i].point.symbol = strdup(sym->name); -- tevs[i].point.offset = addr - sym->start; -+ ret = post_process_probe_trace_point(&tevs[i].point, -+ map, stext); -+ if (ret < 0) -+ break; - } - map__put(map); - -- return 0; -+ return ret; - } - - static int add_exec_to_probe_trace_events(struct probe_trace_event *tevs, diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix index cb13167eebc5..3fbad924568f 100644 --- a/pkgs/os-specific/linux/kernel/perf.nix +++ b/pkgs/os-specific/linux/kernel/perf.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { inherit (kernel) src; - patches = kernel.patches ++ [ ./perf-binutils-path.patch ./perf-offline-probe.patch ]; + patches = kernel.patches ++ [ ./perf-binutils-path.patch ]; preConfigure = '' cd tools/perf diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix index 26cc8ea7c711..941bd8a86710 100644 --- a/pkgs/os-specific/linux/spl/default.nix +++ b/pkgs/os-specific/linux/spl/default.nix @@ -62,11 +62,11 @@ in assert buildKernel -> kernel != null; { splStable = common { - version = "0.6.5.10"; - sha256 = "1zdxggpdz9j0lpcqfnkvf4iym7mp2k246sg1s4frqaw1pwwcw9vi"; + version = "0.6.5.11"; + sha256 = "192val8035pj2rryi3fwb134avzirhv5ifaj5021vh8bbjx75pd5"; }; splUnstable = common { - version = "0.7.0-rc4"; - sha256 = "13r5qwrdnaabqfy9fvizvdj4n4cvfv6zy4jh0vijzjvbjd4an9g1"; + version = "0.7.0-rc5"; + sha256 = "17y25g02c9swi3n90lhjvazcnsr69nh50dz3b8g1c08zlz9n2akp"; }; } diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index 50f4e6f2b410..414f2ba444a2 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -123,12 +123,12 @@ in # to be adapted zfsStable = common { # comment/uncomment if breaking kernel versions are known - incompatibleKernelVersion = null; + incompatibleKernelVersion = "4.12"; - version = "0.6.5.10"; + version = "0.6.5.11"; # this package should point to the latest release. - sha256 = "04gn5fj22z17zq2nazxwl3j9dr33l79clha6ipxvdz241bhjqrk3"; + sha256 = "1wqz43cjr21m3f52ahcikl2798pbzj5sfy16zqxwiqpv7iy09kr3"; extraPatches = [ (fetchpatch { url = "https://github.com/Mic92/zfs/compare/zfs-0.6.5.8...nixos-zfs-0.6.5.8.patch"; @@ -141,10 +141,10 @@ in # comment/uncomment if breaking kernel versions are known incompatibleKernelVersion = "4.12"; - version = "0.7.0-rc4"; + version = "0.7.0-rc5"; # this package should point to a version / git revision compatible with the latest kernel release - sha256 = "16jiq2h7m2ljg5xv7m5lqmsszzclkhvj1iq1wa9w740la4vl22kf"; + sha256 = "1k0fl6lbi5winri58v26k7gngd560hbj0247rnwcbc6j01ixsr5n"; extraPatches = [ (fetchpatch { url = "https://github.com/Mic92/zfs/compare/zfs-0.7.0-rc3...nixos-zfs-0.7.0-rc3.patch"; |