lkml.org 
[lkml]   [2017]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH 2/2] include: warn for inconsistent endian config definition
From
Date
Hi All,

On 6/10/2017 9:06 AM, kbuild test robot wrote:
> Hi Babu,
>
> [auto build test WARNING on linus/master]
> [also build test WARNING on v4.12-rc4 next-20170609]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Babu-Moger/Define-CPU_BIG_ENDIAN-or-warn-for-inconsistencies/20170610-200424
> config: microblaze-mmu_defconfig (attached as .config)
> compiler: microblaze-linux-gcc (GCC) 6.2.0
> reproduce:
> wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> make.cross ARCH=microblaze
>
> All warnings (new ones prefixed by >>):
>
> In file included from arch/microblaze/include/uapi/asm/byteorder.h:7:0,
> from include/asm-generic/bitops/le.h:5,
> from include/asm-generic/bitops.h:34,
> from arch/microblaze/include/asm/bitops.h:1,
> from include/linux/bitops.h:36,
> from include/linux/kernel.h:10,
> from include/asm-generic/bug.h:15,
> from arch/microblaze/include/asm/bug.h:1,
> from include/linux/bug.h:4,
> from include/linux/page-flags.h:9,
> from kernel/bounds.c:9:
>>> include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
> #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
> ^~~~~~~
> --
> In file included from arch/microblaze/include/uapi/asm/byteorder.h:7:0,
> from include/asm-generic/bitops/le.h:5,
> from include/asm-generic/bitops.h:34,
> from arch/microblaze/include/asm/bitops.h:1,
> from include/linux/bitops.h:36,
> from include/linux/kernel.h:10,
> from include/asm-generic/bug.h:15,
> from arch/microblaze/include/asm/bug.h:1,
> from include/linux/bug.h:4,
> from include/linux/page-flags.h:9,
> from kernel/bounds.c:9:
>>> include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
> #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
> ^~~~~~~
> In file included from arch/microblaze/include/uapi/asm/byteorder.h:7:0,
> from include/asm-generic/bitops/le.h:5,
> from include/asm-generic/bitops.h:34,
> from arch/microblaze/include/asm/bitops.h:1,
> from include/linux/bitops.h:36,
> from include/linux/kernel.h:10,
> from include/linux/list.h:8,
> from include/linux/rculist.h:9,
> from include/linux/pid.h:4,
> from include/linux/sched.h:13,
> from arch/microblaze/kernel/asm-offsets.c:13:
>>> include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
> #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
> ^~~~~~~
> <stdin>:1326:2: warning: #warning syscall statx not implemented [-Wcpp]
>
> vim +7 include/linux/byteorder/big_endian.h
>
> 1 #ifndef _LINUX_BYTEORDER_BIG_ENDIAN_H
> 2 #define _LINUX_BYTEORDER_BIG_ENDIAN_H
> 3
> 4 #include <uapi/linux/byteorder/big_endian.h>
> 5
> 6 #ifndef CONFIG_CPU_BIG_ENDIAN
> > 7 #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
> 8 #endif
> 9
> 10 #include <linux/byteorder/generic.h>
> 11 #endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation

Looks like microblaze can be configured to either little or big endian
formats. How about
adding a choice statement to address this.
Here is my proposed patch.
=======================================
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 85885a5..74aa5de 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -35,6 +35,22 @@ config MICROBLAZE
select VIRT_TO_BUS
select CPU_NO_EFFICIENT_FFS

+# Endianness selection
+choice
+ prompt "Endianness selection"
+ default CPU_BIG_ENDIAN
+ help
+ microblaze architectures can be configured for either little or
+ big endian formats. Be sure to select the appropriate mode.
+
+config CPU_BIG_ENDIAN
+ bool "Big endian"
+
+config CPU_LITTLE_ENDIAN
+ bool "Little endian"
+
+endchoice
+
config SWAP
def_bool n


\
 
 \ /
  Last update: 2017-06-12 23:25    [W:0.133 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site