arch: Kconfig: Let all architectures set endian explicitly
Subsystems (17)
PATCH v3 1/1 arch: Kconfig: Let all architectures set endian explicitly
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86
- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve Kbuild to probe endian to deside whether need mark __BUILDING_TIME_BIG_ENDIAN__ before real config.
Another improvements:
- score: use '\t' instead of ' '.
- s390: sort the select value in alpha order.
--- arch/alpha/Kconfig | 1 + arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/arm64/Kconfig | 1 + arch/avr32/Kconfig | 1 + arch/blackfin/Kconfig | 1 + arch/c6x/Kconfig | 1 + arch/cris/Kconfig | 1 + arch/frv/Kconfig | 1 + arch/hexagon/Kconfig | 1 + arch/ia64/Kconfig | 1 + arch/m32r/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/metag/Kconfig | 1 + arch/microblaze/Kconfig | 2 ++ arch/mips/Kconfig | 1 + arch/mn10300/Kconfig | 1 + arch/openrisc/Kconfig | 1 + arch/parisc/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/s390/Kconfig | 3 ++- arch/score/Kconfig | 21 +++++++++++---------- arch/sparc/Kconfig | 1 + arch/tile/Kconfig | 2 ++ arch/um/Kconfig.common | 2 ++ arch/unicore32/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/xtensa/Kconfig | 2 ++ init/Kconfig | 6 ++++++ 29 files changed, 49 insertions(+), 11 deletions(-)
arch/alpha/Kconfig +1 -0
@@ -27,6 +27,7 @@ config ALPHA select MODULES_USE_ELF_RELA select ODD_RT_SIGACTION select OLD_SIGSUSPEND + select CPU_LITTLE_ENDIAN help The Alpha is a 64-bit general-purpose processor designed and marketed by the Digital Equipment Corporation of blessed memory,
arch/arc/Kconfig +1 -0
@@ -35,6 +35,7 @@ config ARC select OF_EARLY_FLATTREE select PERF_USE_VMALLOC select HAVE_DEBUG_STACKOVERFLOW + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN config TRACE_IRQFLAGS_SUPPORT def_bool y
arch/arm/Kconfig +1 -0
@@ -12,6 +12,7 @@ config ARM select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_EXTABLE_SORT if MMU select CLONE_BACKWARDS + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN select CPU_PM if (SUSPEND || CPU_IDLE) select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
arch/arm64/Kconfig +1 -0
@@ -17,6 +17,7 @@ config ARM64 select BUILDTIME_EXTABLE_SORT select CLONE_BACKWARDS select COMMON_CLK + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN select CPU_PM if (SUSPEND || CPU_IDLE) select DCACHE_WORD_ACCESS select GENERIC_CLOCKEVENTS
arch/avr32/Kconfig +1 -0
@@ -17,6 +17,7 @@ config AVR32 select GENERIC_CLOCKEVENTS select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA + select CPU_BIG_ENDIAN help AVR32 is a high-performance 32-bit RISC microprocessor core, designed for cost-sensitive embedded applications, with particular
arch/blackfin/Kconfig +1 -0
@@ -40,6 +40,7 @@ config BLACKFIN select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA select HAVE_DEBUG_STACKOVERFLOW + select CPU_LITTLE_ENDIAN config GENERIC_CSUM def_bool y
arch/c6x/Kconfig +1 -0
@@ -17,6 +17,7 @@ config C6X select OF_EARLY_FLATTREE select GENERIC_CLOCKEVENTS select MODULES_USE_ELF_RELA + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN config MMU def_bool n
arch/cris/Kconfig +1 -0
@@ -52,6 +52,7 @@ config CRIS select CLONE_BACKWARDS2 select OLD_SIGSUSPEND select OLD_SIGACTION + select CPU_LITTLE_ENDIAN config HZ int
arch/frv/Kconfig +1 -0
@@ -14,6 +14,7 @@ config FRV select OLD_SIGSUSPEND3 select OLD_SIGACTION select HAVE_DEBUG_STACKOVERFLOW + select CPU_BIG_ENDIAN config ZONE_DMA bool
arch/hexagon/Kconfig +1 -0
@@ -28,6 +28,7 @@ config HEXAGON select MODULES_USE_ELF_RELA select GENERIC_CPU_DEVICES select HAVE_DMA_ATTRS + select CPU_LITTLE_ENDIAN ---help--- Qualcomm Hexagon is a processor architecture designed for high performance and low power across a wide variety of applications.
arch/ia64/Kconfig +1 -0
@@ -49,6 +49,7 @@ config IA64 select MODULES_USE_ELF_RELA select ARCH_USE_CMPXCHG_LOCKREF select HAVE_ARCH_AUDITSYSCALL + select CPU_LITTLE_ENDIAN default y help The Itanium Processor Family is Intel's 64-bit successor to
arch/m32r/Kconfig +1 -0
@@ -16,6 +16,7 @@ config M32R select ARCH_USES_GETTIMEOFFSET select MODULES_USE_ELF_RELA select HAVE_DEBUG_STACKOVERFLOW + select CPU_BIG_ENDIAN if !CPU_LITTLE_ENDIAN config SBUS bool
arch/m68k/Kconfig +1 -0
@@ -23,6 +23,7 @@ config M68K select MODULES_USE_ELF_RELA select OLD_SIGSUSPEND3 select OLD_SIGACTION + select CPU_BIG_ENDIAN config RWSEM_GENERIC_SPINLOCK bool
arch/metag/Kconfig +1 -0
@@ -29,6 +29,7 @@ config METAG select OF select OF_EARLY_FLATTREE select SPARSE_IRQ + select CPU_LITTLE_ENDIAN config STACKTRACE_SUPPORT def_bool y
arch/microblaze/Kconfig +2 -0
@@ -7,6 +7,8 @@ config MICROBLAZE select CLKSRC_OF select CLONE_BACKWARDS3 select COMMON_CLK + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS select GENERIC_CPU_DEVICES
arch/mips/Kconfig +1 -0
@@ -52,6 +52,7 @@ config MIPS select HAVE_CC_STACKPROTECTOR select CPU_PM if CPU_IDLE select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN menu "Machine selection"
arch/mn10300/Kconfig +1 -0
@@ -13,6 +13,7 @@ config MN10300 select OLD_SIGSUSPEND3 select OLD_SIGACTION select HAVE_DEBUG_STACKOVERFLOW + select CPU_LITTLE_ENDIAN config AM33_2 def_bool n
arch/openrisc/Kconfig +1 -0
@@ -23,6 +23,7 @@ config OPENRISC select MODULES_USE_ELF_RELA select HAVE_DEBUG_STACKOVERFLOW select OR1K_PIC + select CPU_BIG_ENDIAN config MMU def_bool y
arch/parisc/Kconfig +1 -0
@@ -29,6 +29,7 @@ config PARISC select TTY # Needed for pdc_cons.c select HAVE_DEBUG_STACKOVERFLOW select HAVE_ARCH_AUDITSYSCALL + select CPU_BIG_ENDIAN help The PA-RISC microprocessor is designed by Hewlett-Packard and used
arch/powerpc/Kconfig +1 -0
@@ -147,6 +147,7 @@ config PPC select ARCH_USE_CMPXCHG_LOCKREF if PPC64 select HAVE_ARCH_AUDITSYSCALL select ARCH_SUPPORTS_ATOMIC_RMW + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN config GENERIC_CSUM def_bool CPU_LITTLE_ENDIAN
arch/s390/Kconfig +2 -1
@@ -62,6 +62,7 @@ config S390 def_bool y select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS + select ARCH_HAS_SG_CHAIN select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_INLINE_READ_LOCK select ARCH_INLINE_READ_LOCK_BH
@@ -97,6 +98,7 @@ config S390 select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_EXTABLE_SORT select CLONE_BACKWARDS2 + select CPU_BIG_ENDIAN select GENERIC_CLOCKEVENTS select GENERIC_CPU_DEVICES if !SMP select GENERIC_FIND_FIRST_BIT
@@ -145,7 +147,6 @@ config S390 select TTY select VIRT_CPU_ACCOUNTING select VIRT_TO_BUS - select ARCH_HAS_SG_CHAIN config SCHED_OMIT_FRAME_POINTER def_bool y
arch/score/Kconfig +11 -10
@@ -1,19 +1,20 @@ menu "Machine selection" config SCORE - def_bool y - select GENERIC_IRQ_SHOW - select GENERIC_IOMAP - select GENERIC_ATOMIC64 - select HAVE_MEMBLOCK - select HAVE_MEMBLOCK_NODE_MAP - select ARCH_DISCARD_MEMBLOCK - select GENERIC_CPU_DEVICES - select GENERIC_CLOCKEVENTS - select HAVE_MOD_ARCH_SPECIFIC + def_bool y + select GENERIC_IRQ_SHOW + select GENERIC_IOMAP + select GENERIC_ATOMIC64 + select HAVE_MEMBLOCK + select HAVE_MEMBLOCK_NODE_MAP + select ARCH_DISCARD_MEMBLOCK + select GENERIC_CPU_DEVICES + select GENERIC_CLOCKEVENTS + select HAVE_MOD_ARCH_SPECIFIC select VIRT_TO_BUS select MODULES_USE_ELF_REL select CLONE_BACKWARDS + select CPU_LITTLE_ENDIAN choice prompt "System type"
arch/sparc/Kconfig +1 -0
@@ -43,6 +43,7 @@ config SPARC select ODD_RT_SIGACTION select OLD_SIGSUSPEND select ARCH_HAS_SG_CHAIN + select CPU_BIG_ENDIAN config SPARC32 def_bool !64BIT
arch/tile/Kconfig +2 -0
@@ -27,6 +27,8 @@ config TILE select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select HAVE_DEBUG_STACKOVERFLOW select ARCH_WANT_FRAME_POINTERS + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN # FIXME: investigate whether we need/want these options. # select HAVE_IOREMAP_PROT
arch/um/Kconfig.common +2 -0
@@ -8,6 +8,8 @@ config UML select GENERIC_IO select GENERIC_CLOCKEVENTS select TTY # Needed for line.c + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN config MMU bool
arch/unicore32/Kconfig +1 -0
@@ -18,6 +18,7 @@ config UNICORE32 select ARCH_WANT_FRAME_POINTERS select GENERIC_IOMAP select MODULES_USE_ELF_REL + select CPU_LITTLE_ENDIAN help UniCore-32 is 32-bit Instruction Set Architecture, including a series of low-power-consumption RISC chip
arch/x86/Kconfig +1 -0
@@ -136,6 +136,7 @@ config X86 select HAVE_ACPI_APEI if ACPI select HAVE_ACPI_APEI_NMI if ACPI select ACPI_LEGACY_TABLES_LOOKUP if ACPI + select CPU_LITTLE_ENDIAN config INSTRUCTION_DECODER def_bool y
arch/xtensa/Kconfig +2 -0
@@ -22,6 +22,8 @@ config XTENSA select HAVE_IRQ_TIME_ACCOUNTING select HAVE_PERF_EVENTS select COMMON_CLK + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN help Xtensa processors are 32-bit RISC machines designed by Tensilica primarily for embedded systems. These processors are both
init/Kconfig +6 -0
@@ -23,6 +23,12 @@ config CONSTRUCTORS config IRQ_WORK bool +config CPU_LITTLE_ENDIAN + bool + +config CPU_BIG_ENDIAN + bool + config BUILDTIME_EXTABLE_SORT bool
Signature · 1 line
1.7.11.7
Quoted 8 lines · Chen Gang
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Nak for MIPS. On MIPS Kconfig already always sets one of CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN depending on platforms and where both endianess are supported by a platform, user choice:
config FOO
bool "foo"
select SYS_SUPPORTS_LITTLE_ENDIAN
config FOO
bool "foo"
select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_LITTLE_ENDIAN
[...]
choice
prompt "Endianess selection"
help
Some MIPS machines can be configured for either little or big endian byte order. These modes require different kernels and a different Linux distribution. In general there is one preferred byteorder for a particular system but some systems are just as commonly used in the one or the other endianness.
config CPU_BIG_ENDIAN
bool "Big endian"
depends on SYS_SUPPORTS_BIG_ENDIAN
config CPU_LITTLE_ENDIAN
bool "Little endian"
depends on SYS_SUPPORTS_LITTLE_ENDIAN
help
endchoice
So I think you can just drop the MIPS segment from your patch.
Ralf
Quoted 37 lines · Ralf Baechle
Quoted 8 lines · Chen Gang
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Nak for MIPS. On MIPS
Kconfigalready always sets one ofCPU_BIG_ENDIANandCPU_LITTLE_ENDIANdepending on platforms and where both endianess are supported by a platform, user choice:config FOO
bool "foo"
selectSYS_SUPPORTS_LITTLE_ENDIANconfig FOO
bool "foo"
selectSYS_SUPPORTS_BIG_ENDIAN
selectSYS_SUPPORTS_LITTLE_ENDIAN
[...]
choice
prompt "Endianess selection"
help
Some MIPS machines can be configured for either little or big endian byte order. These modes require different kernels and a different Linux distribution. In general there is one preferred byteorder for a particular system but some systems are just as commonly used in the one or the other endianness.config
CPU_BIG_ENDIAN
bool "Big endian"
depends onSYS_SUPPORTS_BIG_ENDIAN
Quoted 7 lines
config
CPU_LITTLE_ENDIAN
bool "Little endian"
depends onSYS_SUPPORTS_LITTLE_ENDIAN
helpendchoice
OK, thanks, I assumes when support both endian, the default choice is CPU_BIG_ENDIAN, although no default value for choice (originally, I did worry about it).
Quoted 2 lines
So I think you can just drop the MIPS segment from your patch.
If what I assumes is correct, what you said sounds reasonable to me.
Thanks.
Signature · 3 lines
Chen Gang Open share and attitude like air water and life which God blessed
Quoted 13 lines · Chen Gang
Quoted 1 line · Ralf Baechle
OK, thanks, I assumes when support both endian, the default choice is
CPU_BIG_ENDIAN, although no default value for choice (originally, I did worry about it).Quoted 2 lines
So I think you can just drop the MIPS segment from your patch.
If what I assumes is correct, what you said sounds reasonable to me.
So for me, it is harmless to add CPU_*_ENDIAN explicitly, and can let other members don't need think of.
By the way, for sh, it is almost the same case, except it contents the default value, for me, it is clear enough, so I skip sh architecture in this patch.
Thanks
Signature · 3 lines
Chen Gang Open, share, and attitude like air, water, and life which God blessed
Hello Maintainers:
Is this patch OK? If it pass basic checking, please let me know, and I shall try to make another related patch for KBuild (I can do nothing related with Kbuild, before get confirmation for this patch).
Thanks.
Quoted 27 lines · Chen Gang
Quoted 13 lines · Chen Gang
Quoted 1 line · Ralf Baechle
OK, thanks, I assumes when support both endian, the default choice is
CPU_BIG_ENDIAN, although no default value for choice (originally, I did worry about it).Quoted 2 lines
So I think you can just drop the MIPS segment from your patch.
If what I assumes is correct, what you said sounds reasonable to me.
So for me, it is harmless to add CPU_*_ENDIAN explicitly, and can let other members don't need think of.
By the way, for sh, it is almost the same case, except it contents the default value, for me, it is clear enough, so I skip sh architecture in this patch.
Thanks
Signature · 3 lines
Chen Gang Open, share, and attitude like air, water, and life which God blessed
Hello all:
It seems no any additional rejections for it. I guess, I need split the 'big' patch into pieces, and each send to its' related mailing list, so let it not like a spam. And the schedule may like:
- Firstly, send patch for "init/Kconfig" to add CPU_*_ENDIAN. If pass checking (hope it can be passed checking), then
- Send each related patch to each related architectures which already knew their ENDIAN attributes in config time (24 patches, I guess), then
- Make patch for Kbuild to support __BUILDING_TIME_BIG_ENDIAN__, and pass checking (hope I can finish), then
- Finish left architectures which need __BUILDING_TIME_BIG_ENDIAN__ (4 patches, I guess).
Welcome any ideas, suggestions, or completions. And if no additional reply, I shall not send any additional information any more to avoid spam to other members.
Thanks.
Quoted 37 lines · Chen Gang
Hello Maintainers:
Is this patch OK? If it pass basic checking, please let me know, and I shall try to make another related patch for KBuild (I can do nothing related with
Kbuild, before get confirmation for this patch).Thanks.
Quoted 27 lines · Chen Gang
Quoted 13 lines · Chen Gang
Quoted 1 line · Ralf Baechle
OK, thanks, I assumes when support both endian, the default choice is
CPU_BIG_ENDIAN, although no default value for choice (originally, I did worry about it).Quoted 2 lines
So I think you can just drop the MIPS segment from your patch.
If what I assumes is correct, what you said sounds reasonable to me.
So for me, it is harmless to add CPU_*_ENDIAN explicitly, and can let other members don't need think of.
By the way, for sh, it is almost the same case, except it contents the default value, for me, it is clear enough, so I skip sh architecture in this patch.
Thanks
Signature · 3 lines
Chen Gang Open, share, and attitude like air, water, and life which God blessed
Quoted 74 lines · Chen Gang
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve
Kbuildto probe endian to deside whether need mark__BUILDING_TIME_BIG_ENDIAN__before real config.Another improvements:
- score: use '\t' instead of ' '.
- s390: sort the select value in alpha order.
Signed-off-by Chen Gang <[email protected]>--- arch/alpha/Kconfig | 1 + arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/arm64/Kconfig | 1 + arch/avr32/Kconfig | 1 + arch/blackfin/Kconfig | 1 + arch/c6x/Kconfig | 1 + arch/cris/Kconfig | 1 + arch/frv/Kconfig | 1 + arch/hexagon/Kconfig | 1 + arch/ia64/Kconfig | 1 + arch/m32r/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/metag/Kconfig | 1 + arch/microblaze/Kconfig | 2 ++ arch/mips/Kconfig | 1 + arch/mn10300/Kconfig | 1 + arch/openrisc/Kconfig | 1 + arch/parisc/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/s390/Kconfig | 3 ++- arch/score/Kconfig | 21 +++++++++++---------- arch/sparc/Kconfig | 1 + arch/tile/Kconfig | 2 ++ arch/um/Kconfig.common | 2 ++ arch/unicore32/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/xtensa/Kconfig | 2 ++ init/Kconfig | 6 ++++++ 29 files changed, 49 insertions(+), 11 deletions(-)arch/alpha/Kconfig +1
-0@@ -27,6 +27,7 @@ config ALPHA select MODULES_USE_ELF_RELA select ODD_RT_SIGACTION select OLD_SIGSUSPEND + select CPU_LITTLE_ENDIAN help The Alpha is a 64-bit general-purpose processor designed and marketed by the Digital Equipment Corporation of blessed memory,arch/arc/Kconfig +0
-0
arch/arc/Kconfig config ARC · line 38
Quoted 4 lines
arch/arc/Kconfig +1
-0@@ -35,6 +35,7 @@ config ARC select OF_EARLY_FLATTREE select PERF_USE_VMALLOC select HAVE_DEBUG_STACKOVERFLOW + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
It is not clear what exactly are you trying to fix. What doesn't work w/o this patch !
-Vineet
I don't think it's necessary, what's the benfit?
2014-08-15 2:21 GMT+08:00 Vineet Gupta <[email protected]>:
Quoted 84 lines · Chen Gang
Quoted 74 lines
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve
Kbuildto probe endian to deside whether need mark__BUILDING_TIME_BIG_ENDIAN__before real config.Another improvements:
- score: use '\t' instead of ' '.
- s390: sort the select value in alpha order.
Signed-off-by Chen Gang <[email protected]>--- arch/alpha/Kconfig | 1 + arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/arm64/Kconfig | 1 + arch/avr32/Kconfig | 1 + arch/blackfin/Kconfig | 1 + arch/c6x/Kconfig | 1 + arch/cris/Kconfig | 1 + arch/frv/Kconfig | 1 + arch/hexagon/Kconfig | 1 + arch/ia64/Kconfig | 1 + arch/m32r/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/metag/Kconfig | 1 + arch/microblaze/Kconfig | 2 ++ arch/mips/Kconfig | 1 + arch/mn10300/Kconfig | 1 + arch/openrisc/Kconfig | 1 + arch/parisc/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/s390/Kconfig | 3 ++- arch/score/Kconfig | 21 +++++++++++---------- arch/sparc/Kconfig | 1 + arch/tile/Kconfig | 2 ++ arch/um/Kconfig.common | 2 ++ arch/unicore32/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/xtensa/Kconfig | 2 ++ init/Kconfig | 6 ++++++ 29 files changed, 49 insertions(+), 11 deletions(-)arch/alpha/Kconfig +1
-0@@ -27,6 +27,7 @@ config ALPHA select MODULES_USE_ELF_RELA select ODD_RT_SIGACTION select OLD_SIGSUSPEND + select CPU_LITTLE_ENDIAN help The Alpha is a 64-bit general-purpose processor designed and marketed by the Digital Equipment Corporation of blessed memory,arch/arc/Kconfig +0
-0arch/arc/Kconfig config ARC · line 38
Quoted 4 lines
arch/arc/Kconfig +1
-0@@ -35,6 +35,7 @@ config ARC select OF_EARLY_FLATTREE select PERF_USE_VMALLOC select HAVE_DEBUG_STACKOVERFLOW + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIANIt is not clear what exactly are you trying to fix. What doesn't work w/o this
patch !
Quoted 2 lines
-Vineet
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev
Quoted 5 lines · Lennox Wu
I don't think it's necessary, what's the benfit?
2014-08-15 2:21 GMT+08:00 Vineet Gupta <[email protected]>:
Quoted 1 line · Chen Gang
[...]
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
arch/arc/Kconfig +0
-0@@ -35,6 +35,7 @@ config ARC select OF_EARLY_FLATTREE
Quoted 8 lines
Quoted 8 lines
arch/arc/Kconfig config ARC · line 38
Quoted 3 lines
arch/arc/Kconfig +1
-0select PERF_USE_VMALLOC select HAVE_DEBUG_STACKOVERFLOW + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIANIt is not clear what exactly are you trying to fix. What doesn't work w/o this
patch !
For many individual modules may need check CPU_LITTLE_ENDIAN or CPU_BIG_ENDIAN, which is an architecture's attribute.
Or they have to list many architectures which they support, which they don't support. And still, it is not precise.
For architecture API, endian is a main architecture's attribute which may be used by outside, so every architecture need let outside know about it, explicitly.
Thanks.
Signature · 3 lines
Chen Gang Open share and attitude like air water and life which God blessed
Quoted 9 lines · Chen Gang
For many individual modules may need check
CPU_LITTLE_ENDIANorCPU_BIG_ENDIAN, which is an architecture's attribute.Or they have to list many architectures which they support, which they don't support. And still, it is not precise.
For architecture API, endian is a main architecture's attribute which may be used by outside, so every architecture need let outside know about it, explicitly.
I don't think that is correct. The modules need to use standard API e.g. swab which will take care of proper endian handling anyways. Why would a module do anything endian specific outside of those APIs.
And again is this churn just theoretical or do you really have a issue at hand ! I would not accept a change for ARC unless you prove that something is broken (or atleast potentially broken) !
-Vineet
Quoted 7 lines · Vineet Gupta
Quoted 6 lines · Chen Gang
For many individual modules may need check
CPU_LITTLE_ENDIANorCPU_BIG_ENDIAN, which is an architecture's attribute.Or they have to list many architectures which they support, which they don't support. And still, it is not precise.
Quoted 8 lines
Quoted 3 lines
For architecture API, endian is a main architecture's attribute which may be used by outside, so every architecture need let outside know about it, explicitly.
I don't think that is correct. The modules need to use standard API e.g. swab which will take care of proper endian handling anyways. Why would a module do anything endian specific outside of those APIs.
For building time, modules can check endians with various API. But for config time, at present, we have no related standard API for it.
Quoted 4 lines
And again is this churn just theoretical or do you really have a issue at hand ! I would not accept a change for ARC unless you prove that something is broken (or atleast potentially broken) !
An issue for allmodconfig under microblaze, the original patch is below (I guess, not only one module may match this case):
-------- Forwarded Message --------
Subject: [PATCH] drivers/isdn/hisax/Kconfig: Let HISAX_NETJET skip microblaze architecture
Date: Tue, 05 Aug 2014 02:24:09 +0800
From: Chen Gang <[email protected]>
To: [email protected]
CC: [email protected], Jean Delvare <[email protected]>, [email protected], [email protected] <[email protected]>, [email protected]
For HISAX_NETJET, HISAX_NETJET_U or related config needs !__BIG_ENDIAN, so skip microblaze, just like skip all other architectures which have no CONFIG_*_ENDIAN.
The related error (with allmodconfig under microblaze):
CC [M] drivers/isdn/hisax/nj_s.o
drivers/isdn/hisax/nj_s.c: In function 'setup_netjet_s':
drivers/isdn/hisax/nj_s.c:265:2: error: #error "not running on big endian machines now"
#error "not running on big endian machines now"
^
--- drivers/isdn/hisax/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/isdn/hisax/Kconfig +2 -2
@@ -237,7 +237,7 @@ config HISAX_MIC config HISAX_NETJET bool "NETjet card" - depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN))) + depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE)) depends on VIRT_TO_BUS help This enables HiSax support for the NetJet from Traverse
@@ -249,7 +249,7 @@ config HISAX_NETJET config HISAX_NETJET_U bool "NETspider U card" - depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN))) + depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE)) depends on VIRT_TO_BUS help This enables HiSax support for the Netspider U interface ISDN card
Thanks.
Signature · 3 lines
Chen Gang Open, share, and attitude like air, water, and life which God blessed
Max Filippov
maintainerHi Chen,
Quoted 17 lines · Chen Gang
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve
Kbuildto probe endian to deside whether need mark__BUILDING_TIME_BIG_ENDIAN__before real config.
[...]
arch/xtensa/Kconfig config XTENSA · line 29
Quoted 13 lines
arch/xtensa/Kconfig +2
-0@@ -22,6 +22,8 @@ config XTENSA select HAVE_IRQ_TIME_ACCOUNTING select HAVE_PERF_EVENTS select COMMON_CLK + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN help Xtensa processors are 32-bit RISC machines designed by Tensilica primarily for embedded systems. These processors are both
I've tested this part and it doesn't select neither CPU_BIG_ENDIAN, nor CPU_LITTLE_ENDIAN. And looking into the Kconfig/Kbuild I cound't find anything related to __BUILDING_TIME_BIG_ENDIAN__. Am I missing something?
Signature · 2 lines
Thanks. -- Max
Max Filippov
maintainerQuoted 23 lines · Max Filippov
Hi Chen,
Quoted 17 lines · Chen Gang
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve
Kbuildto probe endian to deside whether need mark__BUILDING_TIME_BIG_ENDIAN__before real config.[...]
Quoted 16 lines
arch/xtensa/Kconfig config XTENSA · line 29
Quoted 13 lines
arch/xtensa/Kconfig +2
-0@@ -22,6 +22,8 @@ config XTENSA select HAVE_IRQ_TIME_ACCOUNTING select HAVE_PERF_EVENTS select COMMON_CLK + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN help Xtensa processors are 32-bit RISC machines designed by Tensilica primarily for embedded systems. These processors are bothI've tested this part and it doesn't select neither
CPU_BIG_ENDIAN, norCPU_LITTLE_ENDIAN. And looking into the Kconfig/Kbuild I cound't
Correction: it always selects CPU_LITTLE_ENDIAN, regardless of the compiler endianness.
Quoted 2 lines
find anything related to
__BUILDING_TIME_BIG_ENDIAN__. Am I missing something?
Signature · 2 lines
Thanks. -- Max
Quoted 13 lines · Max Filippov
Quoted 12 lines · Max Filippov
Hi Chen,
Quoted 9 lines · Chen Gang
Normal architectures:
- Big endian: avr32, frv, m68k, openrisc, parisc, s390, sparc
- Little endian: alpha, blackfin, cris, hexagon, ia64, metag, mn10300,
score, unicore32, x86- Choose in config time: arc, arm, arm64, c6x, m32r, mips, powerpc, sh
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Special architectures:
- Deside by compiler: microblaze, tile, xtensa.
- Deside by building host: um
- Next, need improve
Kbuildto probe endian to deside whether need mark__BUILDING_TIME_BIG_ENDIAN__before real config.
Please check this comments, thanks.
Quoted 20 lines
Quoted 19 lines
[...]
arch/xtensa/Kconfig config XTENSA · line 29
Quoted 13 lines
arch/xtensa/Kconfig +2
-0@@ -22,6 +22,8 @@ config XTENSA select HAVE_IRQ_TIME_ACCOUNTING select HAVE_PERF_EVENTS select COMMON_CLK + select CPU_BIG_ENDIAN if __BUILDING_TIME_BIG_ENDIAN__ + select CPU_LITTLE_ENDIAN if !CPU_BIG_ENDIAN help Xtensa processors are 32-bit RISC machines designed by Tensilica primarily for embedded systems. These processors are bothI've tested this part and it doesn't select neither
CPU_BIG_ENDIAN, norCPU_LITTLE_ENDIAN. And looking into the Kconfig/Kbuild I cound't
Quoted 3 lines
Correction: it always selects
CPU_LITTLE_ENDIAN, regardless of the compiler endianness.
Yeah, at present, it always select CPU_LITTLE_ENDIAN, next, Kbuild need be improved for it, just the comments said.
If this patch can be pass checking, I shall improve the Kbuild for it, also will modify some individual drivers to use CPU_*_ENDIAN.
I guess, we need Cc to kbuild for getting more ideas, suggestions, or completions.
THanks.
Signature · 3 lines
Chen Gang Open, share, and attitude like air, water, and life which God blessed