Skip to content
Snippets Groups Projects
Commit dc319045 authored by Bernhard Rosenkränzer's avatar Bernhard Rosenkränzer
Browse files

binutils: Update to 2.37


Update binutils to 2.37 -- it brings many improvements, including some
needed to get a working RISC-V 32 toolchain.

Signed-off-by: default avatarBernhard Rosenkränzer <bernhard.rosenkraenzer.ext@huawei.com>
parent d73d68ed
No related branches found
No related tags found
No related merge requests found
Showing
with 35977 additions and 14531 deletions
......@@ -10,15 +10,15 @@ LIC_FILES_CHKSUM="\
file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\
"
# When upgrading to 2.37, please make sure there is no trailing .0, so
# When upgrading to 2.38, please make sure there is no trailing .0, so
# that upstream version check can work correctly.
PV = "2.36.1"
CVE_VERSION = "2.36.1"
SRCBRANCH ?= "binutils-2_36-branch"
PV = "2.37"
CVE_VERSION = "2.37"
SRCBRANCH ?= "binutils-2_37-branch"
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
SRCREV ?= "7651a4871c225925ffdfda0a8c91a6ed370cd9a1"
SRCREV ?= "bebfdeb46ddfce80bca9fd23a0261501f87bc892"
BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=git"
SRC_URI = "\
${BINUTILS_GIT_URI} \
......@@ -35,8 +35,5 @@ SRC_URI = "\
file://0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
file://0015-sync-with-OE-libtool-changes.patch \
file://0016-Check-for-clang-before-checking-gcc-version.patch \
file://0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch \
file://0018-Add-DWARF-5-support-in-gold.patch \
file://CVE-2021-20197.patch \
"
S = "${WORKDIR}/git"
......@@ -15,9 +15,6 @@ do_configure[dirs] += "${B}/ld ${B}/bfd"
do_configure() {
# create config.h, oe enables initfini-array by default
echo "#define HAVE_INITFINI_ARRAY" > ${B}/ld/config.h
# use the bfd_stdint.h from binutils-native, this is the same of the one
# generated by binutils-cross
cp ${RECIPE_SYSROOT_NATIVE}/usr/include/bfd_stdint.h ${B}/bfd/
}
# target depends
......
......@@ -170,8 +170,6 @@ do_install () {
done
oe_multilib_header bfd.h
# bfd_stdint.h encodes the compiler name in the header
sed -i ${D}${includedir}/bfd_stdint.h -e "s,${TARGET_PREFIX},,"
}
inherit update-alternatives
......
......@@ -14,6 +14,8 @@ Upstream-Status: Inappropriate [SDK specific]
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
gold/layout.cc | 2 +-
ld/genscripts.sh | 3 +++
......@@ -21,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/gold/layout.cc b/gold/layout.cc
index a27cb071c75..32b52890b39 100644
index a27cb071..32b52890 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -5032,7 +5032,7 @@ Layout::create_interp(const Target* target)
......@@ -34,7 +36,7 @@ index a27cb071c75..32b52890b39 100644
Output_section_data* odata = new Output_data_const(interp, len, 1);
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
index 088417ef2d5..46a2db7005c 100755
index 088417ef..46a2db70 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -304,6 +304,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}"
......@@ -59,7 +61,7 @@ index 088417ef2d5..46a2db7005c 100755
DATA_ALIGNMENT=${DATA_ALIGNMENT_}
RELOCATING=" "
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index 29a8f0781d5..75e46f4adaf 100644
index 29a8f078..75e46f4a 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -147,8 +147,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then
......@@ -73,3 +75,6 @@ index 29a8f0781d5..75e46f4adaf 100644
fi
if test -z "$PLT"; then
IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
--
2.32.0
......@@ -17,12 +17,14 @@ Upstream-Status: Inappropriate
RP 2017/01/30
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
ld/genscripts.sh | 25 -------------------------
1 file changed, 25 deletions(-)
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
index 46a2db7005c..4bb7c33f560 100755
index 46a2db70..4bb7c33f 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -235,31 +235,6 @@ append_to_lib_path()
......@@ -57,3 +59,6 @@ index 46a2db7005c..4bb7c33f560 100755
if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
libs=${NATIVE_LIB_DIRS}
if [ "x${NATIVE}" = "xyes" ] ; then
--
2.32.0
......@@ -20,6 +20,8 @@ Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream-Status: Inappropriate [OE specific tweak]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
ld/Makefile.am | 3 ++-
ld/Makefile.in | 3 ++-
......@@ -29,7 +31,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
5 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 2c9a487335c..3b01357b651 100644
index f8e99325..fd196541 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
......@@ -43,10 +45,10 @@ index 2c9a487335c..3b01357b651 100644
NO_WERROR = @NO_WERROR@
AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
diff --git a/ld/Makefile.in b/ld/Makefile.in
index b41941c89e2..a6382bf2a45 100644
index ef2e99e0..cb8f5bfb 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -554,7 +554,8 @@ ZLIB = @zlibdir@ -lz
@@ -555,7 +555,8 @@ ZLIB = @zlibdir@ -lz
ZLIBINC = @zlibinc@
ELF_CLFAGS = -DELF_LIST_OPTIONS=@elf_list_options@ \
-DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
......@@ -57,7 +59,7 @@ index b41941c89e2..a6382bf2a45 100644
AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
diff --git a/ld/ldelf.c b/ld/ldelf.c
index f7407ab55a7..b25781cc0c4 100644
index 21e655bb..d1615003 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -911,7 +911,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
......@@ -70,7 +72,7 @@ index f7407ab55a7..b25781cc0c4 100644
if (!ldelf_parse_ld_so_conf (&info, tmppath))
{
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 863df0293ea..080b1c4c6c2 100644
index 42660eb9..5a4a4d5d 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -70,6 +70,7 @@ char *program_name;
......@@ -82,7 +84,7 @@ index 863df0293ea..080b1c4c6c2 100644
/* The canonical representation of ld_sysroot. */
char *ld_canon_sysroot;
diff --git a/ld/ldmain.h b/ld/ldmain.h
index 38e63922d31..0966914938c 100644
index 39d08a6c..4c3519e7 100644
--- a/ld/ldmain.h
+++ b/ld/ldmain.h
@@ -23,6 +23,7 @@
......@@ -93,3 +95,6 @@ index 38e63922d31..0966914938c 100644
extern char *ld_canon_sysroot;
extern int ld_canon_sysroot_len;
extern FILE *saved_script_handle;
--
2.32.0
......@@ -8,16 +8,18 @@ gprof needs to know about uclibc
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
configure | 2 +-
configure.ac | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 68779feb42b..7b369071141 100755
index 3dd20652..e8ba1a1d 100755
--- a/configure
+++ b/configure
@@ -3887,7 +3887,7 @@ case "${target}" in
@@ -3892,7 +3892,7 @@ case "${target}" in
nvptx*-*-*)
noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
;;
......@@ -27,10 +29,10 @@ index 68779feb42b..7b369071141 100755
sh*-*-elf)
;;
diff --git a/configure.ac b/configure.ac
index d16a2757689..92f01fb3ed7 100644
index 48f679b8..1e59a0e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1177,7 +1177,7 @@ case "${target}" in
@@ -1175,7 +1175,7 @@ case "${target}" in
nvptx*-*-*)
noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
;;
......@@ -39,3 +41,6 @@ index d16a2757689..92f01fb3ed7 100644
case "${target}" in
sh*-*-elf)
;;
--
2.32.0
......@@ -6,13 +6,15 @@ Subject: [PATCH] Point scripts location to libdir
Upstream-Status: Inappropriate [debian patch]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.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 3b01357b651..b7a1f7491b0 100644
index fd196541..d94fa7e6 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -51,7 +51,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
......@@ -25,10 +27,10 @@ index 3b01357b651..b7a1f7491b0 100644
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/ld/Makefile.in b/ld/Makefile.in
index a6382bf2a45..5ee3a4971be 100644
index cb8f5bfb..9a58879c 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -562,7 +562,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
@@ -563,7 +563,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.
......@@ -37,3 +39,6 @@ index a6382bf2a45..5ee3a4971be 100644
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
--
2.32.0
......@@ -9,15 +9,17 @@ Upstream-Status: Pending
Signed-off-by: Chris Chimelis <chris@debian.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
ld/ldelf.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/ld/ldelf.c b/ld/ldelf.c
index b25781cc0c4..77d7fb8ff03 100644
index d1615003..6a894285 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1248,6 +1248,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
@@ -1250,6 +1250,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
&& command_line.rpath == NULL)
{
path = (const char *) getenv ("LD_RUN_PATH");
......@@ -26,7 +28,7 @@ index b25781cc0c4..77d7fb8ff03 100644
if (path
&& ldelf_search_needed (path, &n, force,
is_linux, elfsize))
@@ -1608,6 +1610,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
@@ -1610,6 +1612,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
......@@ -35,3 +37,6 @@ index b25781cc0c4..77d7fb8ff03 100644
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
--
2.32.0
......@@ -12,12 +12,14 @@ Nitin A Kamble <nitin.a.kamble@intel.com>
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
libiberty/Makefile.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 788590957e1..1bca4aafeb7 100644
index d19e14a2..18ac7935 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -367,7 +367,8 @@ install-strip: install
......@@ -30,3 +32,6 @@ index 788590957e1..1bca4aafeb7 100644
install_to_libdir: all
if test -n "${target_header_dir}"; then \
${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
--
2.32.0
......@@ -50,6 +50,8 @@ Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased/ported to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
ld/config.in | 3 +++
ld/configure | 16 ++++++++++++++++
......@@ -63,10 +65,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
9 files changed, 86 insertions(+)
diff --git a/ld/config.in b/ld/config.in
index 7b60d778587..37b8e9b6f6c 100644
index 26d55a00..ffad4647 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -40,6 +40,9 @@
@@ -43,6 +43,9 @@
language is requested. */
#undef ENABLE_NLS
......@@ -77,10 +79,10 @@ index 7b60d778587..37b8e9b6f6c 100644
#undef EXTRA_SHLIB_EXTENSION
diff --git a/ld/configure b/ld/configure
index b0969791959..50bb04ce6a8 100755
index c197aaef..58295dec 100755
--- a/ld/configure
+++ b/ld/configure
@@ -828,6 +828,7 @@ with_lib_path
@@ -829,6 +829,7 @@ with_lib_path
enable_targets
enable_64_bit_bfd
with_sysroot
......@@ -88,8 +90,8 @@ index b0969791959..50bb04ce6a8 100755
enable_gold
enable_got
enable_compressed_debug_sections
@@ -1496,6 +1497,8 @@ Optional Features:
--disable-largefile omit support for large files
@@ -1498,6 +1499,8 @@ Optional Features:
--enable-checking enable run-time checks
--enable-targets alternative target configurations
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
+ --enable-poison-system-directories
......@@ -97,7 +99,7 @@ index b0969791959..50bb04ce6a8 100755
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
@@ -15820,6 +15823,19 @@ fi
@@ -15215,6 +15218,19 @@ fi
......@@ -118,10 +120,10 @@ index b0969791959..50bb04ce6a8 100755
if test "${enable_gold+set}" = set; then :
enableval=$enable_gold; case "${enableval}" in
diff --git a/ld/configure.ac b/ld/configure.ac
index c9c69ab9245..59dab0a6ac4 100644
index 8ea97c43..0f246db6 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
@@ -106,6 +106,16 @@ AC_SUBST(use_sysroot)
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
......@@ -139,29 +141,29 @@ index c9c69ab9245..59dab0a6ac4 100644
dnl "install_as_default" is set to false if gold is the default linker.
dnl "installed_linker" is the installed BFD linker name.
diff --git a/ld/ld.h b/ld/ld.h
index 93f5af92c7d..ff7f71a7b66 100644
index 35fafebf..3d559a77 100644
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -166,6 +166,14 @@ typedef struct
@@ -162,6 +162,14 @@ typedef struct
in the linker script. */
bfd_boolean force_group_allocation;
bool force_group_allocation;
+ /* If TRUE (the default) warn for uses of system directories when
+ /* If true (the default) warn for uses of system directories when
+ cross linking. */
+ bfd_boolean poison_system_directories;
+ bool poison_system_directories;
+
+ /* If TRUE (default FALSE) give an error for uses of system
+ /* 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;
+ bool error_poison_system_directories;
+
/* Big or little endian as set on command line. */
enum endian_enum endian;
diff --git a/ld/ld.texi b/ld/ld.texi
index 7a602b9c6ab..cccbfbab3bb 100644
index dd8f571d..3ab210b4 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -2810,6 +2810,18 @@ string identifying the original linked file does not change.
@@ -2863,6 +2863,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.
......@@ -181,10 +183,10 @@ index 7a602b9c6ab..cccbfbab3bb 100644
@c man end
diff --git a/ld/ldfile.c b/ld/ldfile.c
index 81cb86d51e2..cd5c2752679 100644
index 9d0af06f..7cdd3b1c 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
@@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bool cmdline)
new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
else
new_dirs->name = xstrdup (name);
......@@ -209,10 +211,10 @@ index 81cb86d51e2..cd5c2752679 100644
/* Try to open a BFD for a lang_input_statement. */
diff --git a/ld/ldlex.h b/ld/ldlex.h
index b0101028321..77f5accb5d9 100644
index 9e8bf5fb..2f0fadfe 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -161,6 +161,8 @@ enum option_values
@@ -163,6 +163,8 @@ enum option_values
OPTION_CTF_VARIABLES,
OPTION_NO_CTF_VARIABLES,
OPTION_CTF_SHARE_TYPES,
......@@ -222,23 +224,23 @@ index b0101028321..77f5accb5d9 100644
/* The initial parser states. */
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 080b1c4c6c2..78d8a2df278 100644
index 5a4a4d5d..07af963e 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -324,6 +324,8 @@ main (int argc, char **argv)
command_line.warn_mismatch = TRUE;
command_line.warn_search_mismatch = TRUE;
@@ -322,6 +322,8 @@ main (int argc, char **argv)
command_line.warn_mismatch = true;
command_line.warn_search_mismatch = true;
command_line.check_section_addresses = -1;
+ command_line.poison_system_directories = TRUE;
+ command_line.error_poison_system_directories = FALSE;
+ 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
diff --git a/ld/lexsup.c b/ld/lexsup.c
index f005a58a045..5eb8439fef7 100644
index 00274c50..dfcd5a4c 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -591,6 +591,14 @@ static const struct ld_option ld_options[] =
@@ -595,6 +595,14 @@ static const struct ld_option ld_options[] =
" <method> is: share-unconflicted (default),\n"
" share-duplicated"),
TWO_DASHES },
......@@ -253,18 +255,21 @@ index f005a58a045..5eb8439fef7 100644
};
#define OPTION_COUNT ARRAY_SIZE (ld_options)
@@ -1676,6 +1684,14 @@ parse_args (unsigned argc, char **argv)
config.print_map_discarded = TRUE;
@@ -1686,6 +1694,14 @@ parse_args (unsigned argc, char **argv)
config.print_map_discarded = true;
break;
+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
+ command_line.poison_system_directories = FALSE;
+ command_line.poison_system_directories = false;
+ break;
+
+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
+ command_line.error_poison_system_directories = TRUE;
+ command_line.error_poison_system_directories = true;
+ break;
+
case OPTION_DEPENDENCY_FILE:
config.dependency_file = optarg;
break;
--
2.32.0
......@@ -8,16 +8,18 @@ we change the default emulations to be N64 instead of N32
Upstream-Status: Inappropriate [ OE configuration Specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
bfd/config.bfd | 8 ++++----
ld/configure.tgt | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/bfd/config.bfd b/bfd/config.bfd
index e7b55b0dd78..2caf492e172 100644
index 30087e3b..1896e117 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -896,12 +896,12 @@ case "${targ}" in
@@ -891,12 +891,12 @@ case "${targ}" in
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
;;
mips64*el-*-linux*)
......@@ -35,10 +37,10 @@ index e7b55b0dd78..2caf492e172 100644
mips*el-*-linux*)
targ_defvec=mips_elf32_trad_le_vec
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 0c780b24d57..47431770a17 100644
index 6205d7c9..c0853365 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -531,12 +531,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
@@ -530,12 +530,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
;;
mips*-*-windiss) targ_emul=elf32mipswindiss
;;
......@@ -55,3 +57,6 @@ index 0c780b24d57..47431770a17 100644
targ_extra_libpath=$targ_extra_emuls
;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
--
2.32.0
......@@ -16,6 +16,8 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
bfd/aoutx.h | 1 +
bfd/archures.c | 1 +
......@@ -35,7 +37,7 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
15 files changed, 65 insertions(+), 21 deletions(-)
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 8025b8c5241..cdcb7876896 100644
index 17560bd8..10b1cad7 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -810,6 +810,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
......@@ -47,7 +49,7 @@ index 8025b8c5241..cdcb7876896 100644
arch_flags = M_MIPS2;
break;
diff --git a/bfd/archures.c b/bfd/archures.c
index 8c1d32ca930..b4b2927ebc0 100644
index 390691bf..b0b7a5fa 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -185,6 +185,7 @@ DESCRIPTION
......@@ -59,10 +61,10 @@ index 8c1d32ca930..b4b2927ebc0 100644
.#define bfd_mach_mipsisa32r2 33
.#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 7eff85b7eaa..6c9eb12865e 100644
index 9a698316..8bff6aaa 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1590,6 +1590,7 @@ enum bfd_architecture
@@ -1562,6 +1562,7 @@ enum bfd_architecture
#define bfd_mach_mips_octeon3 6503
#define bfd_mach_mips_xlr 887682 /* decimal 'XLR'. */
#define bfd_mach_mips_interaptiv_mr2 736550 /* decimal 'IA2'. */
......@@ -71,10 +73,10 @@ index 7eff85b7eaa..6c9eb12865e 100644
#define bfd_mach_mipsisa32r2 33
#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 2caf492e172..e75417da4d8 100644
index 1896e117..8270fd27 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -879,6 +879,11 @@ case "${targ}" in
@@ -874,6 +874,11 @@ case "${targ}" in
targ_defvec=mips_elf32_le_vec
targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
;;
......@@ -87,7 +89,7 @@ index 2caf492e172..e75417da4d8 100644
targ_defvec=mips_elf32_be_vec
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
index 5a944ceee81..c57d12ba3dd 100644
index 76b507e3..c1563cf4 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
@@ -108,7 +108,8 @@ enum
......@@ -101,17 +103,17 @@ index 5a944ceee81..c57d12ba3dd 100644
#define NN(index) (&arch_info_struct[(index) + 1])
@@ -163,7 +164,8 @@ static const bfd_arch_info_type arch_info_struct[] =
N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", FALSE,
N (64, 64, bfd_mach_mips_xlr, "mips:xlr", false, NN(I_xlr)),
N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", false,
NN(I_interaptiv_mr2)),
- N (64, 64, bfd_mach_mips_micromips, "mips:micromips", FALSE, NULL)
+ N (64, 64, bfd_mach_mips_micromips, "mips:micromips", FALSE, NN(I_micromips)),
+ N (64, 64, bfd_mach_mips_xlp, "mips:xlp", FALSE, NULL)
- N (64, 64, bfd_mach_mips_micromips, "mips:micromips", false, NULL)
+ N (64, 64, bfd_mach_mips_micromips, "mips:micromips", false, NN(I_micromips)),
+ N (64, 64, bfd_mach_mips_xlp, "mips:xlp", false, NULL)
};
/* The default architecture is mips:3000, but with a machine number of
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 3cbb3cf9495..0c6cd47b40c 100644
index e4827fd1..fa8c2512 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -6980,6 +6980,9 @@ _bfd_elf_mips_mach (flagword flags)
......@@ -124,7 +126,7 @@ index 3cbb3cf9495..0c6cd47b40c 100644
default:
switch (flags & EF_MIPS_ARCH)
{
@@ -12335,6 +12338,10 @@ mips_set_isa_flags (bfd *abfd)
@@ -12339,6 +12342,10 @@ mips_set_isa_flags (bfd *abfd)
val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2;
break;
......@@ -135,7 +137,7 @@ index 3cbb3cf9495..0c6cd47b40c 100644
case bfd_mach_mipsisa32:
val = E_MIPS_ARCH_32;
break;
@@ -14352,6 +14359,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
@@ -14428,6 +14435,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
{ bfd_mach_mips_gs264e, bfd_mach_mips_gs464e },
{ bfd_mach_mips_gs464e, bfd_mach_mips_gs464 },
{ bfd_mach_mips_gs464, bfd_mach_mipsisa64r2 },
......@@ -144,10 +146,10 @@ index 3cbb3cf9495..0c6cd47b40c 100644
/* MIPS64 extensions. */
{ bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 },
diff --git a/binutils/readelf.c b/binutils/readelf.c
index ad16b4571c9..4bf2b732502 100644
index a6073f7e..2f2448b5 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -3502,6 +3502,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
@@ -3613,6 +3613,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break;
case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break;
case E_MIPS_MACH_IAMR2: strcat (buf, ", interaptiv-mr2"); break;
......@@ -156,10 +158,10 @@ index ad16b4571c9..4bf2b732502 100644
/* We simply ignore the field in this case to avoid confusion:
MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 538b69710f5..b021b64f14b 100644
index 0201f816..a3cfcdbe 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -568,6 +568,7 @@ static int mips_32bitmode = 0;
@@ -570,6 +570,7 @@ static int mips_32bitmode = 0;
|| mips_opts.arch == CPU_RM7000 \
|| mips_opts.arch == CPU_VR5500 \
|| mips_opts.micromips \
......@@ -167,7 +169,7 @@ index 538b69710f5..b021b64f14b 100644
)
/* Whether the processor uses hardware interlocks to protect reads
@@ -597,6 +598,7 @@ static int mips_32bitmode = 0;
@@ -599,6 +600,7 @@ static int mips_32bitmode = 0;
&& mips_opts.isa != ISA_MIPS3) \
|| mips_opts.arch == CPU_R4300 \
|| mips_opts.micromips \
......@@ -175,7 +177,7 @@ index 538b69710f5..b021b64f14b 100644
)
/* Whether the processor uses hardware interlocks to protect reads
@@ -20156,7 +20158,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
@@ -20157,7 +20159,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
/* Broadcom XLP.
XLP is mostly like XLR, with the prominent exception that it is
MIPS64R2 rather than MIPS64. */
......@@ -185,10 +187,10 @@ index 538b69710f5..b021b64f14b 100644
/* MIPS 64 Release 6. */
{ "i6400", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
diff --git a/gas/configure b/gas/configure
index d03432c6dc6..d5ae54925e9 100755
index b1bf9a61..59c9153c 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12761,6 +12761,9 @@ _ACEOF
@@ -12083,6 +12083,9 @@ _ACEOF
mipsisa64r6 | mipsisa64r6el)
mips_cpu=mips64r6
;;
......@@ -199,10 +201,10 @@ index d03432c6dc6..d5ae54925e9 100755
mips_cpu=r3900
;;
diff --git a/gas/configure.ac b/gas/configure.ac
index 82706561886..f1c27bf2878 100644
index 78efba88..c1b4ef6b 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -332,6 +332,9 @@ changequote([,])dnl
@@ -331,6 +331,9 @@ changequote([,])dnl
mipsisa64r6 | mipsisa64r6el)
mips_cpu=mips64r6
;;
......@@ -213,7 +215,7 @@ index 82706561886..f1c27bf2878 100644
mips_cpu=r3900
;;
diff --git a/include/elf/mips.h b/include/elf/mips.h
index 4bd86307120..2d7df22abf2 100644
index 4bd86307..2d7df22a 100644
--- a/include/elf/mips.h
+++ b/include/elf/mips.h
@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
......@@ -225,10 +227,10 @@ index 4bd86307120..2d7df22abf2 100644
#define E_MIPS_MACH_OCTEON3 0x008e0000
#define E_MIPS_MACH_5400 0x00910000
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
index d1b4a2574ac..879c68fcfd4 100644
index 9add3c9d..f7a62910 100644
--- a/include/opcode/mips.h
+++ b/include/opcode/mips.h
@@ -1260,6 +1260,8 @@ static const unsigned int mips_isa_table[] = {
@@ -1265,6 +1265,8 @@ static const unsigned int mips_isa_table[] = {
#define INSN_XLR 0x00000020
/* Imagination interAptiv MR2. */
#define INSN_INTERAPTIV_MR2 0x04000000
......@@ -237,7 +239,7 @@ index d1b4a2574ac..879c68fcfd4 100644
/* DSP ASE */
#define ASE_DSP 0x00000001
@@ -1384,6 +1386,7 @@ static const unsigned int mips_isa_table[] = {
@@ -1389,6 +1391,7 @@ static const unsigned int mips_isa_table[] = {
#define CPU_OCTEON3 6503
#define CPU_XLR 887682 /* decimal 'XLR' */
#define CPU_INTERAPTIV_MR2 736550 /* decimal 'IA2' */
......@@ -245,21 +247,21 @@ index d1b4a2574ac..879c68fcfd4 100644
/* Return true if the given CPU is included in INSN_* mask MASK. */
@@ -1461,6 +1464,9 @@ cpu_is_member (int cpu, unsigned int mask)
return ((mask & INSN_ISA_MASK) == INSN_ISA32R6)
|| ((mask & INSN_ISA_MASK) == INSN_ISA64R6);
@@ -1459,6 +1462,9 @@ cpu_is_member (int cpu, unsigned int mask)
case CPU_INTERAPTIV_MR2:
return (mask & INSN_INTERAPTIV_MR2) != 0;
+ case CPU_XLP:
+ return (mask & INSN_XLP) != 0;
+
default:
return FALSE;
return false;
}
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 47431770a17..f714744eab3 100644
index c0853365..7abf3221 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -510,6 +510,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
@@ -509,6 +509,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
;;
......@@ -270,10 +272,10 @@ index 47431770a17..f714744eab3 100644
targ_extra_emuls="elf32lr5900"
targ_extra_libpath=$targ_extra_emuls
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index 317ced51204..6869f890656 100644
index 591caf11..00120afe 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -674,13 +674,11 @@ const struct mips_arch_choice mips_arch_choices[] =
@@ -698,13 +698,11 @@ const struct mips_arch_choice mips_arch_choices[] =
mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr),
mips_cp1_names_mips3264, mips_hwr_names_numeric },
......@@ -293,10 +295,10 @@ index 317ced51204..6869f890656 100644
/* This entry, mips16, is here only for ISA/processor selection; do
not print its name. */
diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
index b45eb40bf69..2f4eb5c0354 100644
index db72c039..ff2fa614 100644
--- a/opcodes/mips-opc.c
+++ b/opcodes/mips-opc.c
@@ -328,6 +328,7 @@ decode_mips_operand (const char *p)
@@ -329,6 +329,7 @@ decode_mips_operand (const char *p)
#define IOCT3 INSN_OCTEON3
#define XLR INSN_XLR
#define IAMR2 INSN_INTERAPTIV_MR2
......@@ -304,15 +306,15 @@ index b45eb40bf69..2f4eb5c0354 100644
#define IVIRT ASE_VIRT
#define IVIRT64 ASE_VIRT64
@@ -990,6 +991,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -991,6 +992,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
{"clz", "d,s", 0x00000050, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 },
{"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
+{"crc", "d,s,t", 0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 },
/* ctc0 is at the bottom of the table. */
{"ctc1", "t,G", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
{"ctc1", "t,g", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
{"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
@@ -1022,12 +1024,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1023,12 +1025,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_1|RD_2, 0, I3, 0, 0 },
{"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 },
{"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 },
......@@ -327,7 +329,7 @@ index b45eb40bf69..2f4eb5c0354 100644
/* dctr and dctw are used on the r5000. */
{"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
{"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
@@ -1099,6 +1102,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1100,6 +1103,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LC, 0, I64, 0, 0 },
{"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
{"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
......@@ -335,16 +337,16 @@ index b45eb40bf69..2f4eb5c0354 100644
{"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 },
{"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
{"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I3, 0, EE },
@@ -1114,6 +1118,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* dmfc3 is at the bottom of the table. */
/* dmtc3 is at the bottom of the table. */
@@ -1113,6 +1117,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* dmfc2 is at the bottom of the table. */
/* dmtc2 is at the bottom of the table. */
{"dmuh", "d,s,t", 0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
+{"dmtur", "t,d", 0x7000001f, 0xffe007ff, RD_1, 0, XLP, 0, 0 },
+{"dmul", "d,s,t", 0x70000006, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 },
{"dmul", "d,s,t", 0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
{"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 },
{"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, 0, I3, 0, M32|I69 },
@@ -1267,9 +1273,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1266,9 +1272,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ld", "s,-b(+R)", 0xec180000, 0xfc1c0000, WR_1, RD_pc, I69, 0, 0 },
{"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, 0, I1, 0, 0 },
{"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, 0 },
......@@ -357,7 +359,7 @@ index b45eb40bf69..2f4eb5c0354 100644
{"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
{"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
{"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF },
@@ -1438,7 +1444,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1437,7 +1443,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 },
{"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 },
{"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 },
......@@ -366,7 +368,7 @@ index b45eb40bf69..2f4eb5c0354 100644
{"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 },
{"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
{"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 },
@@ -1483,10 +1489,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1482,10 +1488,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* move is at the top of the table. */
{"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 },
{"msgsnd", "t", 0, (int) M_MSGSND, INSN_MACRO, 0, XLR, 0, 0 },
......@@ -382,7 +384,7 @@ index b45eb40bf69..2f4eb5c0354 100644
{"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I4_33, 0, I37 },
{"msub.d", "D,S,T", 0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
{"msub.d", "D,S,T", 0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 },
@@ -1536,7 +1545,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1535,7 +1544,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 },
{"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 },
{"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 },
......@@ -391,7 +393,7 @@ index b45eb40bf69..2f4eb5c0354 100644
{"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
{"mtm0", "s,t", 0x70000008, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 },
{"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
@@ -1978,9 +1987,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
@@ -1977,9 +1986,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I5_33|N55, 0, I37},
{"sw", "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 },
{"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, 0, I1, 0, 0 },
......@@ -401,6 +403,9 @@ index b45eb40bf69..2f4eb5c0354 100644
+{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
+{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
+{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
{"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
{"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
{"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, I2 },
{"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, I2 },
{"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 },
--
2.32.0
......@@ -4,6 +4,8 @@ Date: Sat, 11 Jun 2016 22:08:29 -0500
Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic
Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
Upstream-Status: Pending
---
......@@ -11,24 +13,27 @@ Upstream-Status: Pending
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index bbbadffad8f..72092355e12 100644
index 13d8b6c3..c5dab498 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -6302,8 +6302,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
@@ -6378,8 +6378,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
{"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, 0, {0}},
{"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, 0, {0}},
{"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, EXT, {0}},
{"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, EXT, {0}},
-{"wait", X(31,30), XWCPL_MASK, POWER10, 0, {WC, PL}},
-{"wait", X(31,30), XWC_MASK, POWER9, POWER10, {WC}},
{"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
@@ -6363,7 +6361,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
@@ -6433,7 +6431,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, EXT, {0}},
{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, EXT, {0}},
-{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9|POWER10, 0, {WC}},
+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9|POWER10, 0, {WC}},
{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
--
2.32.0
......@@ -9,12 +9,14 @@ Upstream-Status: Submitted
https://sourceware.org/ml/binutils/2016-08/msg00048.html
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
gold/configure.tgt | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/gold/configure.tgt b/gold/configure.tgt
index cac0866e628..24fbf641456 100644
index cac0866e..24fbf641 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -153,6 +153,13 @@ aarch64*-*)
......@@ -45,3 +47,6 @@ index cac0866e628..24fbf641456 100644
mips*-*-*)
targ_obj=mips
targ_machine=EM_MIPS
--
2.32.0
source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -14,12 +14,14 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[bernhard.rosenkraenzer.ext@huawei.com: Rebased to 2.37]
Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
---
ltmain.sh | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/ltmain.sh b/ltmain.sh
index 70e856e0659..11ee684cccf 100644
index 70e856e0..11ee684c 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -8035,9 +8035,11 @@ EOF
......@@ -47,3 +49,6 @@ index 70e856e0659..11ee684cccf 100644
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir"
--
2.32.0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment