SOURCES: kernel-2.6.17-thread_info-buildfix.patch (NEW) - buildfix for kern...
pawelz
pawelz at pld-linux.org
Sun Dec 7 03:58:06 CET 2008
Author: pawelz Date: Sun Dec 7 02:58:06 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- buildfix for kernel 2.6.17 with new gcc (it is needed on ti,
but not on ac)
---- Files affected:
SOURCES:
kernel-2.6.17-thread_info-buildfix.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/kernel-2.6.17-thread_info-buildfix.patch
diff -u /dev/null SOURCES/kernel-2.6.17-thread_info-buildfix.patch:1.1
--- /dev/null Sun Dec 7 03:58:06 2008
+++ SOURCES/kernel-2.6.17-thread_info-buildfix.patch Sun Dec 7 03:58:00 2008
@@ -0,0 +1,45 @@
+
+From: Chuck Ebbert <76306.1226 at compuserve.com>
+
+Using C code for current_thread_info() lets the compiler optimize it.
+With gcc 4.0.2, kernel is smaller:
+
+ text data bss dec hex filename
+ 3645212 555556 312024 4512792 44dc18 2.6.17-rc6-nb-post/vmlinux
+ 3647276 555556 312024 4514856 44e428 2.6.17-rc6-nb/vmlinux
+ -------
+ -2064
+
+Signed-off-by: Chuck Ebbert <76306.1226 at compuserve.com>
+Signed-off-by: Andrew Morton <akpm at osdl.org>
+---
+
+ include/asm-i386/thread_info.h | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff -puN include/asm-i386/thread_info.h~i386-use-c-code-for-current_thread_info include/asm-i386/thread_info.h
+--- a/include/asm-i386/thread_info.h~i386-use-c-code-for-current_thread_info
++++ a/include/asm-i386/thread_info.h
+@@ -83,17 +83,15 @@ struct thread_info {
+ #define init_stack (init_thread_union.stack)
+
+
++/* how to get the current stack pointer from C */
++register unsigned long current_stack_pointer asm("esp") __attribute_used__;
++
+ /* how to get the thread information struct from C */
+ static inline struct thread_info *current_thread_info(void)
+ {
+- struct thread_info *ti;
+- __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
+- return ti;
++ return (struct thread_info *)(current_stack_pointer & ~(THREAD_SIZE - 1));
+ }
+
+-/* how to get the current stack pointer from C */
+-register unsigned long current_stack_pointer asm("esp") __attribute_used__;
+-
+ /* thread information allocation */
+ #ifdef CONFIG_DEBUG_STACK_USAGE
+ #define alloc_thread_info(tsk) \
+_
================================================================
More information about the pld-cvs-commit
mailing list