Remove selection for ARM variants from menuconfig, v2

Yann E. MORIN yann.morin.1998 at anciens.enib.fr
Sun Jan 9 00:45:03 UTC 2011


All,

This patch series removes the variants selection for the ARM architecture.
The initial idea is that the user is responsible for properly configuring
the compiler in the first place, or passing appropriate EXTRA_CFLAGS to
use settings that are not the compiler's default.


I split the process in small steps, so that each step contains a single,
semantically self-contained change that is easy to understand and review,
and that does not break.

For example, before we can remove the variants selection, we need a way to
know if use of BX is possible, so we need to know if the CPU is Thumb-aware
(and even Thumb-only). Then we can remove the CPUs selection, remove the
forcing blind options, and add a prompt to the Thumb option.

This means that some stuff added in one patch (mostly in patch #2) will get
removed in a subsequent patch. Up to, and including patch #2, there is no
change in  behavior, from the perspective of the user.

Last patch, "remove EABI/OABI selection", might seem dubious in the first
place, as Khem pointed out. Indeed, this means that to detect whether we
are EABI or OABI, we need a cross-compiler. This poses no problem for
NPTL, as a cross-compiler is required even to install the headers. But
for LinuxThreads, we currently do not require a cross-compiler when
installing the headers. Having to would be a serious regression. But
from my experiments, headers do not depend on EABI or OABI.  The
installed headers only differ in bits/uClibc_config.h:
 - build date
 - #define and #undef for OABI/EABI

So I believe that removing the EABI selection is perfectly valid.

For info, I produced a reference uClibc.so from origin, built each steps
with corresponding options, objdumped the resulting uClibc.so and compared
to the reference that the build would produce the same library.


Changes since v1:
- keep the "Compile n Thumb mode" option (thus it's a new feature)
- fix variable names as per Khem's suggestion on IRC
- reorder series, EABI selection removal now last in series

 [PATCH 1/7] ARM: reorder "Use BX" option
 [PATCH 2/7] ARM: introduce blind options to select & force THUMB mode
 [PATCH 3/7] ARM: remove sub-arch/variants selection from menuconfig
 [PATCH 4/7] ARM: transform the EABI/OABI choice into a boolean
 [PATCH 5/7] ARM: #include <bits/arm_asm.h> where __USE_BX__ is used
 [PATCH 6/7] ARM: detect BX availibility at build time
 [PATCH 7/7] ARM: remove EABI/OABI selection

 Rules.mak                              |   20 +-----
 extra/Configs/Config.arm               |  122 ++----------------------------
 ldso/ldso/arm/dl-startup.h             |    1 +
 libc/sysdeps/linux/arm/Makefile.arch   |    9 ++-
 libc/sysdeps/linux/arm/bits/arm_asm.h  |    9 ++-
 libc/sysdeps/linux/arm/bits/huge_val.h |    4 +-
 libc/sysdeps/linux/arm/sysdep.h        |    1 +
 7 files changed, 28 insertions(+), 138 deletions(-)

Regards,
Yann E. MORIN.


More information about the uClibc mailing list