@@ -43,7 +43,9 @@ LIST = aarch64-elf aarch64-linux-gnu \
mipsisa64-elfoabi mipsisa64r2el-elf mipsisa64sr71k-elf mipsisa64sb1-elf \
mipsel-elf mips64-elf mips64vr-elf mips64orion-elf mips-rtems \
mips-wrs-vxworks mipstx39-elf mmix-knuth-mmixware mn10300-elf moxie-elf \
- moxie-uclinux moxie-rtems pdp11-aout picochip-elfOPT-enable-obsolete \
+ moxie-uclinux moxie-rtems \
+ nds32le-elf nds32be-elf \
+ pdp11-aout picochip-elfOPT-enable-obsolete \
powerpc-darwin8 \
powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \
powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
@@ -418,6 +418,10 @@ mips*-*-*)
extra_headers="loongson.h"
extra_options="${extra_options} g.opt mips/mips-tables.opt"
;;
+nds32*)
+ cpu_type=nds32
+ extra_headers="nds32_intrinsic.h"
+ ;;
picochip-*-*)
cpu_type=picochip
;;
@@ -2030,6 +2034,18 @@ mn10300-*-*)
use_collect2=no
use_gcc_stdint=wrap
;;
+nds32le-*-*)
+ target_cpu_default="0"
+ tm_defines="${tm_defines}"
+ tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+ tmake_file="nds32/t-mlibs"
+ ;;
+nds32be-*-*)
+ target_cpu_default="0|MASK_BIG_ENDIAN"
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+ tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+ tmake_file="nds32/t-mlibs"
+ ;;
pdp11-*-*)
tm_file="${tm_file} newlib-stdint.h"
use_gcc_stdint=wrap
@@ -3645,6 +3661,39 @@ case "${target}" in
esac
;;
+ nds32*-*-*)
+ supported_defaults="arch nds32_lib"
+
+ # process --with-arch
+ case "${with_arch}" in
+ "" | v2 | v3 | v3m)
+ # OK
+ ;;
+ *)
+ echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
+ exit 1
+ ;;
+ esac
+
+ # process --with-nds32-lib
+ case "${with_nds32_lib}" in
+ "")
+ # the default library is newlib
+ with_nds32_lib=newlib
+ ;;
+ newlib)
+ # OK
+ ;;
+ mculib)
+ # OK
+ ;;
+ *)
+ echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
+ exit 1
+ ;;
+ esac
+ ;;
+
powerpc*-*-* | rs6000-*-*)
supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
@@ -137,6 +137,9 @@ mips*-*-*)
cpu_type=mips
tmake_file=mips/t-mips
;;
+nds32*-*)
+ cpu_type=nds32
+ ;;
powerpc*-*-*)
cpu_type=rs6000
;;
@@ -831,6 +834,29 @@ moxie-*-rtems*)
# Don't use default.
extra_parts=
;;
+nds32*-elf*)
+ # Basic makefile fragment and extra_parts for crt stuff.
+ # We also append c-isr library implementation.
+ tmake_file="${tmake_file} nds32/t-nds32 nds32/t-nds32-isr"
+ extra_parts="crtbegin1.o crtend1.o libnds32_isr.a"
+ # Append library definition makefile fragment according to --with-nds32-lib=X setting.
+ case "${with_nds32_lib}" in
+ "" | newlib)
+ # Append library definition makefile fragment t-nds32-newlib.
+ # Append 'soft-fp' software floating point make rule fragment provided by gcc.
+ tmake_file="${tmake_file} nds32/t-nds32-newlib t-softfp-sfdf t-softfp"
+ ;;
+ mculib)
+ # Append library definition makefile fragment t-nds32-mculib.
+ # The software floating point library is included in mculib.
+ tmake_file="${tmake_file} nds32/t-nds32-mculib"
+ ;;
+ *)
+ echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
+ exit 1
+ ;;
+ esac
+ ;;
pdp11-*-*)
tmake_file="pdp11/t-pdp11 t-fdpbit"
;;