• Geert Uytterhoeven's avatar
    m32r: fix endianness constraints · c95f1211
    Geert Uytterhoeven authored
    The m32r Kconfig provides both CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN
    configuration options.  As they are user-selectable and independent,
    this allows invalid configurations:
    
      - All m32r defconfigs build a big endian kernel, but CPU_BIG_ENDIAN is
        not set, causing compiler warnings like:
    
    	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
    	  ^
    
      - Since commit 5bdfca64 ("m32r: define CPU_BIG_ENDIAN"),
        building an allmodconfig or allyesconfig enables both
        CONFIG_CPU_BIG_ENDIAN and CONFIG_CPU_LITTLE_ENDIAN.
        While this did get rid of the warning above, both options are
        obviously mutually exclusive.
    
    Fix this by making only CPU_LITTLE_ENDIAN configurable by the user, as
    before, and by making sure exactly one of CPU_BIG_ENDIAN and
    CPU_LITTLE_ENDIAN is always enabled.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Fixes: 5bdfca64 ("m32r: define CPU_BIG_ENDIAN")
    Signed-off-by: default avatarGeert Uytterhoeven <[email protected]>
    Cc: Sudip Mukherjee <[email protected]>
    Signed-off-by: default avatarAndrew Morton <[email protected]>
    Signed-off-by: default avatarLinus Torvalds <[email protected]>
    c95f1211
Kconfig 9.17 KB