===================================================================
@@ -303,6 +303,14 @@
extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
md_unwind_header=alpha/vms-unwind.h
;;
+arc-*-elf*)
+ tmake_file="arc/t-arc-newlib arc/t-arc"
+ extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o libgmon.a crtg.o crtgend.o"
+ ;;
+arc*-*-linux-uclibc*)
+ tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc700-uClibc arc/t-arc"
+ extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o libgmon.a crtg.o crtgend.o"
+ ;;
arm-wrs-vxworks)
tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-fdpbit"
extra_parts="$extra_parts crti.o crtn.o"
===================================================================
@@ -36,6 +36,9 @@
#elif defined (__CRIS__)
/* No SIGFPE for CRIS integer division. */
# define DO_TEST 0
+#elif defined (__arc__)
+ /* No SIGFPE for ARC integer division. */
+# define DO_TEST 0
#elif defined (__arm__) && defined (__ARM_EABI__)
# ifdef __ARM_ARCH_EXT_IDIV__
/* Hardware division instructions may not trap, and handle trapping
===================================================================
@@ -813,6 +813,39 @@
tm_file="${tm_file} vms/vms.h alpha/vms.h"
tmake_file="${tmake_file} alpha/t-vms"
;;
+arc-*-elf*)
+ extra_headers="arc-simd.h"
+ tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+ tmake_file="arc/t-arc-newlib arc/t-arc"
+ case x"${with_cpu}" in
+ xarc600|xarc601|xarc700)
+ target_cpu_default="TARGET_CPU_$with_cpu"
+ ;;
+ esac
+ ;;
+arc*-*-linux-uclibc*)
+ extra_headers="arc-simd.h"
+ tm_file="dbxelf.h elfos.h linux.h ${tm_file}"
+ tmake_file="arc/t-arc-uClibc arc/t-arc"
+ case x"${with_cpu}" in
+ xarc600|xarc601|xarc700)
+ target_cpu_default="TARGET_CPU_$with_cpu"
+ ;;
+ esac
+ if test x${with_endian} = x; then
+ case ${target} in
+ arc*be-*-* | arc*eb-*-*) with_endian=big ;;
+ *) with_endian=little ;;
+ esac
+ fi
+ case ${with_endian} in
+ big|little) ;;
+ *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
+ esac
+ case ${with_endian} in
+ big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
+ esac
+ ;;
arm-wrs-vxworks)
tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
extra_options="${extra_options} arm/vxworks.opt"
@@ -2976,6 +3009,17 @@
done
;;
+ arc*-*-*) # was: arc*-*-linux-uclibc)
+ supported_defaults="cpu"
+ case $with_cpu in
+ arc600|arc601|arc700)
+ ;;
+ *) echo "Unknown cpu type"
+ exit 1
+ ;;
+ esac
+ ;;
+
arm*-*-*)
supported_defaults="arch cpu float tune fpu abi mode tls"
for which in cpu tune; do
===================================================================
@@ -2927,6 +2927,8 @@ void foo()
if AC_TRY_EVAL(ac_compile); then
if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=yes
+ elif grep _Unwind_SjLj_Register conftest.s >/dev/null 2>&1 ; then
+ enable_sjlj_exceptions=yes
elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=no
elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then