linux-sunxi: add patches for gcc5

The linux-sunxi 3.4 kernel could not be compiled with gcc5 (which
is standard in master now). Add two patches to make it compile again.

- Add missing compiler-gcc5.h
- Fix "multiple definition of `return_address'" errors

Open issue: All realtek wifi drivers fail to compile. Because of this
keep info to switch back to gcc4 in readme.

Signed-off-by: Jens Lucius <info@jenslucius.com>
This commit is contained in:
Jens Lucius
2015-09-23 12:06:20 +02:00
parent 318e9aa826
commit 062c1477cf
3 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,50 @@
From ef4fea130eeb70eff4f3a549fd3f6e9b11437550 Mon Sep 17 00:00:00 2001
From: ZaneZam <cyxman@yahoo.com>
Date: Thu, 26 Mar 2015 14:50:10 +0100
Subject: [PATCH] arm: LLVMLinux: use static inline in ARM ftrace.h
With compilers which follow the C99 standard (like modern versions of gcc and
clang), "extern inline" does the wrong thing (emits code for an externally
linkable version of the inline function). In this case using static inline
and removing the NULL version of return_address in return_address.c does
the right thing.
Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
source: http://www.serverphorums.com/read.php?12,880351,880351#msg-880351
---
arch/arm/include/asm/ftrace.h | 2 +-
arch/arm/kernel/return_address.c | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
index f89515a..2bb8cac 100644
--- a/arch/arm/include/asm/ftrace.h
+++ b/arch/arm/include/asm/ftrace.h
@@ -45,7 +45,7 @@ void *return_address(unsigned int);
#else
-extern inline void *return_address(unsigned int level)
+static inline void *return_address(unsigned int level)
{
return NULL;
}
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
index f1aef84..49477f0 100644
--- a/arch/arm/kernel/return_address.c
+++ b/arch/arm/kernel/return_address.c
@@ -62,10 +62,12 @@ void *return_address(unsigned int level)
/* #warning "TODO: return_address should use unwind tables" */
#endif
+/*
void *return_address(unsigned int level)
{
return NULL;
}
+*/
#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */