diff options
author | Kristoffer Ericson <kristoffer_e1@hotmail.com> | 2006-06-09 00:41:01 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2006-06-09 00:41:01 +0000 |
commit | 04ee0a2aad2ab8f6e16653ef11d984d7ce24beed (patch) | |
tree | 7799c87c38e394804e98885260cb2103f303f406 /packages/linux | |
parent | bfb054c5db5e71c46f78595b2ad2bdf539c6a25f (diff) |
linux-jlime-sh3-2.6.16.20: Add patches for known gcc 4.1.1 issues
* Lower default optimization to -O1
* add volatile struct so it doesnt get wiped out by gcc
jlime-donkey.conf: Set default optimization
* Lower default optimization to -O1
Diffstat (limited to 'packages/linux')
6 files changed, 153 insertions, 4 deletions
diff --git a/packages/linux/linux-jlime-sh3-2.6.16.20/Optimize-O1.patch b/packages/linux/linux-jlime-sh3-2.6.16.20/Optimize-O1.patch new file mode 100644 index 0000000000..4b8f1ec53d --- /dev/null +++ b/packages/linux/linux-jlime-sh3-2.6.16.20/Optimize-O1.patch @@ -0,0 +1,22 @@ +--- linux-2.6.16.20/Makefile_orig 2006-06-08 23:14:14.000000000 +0000 ++++ linux-2.6.16.20/Makefile 2006-06-08 23:15:39.000000000 +0000 +@@ -185,8 +185,8 @@ + + HOSTCC = gcc + HOSTCXX = g++ +-HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer +-HOSTCXXFLAGS = -O2 ++HOSTCFLAGS = -Wall -Wstrict-prototypes -O1 -fomit-frame-pointer ++HOSTCXXFLAGS = -O1 + + # Decide whether to build built-in, modular, or both. + # Normally, just do built-in. +@@ -501,7 +501,7 @@ + ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE + CFLAGS += -Os + else +-CFLAGS += -O2 ++CFLAGS += -O1 + endif + + #Add align options if CONFIG_CC_* is not equal to 0 diff --git a/packages/linux/linux-jlime-sh3-2.6.16.20/defconfig_jlime b/packages/linux/linux-jlime-sh3-2.6.16.20/defconfig_jlime index 47ba191dc0..452b8d8210 100644 --- a/packages/linux/linux-jlime-sh3-2.6.16.20/defconfig_jlime +++ b/packages/linux/linux-jlime-sh3-2.6.16.20/defconfig_jlime @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.16-sh -# Thu Jun 8 01:14:17 2006 +# Thu Jun 8 03:45:30 2006 # CONFIG_SUPERH=y CONFIG_RWSEM_GENERIC_SPINLOCK=y @@ -23,7 +23,7 @@ CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set +CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set CONFIG_SYSCTL=y @@ -32,7 +32,7 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_INITRAMFS_SOURCE="" CONFIG_UID16=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_EXTRA_PASS is not set diff --git a/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-signal.c.patch b/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-signal.c.patch new file mode 100644 index 0000000000..0a8178c4c6 --- /dev/null +++ b/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-signal.c.patch @@ -0,0 +1,65 @@ +--- linux-2.6.16.20/arch/sh/kernel/signal.c_orig 2006-06-08 23:52:12.000000000 +0000 ++++ linux-2.6.16.20/arch/sh/kernel/signal.c 2006-06-08 23:58:27.000000000 +0000 +@@ -33,7 +33,7 @@ + + #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) + +-asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset); ++asmlinkage int do_signal(volatile struct pt_regs *regs, sigset_t *oldset); + + /* + * Atomically swap in the new signal mask, and wait for a signal. +@@ -41,7 +41,7 @@ + asmlinkage int + sys_sigsuspend(old_sigset_t mask, + unsigned long r5, unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + sigset_t saveset; + +@@ -64,7 +64,7 @@ + asmlinkage int + sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, + unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + sigset_t saveset, newset; + +@@ -92,7 +92,7 @@ + + asmlinkage int + sys_sigaction(int sig, const struct old_sigaction __user *act, +- struct old_sigaction __user *oact) ++ volatile struct old_sigaction __user *oact) + { + struct k_sigaction new_ka, old_ka; + int ret; +@@ -125,7 +125,7 @@ + asmlinkage int + sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, + unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + return do_sigaltstack(uss, uoss, regs.regs[15]); + } +@@ -232,7 +232,7 @@ + + asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + struct sigframe __user *frame = (struct sigframe __user *)regs.regs[15]; + sigset_t set; +@@ -265,7 +265,7 @@ + + asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs.regs[15]; + sigset_t set; diff --git a/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-sys_sh.c.patch b/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-sys_sh.c.patch new file mode 100644 index 0000000000..f90fe7fff4 --- /dev/null +++ b/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-sys_sh.c.patch @@ -0,0 +1,11 @@ +--- linux-2.6.16.20/arch/sh/kernel/sys_sh.c_orig 2006-06-09 00:00:18.000000000 +0000 ++++ linux-2.6.16.20/arch/sh/kernel/sys_sh.c 2006-06-09 00:02:24.000000000 +0000 +@@ -31,7 +31,7 @@ + */ + asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + int fd[2]; + int error; diff --git a/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-traps.c.patch b/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-traps.c.patch new file mode 100644 index 0000000000..dd432f58e5 --- /dev/null +++ b/packages/linux/linux-jlime-sh3-2.6.16.20/volatile-traps.c.patch @@ -0,0 +1,47 @@ +--- linux-2.6.16.20/arch/sh/kernel/traps.c_orig 2006-06-09 00:03:58.000000000 +0000 ++++ linux-2.6.16.20/arch/sh/kernel/traps.c 2006-06-09 00:07:04.000000000 +0000 +@@ -51,7 +51,7 @@ + #define DO_ERROR(trapnr, signr, str, name, tsk) \ + asmlinkage void do_##name(unsigned long r4, unsigned long r5, \ + unsigned long r6, unsigned long r7, \ +- struct pt_regs regs) \ ++ volatile struct pt_regs regs) \ + { \ + unsigned long error_code; \ + \ +@@ -89,7 +89,7 @@ + + DEFINE_SPINLOCK(die_lock); + +-void die(const char * str, struct pt_regs * regs, long err) ++void die(const char * str, volatile struct pt_regs * regs, long err) + { + static int die_counter; + +@@ -102,7 +102,7 @@ + do_exit(SIGSEGV); + } + +-static inline void die_if_kernel(const char * str, struct pt_regs * regs, long err) ++static inline void die_if_kernel(const char * str, volatile struct pt_regs * regs, long err) + { + if (!user_mode(regs)) + die(str, regs, err); +@@ -117,7 +117,7 @@ + * - other kernel errors are bad + * - return 0 if fixed-up, -EFAULT if non-fatal (to the kernel) fault + */ +-static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err) ++static int die_if_no_fixup(const char * str, volatile struct pt_regs * regs, long err) + { + if (!user_mode(regs)) + { +@@ -581,7 +581,7 @@ + + asmlinkage void do_exception_error(unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7, +- struct pt_regs regs) ++ volatile struct pt_regs regs) + { + long ex; + asm volatile("stc r2_bank, %0" : "=r" (ex)); diff --git a/packages/linux/linux-jlime-sh3_2.6.16.20.bb b/packages/linux/linux-jlime-sh3_2.6.16.20.bb index 3410130c27..53010e6b23 100644 --- a/packages/linux/linux-jlime-sh3_2.6.16.20.bb +++ b/packages/linux/linux-jlime-sh3_2.6.16.20.bb @@ -7,7 +7,11 @@ COMPATIBLE_HOST = "sh.*-linux" COMPATIBLE_MACHINE = 'jornada6xx' SRC_URI = "http://www.jlime.com/downloads/Releases/donkey/kernels/6xx/sources/jlime-2.6.16.20-patched.tar.gz \ - file://defconfig_jlime" + file://defconfig_jlime \ + file://volatile-traps.c.patch;patch=1 \ + file://volatile-signal.c.patch;patch=1 \ + file://volatile-sys_sh.c.patch;patch=1 \ + file://Optimize-O1.patch;patch=1" S = "${WORKDIR}/linux-${PV}" |