diff options
-rw-r--r-- | recipes/kexecboot/linux-kexecboot/use-noclone-attribute-for-naked.patch | 53 | ||||
-rw-r--r-- | recipes/kexecboot/linux-kexecboot_git.bb | 5 | ||||
-rw-r--r-- | recipes/linux/linux/use-noclone-attribute-for-naked.patch | 53 | ||||
-rw-r--r-- | recipes/linux/linux_git.bb | 3 |
4 files changed, 3 insertions, 111 deletions
diff --git a/recipes/kexecboot/linux-kexecboot/use-noclone-attribute-for-naked.patch b/recipes/kexecboot/linux-kexecboot/use-noclone-attribute-for-naked.patch deleted file mode 100644 index 72bf4a1e0a..0000000000 --- a/recipes/kexecboot/linux-kexecboot/use-noclone-attribute-for-naked.patch +++ /dev/null @@ -1,53 +0,0 @@ -https://patchwork.kernel.org/patch/104260/ - -This patch add noinline and noclone attributes to naked functions. -GCC 4.5 has new optimization -fipa-ira which is enabled at -Os and -O2 -this option will clone the functions and that can change the standard -calling convention but the naked functions expect that and use -arguments as in standard calling convention. Therefore the naked -functions should not be marked non inline and noclone. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Index: linux-2.6.34/include/linux/compiler-gcc4.h -=================================================================== ---- linux-2.6.34.orig/include/linux/compiler-gcc4.h 2010-05-29 17:18:55.338127623 -0700 -+++ linux-2.6.34/include/linux/compiler-gcc4.h 2010-05-29 17:32:33.910657021 -0700 -@@ -48,6 +48,10 @@ - * unreleased. Really, we need to have autoconf for the kernel. - */ - #define unreachable() __builtin_unreachable() -+ -+/* Mark a function definition as prohibited from being cloned. */ -+#define __noclone __attribute__((__noclone__)) -+ - #endif - - #endif -Index: linux-2.6.34/include/linux/compiler-gcc.h -=================================================================== ---- linux-2.6.34.orig/include/linux/compiler-gcc.h 2010-05-29 17:28:28.238113095 -0700 -+++ linux-2.6.34/include/linux/compiler-gcc.h 2010-05-29 17:31:58.938153321 -0700 -@@ -58,8 +58,12 @@ - * naked functions because then mcount is called without stack and frame pointer - * being set up and there is no chance to restore the lr register to the value - * before mcount was called. -+ * -+ * The asm() bodies of naked functions often depend on standard calling conventions, -+ * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce -+ * this, so we must do so ourselves. See GCC PR44290. - */ --#define __naked __attribute__((naked)) notrace -+#define __naked __attribute__((naked)) noinline __noclone notrace - - #define __noreturn __attribute__((noreturn)) - -@@ -85,3 +89,8 @@ - #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) - #define gcc_header(x) _gcc_header(x) - #include gcc_header(__GNUC__) -+ -+#if !defined(__noclone) -+#define __noclone /* not needed */ -+#endif -+ diff --git a/recipes/kexecboot/linux-kexecboot_git.bb b/recipes/kexecboot/linux-kexecboot_git.bb index e2259bf543..a5e48336ac 100644 --- a/recipes/kexecboot/linux-kexecboot_git.bb +++ b/recipes/kexecboot/linux-kexecboot_git.bb @@ -1,12 +1,11 @@ require linux-kexecboot.inc KERNEL_RELEASE = "2.6.35-rc3" -SRCREV = "5904b3b81d25166e5e39b9727645bb47937618e3" +SRCREV = "980019d74e4b2428362b36a0506519d6d9460800" PV = "${KERNEL_RELEASE}+gitr${SRCPV}" SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;branch=master \ - file://use-noclone-attribute-for-naked.patch;status=pending \ - file://defconfig" + file://defconfig" S = "${WORKDIR}/git" diff --git a/recipes/linux/linux/use-noclone-attribute-for-naked.patch b/recipes/linux/linux/use-noclone-attribute-for-naked.patch deleted file mode 100644 index 72bf4a1e0a..0000000000 --- a/recipes/linux/linux/use-noclone-attribute-for-naked.patch +++ /dev/null @@ -1,53 +0,0 @@ -https://patchwork.kernel.org/patch/104260/ - -This patch add noinline and noclone attributes to naked functions. -GCC 4.5 has new optimization -fipa-ira which is enabled at -Os and -O2 -this option will clone the functions and that can change the standard -calling convention but the naked functions expect that and use -arguments as in standard calling convention. Therefore the naked -functions should not be marked non inline and noclone. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Index: linux-2.6.34/include/linux/compiler-gcc4.h -=================================================================== ---- linux-2.6.34.orig/include/linux/compiler-gcc4.h 2010-05-29 17:18:55.338127623 -0700 -+++ linux-2.6.34/include/linux/compiler-gcc4.h 2010-05-29 17:32:33.910657021 -0700 -@@ -48,6 +48,10 @@ - * unreleased. Really, we need to have autoconf for the kernel. - */ - #define unreachable() __builtin_unreachable() -+ -+/* Mark a function definition as prohibited from being cloned. */ -+#define __noclone __attribute__((__noclone__)) -+ - #endif - - #endif -Index: linux-2.6.34/include/linux/compiler-gcc.h -=================================================================== ---- linux-2.6.34.orig/include/linux/compiler-gcc.h 2010-05-29 17:28:28.238113095 -0700 -+++ linux-2.6.34/include/linux/compiler-gcc.h 2010-05-29 17:31:58.938153321 -0700 -@@ -58,8 +58,12 @@ - * naked functions because then mcount is called without stack and frame pointer - * being set up and there is no chance to restore the lr register to the value - * before mcount was called. -+ * -+ * The asm() bodies of naked functions often depend on standard calling conventions, -+ * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce -+ * this, so we must do so ourselves. See GCC PR44290. - */ --#define __naked __attribute__((naked)) notrace -+#define __naked __attribute__((naked)) noinline __noclone notrace - - #define __noreturn __attribute__((noreturn)) - -@@ -85,3 +89,8 @@ - #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) - #define gcc_header(x) _gcc_header(x) - #include gcc_header(__GNUC__) -+ -+#if !defined(__noclone) -+#define __noclone /* not needed */ -+#endif -+ diff --git a/recipes/linux/linux_git.bb b/recipes/linux/linux_git.bb index c242ef1b2b..2598bc6ccb 100644 --- a/recipes/linux/linux_git.bb +++ b/recipes/linux/linux_git.bb @@ -1,11 +1,10 @@ require linux.inc KERNEL_RELEASE = "2.6.35-rc3" -SRCREV = "5904b3b81d25166e5e39b9727645bb47937618e3" +SRCREV = "980019d74e4b2428362b36a0506519d6d9460800" PV = "${KERNEL_RELEASE}+gitr${SRCPV}" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;branch=master \ - file://use-noclone-attribute-for-naked.patch;status=pending \ file://defconfig" S = "${WORKDIR}/git" |