toolchain: bump ARC toolchain components to arc-2015.12-rc1
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>
Mon, 18 Jan 2016 10:17:31 +0000 (13:17 +0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 19 Jan 2016 21:01:37 +0000 (22:01 +0100)
This change introduces newer ARC toolchain in Buildroot.
Note this is the first release candidate and we'll probably see another
RC before cutting the final release.

That new arc-2015.12 release doesn't bring any significant changes but
mostly is focused on fixes and minor improvements here and there.
Most noticeable changes are:
 * GCC updated to v4.8.5
 * GDB updated to 7.10

You may find more info on fixes and improvements in that release at:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2015.12-rc1

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
21 files changed:
package/binutils/Config.in.host
package/binutils/arc-2015.06/0001-PR-other-56780.patch [deleted file]
package/binutils/arc-2015.06/0002-ld-arc-Provide-the-.tdata-symbol.patch [deleted file]
package/binutils/arc-2015.06/0003-Provide-.tbss-symbol.patch [deleted file]
package/binutils/arc-2015.06/0004-Check-to-see-if-the-input-BFD-actually-contains-any-.patch [deleted file]
package/binutils/arc-2015.06/0005-Test-the-entire-object-if-it-contains-only-data-sect.patch [deleted file]
package/binutils/arc-2015.06/600-poison-system-directories.patch [deleted file]
package/binutils/arc-2015.12-rc1/0001-PR-other-56780.patch [new file with mode: 0644]
package/binutils/arc-2015.12-rc1/600-poison-system-directories.patch [new file with mode: 0644]
package/binutils/binutils.hash
package/binutils/binutils.mk
package/gcc/Config.in.host
package/gcc/arc-2015.06/0001-Differentiate-between-a-bss-TLS-initialized-symbol.patch [deleted file]
package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch [deleted file]
package/gcc/arc-2015.06/100-libstdcxx-uclibc-c99.patch [deleted file]
package/gcc/arc-2015.06/851-PR-other-56780.patch [deleted file]
package/gcc/arc-2015.12-rc1/100-libstdcxx-uclibc-c99.patch [new file with mode: 0644]
package/gcc/arc-2015.12-rc1/851-PR-other-56780.patch [new file with mode: 0644]
package/gcc/gcc.hash
package/gdb/Config.in.host
package/gdb/gdb.hash

index f6aac5cc6b9dc50efc41b960cd22025f475c5e63..7a04d395abd661c8b7399b6968929a6941fa6a73 100644 (file)
@@ -28,7 +28,7 @@ endchoice
 
 config BR2_BINUTILS_VERSION
        string
-       default "arc-2015.06"   if BR2_arc
+       default "arc-2015.12-rc1"       if BR2_arc
        default "2.23.2"        if BR2_BINUTILS_VERSION_2_23_X
        default "2.24"          if BR2_BINUTILS_VERSION_2_24_X
        default "2.25.1"        if BR2_BINUTILS_VERSION_2_25_X
diff --git a/package/binutils/arc-2015.06/0001-PR-other-56780.patch b/package/binutils/arc-2015.06/0001-PR-other-56780.patch
deleted file mode 100644 (file)
index b418a2f..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-From 7827cdf59a1894abe18aa20043a63c8c875c3fce Mon Sep 17 00:00:00 2001
-From: DJ Delorie <dj@redhat.com>
-Date: Sat, 1 Jun 2013 01:01:44 +0000
-Subject: [PATCH] PR other/56780 merge from gcc
-
-binutils-gdb upstream a4818a052efb4cea976a03a2f7cb0b38b23d12d0
-
-libiberty: fix --enable-install-libiberty flag [PR 56780]
-
-Commit 199570 fixed the --disable-install-libiberty behavior, but it also
-added a bug where the enable path never works because the initial clear
-of target_header_dir wasn't deleted.  So we end up initializing properly
-at the top only to reset it at the end all the time.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
-
-[Romain
-  rename patch name
-  squash the two upstream commits
-  Remove the ChangeLog]
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- libiberty/Makefile.in  | 24 ++++++++++-----------
- libiberty/configure    | 57 +++++++++++++++++++++++++++-----------------------
- libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
- 3 files changed, 68 insertions(+), 60 deletions(-)
-
-diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index 0a5da31..4f40c72 100644
---- a/libiberty/Makefile.in
-+++ b/libiberty/Makefile.in
-@@ -354,19 +354,19 @@ install-strip: install
- # since it will be passed the multilib flags.
- MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
- install_to_libdir: all
--      ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
--      $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
--      ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
--      mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
-       if test -n "${target_header_dir}"; then \
--        case "${target_header_dir}" in \
--          /*)    thd=${target_header_dir};; \
--          *)     thd=${includedir}/${target_header_dir};; \
--        esac; \
--        ${mkinstalldirs} $(DESTDIR)$${thd}; \
--        for h in ${INSTALLED_HEADERS}; do \
--          ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
--        done; \
-+              ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
-+              $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
-+              ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
-+              mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
-+              case "${target_header_dir}" in \
-+                /*)    thd=${target_header_dir};; \
-+                *)     thd=${includedir}/${target_header_dir};; \
-+              esac; \
-+              ${mkinstalldirs} $(DESTDIR)$${thd}; \
-+              for h in ${INSTALLED_HEADERS}; do \
-+                ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-+              done; \
-       fi
-       @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-diff --git a/libiberty/configure b/libiberty/configure
-index 6e98352..44d1f78 100755
---- a/libiberty/configure
-+++ b/libiberty/configure
-@@ -675,8 +675,8 @@ with_cross_host
- with_newlib
- enable_maintainer_mode
- enable_multilib
--enable_largefile
- enable_install_libiberty
-+enable_largefile
- '
-       ac_precious_vars='build_alias
- host_alias
-@@ -1303,8 +1303,8 @@ Optional Features:
-                           enable make rules and dependencies not useful
-                           (and sometimes confusing) to the casual installer
-   --enable-multilib       build many library versions (default)
-+  --enable-install-libiberty       Install headers and library for end users
-   --disable-largefile     omit support for large files
--  --enable-install-libiberty       Install headers for end users
- Optional Packages:
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
-    cross_compiling=maybe
- fi
-+# We may wish to install the target headers somewhere.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
-+$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
-+
-+# Check whether --enable-install-libiberty was given.
-+if test "${enable_install_libiberty+set}" = set; then :
-+  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
-+else
-+  enable_install_libiberty=no
-+fi
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+  xyes|x)
-+    target_header_dir=libiberty
-+    ;;
-+  xno)
-+    target_header_dir=
-+    ;;
-+  *)
-+    # This could be sanity-checked in various ways...
-+    target_header_dir="${enable_install_libiberty}"
-+    ;;
-+esac
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
-+$as_echo "$enable_install_libiberty" >&6; }
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
-+$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
-+
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
-@@ -5475,7 +5504,6 @@ fi
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
-   # We are being configured as a target library.  AC_REPLACE_FUNCS
-@@ -5752,29 +5780,6 @@ _ACEOF
-   esac
--  # We may wish to install the target headers somewhere.
--  # Check whether --enable-install-libiberty was given.
--if test "${enable_install_libiberty+set}" = set; then :
--  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
--else
--  enable_install_libiberty=no
--fi
--
--  # Option parsed, now set things appropriately.
--  case x"$enable_install_libiberty" in
--    xyes|x)
--      target_header_dir=libiberty
--      ;;
--    xno)
--      target_header_dir=
--      ;;
--    *)
--      # This could be sanity-checked in various ways...
--      target_header_dir="${enable_install_libiberty}"
--      ;;
--  esac
--
--
- else
-    # Not a target library, so we set things up to run the test suite.
-diff --git a/libiberty/configure.ac b/libiberty/configure.ac
-index 754b66a..04260ec 100644
---- a/libiberty/configure.ac
-+++ b/libiberty/configure.ac
-@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
-    cross_compiling=maybe
- fi
-+# We may wish to install the target headers somewhere.
-+AC_MSG_CHECKING([whether to install libiberty headers and static library])
-+dnl install-libiberty is disabled by default
-+
-+AC_ARG_ENABLE(install-libiberty,
-+[  --enable-install-libiberty       Install headers and library for end users],
-+enable_install_libiberty=$enableval,
-+enable_install_libiberty=no)dnl
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+  xyes|x)
-+    target_header_dir=libiberty
-+    ;;
-+  xno)   
-+    target_header_dir=
-+    ;;
-+  *) 
-+    # This could be sanity-checked in various ways...
-+    target_header_dir="${enable_install_libiberty}"
-+    ;;
-+esac
-+AC_MSG_RESULT($enable_install_libiberty)
-+AC_MSG_NOTICE([target_header_dir = $target_header_dir])
-+
- GCC_NO_EXECUTABLES
- AC_PROG_CC
- AC_SYS_LARGEFILE
-@@ -379,7 +404,6 @@ fi
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
-   # We are being configured as a target library.  AC_REPLACE_FUNCS
-@@ -490,27 +514,6 @@ if test -n "${with_target_subdir}"; then
-   esac
--  # We may wish to install the target headers somewhere.
--  AC_ARG_ENABLE(install-libiberty,
--  [  --enable-install-libiberty       Install headers for end users],
--  enable_install_libiberty=$enableval,
--  enable_install_libiberty=no)dnl
--  
--  # Option parsed, now set things appropriately.
--  case x"$enable_install_libiberty" in
--    xyes|x)
--      target_header_dir=libiberty
--      ;;
--    xno)   
--      target_header_dir=
--      ;;
--    *) 
--      # This could be sanity-checked in various ways...
--      target_header_dir="${enable_install_libiberty}"
--      ;;
--  esac
--
--
- else
-    # Not a target library, so we set things up to run the test suite.
--- 
-1.9.3
-
diff --git a/package/binutils/arc-2015.06/0002-ld-arc-Provide-the-.tdata-symbol.patch b/package/binutils/arc-2015.06/0002-ld-arc-Provide-the-.tdata-symbol.patch
deleted file mode 100644 (file)
index 40341a5..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From daf1ff839fc68ef31e3263780de4604a95118702 Mon Sep 17 00:00:00 2001
-From: Andrew Burgess <andrew.burgess@embecosm.com>
-Date: Thu, 23 Jul 2015 14:44:15 +0100
-Subject: [PATCH 1/2] ld/arc: Provide the .tdata symbol.
-
-When creating local dynamic tls access we rely on a .tdata symbol being
-available to link against.  Normally, this is fine, as content is placed
-into the .tdata section the linker makes a .tdata symbol available and
-all is fine.
-
-However, these linker created section symbols only exist for input
-sections, not output sections, so, when we assemble with
--fdata-sections, and the content is placed not into '.tdata', but into
-sections like, '.tdata.variable' we end up in a situation where there is
-no input section called '.tdata', and so the linker does not create a
-symbol called '.tdata' for us, at which point the link fails.
-
-The solution it to have the linker script explicitly provide the symbol
-'.tdata', this should ensure that the symbol is always available.
-
-ld/ChangeLog:
-
-       * scripttempl/arclinux.sc (.tdata): Provide the .tdata symbol.
-
-ld/testsuite/ChangeLog:
-
-       * ld/testsuite/ld-arc/arc.exp: Run new test.
-       * ld/testsuite/ld-arc/tls-data-sections.d: New file.
-       * ld/testsuite/ld-arc/tls-data-sections.s: New file.
----
- ld/ChangeLog.ARC                        |  4 ++++
- ld/scripttempl/arclinux.sc              |  2 +-
- ld/testsuite/ChangeLog.ARC              |  6 ++++++
- ld/testsuite/ld-arc/arc.exp             |  1 +
- ld/testsuite/ld-arc/tls-data-sections.d | 12 ++++++++++++
- ld/testsuite/ld-arc/tls-data-sections.s | 30 ++++++++++++++++++++++++++++++
- 6 files changed, 54 insertions(+), 1 deletion(-)
- create mode 100644 ld/testsuite/ld-arc/tls-data-sections.d
- create mode 100644 ld/testsuite/ld-arc/tls-data-sections.s
-
-diff --git a/ld/ChangeLog.ARC b/ld/ChangeLog.ARC
-index fac6f48..0006bb3 100644
---- a/ld/ChangeLog.ARC
-+++ b/ld/ChangeLog.ARC
-@@ -1,3 +1,7 @@
-+2015-07-23  Andrew Burgess  <andrew.burgess@embecosm.com>
-+
-+      * scripttempl/arclinux.sc (.tdata): Provide the .tdata symbol.
-+
- 2015-03-26: Claudiu Zissulescu <claziss@synopsys.com>
-       * testsuite/ld-arc/sda_relocs.d: New file.
-diff --git a/ld/scripttempl/arclinux.sc b/ld/scripttempl/arclinux.sc
-index 9d43ca3..1385b30 100644
---- a/ld/scripttempl/arclinux.sc
-+++ b/ld/scripttempl/arclinux.sc
-@@ -326,7 +326,7 @@ cat <<EOF
-   .data1        ${RELOCATING-0} : { *(.data1) }
-   /* TLS local dynamic uses .tdata as a reference point.  */
-   ${RELOCATING+${CREATE_SHLIB+PROVIDE_HIDDEN (.tdata = .);}}
--  .tdata      ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
-+  .tdata      ${RELOCATING-0} : { PROVIDE_HIDDEN(.tdata = .); *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
-   .tbss               ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
-   .eh_frame     ${RELOCATING-0} : { KEEP (*(.eh_frame)) }
-   .gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) }
-diff --git a/ld/testsuite/ChangeLog.ARC b/ld/testsuite/ChangeLog.ARC
-index b6d3eff..79f7ea9 100644
---- a/ld/testsuite/ChangeLog.ARC
-+++ b/ld/testsuite/ChangeLog.ARC
-@@ -1,3 +1,9 @@
-+2015-07-23  Andrew Burgess  <andrew.burgess@embecosm.com>
-+
-+      * ld/testsuite/ld-arc/arc.exp: Run new test.
-+      * ld/testsuite/ld-arc/tls-data-sections.d: New file.
-+      * ld/testsuite/ld-arc/tls-data-sections.s: New file.
-+
- 2015-06-06  Andrew Burgess  <andrew.burgess@embecosm.com>
-       * ld-arc/unaligned-pc32.d: New file.
-diff --git a/ld/testsuite/ld-arc/arc.exp b/ld/testsuite/ld-arc/arc.exp
-index d2bfafe..74ab458 100644
---- a/ld/testsuite/ld-arc/arc.exp
-+++ b/ld/testsuite/ld-arc/arc.exp
-@@ -47,3 +47,4 @@ if {[check_shared_lib_support]} {
- run_dump_test "sda_relocs"
- run_dump_test "unaligned-pc32"
-+run_dump_test "tls-data-sections"
-diff --git a/ld/testsuite/ld-arc/tls-data-sections.d b/ld/testsuite/ld-arc/tls-data-sections.d
-new file mode 100644
-index 0000000..9823bf0
---- /dev/null
-+++ b/ld/testsuite/ld-arc/tls-data-sections.d
-@@ -0,0 +1,12 @@
-+#source: tls-data-sections.s
-+#ld: --entry=main
-+#objdump: -rd
-+
-+
-+.*:     file format elf32-littlearc
-+
-+
-+Disassembly of section \.text:
-+
-+00010094 <main>:
-+   10094:     00 21 80 3f 00 00 08 00         add        r0,r25,8
-diff --git a/ld/testsuite/ld-arc/tls-data-sections.s b/ld/testsuite/ld-arc/tls-data-sections.s
-new file mode 100644
-index 0000000..f0450c0
---- /dev/null
-+++ b/ld/testsuite/ld-arc/tls-data-sections.s
-@@ -0,0 +1,30 @@
-+        /* This file is not intended to be real code, however, the
-+           contents of the main function is real code as generated as
-+           part of a local dynamic tls model access.  The purpose of
-+           this test is to check that such an access will link
-+           correctly.
-+
-+           Notice that the relocation in main references '.tdata', and
-+           though we put content into '.tdata.pgsz.1362' we don't
-+           create a '.tdata' section.  This is intentional, this example
-+           was generated using -fdata-sections.
-+
-+           The '.tdata' section will be created in the linker script,
-+           and we do expect to be able to reference it.  This should link.
-+        */
-+
-+        .section ".text", "ax"
-+        .global main, _start
-+_start: 
-+        .type   main, @function
-+main:
-+        add r0,pcl,@.tdata@tlsgd                ;8
-+        .size   main, .-main
-+
-+        .section        .tdata.pgsz.1362,"awT",@progbits
-+        .align 8
-+        .type   pgsz.1362, @object
-+        .size   pgsz.1362, 4
-+
-+pgsz.1362:
-+        .word   1
--- 
-2.4.3
-
diff --git a/package/binutils/arc-2015.06/0003-Provide-.tbss-symbol.patch b/package/binutils/arc-2015.06/0003-Provide-.tbss-symbol.patch
deleted file mode 100644 (file)
index 34bb2a2..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From a6014a956a4f2263c28240bb9191bee8f924b5db Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Tue, 28 Jul 2015 13:34:47 +0200
-Subject: [PATCH 2/2] Provide .tbss symbol
-
----
- ld/ChangeLog.ARC           | 14 +++++++++-----
- ld/scripttempl/arclinux.sc |  2 +-
- 2 files changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/ld/ChangeLog.ARC b/ld/ChangeLog.ARC
-index 0006bb3..fb5c717 100644
---- a/ld/ChangeLog.ARC
-+++ b/ld/ChangeLog.ARC
-@@ -1,8 +1,12 @@
-+2015-07-28  Claudiu Zissulescu  <claziss@synopsys.com>
-+
-+      * scripttempl/arclinux.sc (.tbss): Provide the .tbss symbol.
-+
- 2015-07-23  Andrew Burgess  <andrew.burgess@embecosm.com>
-       * scripttempl/arclinux.sc (.tdata): Provide the .tdata symbol.
--2015-03-26: Claudiu Zissulescu <claziss@synopsys.com>
-+2015-03-26  Claudiu Zissulescu <claziss@synopsys.com>
-       * testsuite/ld-arc/sda_relocs.d: New file.
-       * testsuite/ld-arc/sda_relocs.ld: Likewise.
-@@ -13,21 +17,21 @@
-       * scripttempl/arclinux.sc: PROVIDE_HIDDEN .tdata (in case the
-       section won't be included).
--2014-12-17: Claudiu Zissulescu <claziss@synopsys.com>
-+2014-12-17  Claudiu Zissulescu  <claziss@synopsys.com>
-       * scripttempl/elfarcv2.sc: Update .startup section.
--2014-12-08: Claudiu Zissulescu <claziss@synopsys.com>
-+2014-12-08  Claudiu Zissulescu  <claziss@synopsys.com>
-       * emulparams/arcv2elf.sh :Add discarded sections.
-       * emulparams/arcv2elfb.sh: Likewise
-       * scripttempl/elfarcv2.sc: New sections.
--2014-12-01: Claudiu Zissulescu <claziss@synopsys.com>
-+2014-12-01  Claudiu Zissulescu  <claziss@synopsys.com>
-       * scripttempl/elfarcv2.sc: Align the start of the stack.
--2014-11-27: Claudiu Zissulescu <claziss@synopsys.com>
-+2014-11-27  Claudiu Zissulescu  <claziss@synopsys.com>
-       * Makefile.am: Add two new emulation scripts for ARCv2.
-       * configure.tgt: Likewise.
-diff --git a/ld/scripttempl/arclinux.sc b/ld/scripttempl/arclinux.sc
-index 1385b30..bef5336 100644
---- a/ld/scripttempl/arclinux.sc
-+++ b/ld/scripttempl/arclinux.sc
-@@ -327,7 +327,7 @@ cat <<EOF
-   /* TLS local dynamic uses .tdata as a reference point.  */
-   ${RELOCATING+${CREATE_SHLIB+PROVIDE_HIDDEN (.tdata = .);}}
-   .tdata      ${RELOCATING-0} : { PROVIDE_HIDDEN(.tdata = .); *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
--  .tbss               ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
-+  .tbss               ${RELOCATING-0} : { PROVIDE_HIDDEN(.tbss = .); *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
-   .eh_frame     ${RELOCATING-0} : { KEEP (*(.eh_frame)) }
-   .gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) }
-   ${WRITABLE_RODATA+${RODATA}}
--- 
-2.4.3
-
diff --git a/package/binutils/arc-2015.06/0004-Check-to-see-if-the-input-BFD-actually-contains-any-.patch b/package/binutils/arc-2015.06/0004-Check-to-see-if-the-input-BFD-actually-contains-any-.patch
deleted file mode 100644 (file)
index fe4808f..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From a65b844aed9153789356e098984452df2f5d9058 Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Tue, 4 Aug 2015 12:53:11 +0200
-Subject: [PATCH] Check to see if the input BFD actually contains any sections.
-
----
- bfd/elf32-arc.c   | 70 +++++++++++++++++++++++++++++++++++++------------------
- 1 file changed, 47 insertions(+), 23 deletions(-)
-
-diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
-index 38f72b4..76bac6c 100644
---- a/bfd/elf32-arc.c
-+++ b/bfd/elf32-arc.c
-@@ -881,44 +881,68 @@ arc_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
- {
-   unsigned short mach_ibfd;
-   static unsigned short mach_obfd = EM_NONE;
--  flagword old_flags;
--  flagword new_flags;
-+  flagword out_flags;
-+  flagword in_flags;
-+  asection *sec;
-+
-+   /* Check if we have the same endianess.  */
-+  if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-+    {
-+      _bfd_error_handler (
-+                        _("ERROR: Endian Match failed . Attempting to link %B with binary %s \
-+of opposite endian-ness"),
-+                        ibfd, bfd_get_filename (obfd));
-+      return FALSE;
-+    }
-   /* Collect ELF flags. */
--  new_flags = elf_elfheader (ibfd)->e_flags & EF_ARC_MACH_MSK;
--  old_flags = elf_elfheader (obfd)->e_flags & EF_ARC_MACH_MSK;
-+  in_flags = elf_elfheader (ibfd)->e_flags & EF_ARC_MACH_MSK;
-+  out_flags = elf_elfheader (obfd)->e_flags & EF_ARC_MACH_MSK;
- #if DEBUG
--  (*_bfd_error_handler) ("old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s, filename = %s",
--                       old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no",
-+  (*_bfd_error_handler) ("out_flags = 0x%.8lx, in_flags = 0x%.8lx, init = %s, filename = %s",
-+                       out_flags, in_flags, elf_flags_init (obfd) ? "yes" : "no",
-                        bfd_get_filename (ibfd));
- #endif
-   if (!elf_flags_init (obfd))                 /* First call, no flags set.  */
-     {
-       elf_flags_init (obfd) = TRUE;
--      old_flags = new_flags;
-+      out_flags = in_flags;
-     }
-   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-     return TRUE;
--  if (bfd_count_sections (ibfd) == 0)
--    return TRUE ; /* For the case of empty archive files */
-+  /* Check to see if the input BFD actually contains any sections.  If
-+     not, its flags may not have been initialised either, but it
-+     cannot actually cause any incompatiblity.  Do not short-circuit
-+     dynamic objects; their section list may be emptied by
-+     elf_link_add_object_symbols.  */
-+  if (!(ibfd->flags & DYNAMIC))
-+    {
-+      bfd_boolean null_input_bfd = TRUE;
-+      bfd_boolean only_data_sections = TRUE;
--  mach_ibfd = elf_elfheader (ibfd)->e_machine;
-+      for (sec = ibfd->sections; sec != NULL; sec = sec->next)
-+      {
-+        if ((bfd_get_section_flags (ibfd, sec)
-+             & (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
-+            == (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
-+          only_data_sections = FALSE;
--   /* Check if we have the same endianess.  */
--  if (! _bfd_generic_verify_endian_match (ibfd, obfd))
--    {
--      _bfd_error_handler (_("\
--ERROR: Endian Match failed . Attempting to link %B with binary %s \
--of opposite endian-ness"),
--                        ibfd, bfd_get_filename (obfd));
--      return FALSE;
-+        null_input_bfd = FALSE;
-+        break;
-+      }
-+
-+      if (null_input_bfd || only_data_sections)
-+      return TRUE;
-     }
-+
-+  /* Complain about various flag/architecture mismatches.  */
-+  mach_ibfd = elf_elfheader (ibfd)->e_machine;
-   if (mach_obfd == EM_NONE)
-     {
-       mach_obfd = mach_ibfd;
-@@ -932,23 +956,23 @@ with a binary %s of different architecture"),
-                             ibfd, bfd_get_filename (obfd));
-         return FALSE;
-       }
--      else if (new_flags != old_flags)
-+      else if (in_flags != out_flags)
-       {
-         /* Warn if different flags. */
-         (*_bfd_error_handler)
-           (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
--           bfd_get_filename (ibfd), (long)new_flags, (long)old_flags);
--        if (new_flags && old_flags)
-+           bfd_get_filename (ibfd), (long)in_flags, (long)out_flags);
-+        if (in_flags && out_flags)
-           return FALSE;
-         /* MWDT doesnt set the eflags hence make sure we choose the
-            eflags set by gcc.  */
--        new_flags = new_flags > old_flags ? new_flags : old_flags;
-+        in_flags = in_flags > out_flags ? in_flags : out_flags;
-       }
-     }
-   /* Update the flags. */
--  elf_elfheader (obfd)->e_flags = new_flags;
-+  elf_elfheader (obfd)->e_flags = in_flags;
-   if (bfd_get_mach (obfd) < bfd_get_mach (ibfd))
-     {
--- 
-2.4.3
-
diff --git a/package/binutils/arc-2015.06/0005-Test-the-entire-object-if-it-contains-only-data-sect.patch b/package/binutils/arc-2015.06/0005-Test-the-entire-object-if-it-contains-only-data-sect.patch
deleted file mode 100644 (file)
index 2cc96fc..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 5df50c61083165455aae5504c5c3566fa5ccebb1 Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Fri, 16 Oct 2015 10:21:21 +0200
-Subject: [PATCH] Test the entire object if it contains only data sections.
-
-diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
-index 76bac6c..eb4f8e0 100644
---- a/bfd/elf32-arc.c
-+++ b/bfd/elf32-arc.c
-@@ -915,11 +915,9 @@ of opposite endian-ness"),
-       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-     return TRUE;
--  /* Check to see if the input BFD actually contains any sections.  If
--     not, its flags may not have been initialised either, but it
--     cannot actually cause any incompatiblity.  Do not short-circuit
--     dynamic objects; their section list may be emptied by
--     elf_link_add_object_symbols.  */
-+  /* Check to see if the input BFD actually contains any sections.  Do
-+     not short-circuit dynamic objects; their section list may be
-+     emptied by elf_link_add_object_symbols.  */
-   if (!(ibfd->flags & DYNAMIC))
-     {
-       bfd_boolean null_input_bfd = TRUE;
-@@ -933,7 +931,6 @@ of opposite endian-ness"),
-           only_data_sections = FALSE;
-         null_input_bfd = FALSE;
--        break;
-       }
-       if (null_input_bfd || only_data_sections)
--- 
-2.4.3
-
diff --git a/package/binutils/arc-2015.06/600-poison-system-directories.patch b/package/binutils/arc-2015.06/600-poison-system-directories.patch
deleted file mode 100644 (file)
index 8a3bdc6..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-Patch adapted to binutils arc-4.8-R3 and extended to use
-BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Upstream-Status: Inappropriate [distribution: codesourcery]
-
-Patch originally created by Mark Hatle, forward-ported to
-binutils 2.21 by Scott Garman.
-
-purpose:  warn for uses of system directories when cross linking
-
-Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
-
-2008-07-02  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * ld.h (args_type): Add error_poison_system_directories.
-    * ld.texinfo (--error-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.error_poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.error_poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --error-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-06-13  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * config.in: Regenerate.
-    * ld.h (args_type): Add poison_system_directories.
-    * ld.texinfo (--no-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --no-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-04-20  Joseph Myers  <joseph@codesourcery.com>
-
-    Merge from Sourcery G++ binutils 2.17:
-
-    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
-    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
-    ld/
-    * configure.in (--enable-poison-system-directories): New option.
-    * configure, config.in: Regenerate.
-    * ldfile.c (ldfile_add_library_path): If
-    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
-    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-
-Index: b/ld/config.in
-===================================================================
---- a/ld/config.in
-+++ b/ld/config.in
-@@ -11,6 +11,9 @@
-    language is requested. */
- #undef ENABLE_NLS
-+/* Define to warn for use of native system library directories */
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+
- /* Additional extension a shared object might have. */
- #undef EXTRA_SHLIB_EXTENSION
-Index: b/ld/configure
-===================================================================
---- a/ld/configure
-+++ b/ld/configure
-@@ -773,6 +773,7 @@
- enable_targets
- enable_64_bit_bfd
- with_sysroot
-+enable_poison_system_directories
- enable_gold
- enable_got
- enable_werror
-@@ -1428,6 +1429,8 @@
-                         (and sometimes confusing) to the casual installer
-   --enable-targets        alternative target configurations
-   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
-+  --enable-poison-system-directories
-+                          warn for use of native system library directories
-   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
-   --enable-got=<type>     GOT handling scheme (target, single, negative,
-                           multigot)
-@@ -4338,7 +4341,18 @@
- fi
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+  enableval=$enable_poison_system_directories;
-+else
-+  enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+
-+fi
- # Check whether --enable-got was given.
- if test "${enable_got+set}" = set; then :
-Index: b/ld/configure.in
-===================================================================
---- a/ld/configure.in
-+++ b/ld/configure.in
-@@ -70,6 +70,16 @@
- AC_SUBST(TARGET_SYSTEM_ROOT)
- AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
-+AC_ARG_ENABLE([poison-system-directories],
-+         AS_HELP_STRING([--enable-poison-system-directories],
-+                [warn for use of native system library directories]),,
-+         [enable_poison_system_directories=no])
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+       [1],
-+       [Define to warn for use of native system library directories])
-+fi
-+
- dnl Use --enable-gold to decide if this linker should be the default.
- dnl "install_as_default" is set to false if gold is the default linker.
- dnl "installed_linker" is the installed BFD linker name.
-Index: b/ld/ldfile.c
-===================================================================
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -116,6 +116,23 @@
-     new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
-   else
-     new_dirs->name = xstrdup (name);
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+  if (command_line.poison_system_directories
-+  && ((!strncmp (name, "/lib", 4))
-+      || (!strncmp (name, "/usr/lib", 8))
-+      || (!strncmp (name, "/usr/local/lib", 14))
-+      || (!strncmp (name, "/usr/X11R6/lib", 14))))
-+   {
-+     if (command_line.error_poison_system_directories)
-+       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+     else
-+       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+   }
-+#endif
-+
- }
- /* Try to open a BFD for a lang_input_statement.  */
-Index: b/ld/ld.h
-===================================================================
---- a/ld/ld.h
-+++ b/ld/ld.h
-@@ -203,6 +203,14 @@
-   /* If TRUE we'll just print the default output on stdout.  */
-   bfd_boolean print_output_format;
-+  /* If TRUE (the default) warn for uses of system directories when
-+     cross linking.  */
-+  bfd_boolean poison_system_directories;
-+
-+  /* If TRUE (default FALSE) give an error for uses of system
-+     directories when cross linking instead of a warning.  */
-+  bfd_boolean error_poison_system_directories;
-+
-   /* Big or little endian as set on command line.  */
-   enum endian_enum endian;
-Index: b/ld/ldmain.c
-===================================================================
---- a/ld/ldmain.c
-+++ b/ld/ldmain.c
-@@ -265,6 +265,8 @@
-   command_line.warn_search_mismatch = TRUE;
-   command_line.check_section_addresses = -1;
-   command_line.disable_target_specific_optimizations = -1;
-+  command_line.poison_system_directories = TRUE;
-+  command_line.error_poison_system_directories = FALSE;
-   /* We initialize DEMANGLING based on the environment variable
-      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
-Index: b/ld/ld.texinfo
-===================================================================
---- a/ld/ld.texinfo
-+++ b/ld/ld.texinfo
-@@ -2156,6 +2156,18 @@
- Passing @code{none} for @var{style} disables the setting from any
- @code{--build-id} options earlier on the command line.
-+
-+@kindex --no-poison-system-directories
-+@item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+@file{/usr/lib} when cross linking.  This option is intended for use
-+in chroot environments when such directories contain the correct
-+libraries for the target system rather than the host.
-+
-+@kindex --error-poison-system-directories
-+@item --error-poison-system-directories
-+Give an error instead of a warning for @option{-L} options using
-+system directories when cross linking.
- @end table
- @c man end
-Index: b/ld/lexsup.c
-===================================================================
---- a/ld/lexsup.c
-+++ b/ld/lexsup.c
-@@ -498,6 +498,14 @@
-     TWO_DASHES },
-   { {"wrap", required_argument, NULL, OPTION_WRAP},
-     '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
-+  { {"no-poison-system-directories", no_argument, NULL,
-+     OPTION_NO_POISON_SYSTEM_DIRECTORIES},
-+    '\0', NULL, N_("Do not warn for -L options using system directories"),
-+    TWO_DASHES },
-+  { {"error-poison-system-directories", no_argument, NULL,
-+     OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
-+    '\0', NULL, N_("Give an error for -L options using system directories"),
-+    TWO_DASHES },
- };
- #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -510,6 +518,7 @@
-   int ingroup = 0;
-   char *default_dirlist = NULL;
-   char *shortopts;
-+  char *BR_paranoid_env;
-   struct option *longopts;
-   struct option *really_longopts;
-   int last_optind;
-@@ -1427,9 +1436,21 @@
-               einfo (_("%P%X: --hash-size needs a numeric argument\n"));
-           }
-           break;
-+
-+   case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-+     command_line.poison_system_directories = FALSE;
-+     break;
-+
-+   case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-+     command_line.error_poison_system_directories = TRUE;
-+     break;
-       }
-     }
-+  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
-+  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
-+    command_line.error_poison_system_directories = TRUE;
-+
-   while (ingroup)
-     {
-       lang_leave_group ();
-Index: b/ld/ldlex.h
-===================================================================
---- a/ld/ldlex.h
-+++ b/ld/ldlex.h
-@@ -136,6 +136,8 @@
- #endif /* ENABLE_PLUGINS */
-   OPTION_DEFAULT_SCRIPT,
-   OPTION_PRINT_OUTPUT_FORMAT,
-+  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-+  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
- };
- /* The initial parser states.  */
diff --git a/package/binutils/arc-2015.12-rc1/0001-PR-other-56780.patch b/package/binutils/arc-2015.12-rc1/0001-PR-other-56780.patch
new file mode 100644 (file)
index 0000000..b418a2f
--- /dev/null
@@ -0,0 +1,236 @@
+From 7827cdf59a1894abe18aa20043a63c8c875c3fce Mon Sep 17 00:00:00 2001
+From: DJ Delorie <dj@redhat.com>
+Date: Sat, 1 Jun 2013 01:01:44 +0000
+Subject: [PATCH] PR other/56780 merge from gcc
+
+binutils-gdb upstream a4818a052efb4cea976a03a2f7cb0b38b23d12d0
+
+libiberty: fix --enable-install-libiberty flag [PR 56780]
+
+Commit 199570 fixed the --disable-install-libiberty behavior, but it also
+added a bug where the enable path never works because the initial clear
+of target_header_dir wasn't deleted.  So we end up initializing properly
+at the top only to reset it at the end all the time.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
+
+[Romain
+  rename patch name
+  squash the two upstream commits
+  Remove the ChangeLog]
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ libiberty/Makefile.in  | 24 ++++++++++-----------
+ libiberty/configure    | 57 +++++++++++++++++++++++++++-----------------------
+ libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
+ 3 files changed, 68 insertions(+), 60 deletions(-)
+
+diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
+index 0a5da31..4f40c72 100644
+--- a/libiberty/Makefile.in
++++ b/libiberty/Makefile.in
+@@ -354,19 +354,19 @@ install-strip: install
+ # since it will be passed the multilib flags.
+ MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
+ install_to_libdir: all
+-      ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
+-      $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
+-      ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
+-      mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
+       if test -n "${target_header_dir}"; then \
+-        case "${target_header_dir}" in \
+-          /*)    thd=${target_header_dir};; \
+-          *)     thd=${includedir}/${target_header_dir};; \
+-        esac; \
+-        ${mkinstalldirs} $(DESTDIR)$${thd}; \
+-        for h in ${INSTALLED_HEADERS}; do \
+-          ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
+-        done; \
++              ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
++              $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
++              ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
++              mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
++              case "${target_header_dir}" in \
++                /*)    thd=${target_header_dir};; \
++                *)     thd=${includedir}/${target_header_dir};; \
++              esac; \
++              ${mkinstalldirs} $(DESTDIR)$${thd}; \
++              for h in ${INSTALLED_HEADERS}; do \
++                ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
++              done; \
+       fi
+       @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
+diff --git a/libiberty/configure b/libiberty/configure
+index 6e98352..44d1f78 100755
+--- a/libiberty/configure
++++ b/libiberty/configure
+@@ -675,8 +675,8 @@ with_cross_host
+ with_newlib
+ enable_maintainer_mode
+ enable_multilib
+-enable_largefile
+ enable_install_libiberty
++enable_largefile
+ '
+       ac_precious_vars='build_alias
+ host_alias
+@@ -1303,8 +1303,8 @@ Optional Features:
+                           enable make rules and dependencies not useful
+                           (and sometimes confusing) to the casual installer
+   --enable-multilib       build many library versions (default)
++  --enable-install-libiberty       Install headers and library for end users
+   --disable-largefile     omit support for large files
+-  --enable-install-libiberty       Install headers for end users
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
+    cross_compiling=maybe
+ fi
++# We may wish to install the target headers somewhere.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
++$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
++
++# Check whether --enable-install-libiberty was given.
++if test "${enable_install_libiberty+set}" = set; then :
++  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
++else
++  enable_install_libiberty=no
++fi
++
++# Option parsed, now set things appropriately.
++case x"$enable_install_libiberty" in
++  xyes|x)
++    target_header_dir=libiberty
++    ;;
++  xno)
++    target_header_dir=
++    ;;
++  *)
++    # This could be sanity-checked in various ways...
++    target_header_dir="${enable_install_libiberty}"
++    ;;
++esac
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
++$as_echo "$enable_install_libiberty" >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
++$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -5475,7 +5504,6 @@ fi
+ setobjs=
+ CHECK=
+-target_header_dir=
+ if test -n "${with_target_subdir}"; then
+   # We are being configured as a target library.  AC_REPLACE_FUNCS
+@@ -5752,29 +5780,6 @@ _ACEOF
+   esac
+-  # We may wish to install the target headers somewhere.
+-  # Check whether --enable-install-libiberty was given.
+-if test "${enable_install_libiberty+set}" = set; then :
+-  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
+-else
+-  enable_install_libiberty=no
+-fi
+-
+-  # Option parsed, now set things appropriately.
+-  case x"$enable_install_libiberty" in
+-    xyes|x)
+-      target_header_dir=libiberty
+-      ;;
+-    xno)
+-      target_header_dir=
+-      ;;
+-    *)
+-      # This could be sanity-checked in various ways...
+-      target_header_dir="${enable_install_libiberty}"
+-      ;;
+-  esac
+-
+-
+ else
+    # Not a target library, so we set things up to run the test suite.
+diff --git a/libiberty/configure.ac b/libiberty/configure.ac
+index 754b66a..04260ec 100644
+--- a/libiberty/configure.ac
++++ b/libiberty/configure.ac
+@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
+    cross_compiling=maybe
+ fi
++# We may wish to install the target headers somewhere.
++AC_MSG_CHECKING([whether to install libiberty headers and static library])
++dnl install-libiberty is disabled by default
++
++AC_ARG_ENABLE(install-libiberty,
++[  --enable-install-libiberty       Install headers and library for end users],
++enable_install_libiberty=$enableval,
++enable_install_libiberty=no)dnl
++
++# Option parsed, now set things appropriately.
++case x"$enable_install_libiberty" in
++  xyes|x)
++    target_header_dir=libiberty
++    ;;
++  xno)   
++    target_header_dir=
++    ;;
++  *) 
++    # This could be sanity-checked in various ways...
++    target_header_dir="${enable_install_libiberty}"
++    ;;
++esac
++AC_MSG_RESULT($enable_install_libiberty)
++AC_MSG_NOTICE([target_header_dir = $target_header_dir])
++
+ GCC_NO_EXECUTABLES
+ AC_PROG_CC
+ AC_SYS_LARGEFILE
+@@ -379,7 +404,6 @@ fi
+ setobjs=
+ CHECK=
+-target_header_dir=
+ if test -n "${with_target_subdir}"; then
+   # We are being configured as a target library.  AC_REPLACE_FUNCS
+@@ -490,27 +514,6 @@ if test -n "${with_target_subdir}"; then
+   esac
+-  # We may wish to install the target headers somewhere.
+-  AC_ARG_ENABLE(install-libiberty,
+-  [  --enable-install-libiberty       Install headers for end users],
+-  enable_install_libiberty=$enableval,
+-  enable_install_libiberty=no)dnl
+-  
+-  # Option parsed, now set things appropriately.
+-  case x"$enable_install_libiberty" in
+-    xyes|x)
+-      target_header_dir=libiberty
+-      ;;
+-    xno)   
+-      target_header_dir=
+-      ;;
+-    *) 
+-      # This could be sanity-checked in various ways...
+-      target_header_dir="${enable_install_libiberty}"
+-      ;;
+-  esac
+-
+-
+ else
+    # Not a target library, so we set things up to run the test suite.
+-- 
+1.9.3
+
diff --git a/package/binutils/arc-2015.12-rc1/600-poison-system-directories.patch b/package/binutils/arc-2015.12-rc1/600-poison-system-directories.patch
new file mode 100644 (file)
index 0000000..8a3bdc6
--- /dev/null
@@ -0,0 +1,279 @@
+Patch adapted to binutils arc-4.8-R3 and extended to use
+BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Upstream-Status: Inappropriate [distribution: codesourcery]
+
+Patch originally created by Mark Hatle, forward-ported to
+binutils 2.21 by Scott Garman.
+
+purpose:  warn for uses of system directories when cross linking
+
+Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
+
+2008-07-02  Joseph Myers  <joseph@codesourcery.com>
+
+    ld/
+    * ld.h (args_type): Add error_poison_system_directories.
+    * ld.texinfo (--error-poison-system-directories): Document.
+    * ldfile.c (ldfile_add_library_path): Check
+    command_line.error_poison_system_directories.
+    * ldmain.c (main): Initialize
+    command_line.error_poison_system_directories.
+    * lexsup.c (enum option_values): Add
+    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
+    (ld_options): Add --error-poison-system-directories.
+    (parse_args): Handle new option.
+
+2007-06-13  Joseph Myers  <joseph@codesourcery.com>
+
+    ld/
+    * config.in: Regenerate.
+    * ld.h (args_type): Add poison_system_directories.
+    * ld.texinfo (--no-poison-system-directories): Document.
+    * ldfile.c (ldfile_add_library_path): Check
+    command_line.poison_system_directories.
+    * ldmain.c (main): Initialize
+    command_line.poison_system_directories.
+    * lexsup.c (enum option_values): Add
+    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
+    (ld_options): Add --no-poison-system-directories.
+    (parse_args): Handle new option.
+
+2007-04-20  Joseph Myers  <joseph@codesourcery.com>
+
+    Merge from Sourcery G++ binutils 2.17:
+
+    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
+    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
+    ld/
+    * configure.in (--enable-poison-system-directories): New option.
+    * configure, config.in: Regenerate.
+    * ldfile.c (ldfile_add_library_path): If
+    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
+    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+
+Index: b/ld/config.in
+===================================================================
+--- a/ld/config.in
++++ b/ld/config.in
+@@ -11,6 +11,9 @@
+    language is requested. */
+ #undef ENABLE_NLS
++/* Define to warn for use of native system library directories */
++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
++
+ /* Additional extension a shared object might have. */
+ #undef EXTRA_SHLIB_EXTENSION
+Index: b/ld/configure
+===================================================================
+--- a/ld/configure
++++ b/ld/configure
+@@ -773,6 +773,7 @@
+ enable_targets
+ enable_64_bit_bfd
+ with_sysroot
++enable_poison_system_directories
+ enable_gold
+ enable_got
+ enable_werror
+@@ -1428,6 +1429,8 @@
+                         (and sometimes confusing) to the casual installer
+   --enable-targets        alternative target configurations
+   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
++  --enable-poison-system-directories
++                          warn for use of native system library directories
+   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
+   --enable-got=<type>     GOT handling scheme (target, single, negative,
+                           multigot)
+@@ -4338,7 +4341,18 @@
+ fi
++# Check whether --enable-poison-system-directories was given.
++if test "${enable_poison_system_directories+set}" = set; then :
++  enableval=$enable_poison_system_directories;
++else
++  enable_poison_system_directories=no
++fi
++
++if test "x${enable_poison_system_directories}" = "xyes"; then
++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
++
++fi
+ # Check whether --enable-got was given.
+ if test "${enable_got+set}" = set; then :
+Index: b/ld/configure.in
+===================================================================
+--- a/ld/configure.in
++++ b/ld/configure.in
+@@ -70,6 +70,16 @@
+ AC_SUBST(TARGET_SYSTEM_ROOT)
+ AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
++AC_ARG_ENABLE([poison-system-directories],
++         AS_HELP_STRING([--enable-poison-system-directories],
++                [warn for use of native system library directories]),,
++         [enable_poison_system_directories=no])
++if test "x${enable_poison_system_directories}" = "xyes"; then
++  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
++       [1],
++       [Define to warn for use of native system library directories])
++fi
++
+ dnl Use --enable-gold to decide if this linker should be the default.
+ dnl "install_as_default" is set to false if gold is the default linker.
+ dnl "installed_linker" is the installed BFD linker name.
+Index: b/ld/ldfile.c
+===================================================================
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -116,6 +116,23 @@
+     new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
+   else
+     new_dirs->name = xstrdup (name);
++
++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
++  if (command_line.poison_system_directories
++  && ((!strncmp (name, "/lib", 4))
++      || (!strncmp (name, "/usr/lib", 8))
++      || (!strncmp (name, "/usr/local/lib", 14))
++      || (!strncmp (name, "/usr/X11R6/lib", 14))))
++   {
++     if (command_line.error_poison_system_directories)
++       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
++            "cross-compilation\n"), name);
++     else
++       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
++            "cross-compilation\n"), name);
++   }
++#endif
++
+ }
+ /* Try to open a BFD for a lang_input_statement.  */
+Index: b/ld/ld.h
+===================================================================
+--- a/ld/ld.h
++++ b/ld/ld.h
+@@ -203,6 +203,14 @@
+   /* If TRUE we'll just print the default output on stdout.  */
+   bfd_boolean print_output_format;
++  /* If TRUE (the default) warn for uses of system directories when
++     cross linking.  */
++  bfd_boolean poison_system_directories;
++
++  /* If TRUE (default FALSE) give an error for uses of system
++     directories when cross linking instead of a warning.  */
++  bfd_boolean error_poison_system_directories;
++
+   /* Big or little endian as set on command line.  */
+   enum endian_enum endian;
+Index: b/ld/ldmain.c
+===================================================================
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -265,6 +265,8 @@
+   command_line.warn_search_mismatch = TRUE;
+   command_line.check_section_addresses = -1;
+   command_line.disable_target_specific_optimizations = -1;
++  command_line.poison_system_directories = TRUE;
++  command_line.error_poison_system_directories = FALSE;
+   /* We initialize DEMANGLING based on the environment variable
+      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
+Index: b/ld/ld.texinfo
+===================================================================
+--- a/ld/ld.texinfo
++++ b/ld/ld.texinfo
+@@ -2156,6 +2156,18 @@
+ Passing @code{none} for @var{style} disables the setting from any
+ @code{--build-id} options earlier on the command line.
++
++@kindex --no-poison-system-directories
++@item --no-poison-system-directories
++Do not warn for @option{-L} options using system directories such as
++@file{/usr/lib} when cross linking.  This option is intended for use
++in chroot environments when such directories contain the correct
++libraries for the target system rather than the host.
++
++@kindex --error-poison-system-directories
++@item --error-poison-system-directories
++Give an error instead of a warning for @option{-L} options using
++system directories when cross linking.
+ @end table
+ @c man end
+Index: b/ld/lexsup.c
+===================================================================
+--- a/ld/lexsup.c
++++ b/ld/lexsup.c
+@@ -498,6 +498,14 @@
+     TWO_DASHES },
+   { {"wrap", required_argument, NULL, OPTION_WRAP},
+     '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
++  { {"no-poison-system-directories", no_argument, NULL,
++     OPTION_NO_POISON_SYSTEM_DIRECTORIES},
++    '\0', NULL, N_("Do not warn for -L options using system directories"),
++    TWO_DASHES },
++  { {"error-poison-system-directories", no_argument, NULL,
++     OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
++    '\0', NULL, N_("Give an error for -L options using system directories"),
++    TWO_DASHES },
+ };
+ #define OPTION_COUNT ARRAY_SIZE (ld_options)
+@@ -510,6 +518,7 @@
+   int ingroup = 0;
+   char *default_dirlist = NULL;
+   char *shortopts;
++  char *BR_paranoid_env;
+   struct option *longopts;
+   struct option *really_longopts;
+   int last_optind;
+@@ -1427,9 +1436,21 @@
+               einfo (_("%P%X: --hash-size needs a numeric argument\n"));
+           }
+           break;
++
++   case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
++     command_line.poison_system_directories = FALSE;
++     break;
++
++   case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
++     command_line.error_poison_system_directories = TRUE;
++     break;
+       }
+     }
++  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
++  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
++    command_line.error_poison_system_directories = TRUE;
++
+   while (ingroup)
+     {
+       lang_leave_group ();
+Index: b/ld/ldlex.h
+===================================================================
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -136,6 +136,8 @@
+ #endif /* ENABLE_PLUGINS */
+   OPTION_DEFAULT_SCRIPT,
+   OPTION_PRINT_OUTPUT_FORMAT,
++  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
++  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
+ };
+ /* The initial parser states.  */
index 51499f0fcbae8fcdd54787762df19d316e533b58..5d4ddb378e18092cba9156bfee0cc7a012494bef 100644 (file)
@@ -4,4 +4,4 @@ sha512  dec753bbba008f1526b89cf1bd85feba78f362f5333ffdf93953fd131eb755976dec82a0
 sha512  5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12  binutils-2.24.tar.bz2
 sha512  0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d  binutils-2.25.1.tar.bz2
 # No hash for the ARC variant, comes from the github-helper:
-none   xxx  binutils-arc-2015.06.tar.gz
+none   xxx  binutils-arc-2015.12-rc1.tar.gz
index 2074fae1c92523faee012ac84b8a840f4975461c..7c5955e25cf12aa18ddc105696c61158fd4e7cf9 100644 (file)
@@ -9,7 +9,7 @@
 BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
 ifeq ($(BINUTILS_VERSION),)
 ifeq ($(BR2_arc),y)
-BINUTILS_VERSION = arc-2015.06
+BINUTILS_VERSION = arc-2015.12-rc1
 else
 BINUTILS_VERSION = 2.24
 endif
index 57cafa4f1dbdcc2eb7d67631e74b7aff7ec07c75..4184ac75efa7c575b9f0db914a63a3cc01d32152 100644 (file)
@@ -114,7 +114,7 @@ config BR2_GCC_VERSION
        default "4.8.5"     if BR2_GCC_VERSION_4_8_X
        default "4.9.3"     if BR2_GCC_VERSION_4_9_X
        default "5.3.0"     if BR2_GCC_VERSION_5_X
-       default "arc-2015.06" if BR2_GCC_VERSION_4_8_ARC
+       default "arc-2015.12-rc1" if BR2_GCC_VERSION_4_8_ARC
 
 config BR2_EXTRA_GCC_CONFIG_OPTIONS
        string "Additional gcc options"
diff --git a/package/gcc/arc-2015.06/0001-Differentiate-between-a-bss-TLS-initialized-symbol.patch b/package/gcc/arc-2015.06/0001-Differentiate-between-a-bss-TLS-initialized-symbol.patch
deleted file mode 100644 (file)
index 7a86b62..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 366cc86e4f8ff6f00f0b731dc6f78d22c7ac9e0a Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Tue, 7 Jul 2015 17:59:52 +0200
-Subject: [PATCH] Differentiate between a bss TLS initialized symbol.
-
-Back-port from https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/366cc86e4f8ff6f00f0b731dc6f78d22c7ac9e0a
-
-This patch fixes "undefined reference to .tdata" observed in many autobuilder
-results for ARC.
-
-Once the next release of ARC GNU tools happens this patch must be removed from
-Buildroot.
-
----
- gcc/config/arc/arc.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
-index b6eb3b5..73c3a87 100644
---- a/gcc/config/arc/arc.c
-+++ b/gcc/config/arc/arc.c
-@@ -5262,10 +5262,15 @@ arc_legitimize_tls_address (rtx addr, enum tls_model model)
-     {
-     case TLS_MODEL_LOCAL_DYNAMIC:
-       rtx base;
--      tree base_decl; base_decl
--      = lookup_attribute ("tls9", DECL_ATTRIBUTES (SYMBOL_REF_DECL (addr)));
-+      tree base_decl, decl;
-+      decl = SYMBOL_REF_DECL (addr);
-+      base_decl = lookup_attribute ("tls9", DECL_ATTRIBUTES (decl));
-       const char *base_name; base_name = DTPOFF_ZERO_SYM;
-       rtvec v;
-+
-+      if (bss_initializer_p (decl))
-+      base_name = ".tbss";
-+
-       if (base_decl && TREE_VALUE (base_decl)
-         && TREE_VALUE (TREE_VALUE (base_decl)))
-       {
--- 
-2.4.3
-
diff --git a/package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch b/package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch
deleted file mode 100644 (file)
index b9a60d9..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From b4035128ba8f8bbbf9527f54f261a87b304ca4c5 Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Mon, 9 Nov 2015 15:23:39 +0100
-Subject: [PATCH] Handle correctly compare arguments
-
----
- gcc/config/arc/arc.c | 24 ++++++++++++++++++------
- 1 files changed, 18 insertions(+), 6 deletions(-)
-
-diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
-index bd53525..caf483b 100644
---- a/gcc/config/arc/arc.c
-+++ b/gcc/config/arc/arc.c
-@@ -1998,7 +1998,7 @@ gen_compare_reg (rtx comparison, enum machine_mode omode)
-   rtx y = XEXP (comparison, 1);
-   rtx tmp, cc_reg;
-   enum machine_mode mode, cmode;
--
-+  bool swap = false;
-   cmode = GET_MODE (x);
-   if (cmode == VOIDmode)
-@@ -2073,6 +2073,7 @@ gen_compare_reg (rtx comparison, enum machine_mode omode)
-       rtx op0 = gen_rtx_REG (cmode, 0);
-       rtx op1 = gen_rtx_REG (cmode, GET_MODE_SIZE (cmode) / UNITS_PER_WORD);
-+      swap = false;
-       switch (code)
-       {
-       case NE: case EQ: case GT: case UNLE: case GE: case UNLT:
-@@ -2080,22 +2081,33 @@ gen_compare_reg (rtx comparison, enum machine_mode omode)
-         break;
-       case LT: case UNGE: case LE: case UNGT:
-         code = swap_condition (code);
--        tmp = x;
--        x = y;
--        y = tmp;
-+        swap = true;
-         break;
-       default:
-         gcc_unreachable ();
-       }
-       if (currently_expanding_to_rtl)
-       {
--        emit_move_insn (op0, x);
--        emit_move_insn (op1, y);
-+        if (swap)
-+          {
-+            emit_move_insn (op0, y);
-+            emit_move_insn (op1, x);
-+          }
-+        else
-+          {
-+            emit_move_insn (op0, x);
-+            emit_move_insn (op1, y);
-+          }
-       }
-       else
-       {
-         gcc_assert (rtx_equal_p (op0, x));
-         gcc_assert (rtx_equal_p (op1, y));
-+        if (swap)
-+          {
-+            op0 = y;
-+            op1 = x;
-+          }
-       }
-       emit_insn (gen_cmp_float (cc_reg, gen_rtx_COMPARE (mode, op0, op1)));
-     }
--- 
-2.5.0
diff --git a/package/gcc/arc-2015.06/100-libstdcxx-uclibc-c99.patch b/package/gcc/arc-2015.06/100-libstdcxx-uclibc-c99.patch
deleted file mode 100644 (file)
index 0d02ef0..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-Allow C99-depending features of libstdc++ with uClibc
-
-The libstdc++ code is fairly restrictive on how it checks for C99
-compatibility: it requires *complete* C99 support to enable certain
-features. For example, uClibc provides a good number of C99 features,
-but not C99 complex number support. For this reason, libstdc++
-completely disables many the standard C++ methods that can in fact
-work because uClibc provides the necessary functions.
-
-This patch is similar and highly inspired from
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
-a way that doesn't involve changing the configure.ac script, as
-autoreconfiguring gcc is complicated. It simply relies on the fact
-that uClibc defines the __UCLIBC__ definition.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/libstdc++-v3/config/locale/generic/c_locale.h
-===================================================================
---- a/libstdc++-v3/config/locale/generic/c_locale.h
-+++ b/libstdc++-v3/config/locale/generic/c_locale.h
-@@ -70,7 +70,7 @@
-     __builtin_va_list __args;
-     __builtin_va_start(__args, __fmt);
--#ifdef _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-     const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
- #else
-     const int __ret = __builtin_vsprintf(__out, __fmt, __args);
-Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
-===================================================================
---- a/libstdc++-v3/config/locale/gnu/c_locale.h
-+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
-@@ -88,7 +88,7 @@
-     __builtin_va_list __args;
-     __builtin_va_start(__args, __fmt);
--#ifdef _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-     const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
- #else
-     const int __ret = __builtin_vsprintf(__out, __fmt, __args);
-Index: b/libstdc++-v3/include/bits/basic_string.h
-===================================================================
---- a/libstdc++-v3/include/bits/basic_string.h
-+++ b/libstdc++-v3/include/bits/basic_string.h
-@@ -2811,7 +2811,7 @@
- _GLIBCXX_END_NAMESPACE_VERSION
- } // namespace
--#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
-+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
-      && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
- #include <ext/string_conversions.h>
-Index: b/libstdc++-v3/include/bits/locale_facets.tcc
-===================================================================
---- a/libstdc++-v3/include/bits/locale_facets.tcc
-+++ b/libstdc++-v3/include/bits/locale_facets.tcc
-@@ -987,7 +987,7 @@
-       char __fbuf[16];
-       __num_base::_S_format_float(__io, __fbuf, __mod);
--#ifdef _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-       // First try a buffer perhaps big enough (most probably sufficient
-       // for non-ios_base::fixed outputs)
-       int __cs_size = __max_digits * 3;
-Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
-===================================================================
---- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
-+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
-@@ -572,7 +572,7 @@
-     {
-       const locale __loc = __io.getloc();
-       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
--#ifdef _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-       // First try a buffer perhaps big enough.
-       int __cs_size = 64;
-       char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
-Index: b/libstdc++-v3/include/c_compatibility/math.h
-===================================================================
---- a/libstdc++-v3/include/c_compatibility/math.h
-+++ b/libstdc++-v3/include/c_compatibility/math.h
-@@ -56,7 +56,7 @@
- using std::floor;
- using std::fmod;
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- using std::fpclassify;
- using std::isfinite;
- using std::isinf;
-Index: b/libstdc++-v3/include/c_compatibility/wchar.h
-===================================================================
---- a/libstdc++-v3/include/c_compatibility/wchar.h
-+++ b/libstdc++-v3/include/c_compatibility/wchar.h
-@@ -103,7 +103,7 @@
- using std::wmemset;
- using std::wcsftime;
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- using std::wcstold;
- using std::wcstoll;
- using std::wcstoull;
-Index: b/libstdc++-v3/include/c_global/cstdlib
-===================================================================
---- a/libstdc++-v3/include/c_global/cstdlib
-+++ b/libstdc++-v3/include/c_global/cstdlib
-@@ -182,7 +182,7 @@
- _GLIBCXX_END_NAMESPACE_VERSION
- } // namespace
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- #undef _Exit
- #undef llabs
-Index: b/libstdc++-v3/include/c_global/cwchar
-===================================================================
---- a/libstdc++-v3/include/c_global/cwchar
-+++ b/libstdc++-v3/include/c_global/cwchar
-@@ -232,7 +232,7 @@
- _GLIBCXX_END_NAMESPACE_VERSION
- } // namespace
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- #undef wcstold
- #undef wcstoll
-@@ -289,7 +289,7 @@
-   using std::vwscanf;
- #endif
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-   using std::wcstold;
-   using std::wcstoll;
-   using std::wcstoull;
-Index: b/libstdc++-v3/include/c_std/cstdio
-===================================================================
---- a/libstdc++-v3/include/c_std/cstdio
-+++ b/libstdc++-v3/include/c_std/cstdio
-@@ -139,7 +139,7 @@
-   using ::vsprintf;
- } // namespace std
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- #undef snprintf
- #undef vfscanf
-Index: b/libstdc++-v3/include/c_std/cstdlib
-===================================================================
---- a/libstdc++-v3/include/c_std/cstdlib
-+++ b/libstdc++-v3/include/c_std/cstdlib
-@@ -180,7 +180,7 @@
- _GLIBCXX_END_NAMESPACE_VERSION
- } // namespace
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- #undef _Exit
- #undef llabs
-Index: b/libstdc++-v3/include/c_std/cwchar
-===================================================================
---- a/libstdc++-v3/include/c_std/cwchar
-+++ b/libstdc++-v3/include/c_std/cwchar
-@@ -228,7 +228,7 @@
- _GLIBCXX_END_NAMESPACE_VERSION
- } // namespace
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- #undef wcstold
- #undef wcstoll
-Index: b/libstdc++-v3/include/ext/vstring.h
-===================================================================
---- a/libstdc++-v3/include/ext/vstring.h
-+++ b/libstdc++-v3/include/ext/vstring.h
-@@ -2571,7 +2571,7 @@
- _GLIBCXX_END_NAMESPACE_VERSION
- } // namespace
--#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
-+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
- #include <ext/string_conversions.h>
-Index: b/libstdc++-v3/include/tr1/cstdio
-===================================================================
---- a/libstdc++-v3/include/tr1/cstdio
-+++ b/libstdc++-v3/include/tr1/cstdio
-@@ -33,7 +33,7 @@
- #include <cstdio>
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- namespace std _GLIBCXX_VISIBILITY(default)
- {
-Index: b/libstdc++-v3/include/tr1/cstdlib
-===================================================================
---- a/libstdc++-v3/include/tr1/cstdlib
-+++ b/libstdc++-v3/include/tr1/cstdlib
-@@ -35,7 +35,7 @@
- #if _GLIBCXX_HOSTED
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- namespace std _GLIBCXX_VISIBILITY(default)
- {
-Index: b/libstdc++-v3/include/tr1/cwchar
-===================================================================
---- a/libstdc++-v3/include/tr1/cwchar
-+++ b/libstdc++-v3/include/tr1/cwchar
-@@ -52,7 +52,7 @@
-   using std::vwscanf;
- #endif
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-   using std::wcstold;
-   using std::wcstoll;
-   using std::wcstoull;
-Index: b/libstdc++-v3/include/tr1/stdlib.h
-===================================================================
---- a/libstdc++-v3/include/tr1/stdlib.h
-+++ b/libstdc++-v3/include/tr1/stdlib.h
-@@ -33,7 +33,7 @@
- #if _GLIBCXX_HOSTED
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- using std::tr1::atoll;
- using std::tr1::strtoll;
-Index: b/libstdc++-v3/src/c++11/debug.cc
-===================================================================
---- a/libstdc++-v3/src/c++11/debug.cc
-+++ b/libstdc++-v3/src/c++11/debug.cc
-@@ -787,7 +787,7 @@
-                                    int __n __attribute__ ((__unused__)), 
-                                    const char* __fmt, _Tp __s) const throw ()
-     {
--#ifdef _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
-       std::snprintf(__buf, __n, __fmt, __s);
- #else
-       std::sprintf(__buf, __fmt, __s);
-Index: b/libstdc++-v3/include/c_global/cstdio
-===================================================================
---- a/libstdc++-v3/include/c_global/cstdio
-+++ b/libstdc++-v3/include/c_global/cstdio
-@@ -138,7 +138,7 @@
-   using ::vsprintf;
- } // namespace
--#if _GLIBCXX_USE_C99
-+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
- #undef snprintf
- #undef vfscanf
diff --git a/package/gcc/arc-2015.06/851-PR-other-56780.patch b/package/gcc/arc-2015.06/851-PR-other-56780.patch
deleted file mode 100644 (file)
index feb4339..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-From afe990251bd9b3a063f03da31a3b8d139d033bc3 Mon Sep 17 00:00:00 2001
-From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sat, 1 Jun 2013 00:20:49 +0000
-Subject: [PATCH] PR other/56780
-
-* libiberty/configure.ac: Move test for --enable-install-libiberty
-outside of the 'with_target_subdir' test so that it actually gets
-run.  Add output messages to show the test result.
-* libiberty/configure: Regenerate.
-* libiberty/Makefile.in (install_to_libdir): Place the
-installation of the libiberty library in the same guard as that
-used for the headers to prevent it being installed unless
-requested via --enable-install-libiberty.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199570 138bc75d-0d04-0410-961f-82ee72b054a4
-
-libiberty: fix --enable-install-libiberty flag [PR 56780]
-
-Commit 199570 fixed the --disable-install-libiberty behavior, but it also
-added a bug where the enable path never works because the initial clear
-of target_header_dir wasn't deleted.  So we end up initializing properly
-at the top only to reset it at the end all the time.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
-
-[Romain
-  squash the two upstream commits
-  Remove the ChangeLog]
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- libiberty/Makefile.in  | 24 ++++++++++-----------
- libiberty/configure    | 57 +++++++++++++++++++++++++++-----------------------
- libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
- 3 files changed, 68 insertions(+), 60 deletions(-)
-
-diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index f6a3ebd..75ff82d 100644
---- a/libiberty/Makefile.in
-+++ b/libiberty/Makefile.in
-@@ -355,19 +355,19 @@ install-strip: install
- # since it will be passed the multilib flags.
- MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
- install_to_libdir: all
--      ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
--      $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
--      ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
--      mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
-       if test -n "${target_header_dir}"; then \
--        case "${target_header_dir}" in \
--          /*)    thd=${target_header_dir};; \
--          *)     thd=${includedir}/${target_header_dir};; \
--        esac; \
--        ${mkinstalldirs} $(DESTDIR)$${thd}; \
--        for h in ${INSTALLED_HEADERS}; do \
--          ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
--        done; \
-+              ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
-+              $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
-+              ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
-+              mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
-+              case "${target_header_dir}" in \
-+                /*)    thd=${target_header_dir};; \
-+                *)     thd=${includedir}/${target_header_dir};; \
-+              esac; \
-+              ${mkinstalldirs} $(DESTDIR)$${thd}; \
-+              for h in ${INSTALLED_HEADERS}; do \
-+                ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-+              done; \
-       fi
-       @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-diff --git a/libiberty/configure b/libiberty/configure
-index 5367027..4feb95a 100755
---- a/libiberty/configure
-+++ b/libiberty/configure
-@@ -675,8 +675,8 @@ with_cross_host
- with_newlib
- enable_maintainer_mode
- enable_multilib
--enable_largefile
- enable_install_libiberty
-+enable_largefile
- '
-       ac_precious_vars='build_alias
- host_alias
-@@ -1303,8 +1303,8 @@ Optional Features:
-                           enable make rules and dependencies not useful
-                           (and sometimes confusing) to the casual installer
-   --enable-multilib       build many library versions (default)
-+  --enable-install-libiberty       Install headers and library for end users
-   --disable-largefile     omit support for large files
--  --enable-install-libiberty       Install headers for end users
- Optional Packages:
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
-    cross_compiling=maybe
- fi
-+# We may wish to install the target headers somewhere.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
-+$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
-+
-+# Check whether --enable-install-libiberty was given.
-+if test "${enable_install_libiberty+set}" = set; then :
-+  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
-+else
-+  enable_install_libiberty=no
-+fi
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+  xyes|x)
-+    target_header_dir=libiberty
-+    ;;
-+  xno)
-+    target_header_dir=
-+    ;;
-+  *)
-+    # This could be sanity-checked in various ways...
-+    target_header_dir="${enable_install_libiberty}"
-+    ;;
-+esac
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
-+$as_echo "$enable_install_libiberty" >&6; }
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
-+$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
-+
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
-@@ -5476,7 +5505,6 @@ fi
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
-   # We are being configured as a target library.  AC_REPLACE_FUNCS
-@@ -5759,29 +5787,6 @@ _ACEOF
-   esac
--  # We may wish to install the target headers somewhere.
--  # Check whether --enable-install-libiberty was given.
--if test "${enable_install_libiberty+set}" = set; then :
--  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
--else
--  enable_install_libiberty=no
--fi
--
--  # Option parsed, now set things appropriately.
--  case x"$enable_install_libiberty" in
--    xyes|x)
--      target_header_dir=libiberty
--      ;;
--    xno)
--      target_header_dir=
--      ;;
--    *)
--      # This could be sanity-checked in various ways...
--      target_header_dir="${enable_install_libiberty}"
--      ;;
--  esac
--
--
- else
-    # Not a target library, so we set things up to run the test suite.
-diff --git a/libiberty/configure.ac b/libiberty/configure.ac
-index c763894..f17e6b6 100644
---- a/libiberty/configure.ac
-+++ b/libiberty/configure.ac
-@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
-    cross_compiling=maybe
- fi
-+# We may wish to install the target headers somewhere.
-+AC_MSG_CHECKING([whether to install libiberty headers and static library])
-+dnl install-libiberty is disabled by default
-+
-+AC_ARG_ENABLE(install-libiberty,
-+[  --enable-install-libiberty       Install headers and library for end users],
-+enable_install_libiberty=$enableval,
-+enable_install_libiberty=no)dnl
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+  xyes|x)
-+    target_header_dir=libiberty
-+    ;;
-+  xno)   
-+    target_header_dir=
-+    ;;
-+  *) 
-+    # This could be sanity-checked in various ways...
-+    target_header_dir="${enable_install_libiberty}"
-+    ;;
-+esac
-+AC_MSG_RESULT($enable_install_libiberty)
-+AC_MSG_NOTICE([target_header_dir = $target_header_dir])
-+
- GCC_NO_EXECUTABLES
- AC_PROG_CC
- AC_SYS_LARGEFILE
-@@ -380,7 +405,6 @@ fi
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
-   # We are being configured as a target library.  AC_REPLACE_FUNCS
-@@ -492,27 +516,6 @@ if test -n "${with_target_subdir}"; then
-   esac
--  # We may wish to install the target headers somewhere.
--  AC_ARG_ENABLE(install-libiberty,
--  [  --enable-install-libiberty       Install headers for end users],
--  enable_install_libiberty=$enableval,
--  enable_install_libiberty=no)dnl
--  
--  # Option parsed, now set things appropriately.
--  case x"$enable_install_libiberty" in
--    xyes|x)
--      target_header_dir=libiberty
--      ;;
--    xno)   
--      target_header_dir=
--      ;;
--    *) 
--      # This could be sanity-checked in various ways...
--      target_header_dir="${enable_install_libiberty}"
--      ;;
--  esac
--
--
- else
-    # Not a target library, so we set things up to run the test suite.
--- 
-1.9.3
-
diff --git a/package/gcc/arc-2015.12-rc1/100-libstdcxx-uclibc-c99.patch b/package/gcc/arc-2015.12-rc1/100-libstdcxx-uclibc-c99.patch
new file mode 100644 (file)
index 0000000..0d02ef0
--- /dev/null
@@ -0,0 +1,273 @@
+Allow C99-depending features of libstdc++ with uClibc
+
+The libstdc++ code is fairly restrictive on how it checks for C99
+compatibility: it requires *complete* C99 support to enable certain
+features. For example, uClibc provides a good number of C99 features,
+but not C99 complex number support. For this reason, libstdc++
+completely disables many the standard C++ methods that can in fact
+work because uClibc provides the necessary functions.
+
+This patch is similar and highly inspired from
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in
+a way that doesn't involve changing the configure.ac script, as
+autoreconfiguring gcc is complicated. It simply relies on the fact
+that uClibc defines the __UCLIBC__ definition.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/libstdc++-v3/config/locale/generic/c_locale.h
+===================================================================
+--- a/libstdc++-v3/config/locale/generic/c_locale.h
++++ b/libstdc++-v3/config/locale/generic/c_locale.h
+@@ -70,7 +70,7 @@
+     __builtin_va_list __args;
+     __builtin_va_start(__args, __fmt);
+-#ifdef _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+     const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
+ #else
+     const int __ret = __builtin_vsprintf(__out, __fmt, __args);
+Index: b/libstdc++-v3/config/locale/gnu/c_locale.h
+===================================================================
+--- a/libstdc++-v3/config/locale/gnu/c_locale.h
++++ b/libstdc++-v3/config/locale/gnu/c_locale.h
+@@ -88,7 +88,7 @@
+     __builtin_va_list __args;
+     __builtin_va_start(__args, __fmt);
+-#ifdef _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+     const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
+ #else
+     const int __ret = __builtin_vsprintf(__out, __fmt, __args);
+Index: b/libstdc++-v3/include/bits/basic_string.h
+===================================================================
+--- a/libstdc++-v3/include/bits/basic_string.h
++++ b/libstdc++-v3/include/bits/basic_string.h
+@@ -2811,7 +2811,7 @@
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
++#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \
+      && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
+ #include <ext/string_conversions.h>
+Index: b/libstdc++-v3/include/bits/locale_facets.tcc
+===================================================================
+--- a/libstdc++-v3/include/bits/locale_facets.tcc
++++ b/libstdc++-v3/include/bits/locale_facets.tcc
+@@ -987,7 +987,7 @@
+       char __fbuf[16];
+       __num_base::_S_format_float(__io, __fbuf, __mod);
+-#ifdef _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+       // First try a buffer perhaps big enough (most probably sufficient
+       // for non-ios_base::fixed outputs)
+       int __cs_size = __max_digits * 3;
+Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+===================================================================
+--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
++++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+@@ -572,7 +572,7 @@
+     {
+       const locale __loc = __io.getloc();
+       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+-#ifdef _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+       // First try a buffer perhaps big enough.
+       int __cs_size = 64;
+       char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+Index: b/libstdc++-v3/include/c_compatibility/math.h
+===================================================================
+--- a/libstdc++-v3/include/c_compatibility/math.h
++++ b/libstdc++-v3/include/c_compatibility/math.h
+@@ -56,7 +56,7 @@
+ using std::floor;
+ using std::fmod;
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ using std::fpclassify;
+ using std::isfinite;
+ using std::isinf;
+Index: b/libstdc++-v3/include/c_compatibility/wchar.h
+===================================================================
+--- a/libstdc++-v3/include/c_compatibility/wchar.h
++++ b/libstdc++-v3/include/c_compatibility/wchar.h
+@@ -103,7 +103,7 @@
+ using std::wmemset;
+ using std::wcsftime;
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ using std::wcstold;
+ using std::wcstoll;
+ using std::wcstoull;
+Index: b/libstdc++-v3/include/c_global/cstdlib
+===================================================================
+--- a/libstdc++-v3/include/c_global/cstdlib
++++ b/libstdc++-v3/include/c_global/cstdlib
+@@ -182,7 +182,7 @@
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ #undef _Exit
+ #undef llabs
+Index: b/libstdc++-v3/include/c_global/cwchar
+===================================================================
+--- a/libstdc++-v3/include/c_global/cwchar
++++ b/libstdc++-v3/include/c_global/cwchar
+@@ -232,7 +232,7 @@
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ #undef wcstold
+ #undef wcstoll
+@@ -289,7 +289,7 @@
+   using std::vwscanf;
+ #endif
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+   using std::wcstold;
+   using std::wcstoll;
+   using std::wcstoull;
+Index: b/libstdc++-v3/include/c_std/cstdio
+===================================================================
+--- a/libstdc++-v3/include/c_std/cstdio
++++ b/libstdc++-v3/include/c_std/cstdio
+@@ -139,7 +139,7 @@
+   using ::vsprintf;
+ } // namespace std
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ #undef snprintf
+ #undef vfscanf
+Index: b/libstdc++-v3/include/c_std/cstdlib
+===================================================================
+--- a/libstdc++-v3/include/c_std/cstdlib
++++ b/libstdc++-v3/include/c_std/cstdlib
+@@ -180,7 +180,7 @@
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ #undef _Exit
+ #undef llabs
+Index: b/libstdc++-v3/include/c_std/cwchar
+===================================================================
+--- a/libstdc++-v3/include/c_std/cwchar
++++ b/libstdc++-v3/include/c_std/cwchar
+@@ -228,7 +228,7 @@
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ #undef wcstold
+ #undef wcstoll
+Index: b/libstdc++-v3/include/ext/vstring.h
+===================================================================
+--- a/libstdc++-v3/include/ext/vstring.h
++++ b/libstdc++-v3/include/ext/vstring.h
+@@ -2571,7 +2571,7 @@
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+-#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99))
++#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)))
+ #include <ext/string_conversions.h>
+Index: b/libstdc++-v3/include/tr1/cstdio
+===================================================================
+--- a/libstdc++-v3/include/tr1/cstdio
++++ b/libstdc++-v3/include/tr1/cstdio
+@@ -33,7 +33,7 @@
+ #include <cstdio>
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+Index: b/libstdc++-v3/include/tr1/cstdlib
+===================================================================
+--- a/libstdc++-v3/include/tr1/cstdlib
++++ b/libstdc++-v3/include/tr1/cstdlib
+@@ -35,7 +35,7 @@
+ #if _GLIBCXX_HOSTED
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+Index: b/libstdc++-v3/include/tr1/cwchar
+===================================================================
+--- a/libstdc++-v3/include/tr1/cwchar
++++ b/libstdc++-v3/include/tr1/cwchar
+@@ -52,7 +52,7 @@
+   using std::vwscanf;
+ #endif
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+   using std::wcstold;
+   using std::wcstoll;
+   using std::wcstoull;
+Index: b/libstdc++-v3/include/tr1/stdlib.h
+===================================================================
+--- a/libstdc++-v3/include/tr1/stdlib.h
++++ b/libstdc++-v3/include/tr1/stdlib.h
+@@ -33,7 +33,7 @@
+ #if _GLIBCXX_HOSTED
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ using std::tr1::atoll;
+ using std::tr1::strtoll;
+Index: b/libstdc++-v3/src/c++11/debug.cc
+===================================================================
+--- a/libstdc++-v3/src/c++11/debug.cc
++++ b/libstdc++-v3/src/c++11/debug.cc
+@@ -787,7 +787,7 @@
+                                    int __n __attribute__ ((__unused__)), 
+                                    const char* __fmt, _Tp __s) const throw ()
+     {
+-#ifdef _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+       std::snprintf(__buf, __n, __fmt, __s);
+ #else
+       std::sprintf(__buf, __fmt, __s);
+Index: b/libstdc++-v3/include/c_global/cstdio
+===================================================================
+--- a/libstdc++-v3/include/c_global/cstdio
++++ b/libstdc++-v3/include/c_global/cstdio
+@@ -138,7 +138,7 @@
+   using ::vsprintf;
+ } // namespace
+-#if _GLIBCXX_USE_C99
++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)
+ #undef snprintf
+ #undef vfscanf
diff --git a/package/gcc/arc-2015.12-rc1/851-PR-other-56780.patch b/package/gcc/arc-2015.12-rc1/851-PR-other-56780.patch
new file mode 100644 (file)
index 0000000..feb4339
--- /dev/null
@@ -0,0 +1,244 @@
+From afe990251bd9b3a063f03da31a3b8d139d033bc3 Mon Sep 17 00:00:00 2001
+From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Sat, 1 Jun 2013 00:20:49 +0000
+Subject: [PATCH] PR other/56780
+
+* libiberty/configure.ac: Move test for --enable-install-libiberty
+outside of the 'with_target_subdir' test so that it actually gets
+run.  Add output messages to show the test result.
+* libiberty/configure: Regenerate.
+* libiberty/Makefile.in (install_to_libdir): Place the
+installation of the libiberty library in the same guard as that
+used for the headers to prevent it being installed unless
+requested via --enable-install-libiberty.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199570 138bc75d-0d04-0410-961f-82ee72b054a4
+
+libiberty: fix --enable-install-libiberty flag [PR 56780]
+
+Commit 199570 fixed the --disable-install-libiberty behavior, but it also
+added a bug where the enable path never works because the initial clear
+of target_header_dir wasn't deleted.  So we end up initializing properly
+at the top only to reset it at the end all the time.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
+
+[Romain
+  squash the two upstream commits
+  Remove the ChangeLog]
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ libiberty/Makefile.in  | 24 ++++++++++-----------
+ libiberty/configure    | 57 +++++++++++++++++++++++++++-----------------------
+ libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
+ 3 files changed, 68 insertions(+), 60 deletions(-)
+
+diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
+index f6a3ebd..75ff82d 100644
+--- a/libiberty/Makefile.in
++++ b/libiberty/Makefile.in
+@@ -355,19 +355,19 @@ install-strip: install
+ # since it will be passed the multilib flags.
+ MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
+ install_to_libdir: all
+-      ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
+-      $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
+-      ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
+-      mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
+       if test -n "${target_header_dir}"; then \
+-        case "${target_header_dir}" in \
+-          /*)    thd=${target_header_dir};; \
+-          *)     thd=${includedir}/${target_header_dir};; \
+-        esac; \
+-        ${mkinstalldirs} $(DESTDIR)$${thd}; \
+-        for h in ${INSTALLED_HEADERS}; do \
+-          ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
+-        done; \
++              ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
++              $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
++              ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
++              mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
++              case "${target_header_dir}" in \
++                /*)    thd=${target_header_dir};; \
++                *)     thd=${includedir}/${target_header_dir};; \
++              esac; \
++              ${mkinstalldirs} $(DESTDIR)$${thd}; \
++              for h in ${INSTALLED_HEADERS}; do \
++                ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
++              done; \
+       fi
+       @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
+diff --git a/libiberty/configure b/libiberty/configure
+index 5367027..4feb95a 100755
+--- a/libiberty/configure
++++ b/libiberty/configure
+@@ -675,8 +675,8 @@ with_cross_host
+ with_newlib
+ enable_maintainer_mode
+ enable_multilib
+-enable_largefile
+ enable_install_libiberty
++enable_largefile
+ '
+       ac_precious_vars='build_alias
+ host_alias
+@@ -1303,8 +1303,8 @@ Optional Features:
+                           enable make rules and dependencies not useful
+                           (and sometimes confusing) to the casual installer
+   --enable-multilib       build many library versions (default)
++  --enable-install-libiberty       Install headers and library for end users
+   --disable-largefile     omit support for large files
+-  --enable-install-libiberty       Install headers for end users
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
+    cross_compiling=maybe
+ fi
++# We may wish to install the target headers somewhere.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
++$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
++
++# Check whether --enable-install-libiberty was given.
++if test "${enable_install_libiberty+set}" = set; then :
++  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
++else
++  enable_install_libiberty=no
++fi
++
++# Option parsed, now set things appropriately.
++case x"$enable_install_libiberty" in
++  xyes|x)
++    target_header_dir=libiberty
++    ;;
++  xno)
++    target_header_dir=
++    ;;
++  *)
++    # This could be sanity-checked in various ways...
++    target_header_dir="${enable_install_libiberty}"
++    ;;
++esac
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
++$as_echo "$enable_install_libiberty" >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
++$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -5476,7 +5505,6 @@ fi
+ setobjs=
+ CHECK=
+-target_header_dir=
+ if test -n "${with_target_subdir}"; then
+   # We are being configured as a target library.  AC_REPLACE_FUNCS
+@@ -5759,29 +5787,6 @@ _ACEOF
+   esac
+-  # We may wish to install the target headers somewhere.
+-  # Check whether --enable-install-libiberty was given.
+-if test "${enable_install_libiberty+set}" = set; then :
+-  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
+-else
+-  enable_install_libiberty=no
+-fi
+-
+-  # Option parsed, now set things appropriately.
+-  case x"$enable_install_libiberty" in
+-    xyes|x)
+-      target_header_dir=libiberty
+-      ;;
+-    xno)
+-      target_header_dir=
+-      ;;
+-    *)
+-      # This could be sanity-checked in various ways...
+-      target_header_dir="${enable_install_libiberty}"
+-      ;;
+-  esac
+-
+-
+ else
+    # Not a target library, so we set things up to run the test suite.
+diff --git a/libiberty/configure.ac b/libiberty/configure.ac
+index c763894..f17e6b6 100644
+--- a/libiberty/configure.ac
++++ b/libiberty/configure.ac
+@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
+    cross_compiling=maybe
+ fi
++# We may wish to install the target headers somewhere.
++AC_MSG_CHECKING([whether to install libiberty headers and static library])
++dnl install-libiberty is disabled by default
++
++AC_ARG_ENABLE(install-libiberty,
++[  --enable-install-libiberty       Install headers and library for end users],
++enable_install_libiberty=$enableval,
++enable_install_libiberty=no)dnl
++
++# Option parsed, now set things appropriately.
++case x"$enable_install_libiberty" in
++  xyes|x)
++    target_header_dir=libiberty
++    ;;
++  xno)   
++    target_header_dir=
++    ;;
++  *) 
++    # This could be sanity-checked in various ways...
++    target_header_dir="${enable_install_libiberty}"
++    ;;
++esac
++AC_MSG_RESULT($enable_install_libiberty)
++AC_MSG_NOTICE([target_header_dir = $target_header_dir])
++
+ GCC_NO_EXECUTABLES
+ AC_PROG_CC
+ AC_SYS_LARGEFILE
+@@ -380,7 +405,6 @@ fi
+ setobjs=
+ CHECK=
+-target_header_dir=
+ if test -n "${with_target_subdir}"; then
+   # We are being configured as a target library.  AC_REPLACE_FUNCS
+@@ -492,27 +516,6 @@ if test -n "${with_target_subdir}"; then
+   esac
+-  # We may wish to install the target headers somewhere.
+-  AC_ARG_ENABLE(install-libiberty,
+-  [  --enable-install-libiberty       Install headers for end users],
+-  enable_install_libiberty=$enableval,
+-  enable_install_libiberty=no)dnl
+-  
+-  # Option parsed, now set things appropriately.
+-  case x"$enable_install_libiberty" in
+-    xyes|x)
+-      target_header_dir=libiberty
+-      ;;
+-    xno)   
+-      target_header_dir=
+-      ;;
+-    *) 
+-      # This could be sanity-checked in various ways...
+-      target_header_dir="${enable_install_libiberty}"
+-      ;;
+-  esac
+-
+-
+ else
+    # Not a target library, so we set things up to run the test suite.
+-- 
+1.9.3
+
index 0a05151aed76db5bba34c194216a769524ad2c87..064a7273c4c28b47d7643b2af98b1728b0388581 100644 (file)
@@ -9,4 +9,4 @@ sha512  9ac57377a6975fc7adac704ec81355262b9f537def6955576753b87715470a20ee6a2a31
 # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-5.3.0/sha512.sum
 sha512  d619847383405fd389f5a2d7225f97fedb01f81478dbb8339047ccba7561a5c20045ab500a8744bffd19ea51892ce09fc37f862f2cfcb42de0f0f8cd8f8da37a  gcc-5.3.0.tar.bz2
 # No hash for the ARC variant, comes from the github-helper:
-none  xxx  gcc-arc-2015.06.tar.gz
+none  xxx  gcc-arc-2015.12-rc1.tar.gz
index 6bf7e84472d084c0d3fcb7a0c3fb593e74dddd32..d5f08b290bb493099b38b3f743390a49d4b237d0 100644 (file)
@@ -52,7 +52,7 @@ endif
 config BR2_GDB_VERSION
        string
        depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
-       default "arc-2015.06-gdb" if BR2_arc
+       default "arc-2015.12-rc1-gdb" if BR2_arc
        default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
        default "7.7.1"    if BR2_GDB_VERSION_7_7
        default "7.8.2"    if BR2_GDB_VERSION_7_8
index b511a3e75524c343c440b8ce43f30762c42b3947..64bc501fe4925dbb538c2b4f9525b810c3eabb51 100644 (file)
@@ -4,5 +4,5 @@ sha512  face5bf1b4ce144fc8604fc84620beed956177a11fd632b4e41906fc7f632910b2b43a50e
 sha512 eebdf88b24e52e792b8a4b89ea85790de72b462a7810b44975fdf4232c068f353b15506071f450102a9d4bcecdde8e93dc3748a10699b7f73f3e04fb2d9d8414        gdb-7.9.1.tar.xz
 sha512 17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010        gdb-7.10.1.tar.xz
 # No hash for the ARC & microblaze variants, comes from the github-helper:
-none   xxx     gdb-arc-2015.06-gdb.tar.gz
+none   xxx     gdb-arc-2015.12-rc1-gdb.tar.gz
 none   xxx     gdb-6be65fb56ea6694a9260733a536a023a1e2d4d57.tar.gz