1- diff --git a/gcc/config.host b/gcc/config.host
2- index 0a02c33cc80..38f7adc655e 100644
3- --- a/gcc/config.host
4- +++ b/gcc/config.host
5- @@ -251,6 +251,10 @@ case ${host} in
6- host_extra_gcc_objs="${host_extra_gcc_objs} driver-mingw32.o"
7- host_lto_plugin_soname=liblto_plugin.dll
8- ;;
9- + aarch64-*-darwin*)
10- + out_host_hook_obj="${out_host_hook_obj} host-aarch64-darwin.o"
11- + host_xmake_file="${host_xmake_file} aarch64/x-darwin"
12- + ;;
13- i[34567]86-*-darwin* | x86_64-*-darwin*)
14- out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
15- host_xmake_file="${host_xmake_file} i386/x-darwin"
16- diff --git a/gcc/config/aarch64/host-aarch64-darwin.c b/gcc/config/aarch64/host-aarch64-darwin.c
17- new file mode 100644
18- index 00000000000..92c38b0b9db
19- --- /dev/null
20- +++ b/gcc/config/aarch64/host-aarch64-darwin.c
21- @@ -0,0 +1,32 @@
22- + /* i386-darwin host-specific hook definitions.
23- + Copyright (C) 2003-2021 Free Software Foundation, Inc.
24- +
25- + This file is part of GCC.
26- +
27- + GCC is free software; you can redistribute it and/or modify it under
28- + the terms of the GNU General Public License as published by the Free
29- + Software Foundation; either version 3, or (at your option) any later
30- + version.
31- +
32- + GCC is distributed in the hope that it will be useful, but WITHOUT ANY
33- + WARRANTY; without even the implied warranty of MERCHANTABILITY or
34- + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
35- + for more details.
36- +
37- + You should have received a copy of the GNU General Public License
38- + along with GCC; see the file COPYING3. If not see
39- + <http://www.gnu.org/licenses/>. */
40- +
41- + #define IN_TARGET_CODE 1
42- +
43- + #include "config.h"
44- + #include "system.h"
45- + #include "coretypes.h"
46- + #include "hosthooks.h"
47- + #include "hosthooks-def.h"
48- + #include "config/host-darwin.h"
49- +
50- + /* Darwin doesn't do anything special for aarch64 hosts; this file exists just
51- + to include config/host-darwin.h. */
52- +
53- + const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
54- diff --git a/gcc/config/aarch64/x-darwin b/gcc/config/aarch64/x-darwin
55- new file mode 100644
56- index 00000000000..6d788d5e89c
57- --- /dev/null
58- +++ b/gcc/config/aarch64/x-darwin
59- @@ -0,0 +1,3 @@
60- + host-aarch64-darwin.o : $(srcdir)/config/aarch64/host-aarch64-darwin.c
61- + $(COMPILE) $<
62- + $(POSTCOMPILE)
63- diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
64- index ab4b6acf5ea..2b8d0da296f 100644
65- --- a/gcc/config/arm/arm-cpus.in
66- +++ b/gcc/config/arm/arm-cpus.in
67- @@ -402,7 +402,7 @@ begin arch armv6k
1+ diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/arm/arm-cpus.in gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/arm-cpus.in
2+ --- gcc-12.1.0-RC-20220429/gcc/config/arm/arm-cpus.in 2022-04-29 14:58:22.000000000 +0100
3+ +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/arm-cpus.in 2022-04-30 13:31:09.120134164 +0100
4+ @@ -412,7 +412,7 @@
685 tune for mpcore
696 tune flags CO_PROC
707 base 6K
@@ -73,11 +10,16 @@ index ab4b6acf5ea..2b8d0da296f 100644
7310 option fp add VFPv2 FP_DBL
7411 optalias vfpv2 fp
7512 option nofp remove ALL_FP
76- diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
77- index d68def30867..d31f1e31ee6 100644
78- --- a/gcc/config/arm/t-arm-elf
79- +++ b/gcc/config/arm/t-arm-elf
80- @@ -16,111 +16,14 @@
13+ diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/arm/t-arm-elf gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/t-arm-elf
14+ --- gcc-12.1.0-RC-20220429/gcc/config/arm/t-arm-elf 2022-04-29 14:58:22.000000000 +0100
15+ +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/t-arm-elf 2022-04-30 13:31:39.759455398 +0100
16+ @@ -1,4 +1,4 @@
17+ - # Copyright (C) 1998-2022 Free Software Foundation, Inc.
18+ + # Copyright (C) 1998-2021 Free Software Foundation, Inc.
19+ #
20+ # This file is part of GCC.
21+ #
22+ @@ -16,120 +16,14 @@
8123 # along with GCC; see the file COPYING3. If not see
8224 # <http://www.gnu.org/licenses/>.
8325
@@ -103,6 +45,8 @@ index d68def30867..d31f1e31ee6 100644
10345- # it seems to work ok.
10446- v8_fps := simd fp16 crypto fp16+crypto dotprod fp16fml
10547-
48+ - v9_fps := simd fp16 crypto fp16+crypto dotprod fp16fml
49+ -
10650- # We don't do anything special with these. Pre-v4t probably doesn't work.
10751- all_early_nofp := armv4 armv4t armv5t
10852-
@@ -114,6 +58,8 @@ index d68def30867..d31f1e31ee6 100644
11458- all_v8_archs := armv8-a armv8-a+crc armv8.1-a armv8.2-a armv8.3-a armv8.4-a \
11559- armv8.5-a armv8.6-a
11660-
61+ - all_v9_archs := armv9-a
62+ -
11763- # No floating point variants, require thumb1 softfp
11864- all_nofp_t := armv6-m armv6s-m armv8-m.base
11965-
@@ -171,11 +117,16 @@ index d68def30867..d31f1e31ee6 100644
171117- MULTILIB_MATCHES += $(foreach ARCH, $(all_v7_a_r), \
172118- march?armv7+fp=march?$(ARCH) \
173119- march?armv7+fp=march?$(ARCH)+fp)
174-
120+ -
175121- MULTILIB_MATCHES += $(foreach ARCH, $(all_v8_archs), \
176122- march?armv7+fp=march?$(ARCH) \
177123- $(foreach FPARCH, $(v8_fps), \
178124- march?armv7+fp=march?$(ARCH)+$(FPARCH)))
125+
126+ - MULTILIB_MATCHES += $(foreach ARCH, $(all_v9_archs), \
127+ - march?armv7+fp=march?$(ARCH) \
128+ - $(foreach FPARCH, $(v9_fps), \
129+ - march?armv7+fp=march?$(ARCH)+$(FPARCH)))
179130+ MULTILIB_REQUIRED = mthumb mbig-endian mthumb/mbig-endian march=armv6k/mfloat-abi=hard
180131
181132- MULTILIB_MATCHES += $(foreach ARCH, armv7e-m armv8-m.mainline, \
@@ -194,10 +145,9 @@ index d68def30867..d31f1e31ee6 100644
194145- MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=mthumb/march.armv7+fp/mfloat-abi.hard
195146- MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=mfpu.auto/march.armv7+fp/mfloat-abi.hard
196147- MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=march.armv7+fp/mfloat-abi.hard
197- diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h
198- index cca6f0ece54..8b78c28c7bb 100644
199- --- a/gcc/config/arm/unknown-elf.h
200- +++ b/gcc/config/arm/unknown-elf.h
148+ diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/arm/unknown-elf.h gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/unknown-elf.h
149+ --- gcc-12.1.0-RC-20220429/gcc/config/arm/unknown-elf.h 2022-04-29 14:58:22.000000000 +0100
150+ +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/unknown-elf.h 2022-04-30 13:31:09.120134164 +0100
201151@@ -29,7 +29,7 @@
202152 #endif
203153
@@ -214,11 +164,10 @@ index cca6f0ece54..8b78c28c7bb 100644
214164- #define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %{!nolibc:%L} --end-group"
215165+ #define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group"
216166+
217- diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c
218- index 360a280b23a..2c03947999a 100644
219- --- a/gcc/config/i386/host-mingw32.c
220- +++ b/gcc/config/i386/host-mingw32.c
221- @@ -45,7 +45,11 @@ static size_t mingw32_gt_pch_alloc_granularity (void);
167+ diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/i386/host-mingw32.cc gcc-12.1.0-RC-20220429-dkarm/gcc/config/i386/host-mingw32.cc
168+ --- gcc-12.1.0-RC-20220429/gcc/config/i386/host-mingw32.cc 2022-04-29 14:58:22.000000000 +0100
169+ +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/i386/host-mingw32.cc 2022-04-30 13:31:09.120134164 +0100
170+ @@ -45,7 +45,11 @@
222171 static inline void w32_error(const char*, const char*, int, const char*);
223172
224173 /* FIXME: Is this big enough? */
@@ -230,11 +179,10 @@ index 360a280b23a..2c03947999a 100644
230179
231180 /* Granularity for reserving address space. */
232181 static size_t va_granularity = 0x10000;
233- diff --git a/gcc/gcc.c b/gcc/gcc.c
234- index 4d790f9dd4a..10f0d08524c 100644
235- --- a/gcc/gcc.c
236- +++ b/gcc/gcc.c
237- @@ -853,6 +853,11 @@ proper position among the other output files. */
182+ diff -NBaur gcc-12.1.0-RC-20220429/gcc/gcc.cc gcc-12.1.0-RC-20220429-dkarm/gcc/gcc.cc
183+ --- gcc-12.1.0-RC-20220429/gcc/gcc.cc 2022-04-29 14:58:23.000000000 +0100
184+ +++ gcc-12.1.0-RC-20220429-dkarm/gcc/gcc.cc 2022-04-30 13:31:09.120134164 +0100
185+ @@ -860,6 +860,11 @@
238186 #endif
239187 #endif
240188
@@ -246,37 +194,35 @@ index 4d790f9dd4a..10f0d08524c 100644
246194 /* config.h can define STARTFILE_SPEC to override the default crt0 files. */
247195 #ifndef STARTFILE_SPEC
248196 #define STARTFILE_SPEC \
249- @@ -1197 ,6 +1202 ,7 @@ static const char *link_spec = LINK_SPEC;
197+ @@ -1204 ,6 +1209 ,7 @@
250198 static const char *lib_spec = LIB_SPEC;
251199 static const char *link_gomp_spec = "";
252200 static const char *libgcc_spec = LIBGCC_SPEC;
253201+ static const char *libgloss_spec = LIBGLOSS_SPEC;
254202 static const char *endfile_spec = ENDFILE_SPEC;
255203 static const char *startfile_spec = STARTFILE_SPEC;
256204 static const char *linker_name_spec = LINKER_NAME;
257- @@ -1702 ,6 +1708 ,7 @@ static struct spec_list static_specs[] =
205+ @@ -1709 ,6 +1715 ,7 @@
258206 INIT_STATIC_SPEC ("lib", &lib_spec),
259207 INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
260208 INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
261209+ INIT_STATIC_SPEC ("libgloss", &libgloss_spec),
262210 INIT_STATIC_SPEC ("startfile", &startfile_spec),
263211 INIT_STATIC_SPEC ("cross_compile", &cross_compile),
264212 INIT_STATIC_SPEC ("version", &compiler_version),
265- diff --git a/libgcc/config/arm/t-bpabi b/libgcc/config/arm/t-bpabi
266- index dddddc7c444..c2502597953 100644
267- --- a/libgcc/config/arm/t-bpabi
268- +++ b/libgcc/config/arm/t-bpabi
269- @@ -17,4 +17,4 @@ SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
213+ diff -NBaur gcc-12.1.0-RC-20220429/libgcc/config/arm/t-bpabi gcc-12.1.0-RC-20220429-dkarm/libgcc/config/arm/t-bpabi
214+ --- gcc-12.1.0-RC-20220429/libgcc/config/arm/t-bpabi 2022-04-29 14:58:25.000000000 +0100
215+ +++ gcc-12.1.0-RC-20220429-dkarm/libgcc/config/arm/t-bpabi 2022-04-30 13:31:09.120134164 +0100
216+ @@ -17,4 +17,4 @@
270217 # On ARM, specifying -fnon-call-exceptions will needlessly pull in
271218 # the unwinder in simple programs which use 64-bit division. Omitting
272219 # the option is safe.
273220- LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions
274221+ LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions
275- diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
276- index 675930db043..bdfd6f6b0bb 100644
277- --- a/libgcc/crtstuff.c
278- +++ b/libgcc/crtstuff.c
279- @@ -325,7 +325,7 @@ register_tm_clones (void)
222+ diff -NBaur gcc-12.1.0-RC-20220429/libgcc/crtstuff.c gcc-12.1.0-RC-20220429-dkarm/libgcc/crtstuff.c
223+ --- gcc-12.1.0-RC-20220429/libgcc/crtstuff.c 2022-04-29 14:58:25.000000000 +0100
224+ +++ gcc-12.1.0-RC-20220429-dkarm/libgcc/crtstuff.c 2022-04-30 13:31:09.120134164 +0100
225+ @@ -325,7 +325,7 @@
280226
281227 #ifdef OBJECT_FORMAT_ELF
282228
@@ -285,43 +231,3 @@ index 675930db043..bdfd6f6b0bb 100644
285231 /* Declare the __dso_handle variable. It should have a unique value
286232 in every shared-object; in a main program its value is zero. The
287233 object should in any case be protected. This means the instance
288- diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h
289- index 0413e3b7c25..ff5f8bbe1a1 100644
290- --- a/libstdc++-v3/include/c_compatibility/fenv.h
291- +++ b/libstdc++-v3/include/c_compatibility/fenv.h
292- @@ -26,6 +26,10 @@
293- * This is a Standard C++ Library header.
294- */
295-
296- + #if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
297- + # include_next <fenv.h>
298- + #else
299- +
300- #ifndef _GLIBCXX_FENV_H
301- #define _GLIBCXX_FENV_H 1
302-
303- @@ -79,3 +83,5 @@ namespace std
304- #endif // C++11
305-
306- #endif // _GLIBCXX_FENV_H
307- +
308- + #endif // __cplusplus
309- diff --git a/libstdc++-v3/include/c_global/cfenv b/libstdc++-v3/include/c_global/cfenv
310- index 0b0ec35a837..d24cb1a3c81 100644
311- --- a/libstdc++-v3/include/c_global/cfenv
312- +++ b/libstdc++-v3/include/c_global/cfenv
313- @@ -37,9 +37,11 @@
314-
315- #include <bits/c++config.h>
316-
317- - #if _GLIBCXX_HAVE_FENV_H
318- - # include <fenv.h>
319- - #endif
320- + // Need to ensure this finds the C library's <fenv.h> not a libstdc++
321- + // wrapper that might already be installed later in the include search path.
322- + #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
323- + #include_next <fenv.h>
324- + #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
325-
326- #ifdef _GLIBCXX_USE_C99_FENV_TR1
327-
0 commit comments