diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2020-01-08 09:29:02 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2020-01-08 09:29:02 +0000 |
commit | d5bc18085c8b0344e7b53febc3cd3cc681a98ea3 (patch) | |
tree | 062bb27ce4d50748909a6f61c238e45b508437a7 /gcc | |
parent | 54b0c0f0e9786d66a4a3202aa389d92680f02614 (diff) | |
download | gcc-d5bc18085c8b0344e7b53febc3cd3cc681a98ea3.zip gcc-d5bc18085c8b0344e7b53febc3cd3cc681a98ea3.tar.gz gcc-d5bc18085c8b0344e7b53febc3cd3cc681a98ea3.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/arm/t-multilib | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/arm/multilib.exp | 16 |
4 files changed, 37 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6387fcc..b94fb86 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +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> PR ipa/93084 diff --git a/gcc/config/arm/t-multilib b/gcc/config/arm/t-multilib index 0e16340..3993436 100644 --- a/gcc/config/arm/t-multilib +++ b/gcc/config/arm/t-multilib @@ -133,10 +133,19 @@ MULTILIB_MATCHES += march?armv7-r+fp.sp=march?armv8-r+crc+fp.sp ifeq (,$(HAS_APROFILE)) # Map all v7-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), \ 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 # ARMv7ve FP/SIMD variants: map down to v7+fp diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8ee00ce..cb3c430 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +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> PR ipa/93084 diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp b/gcc/testsuite/gcc.target/arm/multilib.exp index dc7c171..e83d1da 100644 --- a/gcc/testsuite/gcc.target/arm/multilib.exp +++ b/gcc/testsuite/gcc.target/arm/multilib.exp @@ -442,6 +442,22 @@ if {[multilib_config "aprofile"] } { 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"] } { foreach {opts dir} { {-mcpu=cortex-m0 -mfpu=auto -mfloat-abi=soft} "thumb/v6-m/nofp" |