ARM: 9470/1: Handle BE8 vs BE32 in ARCH_CC_CAN_LINK
authorThomas Weissschuh <thomas.weissschuh@linutronix.de>
Fri, 6 Feb 2026 14:11:29 +0000 (15:11 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 9 Feb 2026 13:20:20 +0000 (13:20 +0000)
ARM big-endian has two different binary formats. BE8 and the older BE32.
They are incompatible with each other.

Handle those when evaluating ARCH_CC_CAN_LINK by using the respective
configuration of the kernel itself.

Fixes: 3df8585afd9b ("ARM: 9469/1: Implement ARCH_HAS_CC_CAN_LINK")
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/Kconfig

index 5ca4836..d5cb85d 100644 (file)
@@ -1719,12 +1719,14 @@ endmenu
 config ARCH_CC_CAN_LINK
        bool
        default $(cc_can_link_user,-mlittle-endian) if CPU_LITTLE_ENDIAN
-       default $(cc_can_link_user,-mbig-endian) if CPU_BIG_ENDIAN
+       default $(cc_can_link_user,-mbig-endian -mbe8) if CPU_ENDIAN_BE8
+       default $(cc_can_link_user,-mbig-endian -mbe32) if CPU_ENDIAN_BE32
 
 config ARCH_USERFLAGS
        string
        default "-mlittle-endian" if CPU_LITTLE_ENDIAN
-       default "-mbig-endian" if CPU_BIG_ENDIAN
+       default "-mbig-endian -mbe8" if CPU_ENDIAN_BE8
+       default "-mbig-endian -mbe32" if CPU_ENDIAN_BE32
 
 menu "Power management options"