alnyan/yggdrasil: target-level support for x86_64-unknown-yggdrasil

This commit is contained in:
2024-03-14 22:09:26 +02:00
parent c891d8dc23
commit 71322b5ad3
7 changed files with 6026 additions and 6 deletions
Vendored
+1 -1
View File
@@ -1749,7 +1749,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* )
| fiwix* | yggdrasil* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+2
View File
@@ -11,6 +11,8 @@ target=fixinc.sh
# Check for special fix rules for particular targets
case $machine in
*-yggdrasil* | \
*-*-yggdrasil* | \
i?86-*-cygwin* | \
i?86-*-mingw32* | \
x86_64-*-mingw32* | \
+10 -1
View File
@@ -181,7 +181,7 @@
# the --with-sysroot configure option or the
# --sysroot command line option is used this
# will be relative to the sysroot.
# target_type_format_char
# target_type_format_char
# The default character to be used for formatting
# the attribute in a
# .type symbol_name, ${t_t_f_c}<property>
@@ -690,6 +690,12 @@ x86_cpus="generic intel"
# Common parts for widely ported systems.
case ${target} in
*-*-yggdrasil*)
gas=yes
gnu_ld=yes
default_use_cxa_atexit=yes
use_gcc_stdint=provide
;;
*-*-darwin*)
tmake_file="t-darwin "
tm_file="${tm_file} darwin.h"
@@ -1126,6 +1132,9 @@ case ${target} in
esac
case ${target} in
x86_64-*-yggdrasil*)
tm_file="${tm_file} i386/unix.h i386/att.h elfos.h glibc-stdint.h i386/i386elf.h i386/x86-64.h yggdrasil.h"
;;
aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
tm_file="${tm_file} elfos.h newlib-stdint.h"
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
+26
View File
@@ -0,0 +1,26 @@
#undef TARGET_YGGDRASIL
#define TARGET_YGGDRASIL 1
#undef LIB_SPEC
#define LIB_SPEC "-static -lygglibc"
/* Tell ld to force 4KB pages*/
#undef LINK_SPEC
#define LINK_SPEC "-z max-page-size=4096"
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crti.o%s crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend.o%s"
/* Additional predefined macros. */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__yggdrasil__"); \
builtin_define ("__unix__"); \
builtin_assert ("system=yggdrasil"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=posix"); \
} while(0);
+5 -1
View File
@@ -103,7 +103,7 @@ arm*-*-*)
;;
avr-*-*)
cpu_type=avr
;;
;;
bfin*-*)
cpu_type=bfin
;;
@@ -386,6 +386,10 @@ i[34567]86-*-cygwin* | x86_64-*-cygwin*)
esac
case ${host} in
x86_64-*-yggdrasil*)
extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o"
tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
;;
aarch64*-*-elf | aarch64*-*-rtems*)
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
extra_parts="$extra_parts crtfastmath.o"
+5973
View File
File diff suppressed because it is too large Load Diff
+9 -3
View File
@@ -90,7 +90,7 @@ case "${host}" in
*-freebsd*)
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
AC_DEFINE(HAVE_SETENV)
AC_DEFINE(HAVE_FINITEF)
@@ -198,9 +198,15 @@ case "${host}" in
AC_CHECK_FUNCS(_wfopen)
GCC_CHECK_TLS
;;
*-yggdrasil*)
GLIBCXX_CHECK_COMPILER_FEATURES
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
;;
*-netbsd* | *-openbsd*)
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
AC_DEFINE(HAVE_FINITEF)
AC_DEFINE(HAVE_FINITE)
@@ -221,7 +227,7 @@ case "${host}" in
;;
*-qnx6.1* | *-qnx6.2*)
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
AC_DEFINE(HAVE_COSF)
AC_DEFINE(HAVE_COSL)