From 5f8950b403f6351f125d8281d2e7430a43e7d125 Mon Sep 17 00:00:00 2001 From: Flavio Cruz Date: Thu, 26 Jan 2023 22:45:27 -0500 Subject: Add support for x86_64-*-gnu-* targets to build x86_64 gnumach/hurd Tested by building a toolchain and compiling gnumach for x86_64 [1]. This is the basic version without unwind support which I think is only required to implement exceptions. [1] https://github.com/flavioc/cross-hurd/blob/master/bootstrap-kernel.sh. gcc/ChangeLog: * config.gcc: Recognize x86_64-*-gnu* targets and include i386/gnu64.h. * config/i386/gnu64.h: Define configuration for new target including ld.so location. libgcc/ChangeLog: * config.host: Recognize x86_64-*-gnu* targets. * config/i386/gnu-unwind.h: Update to handle __x86_64__ with a TODO for now. Signed-off-by: Flavio Cruz --- libgcc/config.host | 8 +++++++- libgcc/config/i386/gnu-unwind.h | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'libgcc') diff --git a/libgcc/config.host b/libgcc/config.host index 18fe2f9..70d47e0 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -751,6 +751,12 @@ x86_64-*-kfreebsd*-gnu) tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" tm_file="${tm_file} i386/elf-lib.h" ;; +x86_64-*-gnu*) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" + tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + tm_file="${tm_file} i386/elf-lib.h" + md_unwind_header=i386/gnu-unwind.h + ;; i[34567]86-pc-msdosdjgpp*) ;; i[34567]86-*-lynxos*) @@ -1523,7 +1529,7 @@ esac case ${host} in i[34567]86-*-linux* | x86_64-*-linux* | \ i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \ - i[34567]86-*-gnu*) + i[34567]86-*-gnu* | x86_64-*-gnu*) tmake_file="${tmake_file} t-tls i386/t-linux i386/t-msabi t-slibgcc-libgcc" if test "$libgcc_cv_cfi" = "yes"; then tmake_file="${tmake_file} t-stack i386/t-stack-i386" diff --git a/libgcc/config/i386/gnu-unwind.h b/libgcc/config/i386/gnu-unwind.h index 7cb1c7a..85aa2d6 100644 --- a/libgcc/config/i386/gnu-unwind.h +++ b/libgcc/config/i386/gnu-unwind.h @@ -30,6 +30,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include +#ifdef __x86_64__ + +/* + * TODO: support for 64 bits needs to be implemented. + */ + +#else /* ifdef __x86_64__ */ + #define MD_FALLBACK_FRAME_STATE_FOR x86_gnu_fallback_frame_state static _Unwind_Reason_Code @@ -138,4 +146,6 @@ x86_gnu_fallback_frame_state return _URC_NO_REASON; } +#endif /* ifdef __x86_64__ */ + #endif /* ifndef inhibit_libc */ -- cgit v1.1