diff options
| author | Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 2008-06-21 03:28:31 +0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-06-20 16:46:10 -0700 | 
| commit | d559d4a24a3fed75bd890abcc1f95cd8d8dad6e1 (patch) | |
| tree | 2f920b9fc7a7bed1ce857474505793fe1431eac3 /arch/alpha | |
| parent | ede426923b25414f5ec9c00fefe6727d9721dd13 (diff) | |
| download | linux-d559d4a24a3fed75bd890abcc1f95cd8d8dad6e1.tar.bz2 | |
alpha: fix compile failures with gcc-4.3 (bug #10438)
Vast majority of these build failures are gcc-4.3 warnings
about static functions and objects being referenced from
non-static (read: "extern inline") functions, in conjunction
with our -Werror.
We cannot just convert "extern inline" to "static inline",
as people keep suggesting all the time, because "extern inline"
logic is crucial for generic kernel build.
So
- just make sure that all callees of critical "extern inline"
  functions are also "extern inline";
- use "static inline", wherever it's possible.
traps.c: work around gcc-4.3 being too smart about array
bounds-checking.
TODO: add "gnu_inline" attribute to all our "extern inline"
functions to ensure desired behaviour with future compilers.
Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/alpha')
| -rw-r--r-- | arch/alpha/kernel/core_t2.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/traps.c | 3 | 
2 files changed, 4 insertions, 1 deletions
| diff --git a/arch/alpha/kernel/core_t2.c b/arch/alpha/kernel/core_t2.c index c0750291b44a..d9980d47ab81 100644 --- a/arch/alpha/kernel/core_t2.c +++ b/arch/alpha/kernel/core_t2.c @@ -74,6 +74,8 @@  # define DBG(args)  #endif +DEFINE_SPINLOCK(t2_hae_lock); +  static volatile unsigned int t2_mcheck_any_expected;  static volatile unsigned int t2_mcheck_last_taken; diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c index dc57790250d2..c778779007fc 100644 --- a/arch/alpha/kernel/traps.c +++ b/arch/alpha/kernel/traps.c @@ -447,7 +447,7 @@ struct unaligned_stat {  /* Macro for exception fixup code to access integer registers.  */ -#define una_reg(r)  (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)]) +#define una_reg(r)  (_regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])  asmlinkage void @@ -456,6 +456,7 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,  {  	long error, tmp1, tmp2, tmp3, tmp4;  	unsigned long pc = regs->pc - 4; +	unsigned long *_regs = regs->regs;  	const struct exception_table_entry *fixup;  	unaligned[0].count++; |