From: Zhenhua Luo Date: Fri, 16 Oct 2015 05:43:15 +0000 (+0800) Subject: linux-qoriq: fix gcc 5.2 build issues of ls1021atwr X-Git-Tag: 2.1~219 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=9a049c4f24022320c42cd50173cb4506ec9496ee;p=meta-freescale.git linux-qoriq: fix gcc 5.2 build issues of ls1021atwr Cherry picked patches from future kernel versions to fix gcc5.2 build errors (Port from meta-fsl-arm rev: d4da62e1972d78a0ebfa51e6bad232732144e4b2) Signed-off-by: Chunrong Guo Signed-off-by: Zhenhua Luo --- diff --git a/recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch b/recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch new file mode 100644 index 00000000..47f13c71 --- /dev/null +++ b/recipes-kernel/linux/linux-qoriq/0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch @@ -0,0 +1,48 @@ +From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001 +From: Behan Webster +Date: Wed, 24 Sep 2014 01:06:46 +0100 +Subject: ARM: 8158/1: 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 +Reviewed-by: Mark Charlebois +Acked-by: Steven Rostedt +Signed-off-by: Russell King + +diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h +index 39eb16b..bfe2a2f 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 fafedd8..f6aa84d 100644 +--- a/arch/arm/kernel/return_address.c ++++ b/arch/arm/kernel/return_address.c +@@ -63,11 +63,6 @@ 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 */ + + EXPORT_SYMBOL_GPL(return_address); +-- +cgit v0.10.2 + diff --git a/recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch b/recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch new file mode 100644 index 00000000..0ab03fb9 --- /dev/null +++ b/recipes-kernel/linux/linux-qoriq/0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch @@ -0,0 +1,59 @@ +From a2561791169351cbf1ac5ca0c4299a0eef7eca65 Mon Sep 17 00:00:00 2001 +From: Behan Webster +Date: Tue, 3 Sep 2013 22:27:26 -0400 +Subject: [PATCH] ARM: LLVMLinux: Change "extern inline" to "static inline" in + glue-cache.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). "static inline" is the correct choice +instead. + +Author: Behan Webster +Signed-off-by: Behan Webster +Reviewed-by: Mark Charlebois +--- + arch/arm/include/asm/glue-cache.h | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h +index c81adc0..a3c24cd 100644 +--- a/arch/arm/include/asm/glue-cache.h ++++ b/arch/arm/include/asm/glue-cache.h +@@ -130,22 +130,22 @@ + #endif + + #ifndef __ASSEMBLER__ +-extern inline void nop_flush_icache_all(void) { } +-extern inline void nop_flush_kern_cache_all(void) { } +-extern inline void nop_flush_kern_cache_louis(void) { } +-extern inline void nop_flush_user_cache_all(void) { } +-extern inline void nop_flush_user_cache_range(unsigned long a, ++static inline void nop_flush_icache_all(void) { } ++static inline void nop_flush_kern_cache_all(void) { } ++static inline void nop_flush_kern_cache_louis(void) { } ++static inline void nop_flush_user_cache_all(void) { } ++static inline void nop_flush_user_cache_range(unsigned long a, + unsigned long b, unsigned int c) { } + +-extern inline void nop_coherent_kern_range(unsigned long a, unsigned long b) { } +-extern inline int nop_coherent_user_range(unsigned long a, ++static inline void nop_coherent_kern_range(unsigned long a, unsigned long b) { } ++static inline int nop_coherent_user_range(unsigned long a, + unsigned long b) { return 0; } +-extern inline void nop_flush_kern_dcache_area(void *a, size_t s) { } ++static inline void nop_flush_kern_dcache_area(void *a, size_t s) { } + +-extern inline void nop_dma_flush_range(const void *a, const void *b) { } ++static inline void nop_dma_flush_range(const void *a, const void *b) { } + +-extern inline void nop_dma_map_area(const void *s, size_t l, int f) { } +-extern inline void nop_dma_unmap_area(const void *s, size_t l, int f) { } ++static inline void nop_dma_map_area(const void *s, size_t l, int f) { } ++static inline void nop_dma_unmap_area(const void *s, size_t l, int f) { } + #endif + + #ifndef MULTI_CACHE +-- +2.1.4 + diff --git a/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch b/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch new file mode 100644 index 00000000..6d067764 --- /dev/null +++ b/recipes-kernel/linux/linux-qoriq/0003-use-static-inline-in-ARM-lifeboot.h.patch @@ -0,0 +1,53 @@ +From 16b34c08f43c6e65f21a8cab536c497edb6c886e Mon Sep 17 00:00:00 2001 +From: Chunrong Guo +Date: Thu, 8 Oct 2015 22:48:22 -0500 +Subject: [PATCH] use static inline in ARM lifeboot.h + +--- + drivers/input/mouse/lifebook.h | 2 +- + drivers/input/mouse/sentelic.h | 2 +- + drivers/input/mouse/trackpoint.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/input/mouse/lifebook.h b/drivers/input/mouse/lifebook.h +index 4c4326c..e4c2453 100644 +--- a/drivers/input/mouse/lifebook.h ++++ b/drivers/input/mouse/lifebook.h +@@ -19,7 +19,7 @@ int lifebook_init(struct psmouse *psmouse); + inline void lifebook_module_init(void) + { + } +-inline int lifebook_detect(struct psmouse *psmouse, bool set_properties) ++static inline int lifebook_detect(struct psmouse *psmouse, bool set_properties) + { + return -ENOSYS; + } +diff --git a/drivers/input/mouse/sentelic.h b/drivers/input/mouse/sentelic.h +index aa697ec..9e69e94 100644 +--- a/drivers/input/mouse/sentelic.h ++++ b/drivers/input/mouse/sentelic.h +@@ -123,7 +123,7 @@ struct fsp_data { + extern int fsp_detect(struct psmouse *psmouse, bool set_properties); + extern int fsp_init(struct psmouse *psmouse); + #else +-inline int fsp_detect(struct psmouse *psmouse, bool set_properties) ++static inline int fsp_detect(struct psmouse *psmouse, bool set_properties) + { + return -ENOSYS; + } +diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h +index ecd0547..693735c 100644 +--- a/drivers/input/mouse/trackpoint.h ++++ b/drivers/input/mouse/trackpoint.h +@@ -147,7 +147,7 @@ struct trackpoint_data + #ifdef CONFIG_MOUSE_PS2_TRACKPOINT + int trackpoint_detect(struct psmouse *psmouse, bool set_properties); + #else +-inline int trackpoint_detect(struct psmouse *psmouse, bool set_properties) ++static inline int trackpoint_detect(struct psmouse *psmouse, bool set_properties) + { + return -ENOSYS; + } +-- +2.3.3 + diff --git a/recipes-kernel/linux/linux-qoriq_3.12.bb b/recipes-kernel/linux/linux-qoriq_3.12.bb index 57f0fc2c..1d973cde 100644 --- a/recipes-kernel/linux/linux-qoriq_3.12.bb +++ b/recipes-kernel/linux/linux-qoriq_3.12.bb @@ -3,6 +3,9 @@ require recipes-kernel/linux/linux-qoriq.inc SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;nobranch=1 \ file://modify-defconfig-t1040-nr-cpus.patch \ file://net-sctp-CVE-2014-0101.patch \ + file://0001-ARM-8158-LLVMLinux-use-static-inline-in-ARM-ftrace.patch \ + file://0001-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch \ + file://0003-use-static-inline-in-ARM-lifeboot.h.patch \ " SRCREV = "f488de6741d5ba805b9fe813d2ddf32368d3a888"