[gcc/devel/omp/gcc-9] backport: arm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR target/93188)
Tobias Burnus
burnus@gcc.gnu.org
Thu Mar 5 14:38:00 GMT 2020
https://gcc.gnu.org/g:2108fc2b90ae67e3c02268a84e8c6ce06dba7439
commit 2108fc2b90ae67e3c02268a84e8c6ce06dba7439
Author: Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Date: Fri Jan 10 16:50:15 2020 +0000
backport: 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
gcc/ChangeLog:
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
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/testsuite/ChangeLog:
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
* gcc.target/arm/multilib.exp: Add new tests for rm-profile only.
From-SVN: r280123
Diff:
---
gcc/ChangeLog | 8 ++++++++
gcc/config/arm/t-multilib | 9 +++++++++
gcc/testsuite/ChangeLog | 7 +++++++
gcc/testsuite/gcc.target/arm/multilib.exp | 16 ++++++++++++++++
4 files changed, 40 insertions(+)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2cd0984..1e4ff7e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,14 @@
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
+ 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-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
+ Backport from trunk
* config/arm/t-multilib: Use arm->thumb multilib reuse rules
on a-profile.
diff --git a/gcc/config/arm/t-multilib b/gcc/config/arm/t-multilib
index d5ee537..87069f7 100644
--- a/gcc/config/arm/t-multilib
+++ b/gcc/config/arm/t-multilib
@@ -132,10 +132,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 b39c106..659203f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
+ Backport from trunk
+ PR target/93188
+ Backport from trunk
+ * gcc.target/arm/multilib.exp: Add new tests for rm-profile only.
+
2020-01-10 Tobias Burnus <tobias@codesourcery.com>
Backported from mainline
diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp b/gcc/testsuite/gcc.target/arm/multilib.exp
index dcea829..2df3f9c 100644
--- a/gcc/testsuite/gcc.target/arm/multilib.exp
+++ b/gcc/testsuite/gcc.target/arm/multilib.exp
@@ -434,6 +434,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"
More information about the Gcc-cvs
mailing list