]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: arm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR...
authorPrzemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Fri, 10 Jan 2020 16:50:15 +0000 (16:50 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Fri, 10 Jan 2020 16:50:15 +0000 (16:50 +0000)
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

gcc/ChangeLog
gcc/config/arm/t-multilib
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/multilib.exp

index 2cd0984ad85314d4e0e8710c4f849fa7667acf61..1e4ff7e6e2b01dd15da4cce6c58a6da2813eb856 100644 (file)
@@ -1,3 +1,11 @@
+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
index d5ee537193f2416909516c563b9848a79dabb1bf..87069f71ecc9a0014a0f78691e390f9605c2395c 100644 (file)
@@ -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
index b39c1069c2979ac1a51892427bcb727b95d2fae7..659203f4707ed5c2cb87d4a46d449fc625ea91b7 100644 (file)
@@ -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
index dcea829965eb15e372401e6389df5a1403393ecb..2df3f9c3117432299ad6ce8746babd5ff4abe405 100644 (file)
@@ -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"