Re: [PATCH v3] arch: Kconfig: Let all architectures set endian explicitly
From: Chen Gang <hidden>
Date: 2014-08-15 01:25:35
Also in:
linux-mips, linux-um, linuxppc-dev
Subsystem:
the rest · Maintainer:
Linus Torvalds
On 8/15/14 7:12, Vineet Gupta wrote:
On Thursday 14 August 2014 03:22 PM, Chen Gang wrote:quoted
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.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.
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 <redacted>
To: isdn@linux-pingi.de
CC: davem@davemloft.net, Jean Delvare <redacted>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org <redacted>, monstr@monstr.eu
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"
^
Signed-off-by: Chen Gang <redacted>
---
drivers/isdn/hisax/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
index 97465ac..eb83d94 100644
--- a/drivers/isdn/hisax/Kconfig
+++ b/drivers/isdn/hisax/Kconfig@@ -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. -- Chen Gang Open, share, and attitude like air, water, and life which God blessed