Commit d5bc1808 by Richard Earnshaw Committed by Richard Earnshaw

arm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR target/93188)

When only the rmprofile multilibs are built, compiling for armv7-a
should select the generic v7 multilibs.  This used to work before +sec
and +mp were added to the architecture options but it was broken by
that update.  This patch fixes those variants and adds some tests to
ensure that they remain fixed ;-)

	PR target/93188
	* config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
	armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
	when only building rm-profile multilibs.

	* gcc.target/arm/multilib.exp: Add new tests for rm-profile only.

From-SVN: r279993
parent 54b0c0f0
2020-01-08 Richard Earnshaw <rearnsha@arm.com>
PR target/93188
* config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
when only building rm-profile multilibs.
2020-01-08 Feng Xue <fxue@os.amperecomputing.com> 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/93084 PR ipa/93084
......
...@@ -133,10 +133,19 @@ MULTILIB_MATCHES += march?armv7-r+fp.sp=march?armv8-r+crc+fp.sp ...@@ -133,10 +133,19 @@ MULTILIB_MATCHES += march?armv7-r+fp.sp=march?armv8-r+crc+fp.sp
ifeq (,$(HAS_APROFILE)) ifeq (,$(HAS_APROFILE))
# Map all v7-a # Map all v7-a
MULTILIB_MATCHES += march?armv7=march?armv7-a MULTILIB_MATCHES += march?armv7=march?armv7-a
MULTILIB_MATCHES += $(foreach ARCH, $(v7_a_arch_variants), \
march?armv7=march?armv7-a$(ARCH))
MULTILIB_MATCHES += $(foreach ARCH, $(v7_a_nosimd_variants) $(v7_a_simd_variants), \ MULTILIB_MATCHES += $(foreach ARCH, $(v7_a_nosimd_variants) $(v7_a_simd_variants), \
march?armv7+fp=march?armv7-a$(ARCH)) march?armv7+fp=march?armv7-a$(ARCH))
MULTILIB_MATCHES += $(foreach ARCHVAR, $(v7_a_arch_variants), \
$(foreach ARCH, $(v7_a_nosimd_variants) $(v7_a_simd_variants), \
march?armv7+fp=march?armv7-a$(ARCHVAR)$(ARCH)))
MULTILIB_MATCHES += march?armv7=march?armv7ve MULTILIB_MATCHES += march?armv7=march?armv7ve
# ARMv7ve FP/SIMD variants: map down to v7+fp # ARMv7ve FP/SIMD variants: map down to v7+fp
......
2020-01-08 Richard Earnshaw <rearnsha@arm.com>
PR target/93188
* gcc.target/arm/multilib.exp: Add new tests for rm-profile only.
2020-01-08 Feng Xue <fxue@os.amperecomputing.com> 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/93084 PR ipa/93084
......
...@@ -442,6 +442,22 @@ if {[multilib_config "aprofile"] } { ...@@ -442,6 +442,22 @@ if {[multilib_config "aprofile"] } {
check_multi_dir $opts $dir check_multi_dir $opts $dir
} }
} }
if {[multilib_config "rmprofile"] && ![multilib_config "aprofile"]} {
foreach {opts dir} {
{-mcpu=cortex-a9 -mfpu=auto -mfloat-abi=soft} "thumb/v7/nofp"
{-mcpu=cortex-a8 -mfpu=auto -mfloat-abi=softfp} "thumb/v7+fp/softfp"
{-mcpu=cortex-a5 -mfpu=auto -mfloat-abi=hard} "thumb/v7+fp/hard"
{-mcpu=cortex-a53 -mfpu=auto -mfloat-abi=hard} "thumb/v7+fp/hard"
{-march=armv7-a+fp -mfpu=auto -mfloat-abi=softfp} "thumb/v7+fp/softfp"
{-march=armv7-a+fp -mfpu=auto -mfloat-abi=soft} "thumb/v7/nofp"
{-march=armv7-a+mp+simd -mfpu=auto -mfloat-abi=softfp} "thumb/v7+fp/softfp"
{-march=armv7-a -mfpu=vfpv4 -mfloat-abi=hard} "thumb/v7+fp/hard"
{-march=armv7-a+fp -mfpu=auto -mfloat-abi=hard} "thumb/v7+fp/hard"
{-march=armv7-a -mfpu=vfpv4 -mfloat-abi=soft} "thumb/v7/nofp"
} {
check_multi_dir $opts $dir
}
}
if {[multilib_config "rmprofile"] } { if {[multilib_config "rmprofile"] } {
foreach {opts dir} { foreach {opts dir} {
{-mcpu=cortex-m0 -mfpu=auto -mfloat-abi=soft} "thumb/v6-m/nofp" {-mcpu=cortex-m0 -mfpu=auto -mfloat-abi=soft} "thumb/v6-m/nofp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment