Now that the default FPU is 'auto' we can finally rewrite (and simplify) the rules for mapping compiler options to multilibs. We no-longer need to know the specific CPU, since the driver will construct a suitable -march flag for us; this greatly simplifies the overall logic. This patch rewrites the library list for A-profile cores. We use various Make extention rules to simplify the logic even further.
A couple of minor tweaks to the configure script and to the main driver ensures that we always know the setting of -mfloat-abi and-marm/-mthumb. Again, this helps simplify the logic further. The change to arm_target_thumb_only relies on the fact that this routine is only called if neither -marm nor -mthumb has been previously selected or specified by the user.
A new testsuite module is added to check the libraries generated. The new tests are only run if the compiler is configured with the relevant multilibs enabled.
- config.gcc: (arm*-*-*): When building a-profile libraries, force the driver to pass through the default setting of -mfloat-abi.
- common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm rather than NULL.
- config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty. (all_feat_combs): New rule. (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework default libraries.
- config/arm/t-aprofile: Rewrite.
- gcc.target/arm/multilibs.exp: New file.
c5e2cf2 [arm] Rewrite t-aprofile using new selector methodology
gcc/ChangeLog | 12 +
gcc/common/config/arm/arm-common.c | 4 +-
gcc/config.gcc | 4 +-
gcc/config/arm/t-aprofile | 211 +++++++----------
gcc/config/arm/t-multilib | 48 ++--
gcc/testsuite/ChangeLog | 4 +
gcc/testsuite/gcc.target/arm/multilib.exp | 381 ++++++++++++++++++++++++++++++
7 files changed, 514 insertions(+), 150 deletions(-)