gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / patches / gcc-6-arm-none-eabi-multilib.patch
1 From Anatol Pomozov <anatol.pomozov@gmail.com>
2 Taken from Arch Linux arm-none-eabi-gcc package.
3
4 Modified version of ARM patch https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00083/enable-with-multilib-list-for-arm.patch
5
6 This patch enables the use of the "--with-multilib-list" flag, when
7 configuring GCC 6.2. It makes GCC 6 compatible with the configure flags used
8 in the "gcc-arm-none-eabi-4.9" package.
9
10
11 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
12 index 4ab7405..6e1ea2c 100644
13 --- a/gcc/Makefile.in
14 +++ b/gcc/Makefile.in
15 @@ -535,6 +535,7 @@ lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt
16 lang_specs_files=@lang_specs_files@
17 lang_tree_files=@lang_tree_files@
18 target_cpu_default=@target_cpu_default@
19 +with_multilib_list=@with_multilib_list@
20 OBJC_BOEHM_GC=@objc_boehm_gc@
21 extra_modes_file=@extra_modes_file@
22 extra_opt_files=@extra_opt_files@
23 diff --git a/gcc/config.gcc b/gcc/config.gcc
24 index cb08a5c..7bded02 100644
25 --- a/gcc/config.gcc
26 +++ b/gcc/config.gcc
27 @@ -1072,7 +1072,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
28 case ${target} in
29 arm*-*-eabi*)
30 tm_file="$tm_file newlib-stdint.h"
31 - tmake_file="${tmake_file} arm/t-bpabi"
32 + tmake_file="${tmake_file} arm/t-bpabi arm/t-mlibs"
33 use_gcc_stdint=wrap
34 ;;
35 arm*-*-rtems*)
36 @@ -3684,42 +3684,6 @@ case "${target}" in
37 exit 1
38 fi
39
40 - # Add extra multilibs
41 - if test "x$with_multilib_list" != x; then
42 - arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
43 - for arm_multilib in ${arm_multilibs}; do
44 - case ${arm_multilib} in
45 - aprofile)
46 - # Note that arm/t-aprofile is a
47 - # stand-alone make file fragment to be
48 - # used only with itself. We do not
49 - # specifically use the
50 - # TM_MULTILIB_OPTION framework because
51 - # this shorthand is more
52 - # pragmatic. Additionally it is only
53 - # designed to work without any
54 - # with-cpu, with-arch with-mode
55 - # with-fpu or with-float options.
56 - if test "x$with_arch" != x \
57 - || test "x$with_cpu" != x \
58 - || test "x$with_float" != x \
59 - || test "x$with_fpu" != x \
60 - || test "x$with_mode" != x ; then
61 - echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
62 - exit 1
63 - fi
64 - tmake_file="${tmake_file} arm/t-aprofile"
65 - break
66 - ;;
67 - default)
68 - ;;
69 - *)
70 - echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
71 - exit 1
72 - ;;
73 - esac
74 - done
75 - fi
76 ;;
77
78 fr*-*-*linux*)
79 diff --git a/gcc/config/arm/t-mlibs b/gcc/config/arm/t-mlibs
80 new file mode 100644
81 index 0000000..5720cf7
82 --- /dev/null
83 +++ b/gcc/config/arm/t-mlibs
84 @@ -0,0 +1,89 @@
85 +# A set of predefined MULTILIB which can be used for different ARM targets.
86 +# Via the configure option --with-multilib-list, user can customize the
87 +# final MULTILIB implementation.
88 +
89 +comma := ,
90 +space :=
91 +space +=
92 +
93 +MULTILIB_OPTIONS = mthumb/marm
94 +MULTILIB_DIRNAMES = thumb arm
95 +MULTILIB_OPTIONS += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7
96 +MULTILIB_DIRNAMES += armv6-m armv7-m armv7e-m armv7-ar
97 +MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
98 +MULTILIB_DIRNAMES += softfp fpu
99 +MULTILIB_OPTIONS += mfpu=fpv4-sp-d16/mfpu=vfpv3-d16
100 +MULTILIB_DIRNAMES += fpv4-sp-d16 vfpv3-d16
101 +
102 +MULTILIB_MATCHES = march?armv6s-m=mcpu?cortex-m0
103 +MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m0plus
104 +MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m1
105 +MULTILIB_MATCHES += march?armv6s-m=march?armv6-m
106 +MULTILIB_MATCHES += march?armv7-m=mcpu?cortex-m3
107 +MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m4
108 +MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m7
109 +MULTILIB_MATCHES += march?armv7=march?armv7-r
110 +MULTILIB_MATCHES += march?armv7=march?armv7-a
111 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
112 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
113 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r5
114 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r7
115 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5
116 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a7
117 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
118 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
119 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a15
120 +MULTILIB_MATCHES += mfpu?fpv4-sp-d16=mfpu?fpv5-sp-d16
121 +MULTILIB_MATCHES += mfpu?fpv4-sp-d16=mfpu?fpv5-d16
122 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3
123 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16
124 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16
125 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd
126 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd-fp16
127 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4
128 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4-d16
129 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon
130 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-fp16
131 +MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-vfpv4
132 +
133 +MULTILIB_EXCEPTIONS =
134 +MULTILIB_REUSE =
135 +
136 +MULTILIB_REQUIRED = mthumb
137 +MULTILIB_REQUIRED += marm
138 +MULTILIB_REQUIRED += mfloat-abi=hard
139 +
140 +MULTILIB_OSDIRNAMES = mthumb=!thumb
141 +MULTILIB_OSDIRNAMES += marm=!arm
142 +MULTILIB_OSDIRNAMES += mfloat-abi.hard=!fpu
143 +
144 +ifneq (,$(findstring armv6-m,$(subst $(comma),$(space),$(with_multilib_list))))
145 +MULTILIB_REQUIRED += mthumb/march=armv6s-m
146 +MULTILIB_OSDIRNAMES += mthumb/march.armv6s-m=!armv6-m
147 +endif
148 +
149 +ifneq (,$(findstring armv7-m,$(subst $(comma),$(space),$(with_multilib_list))))
150 +MULTILIB_REQUIRED += mthumb/march=armv7-m
151 +MULTILIB_OSDIRNAMES += mthumb/march.armv7-m=!armv7-m
152 +endif
153 +
154 +ifneq (,$(findstring armv7e-m,$(subst $(comma),$(space),$(with_multilib_list))))
155 +MULTILIB_REQUIRED += mthumb/march=armv7e-m
156 +MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=softfp/mfpu=fpv4-sp-d16
157 +MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=hard/mfpu=fpv4-sp-d16
158 +MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m=!armv7e-m
159 +MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.hard/mfpu.fpv4-sp-d16=!armv7e-m/fpu
160 +MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.softfp/mfpu.fpv4-sp-d16=!armv7e-m/softfp
161 +endif
162 +
163 +ifneq (,$(filter armv7 armv7-r armv7-a,$(subst $(comma),$(space),$(with_multilib_list))))
164 +MULTILIB_REQUIRED += mthumb/march=armv7
165 +MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=softfp/mfpu=vfpv3-d16
166 +MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=hard/mfpu=vfpv3-d16
167 +MULTILIB_OSDIRNAMES += mthumb/march.armv7=!armv7-ar/thumb
168 +MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=!armv7-ar/thumb/fpu
169 +MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=!armv7-ar/thumb/softfp
170 +MULTILIB_REUSE += mthumb/march.armv7=marm/march.armv7
171 +MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16
172 +MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16
173 +endif
174 diff --git a/gcc/configure b/gcc/configure
175 index 9523773..24952e3 100755
176 --- a/gcc/configure
177 +++ b/gcc/configure
178 @@ -763,6 +763,7 @@ SET_MAKE
179 accel_dir_suffix
180 real_target_noncanonical
181 enable_as_accelerator
182 +with_multilib_list
183 REPORT_BUGS_TEXI
184 REPORT_BUGS_TO
185 PKGVERSION
186 @@ -7462,6 +7463,7 @@ else
187 fi
188
189
190 +
191 # -------------------------
192 # Checks for other programs
193 # -------------------------
194 diff --git a/gcc/configure.ac b/gcc/configure.ac
195 index 68b0ee8..f8a1097 100644
196 --- a/gcc/configure.ac
197 +++ b/gcc/configure.ac
198 @@ -925,6 +925,7 @@ AC_ARG_WITH(multilib-list,
199 [AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])],
200 :,
201 with_multilib_list=default)
202 +AC_SUBST(with_multilib_list)
203
204 # -------------------------
205 # Checks for other programs
206