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.1...@anciens.enib.fr> Cc: Khem Raj <raj.k...@gmail.com> Cc: Bernhard Reutner-Fischer <rep.dot....@gmail.com> Cc: Carmelo AMOROSO <carmelo.amor...@st.com> --- extra/Configs/Config.arm | 7 +++++-- libc/sysdeps/linux/arm/bits/arm_asm.h | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index 3003be3..13e2ce3 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -13,6 +13,9 @@ config FORCE_OPTIONS_FOR_ARCH select ARCH_ANY_ENDIAN config USE_BX - bool "Use BX in function return" + bool "Use BX (if available) in functions return" help - Use BX instruction for THUMB aware architectures. + If available on your target processor, use BX to return from functions. + + 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. diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h b/libc/sysdeps/linux/arm/bits/arm_asm.h index 1d87df6..953f0d0 100644 --- 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 /* __WANTS_BX__ */ +#endif /* _ARM_ASM_H */ -- 1.7.1 _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc