diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2016-03-20 17:58:35 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2016-03-31 19:35:13 +0200 |
commit | feb9f08cfe8ddd1fd4fb62265e17ee35147ab268 (patch) | |
tree | da452e5e8aa09cd6ef0c9d9d83033a8d4f3d623c /libc/sysdeps/linux/arm/clone.S | |
parent | 4ab024d22980cf493dc95a089353df6ebc743f46 (diff) |
arm: simplify handling of Thumb related options
Currently, the Thumb support on ARM has three related Config.in
options, which are not trivial for users to understand, and are in
fact not needed:
- The USE_BX option is not needed: knowing whether BX is available or
not is easy. If you have an ARM > v4 or ARMv4T, then BX is
available, otherwise it's not. This is the logic used in glibc.
- The USE_LDREXSTREX option is not needed: whenever Thumb2 is
available, ldrex/strex are available, so we can simply rely on
__thumb2__ to determine whether ldrex/strex should be used, without
requiring a Config.in option.
- Once USE_BX and USE_LDREXSTREX are removed, the only thing left
that COMPILE_IN_THUMB does is to set -mthumb. This makes the option
unnecessary, as on ARM at least, the user is already supposed to
pass -march=<foo> or other compiler options tuning the library for
a specific ARM variant. There is no reason to do otherwise for
Thumb, which allows to get rid of the COMPILE_IN_THUMB option.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'libc/sysdeps/linux/arm/clone.S')
-rw-r--r-- | libc/sysdeps/linux/arm/clone.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/arm/clone.S b/libc/sysdeps/linux/arm/clone.S index b4c7d8a02..fd7590dd0 100644 --- a/libc/sysdeps/linux/arm/clone.S +++ b/libc/sysdeps/linux/arm/clone.S @@ -69,7 +69,7 @@ __clone: @ pick the function arg and call address off the stack and execute ldr r0, [sp, #4] -#if defined(__USE_BX__) +#if defined(ARCH_HAS_BX) ldr r1, [sp] bl 2f @ blx r1 #else |