diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index a1229912b38..327b16bd202 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -198,6 +198,11 @@ in patch = ./dell-rfkill.patch; }; + sheevaplug_modules_2_6_35 = + { name = "sheevaplug_modules-2.6.35"; + patch = ./sheevaplug_modules-2.6.35.patch; + }; + guruplug_defconfig = { # Default configuration for the GuruPlug. From diff --git a/pkgs/os-specific/linux/kernel/sheevaplug_modules-2.6.35.patch b/pkgs/os-specific/linux/kernel/sheevaplug_modules-2.6.35.patch new file mode 100644 index 00000000000..5b62fb90670 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/sheevaplug_modules-2.6.35.patch @@ -0,0 +1,63 @@ +http://www.mail-archive.com/armedslack@lists.armedslack.org/msg00212.html + +From d0679c730395d0bde9a46939e7ba255b4ba7dd7c Mon Sep 17 00:00:00 2001 +From: Andi Kleen +Date: Tue, 2 Feb 2010 14:40:02 -0800 +Subject: [PATCH] kbuild: move -fno-dwarf2-cfi-asm to powerpc only + +Better dwarf2 unwind information is a good thing, it allows better +debugging with kgdb and crash and helps systemtap. + +Commit 003086497f07f7f1e67c0c295e261740f822b377 ("Build with +-fno-dwarf2-cfi-asm") disabled some CFI information globally to work +around a module loader bug on powerpc. + +But this disables the better unwind tables for all architectures, not just +powerpc. Move the workaround to powerpc and also add a suitable comment +that's it really a workaround. + +This improves dwarf2 unwind tables on x86 at least. + +Signed-off-by: Andi Kleen +Cc: Kyle McMartin +Signed-off-by: Andrew Morton +Acked-by: Benjamin Herrenschmidt +Signed-off-by: Michal Marek +--- + Makefile | 3 --- + arch/powerpc/Makefile | 5 +++++ + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 03053c6..2e74a68 100644 +--- a/Makefile ++++ b/Makefile +@@ -579,6 +579,9 @@ KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) + # disable invalid "can't wrap" optimizations for signed / pointers + KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow) + ++# revert to pre-gcc-4.4 behaviour of .eh_frame ++KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) ++ + # conserve stack if available + KBUILD_CFLAGS += $(call cc-option,-fconserve-stack) + +diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile +index 1a54a3b..42dcd3f 100644 +--- a/arch/powerpc/Makefile ++++ b/arch/powerpc/Makefile +@@ -112,11 +112,6 @@ KBUILD_CFLAGS += $(call cc-option,-mspe=no) + # kernel considerably. + KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time) + +-# FIXME: the module load should be taught about the additional relocs +-# generated by this. +-# revert to pre-gcc-4.4 behaviour of .eh_frame +-KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) +- + # Never use string load/store instructions as they are + # often slow when they are implemented at all + KBUILD_CFLAGS += -mno-string +-- +1.7.3.1 + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a2dbda33baf..76b864e80d6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4661,7 +4661,8 @@ let [ #kernelPatches.fbcondecor_2_6_35 kernelPatches.sec_perm_2_6_24 kernelPatches.aufs2_2_6_35 - ]; + ] ++ lib.optional (platform.kernelArch == "arm") + kernelPatches.sheevaplug_modules_2_6_35; }; linux_nanonote_jz_2_6_34 = makeOverridable