diff options
Diffstat (limited to 'target/linux/generic-2.4/patches/206-gcc_3.4_fixes.patch')
-rw-r--r-- | target/linux/generic-2.4/patches/206-gcc_3.4_fixes.patch | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/target/linux/generic-2.4/patches/206-gcc_3.4_fixes.patch b/target/linux/generic-2.4/patches/206-gcc_3.4_fixes.patch new file mode 100644 index 0000000..9cf0553 --- /dev/null +++ b/target/linux/generic-2.4/patches/206-gcc_3.4_fixes.patch @@ -0,0 +1,225 @@ +diff -Nur linux-2.4.30/arch/mips/kernel/signal.c linux-2.4.30.openwrt/arch/mips/kernel/signal.c +--- linux-2.4.30/arch/mips/kernel/signal.c 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/arch/mips/kernel/signal.c 2005-07-02 13:00:49.000000000 +0200 +@@ -6,8 +6,10 @@ + * Copyright (C) 1991, 1992 Linus Torvalds + * Copyright (C) 1994 - 1999 Ralf Baechle + * Copyright (C) 1999 Silicon Graphics, Inc. ++ * Copyright (C) 2004 Maciej W. Rozycki + */ + #include <linux/config.h> ++#include <linux/compiler.h> + #include <linux/sched.h> + #include <linux/mm.h> + #include <linux/smp.h> +@@ -76,7 +78,9 @@ + * Atomically swap in the new signal mask, and wait for a signal. + */ + save_static_function(sys_sigsuspend); +-static_unused int _sys_sigsuspend(struct pt_regs regs) ++static int _sys_sigsuspend(struct pt_regs regs) ++ __asm__("_sys_sigsuspend") __attribute_used__; ++static int _sys_sigsuspend(struct pt_regs regs) + { + sigset_t *uset, saveset, newset; + +@@ -102,7 +106,9 @@ + } + + save_static_function(sys_rt_sigsuspend); +-static_unused int _sys_rt_sigsuspend(struct pt_regs regs) ++static int _sys_rt_sigsuspend(struct pt_regs regs) ++ __asm__("_sys_rt_sigsuspend") __attribute_used__; ++static int _sys_rt_sigsuspend(struct pt_regs regs) + { + sigset_t *unewset, saveset, newset; + size_t sigsetsize; +diff -Nur linux-2.4.30/arch/mips/kernel/syscall.c linux-2.4.30.openwrt/arch/mips/kernel/syscall.c +--- linux-2.4.30/arch/mips/kernel/syscall.c 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/arch/mips/kernel/syscall.c 2005-07-02 13:00:49.000000000 +0200 +@@ -5,6 +5,7 @@ + * + * Copyright (C) 1995 - 2000 by Ralf Baechle + * Copyright (C) 2000 Silicon Graphics, Inc. ++ * Copyright (C) 2004 Maciej W. Rozycki + * + * TODO: Implement the compatibility syscalls. + * Don't waste that much memory for empty entries in the syscall +@@ -158,7 +159,9 @@ + } + + save_static_function(sys_fork); +-static_unused int _sys_fork(struct pt_regs regs) ++static int _sys_fork(struct pt_regs regs) ++ __asm__("_sys_fork") __attribute_used__; ++static int _sys_fork(struct pt_regs regs) + { + int res; + +@@ -168,7 +171,9 @@ + + + save_static_function(sys_clone); +-static_unused int _sys_clone(struct pt_regs regs) ++static int _sys_clone(struct pt_regs regs) ++ __asm__("_sys_clone") __attribute_used__; ++static int _sys_clone(struct pt_regs regs) + { + unsigned long clone_flags; + unsigned long newsp; +diff -Nur linux-2.4.30/arch/mips/ld.script.in linux-2.4.30.openwrt/arch/mips/ld.script.in +--- linux-2.4.30/arch/mips/ld.script.in 2005-07-02 13:00:22.000000000 +0200 ++++ linux-2.4.30.openwrt/arch/mips/ld.script.in 2005-07-02 13:00:42.000000000 +0200 +@@ -9,6 +9,7 @@ + { + _ftext = . ; + *(.text) ++ *(.fixup) + *(.rodata) + *(.rodata.*) + *(.rodata1) +diff -Nur linux-2.4.30/arch/mips64/kernel/signal.c linux-2.4.30.openwrt/arch/mips64/kernel/signal.c +--- linux-2.4.30/arch/mips64/kernel/signal.c 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/arch/mips64/kernel/signal.c 2005-07-02 13:00:49.000000000 +0200 +@@ -6,8 +6,10 @@ + * Copyright (C) 1991, 1992 Linus Torvalds + * Copyright (C) 1994 - 2000 Ralf Baechle + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. ++ * Copyright (C) 2004 Maciej W. Rozycki + */ + #include <linux/config.h> ++#include <linux/compiler.h> + #include <linux/sched.h> + #include <linux/mm.h> + #include <linux/smp.h> +@@ -75,7 +77,9 @@ + * Atomically swap in the new signal mask, and wait for a signal. + */ + save_static_function(sys_rt_sigsuspend); +-static_unused int _sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs) ++static int _sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs) ++ __asm__("_sys_rt_sigsuspend") __attribute_used__; ++static int _sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs) + { + sigset_t *unewset, saveset, newset; + size_t sigsetsize; +diff -Nur linux-2.4.30/arch/mips64/kernel/signal32.c linux-2.4.30.openwrt/arch/mips64/kernel/signal32.c +--- linux-2.4.30/arch/mips64/kernel/signal32.c 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/arch/mips64/kernel/signal32.c 2005-07-02 13:00:49.000000000 +0200 +@@ -6,7 +6,9 @@ + * Copyright (C) 1991, 1992 Linus Torvalds + * Copyright (C) 1994 - 2000 Ralf Baechle + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. ++ * Copyright (C) 2004 Maciej W. Rozycki + */ ++#include <linux/compiler.h> + #include <linux/sched.h> + #include <linux/mm.h> + #include <linux/smp.h> +@@ -192,7 +194,9 @@ + * Atomically swap in the new signal mask, and wait for a signal. + */ + save_static_function(sys32_sigsuspend); +-static_unused int _sys32_sigsuspend(abi64_no_regargs, struct pt_regs regs) ++static int _sys32_sigsuspend(abi64_no_regargs, struct pt_regs regs) ++ __asm__("_sys32_sigsuspend") __attribute_used__; ++static int _sys32_sigsuspend(abi64_no_regargs, struct pt_regs regs) + { + sigset32_t *uset; + sigset_t newset, saveset; +@@ -219,7 +223,9 @@ + } + + save_static_function(sys32_rt_sigsuspend); +-static_unused int _sys32_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs) ++static int _sys32_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs) ++ __asm__("_sys32_rt_sigsuspend") __attribute_used__; ++static int _sys32_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs) + { + sigset32_t *uset; + sigset_t newset, saveset; +diff -Nur linux-2.4.30/arch/mips64/kernel/syscall.c linux-2.4.30.openwrt/arch/mips64/kernel/syscall.c +--- linux-2.4.30/arch/mips64/kernel/syscall.c 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/arch/mips64/kernel/syscall.c 2005-07-02 13:00:49.000000000 +0200 +@@ -6,7 +6,9 @@ + * Copyright (C) 1995 - 2000, 2001 by Ralf Baechle + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. + * Copyright (C) 2001 MIPS Technologies, Inc. ++ * Copyright (C) 2004 Maciej W. Rozycki + */ ++#include <linux/compiler.h> + #include <linux/errno.h> + #include <linux/linkage.h> + #include <linux/mm.h> +@@ -151,7 +153,9 @@ + } + + save_static_function(sys_fork); +-static_unused int _sys_fork(abi64_no_regargs, struct pt_regs regs) ++static int _sys_fork(abi64_no_regargs, struct pt_regs regs) ++ __asm__("_sys_fork") __attribute_used__; ++static int _sys_fork(abi64_no_regargs, struct pt_regs regs) + { + int res; + +@@ -160,7 +164,9 @@ + } + + save_static_function(sys_clone); +-static_unused int _sys_clone(abi64_no_regargs, struct pt_regs regs) ++static int _sys_clone(abi64_no_regargs, struct pt_regs regs) ++ __asm__("_sys_clone") __attribute_used__; ++static int _sys_clone(abi64_no_regargs, struct pt_regs regs) + { + unsigned long clone_flags; + unsigned long newsp; +diff -Nur linux-2.4.30/include/asm-mips/ptrace.h linux-2.4.30.openwrt/include/asm-mips/ptrace.h +--- linux-2.4.30/include/asm-mips/ptrace.h 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/include/asm-mips/ptrace.h 2005-07-02 13:00:49.000000000 +0200 +@@ -4,6 +4,7 @@ + * for more details. + * + * Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000 by Ralf Baechle ++ * Copyright (C) 2004 Maciej W. Rozycki + * + * Machine dependent structs and defines to help the user use + * the ptrace system call. +@@ -64,12 +65,10 @@ + "sw\t$22,"__str(PT_R22)"($29)\n\t" \ + "sw\t$23,"__str(PT_R23)"($29)\n\t" \ + "sw\t$30,"__str(PT_R30)"($29)\n\t" \ ++ "j\t_" #symbol "\n\t" \ + ".end\t" #symbol "\n\t" \ + ".size\t" #symbol",. - " #symbol) + +-/* Used in declaration of save_static functions. */ +-#define static_unused static __attribute__((unused)) +- + #endif /* !__ASSEMBLY__ */ + + /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ +diff -Nur linux-2.4.30/include/asm-mips64/ptrace.h linux-2.4.30.openwrt/include/asm-mips64/ptrace.h +--- linux-2.4.30/include/asm-mips64/ptrace.h 2005-07-02 13:00:13.000000000 +0200 ++++ linux-2.4.30.openwrt/include/asm-mips64/ptrace.h 2005-07-02 13:00:49.000000000 +0200 +@@ -5,6 +5,7 @@ + * + * Copyright (C) 1994, 95, 96, 97, 98, 99, 2000 by Ralf Baechle + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. ++ * Copyright (C) 2004 Maciej W. Rozycki + */ + #ifndef _ASM_PTRACE_H + #define _ASM_PTRACE_H +@@ -61,12 +62,10 @@ + "sd\t$22,"__str(PT_R22)"($29)\n\t" \ + "sd\t$23,"__str(PT_R23)"($29)\n\t" \ + "sd\t$30,"__str(PT_R30)"($29)\n\t" \ ++ "j\t_" #symbol "\n\t" \ + ".end\t" #symbol "\n\t" \ + ".size\t" #symbol",. - " #symbol) + +-/* Used in declaration of save_static functions. */ +-#define static_unused static __attribute__((unused)) +- + #define abi64_no_regargs \ + unsigned long __dummy0, \ + unsigned long __dummy1, \ |