This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][Arm] Fix multilibs for Armv7-R
- From: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- To: "Andre Vieira (lists)" <andre dot simoesdiasvieira at arm dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Cc: Kyrylo Tkachov <Kyrylo dot Tkachov at arm dot com>
- Date: Fri, 18 Oct 2019 12:04:46 +0100
- Subject: Re: [PATCH][Arm] Fix multilibs for Armv7-R
- References: <aad3a024-115a-69ca-83bb-ed073157b748@arm.com>
On 18/10/2019 11:53, Andre Vieira (lists) wrote:
Hi
This patch maps multilibs using -march=armv7-r+vfpv3-d16-fp16 and
-march=armv7-r+vfpv3-d16-fp16+idiv to v7+fp. This patch also adds a new
multilib for armv7-r+fp.sp and maps -march=armv7-r+fp.sp+idiv,
-march=armv7-r+vfpv3xd-fp16 and -march=armv7-r+vfpv3xd-fp16+idiv to it.
This solves issues encountered when trying to link for
-mcpu=cortex-r8 -mfloat-abi=hard.
Built arm-none-eabi and compared testsuite run of
-march=armv7e-m+fp/-mfloat-abi=hard to
-march=armv7-r+fp.sp/-mfloat-abi=hard which looked alright.
Is this OK for trunk?
gcc/ChangeLog:
2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/arm/t-multilib: Add new multilib variants and new
mappings.
gcc/testsuite/ChangeLog:
2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
* gcc.target/arm/multilib.exp: Add extra tests.
Cheers,
Andre
+s-mlib: $(srcdir)/config/arm/t-multilib $(srcdir)/config/arm/t-aprofile
$(srcdir)/config/arm/t-rmprofile
Needs to be mentioned in the ChangeLog
+MULTILIB_MATCHES += $(foreach ARCH,+fp +fp+idiv +vfpv3-d16-fp16
+vfpv3-d16-fp16+idiv, \
+ march?armv7+fp=march?armv7-r$(ARCH))
The list here is the DP dual of v7_r_sp_variants, so it would make more
sense to define v7_r_dp_variants and use it here.
+ {-march=armv7-r+fp -mfpu=auto -mfloat-abi=softfp} "thumb/v7+fp/softfp"
+ {-march=armv7-r+fp -mfpu=auto -mfloat-abi=hard} "thumb/v7+fp/hard"
+ {-march=armv7-r+fp+idiv -mfpu=auto -mfloat-abi=softfp}
"thumb/v7+fp/softfp"
+ {-march=armv7-r+fp+idiv -mfpu=auto -mfloat-abi=hard} "thumb/v7+fp/hard"
+ {-march=armv7-r+vfpv3-d16-fp16 -mfpu=auto -mfloat-abi=softfp}
"thumb/v7+fp/softfp"
+ {-march=armv7-r+vfpv3-d16-fp16 -mfpu=auto -mfloat-abi=hard}
"thumb/v7+fp/hard"
+ {-march=armv7-r+vfpv3-d16-fp16+idiv -mfpu=auto -mfloat-abi=softfp}
"thumb/v7+fp/softfp"
+ {-march=armv7-r+vfpv3-d16-fp16+idiv -mfpu=auto -mfloat-abi=hard}
"thumb/v7+fp/hard"
+ {-march=armv7-r+fp.sp -mfpu=auto -mfloat-abi=softfp}
"thumb/v7-r+fp.sp/softfp"
+ {-march=armv7-r+fp.sp -mfpu=auto -mfloat-abi=hard}
"thumb/v7-r+fp.sp/hard"
+ {-march=armv7-r+fp.sp+idiv -mfpu=auto -mfloat-abi=softfp}
"thumb/v7-r+fp.sp/softfp"
+ {-march=armv7-r+fp.sp+idiv -mfpu=auto -mfloat-abi=hard}
"thumb/v7-r+fp.sp/hard"
+ {-march=armv7-r+vfpv3xd -mfpu=auto -mfloat-abi=softfp}
"thumb/v7-r+fp.sp/softfp"
+ {-march=armv7-r+vfpv3xd -mfpu=auto -mfloat-abi=hard}
"thumb/v7-r+fp.sp/hard"
+ {-march=armv7-r+vfpv3xd+idiv -mfpu=auto -mfloat-abi=softfp}
"thumb/v7-r+fp.sp/softfp"
+ {-march=armv7-r+vfpv3xd+idiv -mfpu=auto -mfloat-abi=hard}
"thumb/v7-r+fp.sp/hard"
+ {-march=armv7-r+vfpv3xd-fp16+idiv -mfpu=auto
-mfloat-abi=softfp} "thumb/v7-r+fp.sp/softfp"
+ {-march=armv7-r+vfpv3xd-fp16+idiv -mfpu=auto -mfloat-abi=hard}
"thumb/v7-r+fp.sp/hard"
8 spaces -> 1 tab.
OK with those changes.
R.