mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-28 05:36:32 +00:00
toolchain: bump ARC tools to arc-2016.03-rc2
This change switches ARC tools to RC2 of the most recent arc-2016.03 version. Essentially once final release is ready version will be bumped again. ARC GNU tools of version arc-2016.03 bring some quite significant changes like: * Binutils v2.26+ (upstream commit id 202ac19 with additional ARC patches) * GCC v4.8.5 * GDB 7.10 More about changes, improvements and fixes could be found here: https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2016.03-rc2 Also in this change we realign custom Buildroot patches for binutils and gcc for ARC tools. Looks like earlier most of arch-independent patches for binutils and gcc were either unintentionally removed or not even added in patch folders for ARC's binutils and gcc. Now arch-independent patches for binutils-2.26 and gcc-4.8.5 were added in package/{binutils|gcc}/arc-2016.03-rc2 folders. Build and run-tested in nSIM for both ARC700 and ARC HS38. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
3ef13c4996
commit
adbdc6e58f
@ -35,7 +35,7 @@ endchoice
|
|||||||
|
|
||||||
config BR2_BINUTILS_VERSION
|
config BR2_BINUTILS_VERSION
|
||||||
string
|
string
|
||||||
default "arc-2015.12" if BR2_arc
|
default "arc-2016.03-rc2" if BR2_arc
|
||||||
default "2.23.2" if BR2_BINUTILS_VERSION_2_23_X
|
default "2.23.2" if BR2_BINUTILS_VERSION_2_23_X
|
||||||
default "2.24" if BR2_BINUTILS_VERSION_2_24_X
|
default "2.24" if BR2_BINUTILS_VERSION_2_24_X
|
||||||
default "2.25.1" if BR2_BINUTILS_VERSION_2_25_X
|
default "2.25.1" if BR2_BINUTILS_VERSION_2_25_X
|
||||||
|
@ -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
|
|
||||||
|
|
41
package/binutils/arc-2016.03-rc2/0300-ld-makefile.patch
Normal file
41
package/binutils/arc-2016.03-rc2/0300-ld-makefile.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From d76a7549b43974fe8564971a3f40459bc495a8a7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Romain Naour <romain.naour@gmail.com>
|
||||||
|
Date: Fri, 25 Dec 2015 11:40:53 +0100
|
||||||
|
Subject: [PATCH] ld-makefile
|
||||||
|
|
||||||
|
[Romain: rebase on top of 2.26]
|
||||||
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||||
|
---
|
||||||
|
ld/Makefile.am | 2 +-
|
||||||
|
ld/Makefile.in | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ld/Makefile.am b/ld/Makefile.am
|
||||||
|
index 0b3b049..3871c74 100644
|
||||||
|
--- a/ld/Makefile.am
|
||||||
|
+++ b/ld/Makefile.am
|
||||||
|
@@ -57,7 +57,7 @@ endif
|
||||||
|
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||||
|
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||||
|
# directives need to be different for native and cross linkers.
|
||||||
|
-scriptdir = $(tooldir)/lib
|
||||||
|
+scriptdir = $(libdir)
|
||||||
|
|
||||||
|
EMUL = @EMUL@
|
||||||
|
EMULATION_OFILES = @EMULATION_OFILES@
|
||||||
|
diff --git a/ld/Makefile.in b/ld/Makefile.in
|
||||||
|
index ed98f87..530e4c9 100644
|
||||||
|
--- a/ld/Makefile.in
|
||||||
|
+++ b/ld/Makefile.in
|
||||||
|
@@ -413,7 +413,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
|
||||||
|
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||||
|
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||||
|
# directives need to be different for native and cross linkers.
|
||||||
|
-scriptdir = $(tooldir)/lib
|
||||||
|
+scriptdir = $(libdir)
|
||||||
|
BASEDIR = $(srcdir)/..
|
||||||
|
BFDDIR = $(BASEDIR)/bfd
|
||||||
|
INCDIR = $(BASEDIR)/include
|
||||||
|
--
|
||||||
|
2.4.3
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From ebe1cba46df52d7bf86def3d681271fd05fb453b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Romain Naour <romain.naour@gmail.com>
|
||||||
|
Date: Fri, 25 Dec 2015 11:41:47 +0100
|
||||||
|
Subject: [PATCH] check-ldrunpath-length
|
||||||
|
|
||||||
|
[Romain: rebase on top of 2.26]
|
||||||
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||||
|
---
|
||||||
|
ld/emultempl/elf32.em | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
|
||||||
|
index 0405d4f..efd3300 100644
|
||||||
|
--- a/ld/emultempl/elf32.em
|
||||||
|
+++ b/ld/emultempl/elf32.em
|
||||||
|
@@ -1242,6 +1242,8 @@ fragment <<EOF
|
||||||
|
&& command_line.rpath == NULL)
|
||||||
|
{
|
||||||
|
lib_path = (const char *) getenv ("LD_RUN_PATH");
|
||||||
|
+ if ((lib_path) && (strlen (lib_path) == 0))
|
||||||
|
+ lib_path = NULL;
|
||||||
|
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
|
||||||
|
force))
|
||||||
|
break;
|
||||||
|
@@ -1523,6 +1525,8 @@ gld${EMULATION_NAME}_before_allocation (void)
|
||||||
|
rpath = command_line.rpath;
|
||||||
|
if (rpath == NULL)
|
||||||
|
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||||
|
+ if ((rpath) && (strlen (rpath) == 0))
|
||||||
|
+ rpath = NULL;
|
||||||
|
|
||||||
|
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
|
||||||
|
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||||
|
--
|
||||||
|
2.4.3
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
From 30628870e583375f8927c04398c7219c6e9f703c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Romain Naour <romain.naour@gmail.com>
|
||||||
|
Date: Fri, 25 Dec 2015 11:42:48 +0100
|
||||||
|
Subject: [PATCH] add sysroot fix from bug #3049
|
||||||
|
|
||||||
|
Always try to prepend the sysroot prefix to absolute filenames first.
|
||||||
|
|
||||||
|
http://bugs.gentoo.org/275666
|
||||||
|
http://sourceware.org/bugzilla/show_bug.cgi?id=10340
|
||||||
|
|
||||||
|
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
||||||
|
[Romain: rebase on top of 2.26]
|
||||||
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||||
|
---
|
||||||
|
ld/ldfile.c | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ld/ldfile.c b/ld/ldfile.c
|
||||||
|
index 96f9ecc..1439309 100644
|
||||||
|
--- a/ld/ldfile.c
|
||||||
|
+++ b/ld/ldfile.c
|
||||||
|
@@ -335,18 +335,25 @@ ldfile_open_file_search (const char *arch,
|
||||||
|
directory first. */
|
||||||
|
if (! entry->flags.maybe_archive)
|
||||||
|
{
|
||||||
|
- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename))
|
||||||
|
+ /* For absolute pathnames, try to always open the file in the
|
||||||
|
+ sysroot first. If this fails, try to open the file at the
|
||||||
|
+ given location. */
|
||||||
|
+ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename);
|
||||||
|
+ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)
|
||||||
|
+ && ld_sysroot)
|
||||||
|
{
|
||||||
|
char *name = concat (ld_sysroot, entry->filename,
|
||||||
|
(const char *) NULL);
|
||||||
|
if (ldfile_try_open_bfd (name, entry))
|
||||||
|
{
|
||||||
|
entry->filename = name;
|
||||||
|
+ entry->flags.sysrooted = TRUE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
free (name);
|
||||||
|
}
|
||||||
|
- else if (ldfile_try_open_bfd (entry->filename, entry))
|
||||||
|
+
|
||||||
|
+ if (ldfile_try_open_bfd (entry->filename, entry))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (IS_ABSOLUTE_PATH (entry->filename))
|
||||||
|
--
|
||||||
|
2.4.3
|
||||||
|
|
@ -1,7 +1,16 @@
|
|||||||
Patch adapted to binutils arc-4.8-R3 and extended to use
|
From be366461dd49e760440fb28eaee5164eb281adcc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Romain Naour <romain.naour@gmail.com>
|
||||||
|
Date: Fri, 25 Dec 2015 11:45:38 +0100
|
||||||
|
Subject: [PATCH] poison-system-directories
|
||||||
|
|
||||||
|
Patch adapted to binutils 2.23.2 and extended to use
|
||||||
BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
|
BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
|
||||||
|
|
||||||
|
[Romain: rebase on top of 2.26]
|
||||||
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||||
|
[Gustavo: adapt to binutils 2.25]
|
||||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [distribution: codesourcery]
|
Upstream-Status: Inappropriate [distribution: codesourcery]
|
||||||
|
|
||||||
@ -48,7 +57,7 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
|
|||||||
2007-03-20 Joseph Myers <joseph@codesourcery.com>
|
2007-03-20 Joseph Myers <joseph@codesourcery.com>
|
||||||
Based on patch by Mark Hatle <mark.hatle@windriver.com>.
|
Based on patch by Mark Hatle <mark.hatle@windriver.com>.
|
||||||
ld/
|
ld/
|
||||||
* configure.in (--enable-poison-system-directories): New option.
|
* configure.ac (--enable-poison-system-directories): New option.
|
||||||
* configure, config.in: Regenerate.
|
* configure, config.in: Regenerate.
|
||||||
* ldfile.c (ldfile_add_library_path): If
|
* ldfile.c (ldfile_add_library_path): If
|
||||||
ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
|
ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
|
||||||
@ -56,12 +65,23 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
|
|||||||
|
|
||||||
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
||||||
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
|
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
|
||||||
|
---
|
||||||
|
ld/config.in | 3 +++
|
||||||
|
ld/configure | 14 ++++++++++++++
|
||||||
|
ld/configure.ac | 10 ++++++++++
|
||||||
|
ld/ld.h | 8 ++++++++
|
||||||
|
ld/ld.texinfo | 12 ++++++++++++
|
||||||
|
ld/ldfile.c | 17 +++++++++++++++++
|
||||||
|
ld/ldlex.h | 2 ++
|
||||||
|
ld/ldmain.c | 2 ++
|
||||||
|
ld/lexsup.c | 21 +++++++++++++++++++++
|
||||||
|
9 files changed, 89 insertions(+)
|
||||||
|
|
||||||
Index: b/ld/config.in
|
diff --git a/ld/config.in b/ld/config.in
|
||||||
===================================================================
|
index 276fb77..35c58eb 100644
|
||||||
--- a/ld/config.in
|
--- a/ld/config.in
|
||||||
+++ b/ld/config.in
|
+++ b/ld/config.in
|
||||||
@@ -11,6 +11,9 @@
|
@@ -14,6 +14,9 @@
|
||||||
language is requested. */
|
language is requested. */
|
||||||
#undef ENABLE_NLS
|
#undef ENABLE_NLS
|
||||||
|
|
||||||
@ -71,20 +91,20 @@ Index: b/ld/config.in
|
|||||||
/* Additional extension a shared object might have. */
|
/* Additional extension a shared object might have. */
|
||||||
#undef EXTRA_SHLIB_EXTENSION
|
#undef EXTRA_SHLIB_EXTENSION
|
||||||
|
|
||||||
Index: b/ld/configure
|
diff --git a/ld/configure b/ld/configure
|
||||||
===================================================================
|
index a446283..d1f9504 100755
|
||||||
--- a/ld/configure
|
--- a/ld/configure
|
||||||
+++ b/ld/configure
|
+++ b/ld/configure
|
||||||
@@ -773,6 +773,7 @@
|
@@ -786,6 +786,7 @@ with_lib_path
|
||||||
enable_targets
|
enable_targets
|
||||||
enable_64_bit_bfd
|
enable_64_bit_bfd
|
||||||
with_sysroot
|
with_sysroot
|
||||||
+enable_poison_system_directories
|
+enable_poison_system_directories
|
||||||
enable_gold
|
enable_gold
|
||||||
enable_got
|
enable_got
|
||||||
enable_werror
|
enable_compressed_debug_sections
|
||||||
@@ -1428,6 +1429,8 @@
|
@@ -1442,6 +1443,8 @@ Optional Features:
|
||||||
(and sometimes confusing) to the casual installer
|
--disable-largefile omit support for large files
|
||||||
--enable-targets alternative target configurations
|
--enable-targets alternative target configurations
|
||||||
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
|
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
|
||||||
+ --enable-poison-system-directories
|
+ --enable-poison-system-directories
|
||||||
@ -92,7 +112,7 @@ Index: b/ld/configure
|
|||||||
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
|
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
|
||||||
--enable-got=<type> GOT handling scheme (target, single, negative,
|
--enable-got=<type> GOT handling scheme (target, single, negative,
|
||||||
multigot)
|
multigot)
|
||||||
@@ -4338,7 +4341,18 @@
|
@@ -15491,7 +15494,18 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -111,11 +131,11 @@ Index: b/ld/configure
|
|||||||
|
|
||||||
# Check whether --enable-got was given.
|
# Check whether --enable-got was given.
|
||||||
if test "${enable_got+set}" = set; then :
|
if test "${enable_got+set}" = set; then :
|
||||||
Index: b/ld/configure.in
|
diff --git a/ld/configure.ac b/ld/configure.ac
|
||||||
===================================================================
|
index 188172d..2cd8443 100644
|
||||||
--- a/ld/configure.in
|
--- a/ld/configure.ac
|
||||||
+++ b/ld/configure.in
|
+++ b/ld/configure.ac
|
||||||
@@ -70,6 +70,16 @@
|
@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot)
|
||||||
AC_SUBST(TARGET_SYSTEM_ROOT)
|
AC_SUBST(TARGET_SYSTEM_ROOT)
|
||||||
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
|
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
|
||||||
|
|
||||||
@ -132,11 +152,53 @@ Index: b/ld/configure.in
|
|||||||
dnl Use --enable-gold to decide if this linker should be the default.
|
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 "install_as_default" is set to false if gold is the default linker.
|
||||||
dnl "installed_linker" is the installed BFD linker name.
|
dnl "installed_linker" is the installed BFD linker name.
|
||||||
Index: b/ld/ldfile.c
|
diff --git a/ld/ld.h b/ld/ld.h
|
||||||
===================================================================
|
index d84ec4e..3476b26 100644
|
||||||
|
--- a/ld/ld.h
|
||||||
|
+++ b/ld/ld.h
|
||||||
|
@@ -164,6 +164,14 @@ typedef struct {
|
||||||
|
/* If set, display the target memory usage (per memory region). */
|
||||||
|
bfd_boolean print_memory_usage;
|
||||||
|
|
||||||
|
+ /* 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;
|
||||||
|
|
||||||
|
diff --git a/ld/ld.texinfo b/ld/ld.texinfo
|
||||||
|
index 1dd7492..fb1438e 100644
|
||||||
|
--- a/ld/ld.texinfo
|
||||||
|
+++ b/ld/ld.texinfo
|
||||||
|
@@ -2332,6 +2332,18 @@ string identifying the original linked file does not change.
|
||||||
|
|
||||||
|
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
|
||||||
|
diff --git a/ld/ldfile.c b/ld/ldfile.c
|
||||||
|
index 1439309..086b354 100644
|
||||||
--- a/ld/ldfile.c
|
--- a/ld/ldfile.c
|
||||||
+++ b/ld/ldfile.c
|
+++ b/ld/ldfile.c
|
||||||
@@ -116,6 +116,23 @@
|
@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
|
||||||
new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
|
new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
|
||||||
else
|
else
|
||||||
new_dirs->name = xstrdup (name);
|
new_dirs->name = xstrdup (name);
|
||||||
@ -160,69 +222,40 @@ Index: b/ld/ldfile.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Try to open a BFD for a lang_input_statement. */
|
/* Try to open a BFD for a lang_input_statement. */
|
||||||
Index: b/ld/ld.h
|
diff --git a/ld/ldlex.h b/ld/ldlex.h
|
||||||
===================================================================
|
index 6f11e7b..0ca3110 100644
|
||||||
--- a/ld/ld.h
|
--- a/ld/ldlex.h
|
||||||
+++ b/ld/ld.h
|
+++ b/ld/ldlex.h
|
||||||
@@ -203,6 +203,14 @@
|
@@ -144,6 +144,8 @@ enum option_values
|
||||||
/* If TRUE we'll just print the default output on stdout. */
|
OPTION_PRINT_MEMORY_USAGE,
|
||||||
bfd_boolean print_output_format;
|
OPTION_REQUIRE_DEFINED_SYMBOL,
|
||||||
|
OPTION_ORPHAN_HANDLING,
|
||||||
|
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
|
||||||
|
+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
|
||||||
|
};
|
||||||
|
|
||||||
+ /* If TRUE (the default) warn for uses of system directories when
|
/* The initial parser states. */
|
||||||
+ cross linking. */
|
diff --git a/ld/ldmain.c b/ld/ldmain.c
|
||||||
+ bfd_boolean poison_system_directories;
|
index bb0b9cc..a23c56c 100644
|
||||||
+
|
|
||||||
+ /* 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
|
--- a/ld/ldmain.c
|
||||||
+++ b/ld/ldmain.c
|
+++ b/ld/ldmain.c
|
||||||
@@ -265,6 +265,8 @@
|
@@ -257,6 +257,8 @@ main (int argc, char **argv)
|
||||||
|
command_line.warn_mismatch = TRUE;
|
||||||
command_line.warn_search_mismatch = TRUE;
|
command_line.warn_search_mismatch = TRUE;
|
||||||
command_line.check_section_addresses = -1;
|
command_line.check_section_addresses = -1;
|
||||||
command_line.disable_target_specific_optimizations = -1;
|
|
||||||
+ command_line.poison_system_directories = TRUE;
|
+ command_line.poison_system_directories = TRUE;
|
||||||
+ command_line.error_poison_system_directories = FALSE;
|
+ command_line.error_poison_system_directories = FALSE;
|
||||||
|
|
||||||
/* We initialize DEMANGLING based on the environment variable
|
/* We initialize DEMANGLING based on the environment variable
|
||||||
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
|
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
|
||||||
Index: b/ld/ld.texinfo
|
diff --git a/ld/lexsup.c b/ld/lexsup.c
|
||||||
===================================================================
|
index 4cad209..be7d584 100644
|
||||||
--- 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
|
--- a/ld/lexsup.c
|
||||||
+++ b/ld/lexsup.c
|
+++ b/ld/lexsup.c
|
||||||
@@ -498,6 +498,14 @@
|
@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] =
|
||||||
|
{ {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING},
|
||||||
|
'\0', N_("=MODE"), N_("Control how orphan sections are handled."),
|
||||||
TWO_DASHES },
|
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,
|
+ { {"no-poison-system-directories", no_argument, NULL,
|
||||||
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
|
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
|
||||||
+ '\0', NULL, N_("Do not warn for -L options using system directories"),
|
+ '\0', NULL, N_("Do not warn for -L options using system directories"),
|
||||||
@ -234,7 +267,7 @@ Index: b/ld/lexsup.c
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define OPTION_COUNT ARRAY_SIZE (ld_options)
|
#define OPTION_COUNT ARRAY_SIZE (ld_options)
|
||||||
@@ -510,6 +518,7 @@
|
@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv)
|
||||||
int ingroup = 0;
|
int ingroup = 0;
|
||||||
char *default_dirlist = NULL;
|
char *default_dirlist = NULL;
|
||||||
char *shortopts;
|
char *shortopts;
|
||||||
@ -242,11 +275,10 @@ Index: b/ld/lexsup.c
|
|||||||
struct option *longopts;
|
struct option *longopts;
|
||||||
struct option *really_longopts;
|
struct option *really_longopts;
|
||||||
int last_optind;
|
int last_optind;
|
||||||
@@ -1427,9 +1436,21 @@
|
@@ -1516,6 +1525,14 @@ parse_args (unsigned argc, char **argv)
|
||||||
einfo (_("%P%X: --hash-size needs a numeric argument\n"));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
+
|
|
||||||
+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
|
+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
|
||||||
+ command_line.poison_system_directories = FALSE;
|
+ command_line.poison_system_directories = FALSE;
|
||||||
+ break;
|
+ break;
|
||||||
@ -254,7 +286,12 @@ Index: b/ld/lexsup.c
|
|||||||
+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
|
+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
|
||||||
+ command_line.error_poison_system_directories = TRUE;
|
+ command_line.error_poison_system_directories = TRUE;
|
||||||
+ break;
|
+ break;
|
||||||
}
|
+
|
||||||
|
case OPTION_PUSH_STATE:
|
||||||
|
input_flags.pushed = xmemdup (&input_flags,
|
||||||
|
sizeof (input_flags),
|
||||||
|
@@ -1559,6 +1576,10 @@ parse_args (unsigned argc, char **argv)
|
||||||
|
command_line.soname = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
|
+ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
|
||||||
@ -264,16 +301,6 @@ Index: b/ld/lexsup.c
|
|||||||
while (ingroup)
|
while (ingroup)
|
||||||
{
|
{
|
||||||
lang_leave_group ();
|
lang_leave_group ();
|
||||||
Index: b/ld/ldlex.h
|
--
|
||||||
===================================================================
|
2.4.3
|
||||||
--- 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. */
|
|
@ -4,4 +4,4 @@ sha512 5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fb
|
|||||||
sha512 0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d binutils-2.25.1.tar.bz2
|
sha512 0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d binutils-2.25.1.tar.bz2
|
||||||
sha512 e77e1b8dbbcbaf9ac2fae95c4403615808af3be03b2e1d32448cd3a7d32c43273f8bcace3f2de84ec120a982879295673029da306e2885dbf5f990584932cfc7 binutils-2.26.tar.bz2
|
sha512 e77e1b8dbbcbaf9ac2fae95c4403615808af3be03b2e1d32448cd3a7d32c43273f8bcace3f2de84ec120a982879295673029da306e2885dbf5f990584932cfc7 binutils-2.26.tar.bz2
|
||||||
# No hash for the ARC variant, comes from the github-helper:
|
# No hash for the ARC variant, comes from the github-helper:
|
||||||
none xxx binutils-arc-2015.12.tar.gz
|
none xxx binutils-arc-2016.03-rc2.tar.gz
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
|
BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
|
||||||
ifeq ($(BINUTILS_VERSION),)
|
ifeq ($(BINUTILS_VERSION),)
|
||||||
ifeq ($(BR2_arc),y)
|
ifeq ($(BR2_arc),y)
|
||||||
BINUTILS_VERSION = arc-2015.12
|
BINUTILS_VERSION = arc-2016.03-rc2
|
||||||
else
|
else
|
||||||
BINUTILS_VERSION = 2.25.1
|
BINUTILS_VERSION = 2.25.1
|
||||||
endif
|
endif
|
||||||
|
@ -100,7 +100,7 @@ config BR2_GCC_VERSION
|
|||||||
default "4.9.3" if BR2_GCC_VERSION_4_9_X
|
default "4.9.3" if BR2_GCC_VERSION_4_9_X
|
||||||
default "5.3.0" if BR2_GCC_VERSION_5_X
|
default "5.3.0" if BR2_GCC_VERSION_5_X
|
||||||
default "6.1.0" if BR2_GCC_VERSION_6_X
|
default "6.1.0" if BR2_GCC_VERSION_6_X
|
||||||
default "arc-2015.12" if BR2_GCC_VERSION_4_8_ARC
|
default "arc-2016.03-rc2" if BR2_GCC_VERSION_4_8_ARC
|
||||||
|
|
||||||
config BR2_EXTRA_GCC_CONFIG_OPTIONS
|
config BR2_EXTRA_GCC_CONFIG_OPTIONS
|
||||||
string "Additional gcc options"
|
string "Additional gcc options"
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
From b55922d45fd16f5e8fc7c3885da42b2b9b37754d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Claudiu Zissulescu <claziss@synopsys.com>
|
|
||||||
Date: Mon, 18 Jan 2016 16:43:18 +0100
|
|
||||||
Subject: [PATCH] UPDATE: Fix handling complex PIC moves.
|
|
||||||
|
|
||||||
fwprop is putting in the REG_EQUIV notes which are involving the
|
|
||||||
constant pic unspecs. Then, loop may use those notes for
|
|
||||||
optimizations rezulting in complex patterns that are not supported by
|
|
||||||
the current implementation. The following piece of code tries to
|
|
||||||
convert the complex instruction in simpler ones.
|
|
||||||
|
|
||||||
The fix is done in development tree: [arc-4.8-dev b55922d]
|
|
||||||
and will be a part of the next release of ARC GNU tools.
|
|
||||||
Once that new release happens this patch must be removed.
|
|
||||||
|
|
||||||
|
|
||||||
gcc/
|
|
||||||
2016-01-18 Claudiu Zissulescu <claziss@synopsys.com>
|
|
||||||
|
|
||||||
* config/arc/arc.c (arc_legitimize_pic_address): Handle MINUS
|
|
||||||
operations when doing PIC moves. Make this function static.
|
|
||||||
(arc_legitimate_pc_offset_p): Use
|
|
||||||
arc_raw_symbolic_reference_mentioned_p.
|
|
||||||
* config/arc/arc-protos.h (arc_legitimize_pic_address): Remove.
|
|
||||||
|
|
||||||
gcc/config/arc/arc-protos.h | 1 -
|
|
||||||
gcc/config/arc/arc.c | 33 +++++++++++++++++++--------------
|
|
||||||
2 files changed, 19 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
* config/arc/arc.c (arc_legitimize_pic_address): Handle complex
|
|
||||||
diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
|
|
||||||
index 464e0ab..5986e06 100644
|
|
||||||
--- a/gcc/config/arc/arc-protos.h
|
|
||||||
+++ b/gcc/config/arc/arc-protos.h
|
|
||||||
@@ -53,7 +53,6 @@ extern unsigned int arc_compute_frame_size ();
|
|
||||||
extern bool arc_ccfsm_branch_deleted_p (void);
|
|
||||||
extern void arc_ccfsm_record_branch_deleted (void);
|
|
||||||
|
|
||||||
-extern rtx arc_legitimize_pic_address (rtx, rtx);
|
|
||||||
void arc_asm_output_aligned_decl_local (FILE *, tree, const char *,
|
|
||||||
unsigned HOST_WIDE_INT,
|
|
||||||
unsigned HOST_WIDE_INT,
|
|
||||||
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
|
|
||||||
index a89c8ee..f7cae9f 100644
|
|
||||||
--- a/gcc/config/arc/arc.c
|
|
||||||
+++ b/gcc/config/arc/arc.c
|
|
||||||
@@ -5243,19 +5243,7 @@ arc_legitimate_pc_offset_p (rtx addr)
|
|
||||||
if (GET_CODE (addr) != CONST)
|
|
||||||
return false;
|
|
||||||
addr = XEXP (addr, 0);
|
|
||||||
- if (GET_CODE (addr) == PLUS)
|
|
||||||
- {
|
|
||||||
- if (GET_CODE (XEXP (addr, 1)) != CONST_INT)
|
|
||||||
- return false;
|
|
||||||
- addr = XEXP (addr, 0);
|
|
||||||
- }
|
|
||||||
- return (GET_CODE (addr) == UNSPEC
|
|
||||||
- && XVECLEN (addr, 0) == 1
|
|
||||||
- && (XINT (addr, 1) == ARC_UNSPEC_GOT
|
|
||||||
- || XINT (addr, 1) == ARC_UNSPEC_GOTOFFPC
|
|
||||||
- || XINT (addr, 1) == UNSPEC_TLS_GD
|
|
||||||
- || XINT (addr, 1) == UNSPEC_TLS_IE)
|
|
||||||
- && GET_CODE (XVECEXP (addr, 0, 0)) == SYMBOL_REF);
|
|
||||||
+ return flag_pic && !arc_raw_symbolic_reference_mentioned_p (addr, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return true if ADDR is a valid pic address.
|
|
||||||
@@ -5522,7 +5510,7 @@ arc_legitimize_tls_address (rtx addr, enum tls_model model)
|
|
||||||
The return value is the legitimated address.
|
|
||||||
If OLDX is non-zero, it is the target to assign the address to first. */
|
|
||||||
|
|
||||||
-rtx
|
|
||||||
+static rtx
|
|
||||||
arc_legitimize_pic_address (rtx orig, rtx oldx)
|
|
||||||
{
|
|
||||||
rtx addr = orig;
|
|
||||||
@@ -5569,6 +5557,23 @@ arc_legitimize_pic_address (rtx orig, rtx oldx)
|
|
||||||
/* Check that the unspec is one of the ones we generate? */
|
|
||||||
return orig;
|
|
||||||
}
|
|
||||||
+ else if (GET_CODE (addr) == MINUS)
|
|
||||||
+ {
|
|
||||||
+ /* The same story with fwprop. */
|
|
||||||
+ rtx op0 = XEXP (addr, 0);
|
|
||||||
+ rtx op1 = XEXP (addr, 1);
|
|
||||||
+ gcc_assert (oldx);
|
|
||||||
+ gcc_assert (GET_CODE (op1) == UNSPEC);
|
|
||||||
+
|
|
||||||
+ emit_move_insn (oldx,
|
|
||||||
+ gen_rtx_CONST (SImode,
|
|
||||||
+ arc_legitimize_pic_address (op1,
|
|
||||||
+ NULL_RTX)));
|
|
||||||
+ emit_insn (gen_rtx_SET (VOIDmode, oldx,
|
|
||||||
+ gen_rtx_MINUS (SImode, op0, oldx)));
|
|
||||||
+ return oldx;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
else if (GET_CODE (addr) != PLUS)
|
|
||||||
{
|
|
||||||
/* fwprop is putting in the REG_EQUIV notes which are
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
|||||||
From f00b0f17d6889d811468c2c77508fbea8bfc377d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Claudiu Zissulescu <claziss@synopsys.com>
|
|
||||||
Date: Tue, 19 Jan 2016 14:40:16 +0100
|
|
||||||
Subject: [PATCH] UPDATE1: Fix handling complex PIC moves.
|
|
||||||
|
|
||||||
The arc_legitimate_pc_offset_p condition is too lax. Updated it.
|
|
||||||
|
|
||||||
The fix is done in development tree: [arc-4.8-dev f00b0f1]
|
|
||||||
and will be a part of the next release of ARC GNU tools.
|
|
||||||
Once that new release happens this patch must be removed.
|
|
||||||
|
|
||||||
gcc/
|
|
||||||
2016-01-18 Claudiu Zissulescu <claziss@synopsys.com>
|
|
||||||
|
|
||||||
* config/arc/arc.c (arc_needs_pcl_p ): New function
|
|
||||||
(arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
|
|
||||||
---
|
|
||||||
gcc/config/arc/arc.c | 42 ++++++++++++++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 40 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
|
|
||||||
index f7cae9f..18d88a3 100644
|
|
||||||
--- a/gcc/config/arc/arc.c
|
|
||||||
+++ b/gcc/config/arc/arc.c
|
|
||||||
@@ -5234,6 +5234,45 @@ arc_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Helper used by arc_legitimate_pc_offset_p. */
|
|
||||||
+
|
|
||||||
+static bool
|
|
||||||
+arc_needs_pcl_p (rtx x)
|
|
||||||
+{
|
|
||||||
+ register const char *fmt;
|
|
||||||
+ register int i, j;
|
|
||||||
+
|
|
||||||
+ if ((GET_CODE (x) == UNSPEC)
|
|
||||||
+ && (XVECLEN (x, 0) == 1)
|
|
||||||
+ && (GET_CODE (XVECEXP (x, 0, 0)) == SYMBOL_REF))
|
|
||||||
+ switch (XINT (x, 1))
|
|
||||||
+ {
|
|
||||||
+ case ARC_UNSPEC_GOT:
|
|
||||||
+ case ARC_UNSPEC_GOTOFFPC:
|
|
||||||
+ case UNSPEC_TLS_GD:
|
|
||||||
+ case UNSPEC_TLS_IE:
|
|
||||||
+ return true;
|
|
||||||
+ default:
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ fmt = GET_RTX_FORMAT (GET_CODE (x));
|
|
||||||
+ for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--)
|
|
||||||
+ {
|
|
||||||
+ if (fmt[i] == 'e')
|
|
||||||
+ {
|
|
||||||
+ if (arc_needs_pcl_p (XEXP (x, i)))
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ else if (fmt[i] == 'E')
|
|
||||||
+ for (j = XVECLEN (x, i) - 1; j >= 0; j--)
|
|
||||||
+ if (arc_needs_pcl_p (XVECEXP (x, i, j)))
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Return true if ADDR is an address that needs to be expressed as an
|
|
||||||
explicit sum of pcl + offset. */
|
|
||||||
|
|
||||||
@@ -5242,8 +5281,7 @@ arc_legitimate_pc_offset_p (rtx addr)
|
|
||||||
{
|
|
||||||
if (GET_CODE (addr) != CONST)
|
|
||||||
return false;
|
|
||||||
- addr = XEXP (addr, 0);
|
|
||||||
- return flag_pic && !arc_raw_symbolic_reference_mentioned_p (addr, false);
|
|
||||||
+ return arc_needs_pcl_p (addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return true if ADDR is a valid pic address.
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
|||||||
From 09463827001a7b8094f4b9460514370a1876d908 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Claudiu Zissulescu <claziss@synopsys.com>
|
|
||||||
Date: Wed, 20 Jan 2016 16:32:40 +0100
|
|
||||||
Subject: [PATCH] Don't allow mcompact-casesi for ARCv2
|
|
||||||
|
|
||||||
The compact casesi is not working for arcv2 processors family as it
|
|
||||||
makes use of the add_s rx,rx,pcl instruction which is only valid for
|
|
||||||
arc6xx and arc700 processors. Also not having this instruction makes
|
|
||||||
no much sens to change the compact-casesi pattern to use normal add
|
|
||||||
instructions as it nullifies the advantage of short instruction use.
|
|
||||||
The default casesi pattern betters suits the arcv2 architecture.
|
|
||||||
|
|
||||||
The fix is done in development tree: [arc-4.8-dev 0946382]
|
|
||||||
and will be a part of the next release of ARC GNU tools.
|
|
||||||
Once that new release happens this patch must be removed.
|
|
||||||
|
|
||||||
gcc/
|
|
||||||
2016-01-20 Claudiu Zissulescu <claziss@synopsys.com>
|
|
||||||
|
|
||||||
* common/config/arc/arc-common.c (arc_option_optimization_table):
|
|
||||||
Remove mcompact-casesi option.
|
|
||||||
* config/arc/arc.c (arc_override_options): Use compact-casesi only
|
|
||||||
for arcv1.
|
|
||||||
* config/arc/arc.md (casesi_load): Use short instructions.
|
|
||||||
---
|
|
||||||
gcc/common/config/arc/arc-common.c | 1 -
|
|
||||||
gcc/config/arc/arc.c | 9 +++++----
|
|
||||||
gcc/config/arc/arc.md | 10 ++++++++--
|
|
||||||
3 files changed, 13 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
* config/arc/arc.c (arc_legitimize_pic_address): Handle MINUS
|
|
||||||
diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c
|
|
||||||
index e2e36fa..310bc80 100644
|
|
||||||
--- a/gcc/common/config/arc/arc-common.c
|
|
||||||
+++ b/gcc/common/config/arc/arc-common.c
|
|
||||||
@@ -58,7 +58,6 @@ static const struct default_options arc_option_optimization_table[] =
|
|
||||||
{ OPT_LEVELS_ALL, OPT_mbbit_peephole, NULL, 1 },
|
|
||||||
{ OPT_LEVELS_SIZE, OPT_mq_class, NULL, 1 },
|
|
||||||
{ OPT_LEVELS_SIZE, OPT_mcase_vector_pcrel, NULL, 1 },
|
|
||||||
- { OPT_LEVELS_SIZE, OPT_mcompact_casesi, NULL, 1 },
|
|
||||||
{ OPT_LEVELS_NONE, 0, NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
|
|
||||||
index 18d88a3..f828398 100644
|
|
||||||
--- a/gcc/config/arc/arc.c
|
|
||||||
+++ b/gcc/config/arc/arc.c
|
|
||||||
@@ -1151,6 +1151,11 @@ arc_override_options (void)
|
|
||||||
if (arc_size_opt_level == 3)
|
|
||||||
optimize_size = 1;
|
|
||||||
|
|
||||||
+ if (TARGET_V2)
|
|
||||||
+ TARGET_COMPACT_CASESI = 0;
|
|
||||||
+ else if (optimize_size == 1)
|
|
||||||
+ TARGET_COMPACT_CASESI = 1;
|
|
||||||
+
|
|
||||||
if (flag_pic)
|
|
||||||
target_flags |= MASK_NO_SDATA_SET;
|
|
||||||
|
|
||||||
@@ -1163,10 +1168,6 @@ arc_override_options (void)
|
|
||||||
if (!TARGET_Q_CLASS)
|
|
||||||
TARGET_COMPACT_CASESI = 0;
|
|
||||||
|
|
||||||
- /* For the time being don't support COMPACT_CASESI for ARCv2. */
|
|
||||||
- if (TARGET_V2)
|
|
||||||
- TARGET_COMPACT_CASESI = 0;
|
|
||||||
-
|
|
||||||
if (TARGET_COMPACT_CASESI)
|
|
||||||
TARGET_CASE_VECTOR_PC_RELATIVE = 1;
|
|
||||||
|
|
||||||
diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
|
|
||||||
index bc4ac38..ba7c8bc 100644
|
|
||||||
--- a/gcc/config/arc/arc.md
|
|
||||||
+++ b/gcc/config/arc/arc.md
|
|
||||||
@@ -3837,14 +3837,20 @@
|
|
||||||
switch (GET_MODE (diff_vec))
|
|
||||||
{
|
|
||||||
case SImode:
|
|
||||||
- return \"ld.as %0,[%1,%2]%&\";
|
|
||||||
+ if ((which_alternative == 0) && TARGET_CODE_DENSITY)
|
|
||||||
+ return \"ld_s.as %0,[%1,%2]%&\";
|
|
||||||
+ else
|
|
||||||
+ return \"ld.as %0,[%1,%2]%&\";
|
|
||||||
case HImode:
|
|
||||||
if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
|
|
||||||
return \"ldw.as %0,[%1,%2]\";
|
|
||||||
return \"ldw.x.as %0,[%1,%2]\";
|
|
||||||
case QImode:
|
|
||||||
if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
|
|
||||||
- return \"ldb%? %0,[%1,%2]%&\";
|
|
||||||
+ if (which_alternative == 0)
|
|
||||||
+ return \"ldb_s %0,[%1,%2]%&\";
|
|
||||||
+ else
|
|
||||||
+ return \"ldb %0,[%1,%2]%&\";
|
|
||||||
return \"ldb.x %0,[%1,%2]\";
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
25
package/gcc/arc-2016.03-rc2/130-pr43538.patch
Normal file
25
package/gcc/arc-2016.03-rc2/130-pr43538.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From c037df1be41f8daf4d581d7ffa4ec8cfa640bccf Mon Sep 17 00:00:00 2001
|
||||||
|
From: glisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||||
|
Date: Fri, 25 Apr 2014 08:03:08 +0000
|
||||||
|
Subject: [PATCH] 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
PR target/43538
|
||||||
|
* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.
|
||||||
|
|
||||||
|
|
||||||
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209784 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||||
|
---
|
||||||
|
config/mt-gnu | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/config/mt-gnu b/config/mt-gnu
|
||||||
|
index 15bf417..5c696f5 100644
|
||||||
|
--- a/config/mt-gnu
|
||||||
|
+++ b/config/mt-gnu
|
||||||
|
@@ -1 +1 @@
|
||||||
|
-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE
|
||||||
|
+CXXFLAGS_FOR_TARGET += -D_GNU_SOURCE
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
13
package/gcc/arc-2016.03-rc2/301-missing-execinfo_h.patch
Normal file
13
package/gcc/arc-2016.03-rc2/301-missing-execinfo_h.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: gcc-4.8.0/boehm-gc/include/gc.h
|
||||||
|
===================================================================
|
||||||
|
--- gcc-4.8.0.orig/boehm-gc/include/gc.h 2007-04-23 23:10:09.000000000 +0200
|
||||||
|
+++ gcc-4.8.0/boehm-gc/include/gc.h 2013-03-23 17:39:20.000000000 +0100
|
||||||
|
@@ -503,7 +503,7 @@
|
||||||
|
#if defined(__linux__) || defined(__GLIBC__)
|
||||||
|
# include <features.h>
|
||||||
|
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
|
||||||
|
- && !defined(__ia64__)
|
||||||
|
+ && !defined(__ia64__) && !defined(__UCLIBC__)
|
||||||
|
# ifndef GC_HAVE_BUILTIN_BACKTRACE
|
||||||
|
# define GC_HAVE_BUILTIN_BACKTRACE
|
||||||
|
# endif
|
@ -0,0 +1,49 @@
|
|||||||
|
Index: gcc-4.8.0/libmudflap/mf-hooks2.c
|
||||||
|
===================================================================
|
||||||
|
--- gcc-4.8.0.orig/libmudflap/mf-hooks2.c 2013-02-03 18:48:05.000000000 +0100
|
||||||
|
+++ gcc-4.8.0/libmudflap/mf-hooks2.c 2013-03-23 17:39:43.000000000 +0100
|
||||||
|
@@ -424,7 +424,7 @@
|
||||||
|
{
|
||||||
|
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||||
|
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
|
||||||
|
- bzero (s, n);
|
||||||
|
+ memset (s, 0, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -434,7 +434,7 @@
|
||||||
|
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||||
|
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
|
||||||
|
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
|
||||||
|
- bcopy (src, dest, n);
|
||||||
|
+ memmove (dest, src, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -444,7 +444,7 @@
|
||||||
|
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||||
|
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
|
||||||
|
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
|
||||||
|
- return bcmp (s1, s2, n);
|
||||||
|
+ return n == 0 ? 0 : memcmp (s1, s2, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -453,7 +453,7 @@
|
||||||
|
size_t n = strlen (s);
|
||||||
|
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||||
|
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
|
||||||
|
- return index (s, c);
|
||||||
|
+ return strchr (s, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -462,7 +462,7 @@
|
||||||
|
size_t n = strlen (s);
|
||||||
|
TRACE ("%s\n", __PRETTY_FUNCTION__);
|
||||||
|
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
|
||||||
|
- return rindex (s, c);
|
||||||
|
+ return strrchr (s, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XXX: stpcpy, memccpy */
|
111
package/gcc/arc-2016.03-rc2/842-PR60155.patch
Normal file
111
package/gcc/arc-2016.03-rc2/842-PR60155.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
From gcc bugzilla https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155
|
||||||
|
Upstream status: in trunk.
|
||||||
|
|
||||||
|
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||||
|
|
||||||
|
--- trunk/gcc/gcse.c 2014/02/12 14:50:06 207726
|
||||||
|
+++ trunk/gcc/gcse.c 2014/04/04 22:25:51 209134
|
||||||
|
@@ -2502,6 +2502,65 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+struct set_data
|
||||||
|
+{
|
||||||
|
+ rtx insn;
|
||||||
|
+ const_rtx set;
|
||||||
|
+ int nsets;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+/* Increment number of sets and record set in DATA. */
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+record_set_data (rtx dest, const_rtx set, void *data)
|
||||||
|
+{
|
||||||
|
+ struct set_data *s = (struct set_data *)data;
|
||||||
|
+
|
||||||
|
+ if (GET_CODE (set) == SET)
|
||||||
|
+ {
|
||||||
|
+ /* We allow insns having multiple sets, where all but one are
|
||||||
|
+ dead as single set insns. In the common case only a single
|
||||||
|
+ set is present, so we want to avoid checking for REG_UNUSED
|
||||||
|
+ notes unless necessary. */
|
||||||
|
+ if (s->nsets == 1
|
||||||
|
+ && find_reg_note (s->insn, REG_UNUSED, SET_DEST (s->set))
|
||||||
|
+ && !side_effects_p (s->set))
|
||||||
|
+ s->nsets = 0;
|
||||||
|
+
|
||||||
|
+ if (!s->nsets)
|
||||||
|
+ {
|
||||||
|
+ /* Record this set. */
|
||||||
|
+ s->nsets += 1;
|
||||||
|
+ s->set = set;
|
||||||
|
+ }
|
||||||
|
+ else if (!find_reg_note (s->insn, REG_UNUSED, dest)
|
||||||
|
+ || side_effects_p (set))
|
||||||
|
+ s->nsets += 1;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static const_rtx
|
||||||
|
+single_set_gcse (rtx insn)
|
||||||
|
+{
|
||||||
|
+ struct set_data s;
|
||||||
|
+ rtx pattern;
|
||||||
|
+
|
||||||
|
+ gcc_assert (INSN_P (insn));
|
||||||
|
+
|
||||||
|
+ /* Optimize common case. */
|
||||||
|
+ pattern = PATTERN (insn);
|
||||||
|
+ if (GET_CODE (pattern) == SET)
|
||||||
|
+ return pattern;
|
||||||
|
+
|
||||||
|
+ s.insn = insn;
|
||||||
|
+ s.nsets = 0;
|
||||||
|
+ note_stores (pattern, record_set_data, &s);
|
||||||
|
+
|
||||||
|
+ /* Considered invariant insns have exactly one set. */
|
||||||
|
+ gcc_assert (s.nsets == 1);
|
||||||
|
+ return s.set;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Emit move from SRC to DEST noting the equivalence with expression computed
|
||||||
|
in INSN. */
|
||||||
|
|
||||||
|
@@ -2509,7 +2568,8 @@
|
||||||
|
gcse_emit_move_after (rtx dest, rtx src, rtx insn)
|
||||||
|
{
|
||||||
|
rtx new_rtx;
|
||||||
|
- rtx set = single_set (insn), set2;
|
||||||
|
+ const_rtx set = single_set_gcse (insn);
|
||||||
|
+ rtx set2;
|
||||||
|
rtx note;
|
||||||
|
rtx eqv = NULL_RTX;
|
||||||
|
|
||||||
|
@@ -3369,13 +3429,12 @@
|
||||||
|
FOR_EACH_VEC_ELT (occrs_to_hoist, j, occr)
|
||||||
|
{
|
||||||
|
rtx insn;
|
||||||
|
- rtx set;
|
||||||
|
+ const_rtx set;
|
||||||
|
|
||||||
|
gcc_assert (!occr->deleted_p);
|
||||||
|
|
||||||
|
insn = occr->insn;
|
||||||
|
- set = single_set (insn);
|
||||||
|
- gcc_assert (set);
|
||||||
|
+ set = single_set_gcse (insn);
|
||||||
|
|
||||||
|
/* Create a pseudo-reg to store the result of reaching
|
||||||
|
expressions into. Get the mode for the new pseudo
|
||||||
|
@@ -3456,10 +3515,8 @@
|
||||||
|
{
|
||||||
|
rtx reg;
|
||||||
|
enum reg_class pressure_class;
|
||||||
|
- rtx set = single_set (insn);
|
||||||
|
+ const_rtx set = single_set_gcse (insn);
|
||||||
|
|
||||||
|
- /* Considered invariant insns have only one set. */
|
||||||
|
- gcc_assert (set != NULL_RTX);
|
||||||
|
reg = SET_DEST (set);
|
||||||
|
if (GET_CODE (reg) == SUBREG)
|
||||||
|
reg = SUBREG_REG (reg);
|
@ -45,7 +45,7 @@ Index: b/libstdc++-v3/include/bits/basic_string.h
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- a/libstdc++-v3/include/bits/basic_string.h
|
--- a/libstdc++-v3/include/bits/basic_string.h
|
||||||
+++ b/libstdc++-v3/include/bits/basic_string.h
|
+++ b/libstdc++-v3/include/bits/basic_string.h
|
||||||
@@ -2811,7 +2811,7 @@
|
@@ -2809,7 +2809,7 @@
|
||||||
_GLIBCXX_END_NAMESPACE_VERSION
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -262,7 +262,7 @@ Index: b/libstdc++-v3/include/c_global/cstdio
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- a/libstdc++-v3/include/c_global/cstdio
|
--- a/libstdc++-v3/include/c_global/cstdio
|
||||||
+++ b/libstdc++-v3/include/c_global/cstdio
|
+++ b/libstdc++-v3/include/c_global/cstdio
|
||||||
@@ -138,7 +138,7 @@
|
@@ -139,7 +139,7 @@
|
||||||
using ::vsprintf;
|
using ::vsprintf;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
@ -0,0 +1,14 @@
|
|||||||
|
disable split-stack for non-thread builds
|
||||||
|
|
||||||
|
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
||||||
|
|
||||||
|
diff -Nur gcc-4.8.5.orig/libgcc/config/t-stack gcc-4.8.5/libgcc/config/t-stack
|
||||||
|
--- gcc-4.8.5.orig/libgcc/config/t-stack 2010-10-01 21:31:49.000000000 +0200
|
||||||
|
+++ gcc-4.8.5/libgcc/config/t-stack 2016-03-07 05:28:12.000000000 +0100
|
||||||
|
@@ -1,4 +1,6 @@
|
||||||
|
# Makefile fragment to provide generic support for -fsplit-stack.
|
||||||
|
# This should be used in config.host for any host which supports
|
||||||
|
# -fsplit-stack.
|
||||||
|
+ifeq ($(enable_threads),yes)
|
||||||
|
LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c
|
||||||
|
+endif
|
@ -11,4 +11,4 @@ sha512 d619847383405fd389f5a2d7225f97fedb01f81478dbb8339047ccba7561a5c20045ab50
|
|||||||
# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-6.1.0/sha512.sum
|
# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-6.1.0/sha512.sum
|
||||||
sha512 eeed3e2018b8c012aabce419e8d718fde701e5c3c179b4486c61ba46e5736eecc8fccdd18b01fcd973a42c6ad3116dbbe2ee247fe3757d622d373f93ebaf8d2e gcc-6.1.0.tar.bz2
|
sha512 eeed3e2018b8c012aabce419e8d718fde701e5c3c179b4486c61ba46e5736eecc8fccdd18b01fcd973a42c6ad3116dbbe2ee247fe3757d622d373f93ebaf8d2e gcc-6.1.0.tar.bz2
|
||||||
# No hash for the ARC variant, comes from the github-helper:
|
# No hash for the ARC variant, comes from the github-helper:
|
||||||
none xxx gcc-arc-2015.12.tar.gz
|
none xxx gcc-arc-2016.03-rc2.tar.gz
|
||||||
|
@ -48,7 +48,7 @@ endif
|
|||||||
config BR2_GDB_VERSION
|
config BR2_GDB_VERSION
|
||||||
string
|
string
|
||||||
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
|
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
|
||||||
default "arc-2015.12-gdb" if BR2_arc
|
default "arc-2016.03-rc2-gdb" if BR2_arc
|
||||||
default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
|
default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
|
||||||
default "7.8.2" if BR2_GDB_VERSION_7_8
|
default "7.8.2" if BR2_GDB_VERSION_7_8
|
||||||
default "7.9.1" if BR2_GDB_VERSION_7_9 || !BR2_PACKAGE_HOST_GDB
|
default "7.9.1" if BR2_GDB_VERSION_7_9 || !BR2_PACKAGE_HOST_GDB
|
||||||
|
@ -3,5 +3,5 @@ sha512 face5bf1b4ce144fc8604fc84620beed956177a11fd632b4e41906fc7f632910b2b43a50e
|
|||||||
sha512 eebdf88b24e52e792b8a4b89ea85790de72b462a7810b44975fdf4232c068f353b15506071f450102a9d4bcecdde8e93dc3748a10699b7f73f3e04fb2d9d8414 gdb-7.9.1.tar.xz
|
sha512 eebdf88b24e52e792b8a4b89ea85790de72b462a7810b44975fdf4232c068f353b15506071f450102a9d4bcecdde8e93dc3748a10699b7f73f3e04fb2d9d8414 gdb-7.9.1.tar.xz
|
||||||
sha512 17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010 gdb-7.10.1.tar.xz
|
sha512 17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010 gdb-7.10.1.tar.xz
|
||||||
# No hash for the ARC & microblaze variants, comes from the github-helper:
|
# No hash for the ARC & microblaze variants, comes from the github-helper:
|
||||||
none xxx gdb-arc-2015.12-gdb.tar.gz
|
none xxx gdb-arc-2016.03-rc2-gdb.tar.gz
|
||||||
none xxx gdb-6be65fb56ea6694a9260733a536a023a1e2d4d57.tar.gz
|
none xxx gdb-6be65fb56ea6694a9260733a536a023a1e2d4d57.tar.gz
|
||||||
|
Loading…
x
Reference in New Issue
Block a user