Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 457054 Details for
Bug 603398
sys-devel/gcc: cortex-m multilibs support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
arm-embedded-multilib.patch
arm-embedded-multilib.patch (text/plain), 8.23 KB, created by
hexum
on 2016-12-21 22:12:32 UTC
(
hide
)
Description:
arm-embedded-multilib.patch
Filename:
MIME Type:
Creator:
hexum
Created:
2016-12-21 22:12:32 UTC
Size:
8.23 KB
patch
obsolete
>From here >https://gcc.gnu.org/ml/gcc-patches/2015-11/msg03400.html > >diff --git a/gcc/config.gcc b/gcc/config.gcc >index a6b77ae..e7a9641 100644 >--- a/gcc/config.gcc >+++ b/gcc/config.gcc >@@ -3830,6 +3830,18 @@ case "${target}" in > tmake_file="${tmake_file} arm/t-aprofile" > break > ;; >+ armv6-m|armv7|armv7-m|armv7e-m|armv7-r|armv7-a|cortex-m7) >+ if test "x$with_arch" != x \ >+ || test "x$with_cpu" != x \ >+ || test "x$with_float" != x \ >+ || test "x$with_fpu" != x \ >+ || test "x$with_mode" != x ; then >+ echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2 >+ exit 1 >+ fi >+ tmake_file_ml=" arm/t-rmprofile" >+ TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${arm_multilib}" >+ ;; > default) > ;; > *) >@@ -3838,6 +3850,8 @@ case "${target}" in > ;; > esac > done >+ tmake_file="${tmake_file}${tmake_file_ml}" >+ TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` > fi > ;; > >diff --git a/gcc/config/arm/t-rmprofile b/gcc/config/arm/t-rmprofile >new file mode 100644 >index 0000000..65d60c0 >--- /dev/null >+++ b/gcc/config/arm/t-rmprofile >@@ -0,0 +1,121 @@ >+# Copyright (C) 2012-2015 Free Software Foundation, Inc. >+# >+# This file is part of GCC. >+# >+# GCC is free software; you can redistribute it and/or modify >+# it under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3, or (at your option) >+# any later version. >+# >+# GCC is distributed in the hope that it will be useful, >+# but WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with GCC; see the file COPYING3. If not see >+# <http://www.gnu.org/licenses/>. >+ >+# This is a target makefile fragment that attempts to get >+# multilibs built for the range of CPU's, FPU's and ABI's the user did >+# customize via the configure option --with-multilib-list. >+# It should not be used in conjunction with another make file fragment and >+# assumes --with-arch, --with-cpu, --with-fpu, --with-float, --with-mode >+# have their default values during the configure step. We enforce >+# this during the top-level configury. >+ >+comma := , >+space := >+space += >+ >+MULTILIB_OPTIONS = mthumb/marm >+MULTILIB_DIRNAMES = thumb arm >+MULTILIB_OPTIONS += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7/mcpu=cortex-m7 >+MULTILIB_DIRNAMES += armv6-m armv7-m armv7e-m armv7-ar cortex-m7 >+MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard >+MULTILIB_DIRNAMES += softfp fpu >+MULTILIB_OPTIONS += mfpu=fpv4-sp-d16/mfpu=vfpv3-d16/mfpu=fpv5-sp-d16/mfpu=fpv5-d16 >+MULTILIB_DIRNAMES += fpv4-sp-d16 vfpv3-d16 fpv5-sp-d16 fpv5-d16 >+ >+MULTILIB_MATCHES = march?armv6s-m=mcpu?cortex-m0 >+MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m0plus >+MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m1 >+MULTILIB_MATCHES += march?armv6s-m=march?armv6-m >+MULTILIB_MATCHES += march?armv7-m=mcpu?cortex-m3 >+MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m4 >+MULTILIB_MATCHES += march?armv7=march?armv7-r >+MULTILIB_MATCHES += march?armv7=march?armv7-a >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r5 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r7 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a7 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9 >+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a15 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd-fp16 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4-d16 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-fp16 >+MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-vfpv4 >+ >+MULTILIB_EXCEPTIONS = >+MULTILIB_REUSE = >+ >+MULTILIB_REQUIRED = mthumb >+MULTILIB_REQUIRED += marm >+MULTILIB_REQUIRED += mfloat-abi=hard >+ >+MULTILIB_OSDIRNAMES = mthumb=!thumb >+MULTILIB_OSDIRNAMES += marm=!arm >+MULTILIB_OSDIRNAMES += mfloat-abi.hard=!fpu >+ >+ifneq (,$(findstring armv6-m,$(subst $(comma),$(space),$(TM_MULTILIB_CONFIG)))) >+MULTILIB_REQUIRED += mthumb/march=armv6s-m >+MULTILIB_OSDIRNAMES += mthumb/march.armv6s-m=!armv6-m >+endif >+ >+ifneq (,$(findstring armv7-m,$(subst $(comma),$(space),$(TM_MULTILIB_CONFIG)))) >+MULTILIB_REQUIRED += mthumb/march=armv7-m >+MULTILIB_OSDIRNAMES += mthumb/march.armv7-m=!armv7-m >+endif >+ >+ifneq (,$(findstring armv7e-m,$(subst $(comma),$(space),$(TM_MULTILIB_CONFIG)))) >+MULTILIB_REQUIRED += mthumb/march=armv7e-m >+MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=softfp/mfpu=fpv4-sp-d16 >+MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=hard/mfpu=fpv4-sp-d16 >+MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m=!armv7e-m >+MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.hard/mfpu.fpv4-sp-d16=!armv7e-m/fpu >+MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.softfp/mfpu.fpv4-sp-d16=!armv7e-m/softfp >+endif >+ >+ifneq (,$(findstring cortex-m7,$(subst $(comma),$(space),$(TM_MULTILIB_CONFIG)))) >+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7 >+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfloat-abi=softfp/mfpu=fpv5-sp-d16 >+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfloat-abi=hard/mfpu=fpv5-sp-d16 >+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfloat-abi=softfp/mfpu=fpv5-d16 >+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfloat-abi=hard/mfpu=fpv5-d16 >+MULTILIB_OSDIRNAMES += mthumb/mcpu.cortex-m7=!cortex-m7 >+MULTILIB_OSDIRNAMES += mthumb/mcpu.cortex-m7/mfloat-abi.hard/mfpu.fpv5-sp-d16=!cortex-m7/fpu/fpv5-sp-d16 >+MULTILIB_OSDIRNAMES += mthumb/mcpu.cortex-m7/mfloat-abi.softfp/mfpu.fpv5-sp-d16=!cortex-m7/softfp/fpv5-sp-d16 >+MULTILIB_OSDIRNAMES += mthumb/mcpu.cortex-m7/mfloat-abi.hard/mfpu.fpv5-d16=!cortex-m7/fpu/fpv5-d16 >+MULTILIB_OSDIRNAMES += mthumb/mcpu.cortex-m7/mfloat-abi.softfp/mfpu.fpv5-d16=!cortex-m7/softfp/fpv5-d16 >+endif >+ >+ifneq (,$(filter armv7 armv7-r armv7-a,$(subst $(comma),$(space),$(TM_MULTILIB_CONFIG)))) >+MULTILIB_REQUIRED += mthumb/march=armv7 >+MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=softfp/mfpu=vfpv3-d16 >+MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=hard/mfpu=vfpv3-d16 >+MULTILIB_OSDIRNAMES += mthumb/march.armv7=!armv7-ar/thumb >+MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=!armv7-ar/thumb/fpu >+MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=!armv7-ar/thumb/softfp >+MULTILIB_REUSE += mthumb/march.armv7=marm/march.armv7 >+MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16 >+MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16 >+endif >diff --git a/gcc/configure b/gcc/configure >index 4041831..df563ce 100755 >--- a/gcc/configure >+++ b/gcc/configure >@@ -1713,7 +1713,7 @@ Optional Packages: > --with-specs=SPECS add SPECS to driver command-line processing > --with-pkgversion=PKG Use PKG in the version string in place of "GCC" > --with-bugurl=URL Direct users to URL to report a bug >- --with-multilib-list select multilibs (AArch64, SH and x86-64 only) >+ --with-multilib-list select multilibs (AArch64, ARM, SH and x86-64 only) > --with-gnu-ld assume the C compiler uses GNU ld default=no > --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib > --without-libiconv-prefix don't search for libiconv in includedir and libdir >diff --git a/gcc/configure.ac b/gcc/configure.ac >index d426791..d48d69f 100644 >--- a/gcc/configure.ac >+++ b/gcc/configure.ac >@@ -978,7 +978,7 @@ if test x"$enable_hsa" = x1 ; then > fi > > AC_ARG_WITH(multilib-list, >-[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])], >+[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, ARM, SH and x86-64 only)])], > :, > with_multilib_list=default) >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 603398
: 457054