aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rwxr-xr-xconfigure2
-rw-r--r--configure.ac2
-rw-r--r--contrib/ChangeLog4
-rw-r--r--contrib/config-list.mk2
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config.gcc64
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/acinclude.m42
-rwxr-xr-xlibstdc++-v3/configure16
10 files changed, 100 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 24cc78c..55a5908 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-01 Simon Cook <simon.cook@embecosm.com>
+
+ Changes to build configuration to allow big endian ARC ELF toolchain
+ * configure.ac: Also add target-libgloss to noconfigdirs for arceb-*-*.
+ * configure: Regenerate.
+
2013-09-20 Alan Modra <amodra@gmail.com>
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
diff --git a/configure b/configure
index a91689f..6ad3c49 100755
--- a/configure
+++ b/configure
@@ -3620,7 +3620,7 @@ case "${target}" in
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
;;
- arc-*-*)
+ arc-*-*|arceb-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-pe*)
diff --git a/configure.ac b/configure.ac
index d72b40a..b5caebb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -956,7 +956,7 @@ case "${target}" in
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
;;
- arc-*-*)
+ arc-*-*|arceb-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-pe*)
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 3b27819..ff29b1e 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * config-list.mk: Add arc configurations.
+
2013-09-27 Diego Novillo <dnovillo@google.com>
* testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.
diff --git a/contrib/config-list.mk b/contrib/config-list.mk
index 85ca6ad..6ab0ca6 100644
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -14,6 +14,8 @@ TEST=all-gcc
LIST = aarch64-elf aarch64-linux-gnu \
alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
alpha64-dec-vms alpha-dec-vms am33_2.0-linux \
+ arc-elf32OPT-with-cpu=arc600 arc-elf32OPT-with-cpu=arc700 \
+ arc-linux-uclibcOPT-with-cpu=arc700 arceb-linux-uclibcOPT-with-cpu=arc700 \
arm-wrs-vxworks arm-netbsdelf \
arm-linux-androideabi arm-uclinux_eabi arm-eabi \
arm-symbianelf avr-rtems avr-elf \
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8431db0..5b71a25 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
+ Brendan Kehoe <brendan@zen.org>
+ Simon Cook <simon.cook@embecosm.com>
+
+ * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
+
2013-10-01 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 605efc0..e6cb55d 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -324,6 +324,9 @@ alpha*-*-*)
am33_2.0-*-linux*)
cpu_type=mn10300
;;
+arc*-*-*)
+ cpu_type=arc
+ ;;
arm*-*-*)
cpu_type=arm
extra_headers="mmintrin.h arm_neon.h"
@@ -838,7 +841,7 @@ case ${target} in
*) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
esac
;;
-*-*-elf)
+*-*-elf|arc*-*-elf*)
# Assume that newlib is being used and so __cxa_atexit is provided.
default_use_cxa_atexit=yes
use_gcc_stdint=wrap
@@ -925,6 +928,54 @@ alpha*-dec-*vms*)
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
+ 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
+ ;;
+arc*-*-linux-uclibc*)
+ extra_headers="arc-simd.h"
+ tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
+ tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
+ tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
+ tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
+ 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"
@@ -3338,6 +3389,17 @@ case "${target}" in
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
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 44e0d95..6c50194 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Also check for
+ _Unwind_SjLj_Register when deciding if to set enable_sjlj_exceptions.
+ * configure: Regenerate.
+
2013-10-01 Tim Shen <timshen91@gmail.com>
PR libstdc++/58576
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 72b90a8..f9d12d0 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -3139,6 +3139,8 @@ EOF
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
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index e1672e0..c436cb9 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -15070,6 +15070,8 @@ EOF
test $ac_status = 0; }; 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
@@ -15402,7 +15404,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 15405 "configure"
+#line 15407 "configure"
int main()
{
typedef bool atomic_type;
@@ -15437,7 +15439,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15440 "configure"
+#line 15442 "configure"
int main()
{
typedef short atomic_type;
@@ -15472,7 +15474,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15475 "configure"
+#line 15477 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -15508,7 +15510,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15511 "configure"
+#line 15513 "configure"
int main()
{
typedef long long atomic_type;
@@ -15587,7 +15589,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15590 "configure"
+#line 15592 "configure"
int main()
{
_Decimal32 d1;
@@ -15629,7 +15631,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15632 "configure"
+#line 15634 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -15663,7 +15665,7 @@ $as_echo "$enable_int128" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15666 "configure"
+#line 15668 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };