mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
The "use BX" option is now a suggestion that BX be used if available.
 | 
						|
Use a macro to detect if BX is available at build time. If so, and
 | 
						|
the user requested it be used, then use it. Otherwise, error out.
 | 
						|
 | 
						|
Macro courtesy Khem RAJ:
 | 
						|
  http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html
 | 
						|
 | 
						|
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
 | 
						|
Cc: Khem Raj <raj.khem@gmail.com>
 | 
						|
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
 | 
						|
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
 | 
						|
---
 | 
						|
 extra/Configs/Config.arm              |    4 +++-
 | 
						|
 libc/sysdeps/linux/arm/bits/arm_asm.h |    9 ++++++++-
 | 
						|
 2 files changed, 11 insertions(+), 2 deletions(-)
 | 
						|
 | 
						|
--- a/extra/Configs/Config.arm
 | 
						|
+++ b/extra/Configs/Config.arm
 | 
						|
@@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE
 | 
						|
 config USE_BX
 | 
						|
 	bool "Use BX in function return"
 | 
						|
 	help
 | 
						|
-	  Use BX instruction for THUMB aware architectures.
 | 
						|
+	  Say 'y' to use BX to return from functions on your thumb-aware
 | 
						|
+	  processor. Say 'y' if you need to use interworking. Say 'n' if not.
 | 
						|
+	  It is safe to say 'y' even if you're not doing interworking.
 | 
						|
--- a/libc/sysdeps/linux/arm/bits/arm_asm.h
 | 
						|
+++ b/libc/sysdeps/linux/arm/bits/arm_asm.h
 | 
						|
@@ -24,5 +24,12 @@
 | 
						|
 #define THUMB1_ONLY 1
 | 
						|
 #endif
 | 
						|
 
 | 
						|
-#endif /* _ARM_ASM_H */
 | 
						|
+#if defined(__USE_BX__)
 | 
						|
+# if (   defined (__ARM_ARCH_2__)  || defined (__ARM_ARCH_3__) \
 | 
						|
+      || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
 | 
						|
+     )
 | 
						|
+#  error Use of BX was requested, but is not available on the target processor.
 | 
						|
+# endif /* ARCH level */
 | 
						|
+#endif /* __USE_BX__ */
 | 
						|
 
 | 
						|
+#endif /* _ARM_ASM_H */
 |