diff --git a/contrib/config-list.mk b/contrib/config-list.mk index c3537d2..d9e48a9 100644 --- a/contrib/config-list.mk +++ b/contrib/config-list.mk @@ -40,6 +40,7 @@ LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \ arm-symbianelf avr-elf \ bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \ c6x-elf c6x-uclinux cr16-elf cris-elf cris-linux crisv32-elf crisv32-linux \ + csky-elf csky-linux-gnu \ epiphany-elf epiphany-elfOPT-with-stack-offset=16 fido-elf \ fr30-elf frv-elf frv-linux ft32-elf h8300-elf hppa-linux-gnu \ hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \ diff --git a/gcc/config.gcc b/gcc/config.gcc index 78e84c2..cd98836 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1278,6 +1278,70 @@ crisv32-*-linux* | cris-*-linux*) ;; esac ;; +csky-*-*) + if test x${with_endian} != x; then + case ${with_endian} in + big|little) ;; + *) + echo "with_endian=${with_endian} not supported." + exit 1 + ;; + esac + fi + if test x${with_float} != x; then + case ${with_float} in + soft | hard) ;; + *) echo + "Unknown floating point type used in --with-float=$with_float" + exit 1 + ;; + esac + fi + tm_file="csky/csky.h" + md_file="csky/csky.md" + out_file="csky/csky.c" + tm_p_file="${tm_p_file} csky/csky-protos.h" + extra_options="${extra_options} csky/csky_tables.opt" + + if test x${enable_tpf_debug} = xyes; then + tm_defines="${tm_defines} ENABLE_TPF_DEBUG" + fi + + case ${target} in + csky-*-elf*) + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h" + tmake_file="csky/t-csky csky/t-csky-elf" + default_use_cxa_atexit=no + ;; + csky-*-linux*) + tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h" + tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux" + + if test "x${enable_multilib}" = xyes ; then + tm_file="$tm_file ./sysroot-suffix.h" + tmake_file="${tmake_file} csky/t-sysroot-suffix" + fi + + case ${target} in + csky-*-linux-gnu*) + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" + ;; + csky-*-linux-uclibc*) + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" + default_use_cxa_atexit=no + ;; + *) + echo "Unknown target $target" + exit 1 + ;; + esac + ;; + *) + echo "Unknown target $target" + exit 1 + ;; + esac + ;; epiphany-*-elf | epiphany-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h" tmake_file="${tmake_file} epiphany/t-epiphany" @@ -3831,6 +3895,10 @@ case "${target}" in fi ;; + csky-*-*) + supported_defaults="cpu endian float" + ;; + arm*-*-*) supported_defaults="arch cpu float tune fpu abi mode tls" for which in cpu tune arch; do diff --git a/gcc/configure b/gcc/configure index 80ac4a3..b7a8e36 100755 --- a/gcc/configure +++ b/gcc/configure @@ -27838,7 +27838,7 @@ esac # ??? Once 2.11 is released, probably need to add first known working # version to the per-target configury. case "$cpu_type" in - aarch64 | alpha | arc | arm | avr | bfin | cris | i386 | m32c | m68k \ + aarch64 | alpha | arc | arm | avr | bfin | cris | csky | i386 | m32c | m68k \ | microblaze | mips | nios2 | pa | riscv | rs6000 | score | sparc | spu \ | tilegx | tilepro | visium | xstormy16 | xtensa) insn="nop" diff --git a/gcc/configure.ac b/gcc/configure.ac index 4fc851c..65f9c92 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -4932,7 +4932,7 @@ esac # ??? Once 2.11 is released, probably need to add first known working # version to the per-target configury. case "$cpu_type" in - aarch64 | alpha | arc | arm | avr | bfin | cris | i386 | m32c | m68k \ + aarch64 | alpha | arc | arm | avr | bfin | cris | csky | i386 | m32c | m68k \ | microblaze | mips | nios2 | pa | riscv | rs6000 | score | sparc | spu \ | tilegx | tilepro | visium | xstormy16 | xtensa) insn="nop"