* [PATCH 10/16] icu: update to 58.2
From: Alexander Kanavin @ 2016-12-15 12:48 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
meta/recipes-support/icu/{icu_58.1.bb => icu_58.2.bb} | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-support/icu/{icu_58.1.bb => icu_58.2.bb} (85%)
diff --git a/meta/recipes-support/icu/icu_58.1.bb b/meta/recipes-support/icu/icu_58.2.bb
similarity index 85%
rename from meta/recipes-support/icu/icu_58.1.bb
rename to meta/recipes-support/icu/icu_58.2.bb
index cc7c947..e4531ca 100644
--- a/meta/recipes-support/icu/icu_58.1.bb
+++ b/meta/recipes-support/icu/icu_58.2.bb
@@ -21,8 +21,8 @@ SRC_URI = "${BASE_SRC_URI} \
SRC_URI_append_class-target = "\
file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
"
-SRC_URI[md5sum] = "1901302aaff1c1633ef81862663d2917"
-SRC_URI[sha256sum] = "0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309"
+SRC_URI[md5sum] = "fac212b32b7ec7ab007a12dff1f3aea1"
+SRC_URI[sha256sum] = "2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
UPSTREAM_CHECK_URI = "http://download.icu-project.org/files/icu4c/"
--
2.10.2
^ permalink raw reply related
* [PATCH 09/16] gnutls: update to 3.5.7
From: Alexander Kanavin @ 2016-12-15 12:48 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Add a 0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch
to fix a compile issue (incorrect creation of an empty header).
Add a libunistring dependency as gnutls has gained it.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
meta/recipes-support/gnutls/gnutls.inc | 2 +-
...cli-args.h-to-cli-args.stamp-Makefile-tar.patch | 27 ++++++++++++++++++++++
.../correct_rpl_gettimeofday_signature.patch | 11 +++++----
.../gnutls/{gnutls_3.5.6.bb => gnutls_3.5.7.bb} | 5 ++--
4 files changed, 37 insertions(+), 8 deletions(-)
create mode 100644 meta/recipes-support/gnutls/gnutls/0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch
rename meta/recipes-support/gnutls/{gnutls_3.5.6.bb => gnutls_3.5.7.bb} (48%)
diff --git a/meta/recipes-support/gnutls/gnutls.inc b/meta/recipes-support/gnutls/gnutls.inc
index 51b9d2b..883c8be 100644
--- a/meta/recipes-support/gnutls/gnutls.inc
+++ b/meta/recipes-support/gnutls/gnutls.inc
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \
file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343"
-DEPENDS = "nettle gmp virtual/libiconv"
+DEPENDS = "nettle gmp virtual/libiconv libunistring"
DEPENDS_append_libc-musl = " argp-standalone"
SHRT_VER = "${@d.getVar('PV', True).split('.')[0]}.${@d.getVar('PV', True).split('.')[1]}"
diff --git a/meta/recipes-support/gnutls/gnutls/0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch b/meta/recipes-support/gnutls/gnutls/0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch
new file mode 100644
index 0000000..0990810
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch
@@ -0,0 +1,27 @@
+From 68ef47ab3472472780939671731c295481b5535f Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 14 Dec 2016 17:42:45 +0200
+Subject: [PATCH] Do not add cli-args.h to cli-args.stamp Makefile target
+
+Upstream-Status: Submitted [https://gitlab.com/gnutls/gnutls/issues/155]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 49d3af3..827638e 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -261,7 +261,7 @@ cli-debug-args.stamp: $(srcdir)/cli-debug-args.def $(srcdir)/args-std.def
+
+ cli-args.h: cli-args.stamp
+ cli-args.c: cli-args.stamp
+-cli-args.stamp cli-args.h: $(srcdir)/cli-args.def $(srcdir)/args-std.def
++cli-args.stamp: $(srcdir)/cli-args.def $(srcdir)/args-std.def
+ -$(AUTOGEN) $<
+ touch $@
+
+--
+2.10.2
+
diff --git a/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch b/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch
index 5e452c5..96b023a 100644
--- a/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch
+++ b/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch
@@ -1,7 +1,7 @@
-From ae3370788ed3447bba16969d9eb1bf1b9631e1b7 Mon Sep 17 00:00:00 2001
+From 81b0f04c14f673b99778d2e7d8e85461e0bf2018 Mon Sep 17 00:00:00 2001
From: Valentin Popa <valentin.popa@intel.com>
Date: Fri, 25 Apr 2014 13:58:55 +0300
-Subject: [PATCH] Correct rpl_gettimeofday signature
+Subject: [PATCH 1/3] Correct rpl_gettimeofday signature
Currently we fail on uclibc like below
@@ -29,12 +29,13 @@ eglibc otherwise we will have same issue there too
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
+
---
gl/sys_time.in.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gl/sys_time.in.h b/gl/sys_time.in.h
-index 84a17c9..6ceadc3 100644
+index 5a8caf3..2dc5718 100644
--- a/gl/sys_time.in.h
+++ b/gl/sys_time.in.h
@@ -93,20 +93,20 @@ struct timeval
@@ -61,7 +62,7 @@ index 84a17c9..6ceadc3 100644
+ (struct timeval *__restrict, void *__restrict));
# endif
_GL_CXXALIASWARN (gettimeofday);
- #elif defined GNULIB_POSIXCHECK
+ # if defined __cplusplus && defined GNULIB_NAMESPACE
--
-1.9.1
+2.10.2
diff --git a/meta/recipes-support/gnutls/gnutls_3.5.6.bb b/meta/recipes-support/gnutls/gnutls_3.5.7.bb
similarity index 48%
rename from meta/recipes-support/gnutls/gnutls_3.5.6.bb
rename to meta/recipes-support/gnutls/gnutls_3.5.7.bb
index 2e70734..cf77a20 100644
--- a/meta/recipes-support/gnutls/gnutls_3.5.6.bb
+++ b/meta/recipes-support/gnutls/gnutls_3.5.7.bb
@@ -3,7 +3,8 @@ require gnutls.inc
SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \
file://0001-configure.ac-fix-sed-command.patch \
file://use-pkg-config-to-locate-zlib.patch \
+ file://0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch \
"
-SRC_URI[md5sum] = "7a38b23757aae009c3eb5bb12fb0afda"
-SRC_URI[sha256sum] = "6338b715bf31c758606ffa489c7f87ee1beab947114fbd2ffefd73170a8c6b9a"
+SRC_URI[md5sum] = "08ad2c539bc1d91283f610539deef34e"
+SRC_URI[sha256sum] = "60cbfc119e6268cfa38d712621daa473298a0c5b129c0842caec4c1ed4d7861a"
--
2.10.2
^ permalink raw reply related
* [PATCH 08/16] ffmpeg: update to 3.2.2
From: Alexander Kanavin @ 2016-12-15 12:48 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
meta/recipes-multimedia/ffmpeg/{ffmpeg_3.2.1.bb => ffmpeg_3.2.2.bb} | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-multimedia/ffmpeg/{ffmpeg_3.2.1.bb => ffmpeg_3.2.2.bb} (97%)
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.2.bb
similarity index 97%
rename from meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb
rename to meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.2.bb
index 9ff6c67..4fac46b 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.2.bb
@@ -16,8 +16,8 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
file://mips64_cpu_detection.patch \
"
-SRC_URI[md5sum] = "10eaee7cca7d1e745eec6e4217772361"
-SRC_URI[sha256sum] = "1ecf93da5d601e6fb3096c65cbe33fdaf042d690a3c50c4efadb0a9b74f2badf"
+SRC_URI[md5sum] = "e34d1b92c5d844f2a3611c741a6dba18"
+SRC_URI[sha256sum] = "3f01bd1fe1a17a277f8c84869e5d9192b4b978cb660872aa2b54c3cc8a2fedfc"
# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
ARM_INSTRUCTION_SET = "arm"
--
2.10.2
^ permalink raw reply related
* [PATCH 07/16] cmake: update to 3.7.1
From: Alexander Kanavin @ 2016-12-15 12:48 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
.../cmake/{cmake-native_3.7.0.bb => cmake-native_3.7.1.bb} | 0
meta/recipes-devtools/cmake/cmake.inc | 4 ++--
meta/recipes-devtools/cmake/{cmake_3.7.0.bb => cmake_3.7.1.bb} | 0
3 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-devtools/cmake/{cmake-native_3.7.0.bb => cmake-native_3.7.1.bb} (100%)
rename meta/recipes-devtools/cmake/{cmake_3.7.0.bb => cmake_3.7.1.bb} (100%)
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.7.0.bb b/meta/recipes-devtools/cmake/cmake-native_3.7.1.bb
similarity index 100%
rename from meta/recipes-devtools/cmake/cmake-native_3.7.0.bb
rename to meta/recipes-devtools/cmake/cmake-native_3.7.1.bb
diff --git a/meta/recipes-devtools/cmake/cmake.inc b/meta/recipes-devtools/cmake/cmake.inc
index 9ae2890..0253f3e 100644
--- a/meta/recipes-devtools/cmake/cmake.inc
+++ b/meta/recipes-devtools/cmake/cmake.inc
@@ -17,8 +17,8 @@ SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
file://avoid-gcc-warnings-with-Wstrict-prototypes.patch \
"
-SRC_URI[md5sum] = "3801dc4e54c1c957a7378d8b0d4254ba"
-SRC_URI[sha256sum] = "ed63e05c41aeb6c036e503114ab15847f29c312f9f21f5f1a7060a4b4ec2fb31"
+SRC_URI[md5sum] = "d031d5a06e9f1c5367cdfc56fbd2a1c8"
+SRC_URI[sha256sum] = "449a5bce64dbd4d5b9517ebd1a1248ed197add6ad27934478976fd5f1f9330e1"
UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/meta/recipes-devtools/cmake/cmake_3.7.0.bb b/meta/recipes-devtools/cmake/cmake_3.7.1.bb
similarity index 100%
rename from meta/recipes-devtools/cmake/cmake_3.7.0.bb
rename to meta/recipes-devtools/cmake/cmake_3.7.1.bb
--
2.10.2
^ permalink raw reply related
* [PATCH 06/16] ca-certificates: update to 20161130
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
.../{ca-certificates_20161102.bb => ca-certificates_20161130.bb} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename meta/recipes-support/ca-certificates/{ca-certificates_20161102.bb => ca-certificates_20161130.bb} (98%)
diff --git a/meta/recipes-support/ca-certificates/ca-certificates_20161102.bb b/meta/recipes-support/ca-certificates/ca-certificates_20161130.bb
similarity index 98%
rename from meta/recipes-support/ca-certificates/ca-certificates_20161102.bb
rename to meta/recipes-support/ca-certificates/ca-certificates_20161130.bb
index 350b266..e0b2e41 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates_20161102.bb
+++ b/meta/recipes-support/ca-certificates/ca-certificates_20161130.bb
@@ -12,7 +12,7 @@ DEPENDS = "ca-certificates-native"
DEPENDS_class-native = "openssl-native"
DEPENDS_class-nativesdk = "ca-certificates-native openssl-native"
-SRCREV = "c6a4c8182eda2527eecda90ba0aebc73d8c07d62"
+SRCREV = "61b70a1007dc269d56881a0d480fc841daacc77c"
SRC_URI = "git://anonscm.debian.org/collab-maint/ca-certificates.git \
file://0002-update-ca-certificates-use-SYSROOT.patch \
--
2.10.2
^ permalink raw reply related
* [PATCH 05/16] btrfs-tools: update to 4.8.5
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
.../btrfs-tools/{btrfs-tools_4.8.4.bb => btrfs-tools_4.8.5.bb} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename meta/recipes-devtools/btrfs-tools/{btrfs-tools_4.8.4.bb => btrfs-tools_4.8.5.bb} (95%)
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.8.4.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.8.5.bb
similarity index 95%
rename from meta/recipes-devtools/btrfs-tools/btrfs-tools_4.8.4.bb
rename to meta/recipes-devtools/btrfs-tools/btrfs-tools_4.8.5.bb
index a15fcf2..7047c43 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.8.4.bb
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.8.5.bb
@@ -13,7 +13,7 @@ SECTION = "base"
DEPENDS = "util-linux attr e2fsprogs lzo acl udev"
RDEPENDS_${PN} = "libgcc"
-SRCREV = "3ae37eaad1f1ef3f46838da57d8616126fdaffd8"
+SRCREV = "144a19145e248513c7a676defad59836830535c6"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
"
--
2.10.2
^ permalink raw reply related
* [PATCH 04/16] babeltrace: update to 1.5.0
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
.../recipes-kernel/lttng/{babeltrace_1.4.0.bb => babeltrace_1.5.0.bb} | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-kernel/lttng/{babeltrace_1.4.0.bb => babeltrace_1.5.0.bb} (82%)
diff --git a/meta/recipes-kernel/lttng/babeltrace_1.4.0.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.0.bb
similarity index 82%
rename from meta/recipes-kernel/lttng/babeltrace_1.4.0.bb
rename to meta/recipes-kernel/lttng/babeltrace_1.5.0.bb
index 0fadeb0..695b61f 100644
--- a/meta/recipes-kernel/lttng/babeltrace_1.4.0.bb
+++ b/meta/recipes-kernel/lttng/babeltrace_1.5.0.bb
@@ -15,6 +15,6 @@ SRC_URI = "http://www.efficios.com/files/babeltrace/babeltrace-${PV}.tar.bz2 \
EXTRA_OECONF = "--disable-debug-info"
-SRC_URI[md5sum] = "fa99064048af5c9c6ff00e489ac809c2"
-SRC_URI[sha256sum] = "9469eeb22617cd12668683b04c27003e5337e9ac66ade914988df3642fc0d0e4"
+SRC_URI[md5sum] = "43696383e44d1b85173db7cbd0335f06"
+SRC_URI[sha256sum] = "354e75d74562f5228ab89e5fa16a3b4dffa95e7230c5086b74ffcf11fef60353"
--
2.10.2
^ permalink raw reply related
* [PATCH 03/16] liburcu: update to 0.9.3
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Drop 0002-Support-for-aarch64_be.patch, it's merged upstream.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
.../liburcu/0001-Support-for-NIOS2-architecture.patch | 13 +++++++------
.../liburcu/liburcu/0002-Support-for-aarch64_be.patch | 19 -------------------
.../liburcu/{liburcu_0.9.2.bb => liburcu_0.9.3.bb} | 12 +++++-------
3 files changed, 12 insertions(+), 32 deletions(-)
delete mode 100644 meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch
rename meta/recipes-support/liburcu/{liburcu_0.9.2.bb => liburcu_0.9.3.bb} (63%)
diff --git a/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch b/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch
index 690872b..6296238 100644
--- a/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch
+++ b/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch
@@ -1,4 +1,4 @@
-From add566b913e1b5cd4974a2167157dc08d8245ab0 Mon Sep 17 00:00:00 2001
+From f37c5b56376d9bb506da68bb11d0d7463e6e563b Mon Sep 17 00:00:00 2001
From: Marek Vasut <marex@denx.de>
Date: Tue, 9 Feb 2016 01:52:26 +0100
Subject: [PATCH] Support for NIOS2 architecture
@@ -9,6 +9,7 @@ trivial too, since the CPU does not support SMP at all.
Signed-off-by: Marek Vasut <marex@denx.de>
Upstream-Status: Backport [ http://git.lttng.org/?p=userspace-rcu.git;a=commit;h=859050b3088aa3f0cb59d7f51ce24b9a0f18faa5 ]
+
---
LICENSE | 1 +
README.md | 1 +
@@ -44,12 +45,12 @@ index f6b290f..6fe9c1e 100644
- ia64
- Sparcv9 32/64
diff --git a/configure.ac b/configure.ac
-index 39a7777..71a7d71 100644
+index eebed56..8014e1d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -124,6 +124,7 @@ AS_CASE([$host_cpu],
+@@ -136,6 +136,7 @@ AS_CASE([$host_cpu],
[arm*], [ARCHTYPE="arm"],
- [aarch64], [ARCHTYPE="aarch64"],
+ [aarch64*], [ARCHTYPE="aarch64"],
[mips*], [ARCHTYPE="mips"],
+ [nios2*], [ARCHTYPE="nios2"],
[tile*], [ARCHTYPE="tile"],
@@ -57,7 +58,7 @@ index 39a7777..71a7d71 100644
[ARCHTYPE="unknown"]
diff --git a/urcu/arch/nios2.h b/urcu/arch/nios2.h
new file mode 100644
-index 0000000..030d1bc
+index 0000000..b4f3e50
--- /dev/null
+++ b/urcu/arch/nios2.h
@@ -0,0 +1,40 @@
@@ -140,5 +141,5 @@ index 0000000..5b3c303
+
+#endif /* _URCU_UATOMIC_ARCH_NIOS2_H */
--
-2.7.0
+2.10.2
diff --git a/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch b/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch
deleted file mode 100644
index a10ccd7..0000000
--- a/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-liburcu: add support for aarch64_be
-
-Upstream-Status: Pending
-
-Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-
-diff --git a/configure.ac b/configure.ac
-index 8ebfa8b..fe1c55d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -121,7 +121,7 @@ AS_CASE([$host_cpu],
- [alpha*], [ARCHTYPE="alpha"],
- [ia64], [ARCHTYPE="ia64"],
- [arm*], [ARCHTYPE="arm"],
-- [aarch64], [ARCHTYPE="aarch64"],
-+ [aarch64*], [ARCHTYPE="aarch64"],
- [mips*], [ARCHTYPE="mips"],
- [nios2*], [ARCHTYPE="nios2"],
- [tile*], [ARCHTYPE="tile"],
diff --git a/meta/recipes-support/liburcu/liburcu_0.9.2.bb b/meta/recipes-support/liburcu/liburcu_0.9.3.bb
similarity index 63%
rename from meta/recipes-support/liburcu/liburcu_0.9.2.bb
rename to meta/recipes-support/liburcu/liburcu_0.9.3.bb
index 23fb8c4..4486e0a 100644
--- a/meta/recipes-support/liburcu/liburcu_0.9.2.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.9.3.bb
@@ -7,14 +7,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \
file://urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \
file://urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b"
-SRC_URI = " \
- http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2 \
- file://0001-Support-for-NIOS2-architecture.patch \
- file://0002-Support-for-aarch64_be.patch \
- "
+SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2 \
+ file://0001-Support-for-NIOS2-architecture.patch \
+ "
-SRC_URI[md5sum] = "49f86e68c1e2f41d303381a271b791d1"
-SRC_URI[sha256sum] = "8f7fa313b1e0a3f742cea24ce63a39c0efe63e615a769e2961e55bd2663ecaa3"
+SRC_URI[md5sum] = "920970e35a1a2066c8353eabfeab8730"
+SRC_URI[sha256sum] = "1bce32e6a6c967fef6d37adaadf33df19878d69673f9ef9d3f2470e0c6ed4006"
S = "${WORKDIR}/userspace-rcu-${PV}"
CFLAGS_append_libc-uclibc = " -D_GNU_SOURCE"
--
2.10.2
^ permalink raw reply related
* [PATCH 02/16] libfm: update to 1.2.5
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
.../libfm/{libfm-extra_1.2.4.bb => libfm-extra_1.2.5.bb} | 4 ++--
meta/recipes-support/libfm/{libfm_1.2.4.bb => libfm_1.2.5.bb} | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
rename meta/recipes-support/libfm/{libfm-extra_1.2.4.bb => libfm-extra_1.2.5.bb} (80%)
rename meta/recipes-support/libfm/{libfm_1.2.4.bb => libfm_1.2.5.bb} (90%)
diff --git a/meta/recipes-support/libfm/libfm-extra_1.2.4.bb b/meta/recipes-support/libfm/libfm-extra_1.2.5.bb
similarity index 80%
rename from meta/recipes-support/libfm/libfm-extra_1.2.4.bb
rename to meta/recipes-support/libfm/libfm-extra_1.2.5.bb
index f204968..0134572 100644
--- a/meta/recipes-support/libfm/libfm-extra_1.2.4.bb
+++ b/meta/recipes-support/libfm/libfm-extra_1.2.5.bb
@@ -11,8 +11,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \
file://0001-nls.m4-Take-it-from-gettext-0.15.patch \
"
-SRC_URI[md5sum] = "74997d75e7e87dc73398746fd373bf52"
-SRC_URI[sha256sum] = "7804f6f28cb3d1bc8ffb3151ab7ff0c063b27c5f9b06c682eb903e01cf25502f"
+SRC_URI[md5sum] = "a1ba9ae5e920f38b647dd511edd6c807"
+SRC_URI[sha256sum] = "c706bb1020cf5f2d6f5a9226f692ce1985947134dcf2bde64278bd0420779b5a"
S = "${WORKDIR}/libfm-${PV}"
diff --git a/meta/recipes-support/libfm/libfm_1.2.4.bb b/meta/recipes-support/libfm/libfm_1.2.5.bb
similarity index 90%
rename from meta/recipes-support/libfm/libfm_1.2.4.bb
rename to meta/recipes-support/libfm/libfm_1.2.5.bb
index 2218f9c..638c364 100644
--- a/meta/recipes-support/libfm/libfm_1.2.4.bb
+++ b/meta/recipes-support/libfm/libfm_1.2.5.bb
@@ -13,8 +13,8 @@ DEPENDS = "glib-2.0 pango gtk+3 menu-cache intltool-native libexif libfm-extra g
SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz"
-SRC_URI[md5sum] = "74997d75e7e87dc73398746fd373bf52"
-SRC_URI[sha256sum] = "7804f6f28cb3d1bc8ffb3151ab7ff0c063b27c5f9b06c682eb903e01cf25502f"
+SRC_URI[md5sum] = "a1ba9ae5e920f38b647dd511edd6c807"
+SRC_URI[sha256sum] = "c706bb1020cf5f2d6f5a9226f692ce1985947134dcf2bde64278bd0420779b5a"
inherit autotools pkgconfig gtk-doc distro_features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
--
2.10.2
^ permalink raw reply related
* [PATCH 01/16] pigz: fix upstream version check
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481805889.git.alexander.kanavin@linux.intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
meta/recipes-extended/pigz/pigz_2.3.4.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-extended/pigz/pigz_2.3.4.bb b/meta/recipes-extended/pigz/pigz_2.3.4.bb
index 49d9d78..87b61bf 100644
--- a/meta/recipes-extended/pigz/pigz_2.3.4.bb
+++ b/meta/recipes-extended/pigz/pigz_2.3.4.bb
@@ -2,6 +2,7 @@ require pigz.inc
LIC_FILES_CHKSUM = "file://pigz.c;beginline=7;endline=21;md5=a21d4075cb00ab4ca17fce5e7534ca95"
UPSTREAM_CHECK_URI = "http://zlib.net/${BPN}/"
+UPSTREAM_CHECK_REGEX = "pigz-(?P<pver>.*)\.tar"
SRC_URI = "https://github.com/madler/pigz/archive/v${PV}.tar.gz"
SRC_URI[md5sum] = "c109057050b15edf3eb9bb4d0805235e"
SRC_URI[sha256sum] = "763f2fdb203aa0b7b640e63385e38e5dd4e5aaa041bc8e42aa96f2ef156b06e8"
--
2.10.2
^ permalink raw reply related
* [PATCH 00/16] Recipe version updates
From: Alexander Kanavin @ 2016-12-15 12:47 UTC (permalink / raw)
To: openembedded-core
Mostly minor version updates; for the first time these were done
in a quick and efficient fashion by using devtool.
For that experience I'd like to give major props to Paul Eggleton.
The following changes since commit a92d27acd8f42b61a2fc575311838b45d171f0af:
oeqa/utils/commands.py: Fix get_bb_vars() when called without arguments (2016-12-14 16:15:04 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib akanavin/package-version-updates
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/package-version-updates
Alexander Kanavin (16):
pigz: fix upstream version check
libfm: update to 1.2.5
liburcu: update to 0.9.3
babeltrace: update to 1.5.0
btrfs-tools: update to 4.8.5
ca-certificates: update to 20161130
cmake: update to 3.7.1
ffmpeg: update to 3.2.2
gnutls: update to 3.5.7
icu: update to 58.2
iso-codes: update to 3.72
sysprof: update to 3.22.3
vala: update to 0.34.4
ghostscript: fix upstream version check
upstream-version-is-even.bbclass: exclude various alphas, betas,
pre-releases etc.
xf86-video-intel: fix upstream version check
meta/classes/upstream-version-is-even.bbclass | 2 +-
.../{btrfs-tools_4.8.4.bb => btrfs-tools_4.8.5.bb} | 2 +-
...cmake-native_3.7.0.bb => cmake-native_3.7.1.bb} | 0
meta/recipes-devtools/cmake/cmake.inc | 4 ++--
.../cmake/{cmake_3.7.0.bb => cmake_3.7.1.bb} | 0
.../vala/{vala_0.34.3.bb => vala_0.34.4.bb} | 4 ++--
.../ghostscript/ghostscript_9.19.bb | 1 +
meta/recipes-extended/pigz/pigz_2.3.4.bb | 1 +
.../xorg-driver/xf86-video-intel_git.bb | 1 +
.../{babeltrace_1.4.0.bb => babeltrace_1.5.0.bb} | 4 ++--
.../{sysprof_3.22.2.bb => sysprof_3.22.3.bb} | 4 ++--
.../ffmpeg/{ffmpeg_3.2.1.bb => ffmpeg_3.2.2.bb} | 4 ++--
...tes_20161102.bb => ca-certificates_20161130.bb} | 2 +-
meta/recipes-support/gnutls/gnutls.inc | 2 +-
...cli-args.h-to-cli-args.stamp-Makefile-tar.patch | 27 ++++++++++++++++++++++
.../correct_rpl_gettimeofday_signature.patch | 11 +++++----
.../gnutls/{gnutls_3.5.6.bb => gnutls_3.5.7.bb} | 5 ++--
.../icu/{icu_58.1.bb => icu_58.2.bb} | 4 ++--
.../{iso-codes_3.71.bb => iso-codes_3.72.bb} | 4 ++--
.../{libfm-extra_1.2.4.bb => libfm-extra_1.2.5.bb} | 4 ++--
.../libfm/{libfm_1.2.4.bb => libfm_1.2.5.bb} | 4 ++--
.../0001-Support-for-NIOS2-architecture.patch | 13 ++++++-----
.../liburcu/0002-Support-for-aarch64_be.patch | 19 ---------------
.../liburcu/{liburcu_0.9.2.bb => liburcu_0.9.3.bb} | 12 ++++------
24 files changed, 73 insertions(+), 61 deletions(-)
rename meta/recipes-devtools/btrfs-tools/{btrfs-tools_4.8.4.bb => btrfs-tools_4.8.5.bb} (95%)
rename meta/recipes-devtools/cmake/{cmake-native_3.7.0.bb => cmake-native_3.7.1.bb} (100%)
rename meta/recipes-devtools/cmake/{cmake_3.7.0.bb => cmake_3.7.1.bb} (100%)
rename meta/recipes-devtools/vala/{vala_0.34.3.bb => vala_0.34.4.bb} (56%)
rename meta/recipes-kernel/lttng/{babeltrace_1.4.0.bb => babeltrace_1.5.0.bb} (82%)
rename meta/recipes-kernel/sysprof/{sysprof_3.22.2.bb => sysprof_3.22.3.bb} (87%)
rename meta/recipes-multimedia/ffmpeg/{ffmpeg_3.2.1.bb => ffmpeg_3.2.2.bb} (97%)
rename meta/recipes-support/ca-certificates/{ca-certificates_20161102.bb => ca-certificates_20161130.bb} (98%)
create mode 100644 meta/recipes-support/gnutls/gnutls/0001-Do-not-add-cli-args.h-to-cli-args.stamp-Makefile-tar.patch
rename meta/recipes-support/gnutls/{gnutls_3.5.6.bb => gnutls_3.5.7.bb} (48%)
rename meta/recipes-support/icu/{icu_58.1.bb => icu_58.2.bb} (85%)
rename meta/recipes-support/iso-codes/{iso-codes_3.71.bb => iso-codes_3.72.bb} (76%)
rename meta/recipes-support/libfm/{libfm-extra_1.2.4.bb => libfm-extra_1.2.5.bb} (80%)
rename meta/recipes-support/libfm/{libfm_1.2.4.bb => libfm_1.2.5.bb} (90%)
delete mode 100644 meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch
rename meta/recipes-support/liburcu/{liburcu_0.9.2.bb => liburcu_0.9.3.bb} (63%)
--
2.10.2
^ permalink raw reply
* Re: [PATCH] lttng-ust: Patch python shebang appropriately for native builds
From: Phil Blundell @ 2016-12-15 12:11 UTC (permalink / raw)
To: Khem Raj; +Cc: Patches and discussions about the oe-core layer
In-Reply-To: <CAMKF1sq--mXBzTh+xc+gZb9L9wNugK8izZ-MMrYJyKKKdR9aOg@mail.gmail.com>
On Wed, 2016-12-14 at 15:38 -0800, Khem Raj wrote:
> On Wed, Dec 14, 2016 at 1:38 PM, Phil Blundell <pb@pbcl.net> wrote:
> > If we are building a native package then ${bindir}/python3 is not
> > guaranteed
> > to be available, and if it is available then it is probably a
> > directory not a
> > file. In either case, attempting to use it as an interpreter will
> > not end
> > well. Let's use ${bindir}/nativepython instead.
> >
> > Signed-off-by: Phil Blundell <philb@gnu.org>
> > ---
> > meta/recipes-kernel/lttng/lttng-ust_git.bb | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-kernel/lttng/lttng-ust_git.bb
> > b/meta/recipes-kernel/lttng/lttng-ust_git.bb
> > index 5869093..df22352 100644
> > --- a/meta/recipes-kernel/lttng/lttng-ust_git.bb
> > +++ b/meta/recipes-kernel/lttng/lttng-ust_git.bb
> > @@ -29,10 +29,12 @@ SRC_URI = "git://git.lttng.org/lttng-
> > ust.git;branch=stable-2.7 \
> >
> > PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-
> > pages, asciidoc-native xmlto-native libxslt-native"
> >
> > +usepython="${bindir}/python3"
> > +usepython_class-native="${bindir}/nativepython"
> > do_install_append() {
> > # Patch python tools to use Python 3; they should be
> > source compatible, but
> > # still refer to Python 2 in the shebang
> > - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,'
> > ${D}${bindir}/lttng-gen-tp
> > + sed -i -e '1s,#!.*python.*,#!${usepython},'
> > ${D}${bindir}/lttng-gen-tp
>
> This also means we need to add a dependency on python-native may be
> it
> should inherit the python native class.
I suppose it probably should. That'd be a bit suboptimal in the sense
that the non-native version does not need to depend on python-native,
but given that python-native is probably installed in the sysroot
anyway I don't suppose it is likely to hurt very much. And I don't
think it is worth the complexity of trying to do a conditional inherit
of pythonnative.
p.
^ permalink raw reply
* Re: [poky][PATCH 1/6] gstreamer1.0-plugins-bad: Enable gldeinterlace on OpenGL ES
From: Nicolas Dechesne @ 2016-12-15 11:37 UTC (permalink / raw)
To: Yuqing Zhu; +Cc: Patches and discussions about the oe-core layer
In-Reply-To: <1467611193-31658-2-git-send-email-carol.zhu@nxp.com>
On Mon, Jul 4, 2016 at 7:46 AM, Yuqing Zhu <carol.zhu@nxp.com> wrote:
> ++
> ++#if GST_GL_HAVE_OPENGL
> ++ if (USING_OPENGL (context)) {
> ++ gl->MatrixMode (GL_PROJECTION);
> ++ gl->LoadIdentity ();
> ++ }
> ++#endif
> +
yes, I know , a bit late in the game.. but this patch breaks when -bad
is built with 'opengl' support in PACKAGECONFIG. In the original
upstream commit at [1] the .h file defines the USING_OPENGL macro, but
that piece of code was not backported properly in OE and it leaves
USING_OPENGL as an undefined symbol..
This is now a morty issue.. i will try to cook up a patch for it later today.
[1] https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=0cfb0890ce9a20f096a0a9c9f23b656f436794c6
^ permalink raw reply
* [PATCH] [PATCH 1/2 V2] gdb 7.11.1 -> 7.12
From: Zheng Ruoqin @ 2016-12-15 10:46 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <1481798810-36217-1-git-send-email-zhengrq.fnst@cn.fujitsu.com>
1) Upgrade gdb from 7.11.1 to 7.12
2) Delete 11 patches below, since they are integrated upstream.
0001-include-sys-types.h-for-mode_t.patch
0002-make-man-install-relative-to-DESTDIR.patch
0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
0005-Add-support-for-Renesas-SH-sh4-architecture.patch
0006-Dont-disable-libreadline.a-when-using-disable-static.patch
0007-use-asm-sgidefs.h.patch
0008-Use-exorted-definitions-of-SIGRTMIN.patch
0009-Change-order-of-CFLAGS.patch
0010-resolve-restrict-keyword-conflict.patch
0011-avx_mpx.patch
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
meta/recipes-devtools/gdb/gdb-7.11.1.inc | 22 -
meta/recipes-devtools/gdb/gdb-7.12.inc | 11 +
...nadian_7.11.1.bb => gdb-cross-canadian_7.12.bb} | 0
.../gdb/{gdb-cross_7.11.1.bb => gdb-cross_7.12.bb} | 0
.../gdb/0001-include-sys-types.h-for-mode_t.patch | 30 -
...0002-make-man-install-relative-to-DESTDIR.patch | 28 -
...s-linux-nat-Define-_ABIO32-if-not-defined.patch | 37 -
...Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 53 -
...d-support-for-Renesas-SH-sh4-architecture.patch | 921 -------
...e-libreadline.a-when-using-disable-static.patch | 50 -
.../gdb/gdb/0007-use-asm-sgidefs.h.patch | 36 -
.../0008-Use-exorted-definitions-of-SIGRTMIN.patch | 50 -
.../gdb/gdb/0009-Change-order-of-CFLAGS.patch | 34 -
.../0010-resolve-restrict-keyword-conflict.patch | 48 -
meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch | 2601 --------------------
.../gdb/{gdb_7.11.1.bb => gdb_7.12.bb} | 0
16 files changed, 11 insertions(+), 3910 deletions(-)
delete mode 100644 meta/recipes-devtools/gdb/gdb-7.11.1.inc
create mode 100644 meta/recipes-devtools/gdb/gdb-7.12.inc
rename meta/recipes-devtools/gdb/{gdb-cross-canadian_7.11.1.bb => gdb-cross-canadian_7.12.bb} (100%)
rename meta/recipes-devtools/gdb/{gdb-cross_7.11.1.bb => gdb-cross_7.12.bb} (100%)
delete mode 100644 meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
rename meta/recipes-devtools/gdb/{gdb_7.11.1.bb => gdb_7.12.bb} (100%)
diff --git a/meta/recipes-devtools/gdb/gdb-7.11.1.inc b/meta/recipes-devtools/gdb/gdb-7.11.1.inc
deleted file mode 100644
index d9dfe6f..0000000
--- a/meta/recipes-devtools/gdb/gdb-7.11.1.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
-
-SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
- file://0001-include-sys-types.h-for-mode_t.patch \
- file://0002-make-man-install-relative-to-DESTDIR.patch \
- file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
- file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
- file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \
- file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \
- file://0007-use-asm-sgidefs.h.patch \
- file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \
- file://0009-Change-order-of-CFLAGS.patch \
- file://0010-resolve-restrict-keyword-conflict.patch \
- file://0011-avx_mpx.patch \
-"
-
-SRC_URI[md5sum] = "5aa71522e488e358243917967db87476"
-SRC_URI[sha256sum] = "e9216da4e3755e9f414c1aa0026b626251dfc57ffe572a266e98da4f6988fc70"
diff --git a/meta/recipes-devtools/gdb/gdb-7.12.inc b/meta/recipes-devtools/gdb/gdb-7.12.inc
new file mode 100644
index 0000000..68acef6
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb-7.12.inc
@@ -0,0 +1,11 @@
+LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
+
+SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "a0a3a00f7499b0c5278ba8676745d180"
+SRC_URI[sha256sum] = "834ff3c5948b30718343ea57b11cbc3235d7995c6a4f3a5cecec8c8114164f94"
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.1.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_7.12.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross-canadian_7.12.bb
diff --git a/meta/recipes-devtools/gdb/gdb-cross_7.11.1.bb b/meta/recipes-devtools/gdb/gdb-cross_7.12.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross_7.11.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross_7.12.bb
diff --git a/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch b/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
deleted file mode 100644
index 0042c00..0000000
--- a/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From fddd7178915968acf680814411b8b3cb137d0587 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Jan 2016 18:18:52 -0800
-Subject: [PATCH 01/10] include sys/types.h for mode_t
-
-mode_t is used in target.h, so we need to include sys/types.h to get the
-defintion
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- gdb/gdbserver/target.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
-index 5af2051..f42c510 100644
---- a/gdb/gdbserver/target.h
-+++ b/gdb/gdbserver/target.h
-@@ -28,6 +28,7 @@
- #include "target/waitstatus.h"
- #include "mem-break.h"
- #include "btrace-common.h"
-+#include <sys/types.h>
-
- struct emit_ops;
- struct buffer;
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch b/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
deleted file mode 100644
index defed62..0000000
--- a/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3229cb09033eeb5003a08d91fa9d43be8ba4c86b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:27:55 +0000
-Subject: [PATCH 02/10] make man install relative to DESTDIR
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sim/common/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in
-index a05f507..8d0fa64 100644
---- a/sim/common/Makefile.in
-+++ b/sim/common/Makefile.in
-@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
- datarootdir = @datarootdir@
- datadir = @datadir@
- mandir = @mandir@
--man1dir = $(mandir)/man1
-+man1dir = $(DESTDIR)$(mandir)/man1
- infodir = @infodir@
- includedir = @includedir@
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
deleted file mode 100644
index bac7939..0000000
--- a/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 88e67caed662d8344c8db56176c9f1221e6cd2a2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 23 Mar 2016 06:30:09 +0000
-Subject: [PATCH 03/10] mips-linux-nat: Define _ABIO32 if not defined
-
-This helps building gdb on mips64 on musl, since
-musl does not provide sgidefs.h this define is
-only defined when GCC is using o32 ABI, in that
-case gcc emits it as built-in define and hence
-it works ok for mips32
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- gdb/mips-linux-nat.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index bfe9fcb..449b43a 100644
---- a/gdb/mips-linux-nat.c
-+++ b/gdb/mips-linux-nat.c
-@@ -46,6 +46,11 @@
- #define PTRACE_GET_THREAD_AREA 25
- #endif
-
-+/* musl does not define and relies on compiler built-in macros for it */
-+#ifndef _ABIO32
-+#define _ABIO32 1
-+#endif
-+
- /* Assume that we have PTRACE_GETREGS et al. support. If we do not,
- we'll clear this and use PTRACE_PEEKUSER instead. */
- static int have_ptrace_regsets = 1;
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
deleted file mode 100644
index a5fe2a2..0000000
--- a/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From bec564eb454bc7fc6ecfcb573aa53040bf39c1d5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 16:46:03 +0000
-Subject: [PATCH 04/10] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC
- systems
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gdbserver/linux-ppc-low.c | 6 ++++++
- gdb/nat/ppc-linux.h | 6 ++++++
- 2 files changed, 12 insertions(+)
-
-diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
-index 2145c50..777905d 100644
---- a/gdb/gdbserver/linux-ppc-low.c
-+++ b/gdb/gdbserver/linux-ppc-low.c
-@@ -21,7 +21,13 @@
- #include "linux-low.h"
-
- #include <elf.h>
-+#if !defined(__GLIBC__)
-+# define pt_regs uapi_pt_regs
-+#endif
- #include <asm/ptrace.h>
-+#if !defined(__GLIBC__)
-+# undef pt_regs
-+#endif
-
- #include "nat/ppc-linux.h"
-
-diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
-index 85fbcd8..cbec9c5 100644
---- a/gdb/nat/ppc-linux.h
-+++ b/gdb/nat/ppc-linux.h
-@@ -18,7 +18,13 @@
- #ifndef PPC_LINUX_H
- #define PPC_LINUX_H 1
-
-+#if !defined(__GLIBC__)
-+# define pt_regs uapi_pt_regs
-+#endif
- #include <asm/ptrace.h>
-+#if !defined(__GLIBC__)
-+# undef pt_regs
-+#endif
- #include <asm/cputable.h>
-
- /* This sometimes isn't defined. */
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch b/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
deleted file mode 100644
index 8809e6f..0000000
--- a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
+++ /dev/null
@@ -1,921 +0,0 @@
-From 8c5fe58c5a0044ddb517a41b277ed27fb3d3bedc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:31:12 +0000
-Subject: [PATCH 05/10] Add support for Renesas SH (sh4) architecture.
-
-gdb (7.4-1~cvs20111117.2) experimental; urgency=low
- .
- * Add Renesas SH (sh4) support (Closes: #576242)
- - Thanks Nobuhiro Iwamatsu, Takashi Yoshii.
-Author: Hector Oron <zumbi@debian.org>
-Bug-Debian: http://bugs.debian.org/576242
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/Makefile.in | 1 +
- gdb/configure.host | 1 +
- gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++++++++++
- gdb/sh-tdep.c | 54 ++--
- gdb/sh-tdep.h | 49 ++++
- gdb/testsuite/gdb.asm/asm-source.exp | 5 +
- gdb/testsuite/gdb.asm/sh.inc | 3 +-
- gdb/testsuite/gdb.base/annota1.c | 3 +
- gdb/testsuite/gdb.base/annota3.c | 4 +
- gdb/testsuite/gdb.base/sigall.c | 3 +
- gdb/testsuite/gdb.base/signals.c | 4 +
- 11 files changed, 617 insertions(+), 29 deletions(-)
-
-diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index ec2af52..df8e84d 100644
---- a/gdb/Makefile.in
-+++ b/gdb/Makefile.in
-@@ -1736,6 +1736,7 @@ ALLDEPFILES = \
- score-tdep.c \
- ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \
- sh-tdep.c sh64-tdep.c shnbsd-tdep.c shnbsd-nat.c \
-+ sh-linux-tdep.c sh-linux-nat.c \
- sol2-tdep.c \
- solib-svr4.c \
- sparc-linux-nat.c sparc-linux-tdep.c \
-diff --git a/gdb/configure.host b/gdb/configure.host
-index ef265eb..322a1e2 100644
---- a/gdb/configure.host
-+++ b/gdb/configure.host
-@@ -149,6 +149,7 @@ powerpc*-*-linux*) gdb_host=linux ;;
-
- s390*-*-linux*) gdb_host=linux ;;
-
-+sh*-*-linux*) gdb_host=linux ;;
- sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
- gdb_host=nbsd ;;
- sh*-*-openbsd*) gdb_host=nbsd ;;
-diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
-index 2418d25..ac8ea9e 100644
---- a/gdb/sh-linux-tdep.c
-+++ b/gdb/sh-linux-tdep.c
-@@ -18,14 +18,37 @@
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
- #include "defs.h"
-+#include "gdbcore.h"
-+#include "frame.h"
-+#include "frame-base.h"
-+#include "frame-unwind.h"
-+#include "dwarf2-frame.h"
-+#include "value.h"
-+#include "regcache.h"
-+#include "inferior.h"
- #include "osabi.h"
-
-+#include "reggroups.h"
-+#include "arch-utils.h"
-+#include "floatformat.h"
- #include "solib-svr4.h"
- #include "symtab.h"
-+#include "gdb_string.h"
-+#include "command.h"
-+#include "gdb_assert.h"
-
- #include "trad-frame.h"
- #include "tramp-frame.h"
-
-+#include <sys/ptrace.h>
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/user.h>
-+#include <sys/syscall.h>
-+
-+#include <asm/ptrace.h>
-+
-+#include "regset.h"
- #include "glibc-tdep.h"
- #include "sh-tdep.h"
- #include "linux-tdep.h"
-@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
- sh_linux_rt_sigreturn_init
- };
-
-+/* Recognizing signal handler frames. */
-+
-+/* GNU/Linux has two flavors of signals. Normal signal handlers, and
-+ "realtime" (RT) signals. The RT signals can provide additional
-+ information to the signal handler if the SA_SIGINFO flag is set
-+ when establishing a signal handler using `sigaction'. It is not
-+ unlikely that future versions of GNU/Linux will support SA_SIGINFO
-+ for normal signals too. */
-+
-+/* When the SH Linux kernel calls a signal handler and the
-+ SA_RESTORER flag isn't set, the return address points to a bit of
-+ code on the stack. This function returns whether the PC appears to
-+ be within this bit of code.
-+
-+ The instruction sequence for normal signals is
-+ mov.w 1f,r3
-+ trapa #16
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ 1: .word __NR_sigreturn
-+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077.
-+
-+ Checking for the code sequence should be somewhat reliable, because
-+ the effect is to call the system call sigreturn. This is unlikely
-+ to occur anywhere other than a signal trampoline.
-+
-+ It kind of sucks that we have to read memory from the process in
-+ order to identify a signal trampoline, but there doesn't seem to be
-+ any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to
-+ only call us if no function name could be identified, which should
-+ be the case since the code is on the stack.
-+
-+ Detection of signal trampolines for handlers that set the
-+ SA_RESTORER flag is in general not possible. Unfortunately this is
-+ what the GNU C Library has been doing for quite some time now.
-+ However, as of version 2.1.2, the GNU C Library uses signal
-+ trampolines (named __restore and __restore_rt) that are identical
-+ to the ones used by the kernel. Therefore, these trampolines are
-+ supported too. */
-+
-+#define MOVW(n) (0x9300|((n)-2)) /* Move mem word at PC+n to R3 */
-+#define TRAP16 0xc310 /* Syscall w/no args (NR in R3) */
-+#define OR_R0_R0 0x200b /* or r0,r0 (insert to avoid hardware bug) */
-+
-+#define LINUX_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
-+#define LINUX_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
-+#define LINUX_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_sigtramp_code[] =
-+{
-+ LINUX_SIGTRAMP_INSN0,
-+ LINUX_SIGTRAMP_INSN1,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ __NR_sigreturn
-+};
-+
-+#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)
-+
-+/* If PC is in a sigtramp routine, return the address of the start of
-+ the routine. Otherwise, return 0. */
-+
-+static CORE_ADDR
-+sh_linux_sigtramp_start (struct frame_info *next_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (next_frame);
-+ gdb_byte buf[LINUX_SIGTRAMP_LEN];
-+
-+ /* We only recognize a signal trampoline if PC is at the start of
-+ one of the three instructions. We optimize for finding the PC at
-+ the start, as will be the case when the trampoline is not the
-+ first frame on the stack. We assume that in the case where the
-+ PC is not at the start of the instruction sequence, there will be
-+ a few trailing readable bytes on the stack. */
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+ return 0;
-+
-+ if (buf[0] != LINUX_SIGTRAMP_INSN0)
-+ {
-+ if (buf[0] != LINUX_SIGTRAMP_INSN1)
-+ return 0;
-+
-+ pc -= 2;
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+ return 0;
-+ }
-+
-+ if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0)
-+ return 0;
-+
-+ return pc;
-+}
-+
-+/* This function does the same for RT signals. Here the instruction
-+ sequence is
-+ mov.w 1f,r3
-+ trapa #16
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ 1: .word __NR_rt_sigreturn
-+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad.
-+
-+ The effect is to call the system call rt_sigreturn. */
-+
-+#define LINUX_RT_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
-+#define LINUX_RT_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
-+#define LINUX_RT_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_rt_sigtramp_code[] =
-+{
-+ LINUX_RT_SIGTRAMP_INSN0,
-+ LINUX_RT_SIGTRAMP_INSN1,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ __NR_rt_sigreturn
-+};
-+
-+#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)
-+
-+/* If PC is in a RT sigtramp routine, return the address of the start
-+ of the routine. Otherwise, return 0. */
-+
-+static CORE_ADDR
-+sh_linux_rt_sigtramp_start (struct frame_info *next_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (next_frame);
-+ gdb_byte buf[LINUX_RT_SIGTRAMP_LEN];
-+
-+ /* We only recognize a signal trampoline if PC is at the start of
-+ one of the two instructions. We optimize for finding the PC at
-+ the start, as will be the case when the trampoline is not the
-+ first frame on the stack. We assume that in the case where the
-+ PC is not at the start of the instruction sequence, there will be
-+ a few trailing readable bytes on the stack. */
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN))
-+ return 0;
-+
-+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN0)
-+ {
-+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN1)
-+ return 0;
-+
-+ pc -= 2;
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf,
-+ LINUX_RT_SIGTRAMP_LEN))
-+ return 0;
-+ }
-+
-+ if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0)
-+ return 0;
-+
-+ return pc;
-+}
-+
-+/* Return whether PC is in a GNU/Linux sigtramp routine. */
-+
-+static int
-+sh_linux_sigtramp_p (struct frame_info *this_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (this_frame);
-+ char *name;
-+
-+ find_pc_partial_function (pc, &name, NULL, NULL);
-+
-+ /* If we have NAME, we can optimize the search. The trampolines are
-+ named __restore and __restore_rt. However, they aren't dynamically
-+ exported from the shared C library, so the trampoline may appear to
-+ be part of the preceding function. This should always be sigaction,
-+ __sigaction, or __libc_sigaction (all aliases to the same function). */
-+ if (name == NULL || strstr (name, "sigaction") != NULL)
-+ return (sh_linux_sigtramp_start (this_frame) != 0
-+ || sh_linux_rt_sigtramp_start (this_frame) != 0);
-+
-+ return (strcmp ("__restore", name) == 0
-+ || strcmp ("__restore_rt", name) == 0);
-+}
-+
-+/* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>. */
-+#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12
-+
-+
-+/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp
-+ routine, return the address of the associated sigcontext structure. */
-+
-+static CORE_ADDR
-+sh_linux_sigcontext_addr (struct frame_info *this_frame)
-+{
-+ CORE_ADDR pc;
-+ CORE_ADDR sp;
-+
-+ sp = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+
-+ pc = sh_linux_sigtramp_start (this_frame);
-+ if (pc)
-+ {
-+ return sp;
-+ }
-+
-+ pc = sh_linux_rt_sigtramp_start (this_frame);
-+ if (pc)
-+ {
-+ CORE_ADDR ucontext_addr;
-+
-+ /* The sigcontext structure is part of the user context. A
-+ pointer to the user context is passed as the third argument
-+ to the signal handler. */
-+ ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2);
-+ return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
-+ }
-+
-+ error ("Couldn't recognize signal trampoline.");
-+ return 0;
-+}
-+
-+/* Signal trampolines. */
-+extern struct sh_frame_cache *sh_alloc_frame_cache (void);
-+
-+static struct sh_frame_cache *
-+sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache)
-+{
-+ struct sh_frame_cache *cache;
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ());
-+ CORE_ADDR sigcontext_addr;
-+
-+ if (*this_cache)
-+ return *this_cache;
-+
-+ cache = sh_alloc_frame_cache ();
-+
-+ cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+ sigcontext_addr = tdep->sigcontext_addr (this_frame);
-+ if (tdep->sc_reg_offset)
-+ {
-+ int i;
-+
-+ gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS);
-+
-+ for (i = 0; i < tdep->sc_num_regs; i++)
-+ if (tdep->sc_reg_offset[i] != -1)
-+ cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i];
-+ }
-+
-+ *this_cache = cache;
-+ return cache;
-+}
-+
-+static void
-+sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache,
-+ struct frame_id *this_id)
-+{
-+ struct sh_frame_cache *cache =
-+ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+ (*this_id) = frame_id_build (cache->base + 64, cache->pc);
-+}
-+
-+extern struct value * sh_frame_prev_register ();
-+static struct value *
-+sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame,
-+ void **this_cache, int regnum)
-+{
-+ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+ return sh_frame_prev_register (this_frame, this_cache, regnum);
-+}
-+
-+static int
-+sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
-+ struct frame_info *this_frame,
-+ void **this_prologue_cache)
-+{
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
-+
-+ /* We shouldn't even bother if we don't have a sigcontext_addr
-+ handler. */
-+ if (tdep->sigcontext_addr == NULL)
-+ return 0;
-+
-+ if (tdep->sigtramp_p != NULL)
-+ {
-+ if (tdep->sigtramp_p (this_frame))
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct frame_unwind sh_linux_sigtramp_frame_unwind =
-+{
-+ SIGTRAMP_FRAME,
-+ sh_linux_sigtramp_frame_this_id,
-+ sh_linux_sigtramp_frame_prev_register,
-+ NULL,
-+ sh_linux_sigtramp_frame_sniffer
-+};
-+
-+/* Supply register REGNUM from the buffer specified by GREGS and LEN
-+ in the general-purpose register set REGSET to register cache
-+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
-+
-+void
-+sh_supply_gregset (const struct regset *regset, struct regcache *regcache,
-+ int regnum, const void *gregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ const char *regs = gregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_gregset);
-+
-+ for (i = 0; i < tdep->gregset_num_regs; i++)
-+ {
-+ if ((regnum == i || regnum == -1)
-+ && tdep->gregset_reg_offset[i] != -1)
-+ regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+ }
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+ it in the buffer specified by GREGS and LEN as described by the
-+ general-purpose register set REGSET. If REGNUM is -1, do this for
-+ all registers in REGSET. */
-+
-+void
-+sh_collect_gregset (const struct regset *regset,
-+ const struct regcache *regcache,
-+ int regnum, void *gregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ char *regs = gregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_gregset);
-+
-+ for (i = 0; i < tdep->gregset_num_regs; i++)
-+ {
-+ if ((regnum == i || regnum == -1)
-+ && tdep->gregset_reg_offset[i] != -1)
-+ regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+ }
-+}
-+
-+/* Supply register REGNUM from the buffer specified by FPREGS and LEN
-+ in the floating-point register set REGSET to register cache
-+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
-+
-+static void
-+sh_supply_fpregset (const struct regset *regset, struct regcache *regcache,
-+ int regnum, const void *fpregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ const char *regs = fpregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_fpregset);
-+ for (i = 0; i < 16; i++)
-+ {
-+ if (regnum == i+25 || regnum == -1)
-+ regcache_raw_supply (regcache, i+25, regs + i*4);
-+ }
-+ if (regnum == FPSCR_REGNUM || regnum == -1)
-+ regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4);
-+ if (regnum == FPUL_REGNUM || regnum == -1)
-+ regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+ it in the buffer specified by FPREGS and LEN as described by the
-+ floating-point register set REGSET. If REGNUM is -1, do this for
-+ all registers in REGSET. */
-+
-+static void
-+sh_collect_fpregset (const struct regset *regset,
-+ const struct regcache *regcache,
-+ int regnum, void *fpregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ char *regs = fpregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_fpregset);
-+ for (i = 0; i < 16; i++)
-+ {
-+ if (regnum == i+25 || regnum == -1)
-+ regcache_raw_collect (regcache, i+25, regs + i*4);
-+ }
-+ if (regnum == FPSCR_REGNUM || regnum == -1)
-+ regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4);
-+ if (regnum == FPUL_REGNUM || regnum == -1)
-+ regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Return the appropriate register set for the core section identified
-+ by SECT_NAME and SECT_SIZE. */
-+
-+const struct regset *
-+sh_linux_regset_from_core_section (struct gdbarch *gdbarch,
-+ const char *sect_name, size_t sect_size)
-+{
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+
-+ if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset)
-+ {
-+ if (tdep->gregset == NULL)
-+ tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset,
-+ sh_collect_gregset);
-+ return tdep->gregset;
-+ }
-+
-+ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset))
-+ {
-+ if (tdep->fpregset == NULL)
-+ tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset,
-+ sh_collect_fpregset);
-+ return tdep->fpregset;
-+ }
-+
-+ return NULL;
-+}
-+
-+/* The register sets used in GNU/Linux ELF core-dumps are identical to
-+ the register sets in `struct user' that are used for a.out
-+ core-dumps. These are also used by ptrace(2). The corresponding
-+ types are `elf_gregset_t' for the general-purpose registers (with
-+ `elf_greg_t' the type of a single GP register) and `elf_fpregset_t'
-+ for the floating-point registers.
-+
-+ Those types used to be available under the names `gregset_t' and
-+ `fpregset_t' too, and GDB used those names in the past. But those
-+ names are now used for the register sets used in the `mcontext_t'
-+ type, which have a different size and layout. */
-+
-+/* Mapping between the general-purpose registers in `struct user'
-+ format and GDB's register cache layout. */
-+
-+/* From <sys/reg.h>. */
-+static int sh_linux_gregset_reg_offset[] =
-+{
-+ 0, 4, 8, 12, 16, 20, 24, 28,
-+ 32, 36, 40, 44, 48, 52, 56, 60,
-+
-+ REG_PC*4, REG_PR*4, REG_GBR*4, -1,
-+ REG_MACH*4, REG_MACL*4, REG_SR*4,
-+};
-+
-+/* Mapping between the general-purpose registers in `struct
-+ sigcontext' format and GDB's register cache layout. */
-+
-+/* From <asm/sigcontext.h>. */
-+static int sh_linux_sc_reg_offset[] =
-+{
-+ 4, 8, 12, 16, 20, 24, 28, 32,
-+ 36, 40, 44, 48, 52, 56, 60, 64,
-+ 68, 72, 80, -1,
-+ 84, 88, 76
-+};
-+
- static void
- sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
- {
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+ bfd abfd;
-+
-+ tdep->gregset_reg_offset = sh_linux_gregset_reg_offset;
-+ tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset);
-+ tdep->sizeof_gregset = 23 * 4;
-+
-+ tdep->jb_pc_offset = 32; /* From <bits/setjmp.h>. */
-+
-+ tdep->sigtramp_p = sh_linux_sigtramp_p;
-+ tdep->sigcontext_addr = sh_linux_sigcontext_addr;
-+ tdep->sc_reg_offset = sh_linux_sc_reg_offset;
-+ tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset);
-+
-+ frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind);
-+
-+ /* If we have a register mapping, enable the generic core file
-+ support, unless it has already been enabled. */
-+ if (tdep->gregset_reg_offset
-+ && !gdbarch_regset_from_core_section_p (gdbarch))
-+ set_gdbarch_regset_from_core_section (gdbarch,
-+ sh_linux_regset_from_core_section);
-+
- linux_init_abi (info, gdbarch);
-
- /* GNU/Linux uses SVR4-style shared libraries. */
-diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
-index 336b48e..847b271 100644
---- a/gdb/sh-tdep.c
-+++ b/gdb/sh-tdep.c
-@@ -21,6 +21,9 @@
- sac@cygnus.com. */
-
- #include "defs.h"
-+#include "arch-utils.h"
-+#include "command.h"
-+#include "dummy-frame.h"
- #include "frame.h"
- #include "frame-base.h"
- #include "frame-unwind.h"
-@@ -35,6 +38,7 @@
- #include "arch-utils.h"
- #include "floatformat.h"
- #include "regcache.h"
-+#include "regset.h"
- #include "doublest.h"
- #include "osabi.h"
- #include "reggroups.h"
-@@ -67,23 +71,6 @@ static const char *const sh_cc_enum[] = {
-
- static const char *sh_active_calling_convention = sh_cc_gcc;
-
--#define SH_NUM_REGS 67
--
--struct sh_frame_cache
--{
-- /* Base address. */
-- CORE_ADDR base;
-- LONGEST sp_offset;
-- CORE_ADDR pc;
--
-- /* Flag showing that a frame has been created in the prologue code. */
-- int uses_fp;
--
-- /* Saved registers. */
-- CORE_ADDR saved_regs[SH_NUM_REGS];
-- CORE_ADDR saved_sp;
--};
--
- static int
- sh_is_renesas_calling_convention (struct type *func_type)
- {
-@@ -1043,7 +1030,7 @@ sh_treat_as_flt_p (struct type *type)
- return 0;
- /* Otherwise if the type of that member is float, the whole type is
- treated as float. */
-- if (TYPE_CODE (TYPE_FIELD_TYPE (type, 0)) == TYPE_CODE_FLT)
-+ if (TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, 0))) == TYPE_CODE_FLT)
- return 1;
- /* Otherwise it's not treated as float. */
- return 0;
-@@ -1093,7 +1080,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
- in four registers available. Loop thru args from first to last. */
- for (argnum = 0; argnum < nargs; argnum++)
- {
-- type = value_type (args[argnum]);
-+ type = check_typedef (value_type (args[argnum]));
- len = TYPE_LENGTH (type);
- val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
-
-@@ -1821,7 +1808,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
- reg->how = DWARF2_FRAME_REG_UNDEFINED;
- }
-
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_alloc_frame_cache (void)
- {
- struct sh_frame_cache *cache;
-@@ -1848,7 +1835,7 @@ sh_alloc_frame_cache (void)
- return cache;
- }
-
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- {
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
-@@ -1915,9 +1902,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- return cache;
- }
-
--static struct value *
--sh_frame_prev_register (struct frame_info *this_frame,
-- void **this_cache, int regnum)
-+struct value *
-+sh_frame_prev_register (struct frame_info *this_frame, void **this_cache,
-+ int regnum)
- {
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
- struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
-@@ -1931,7 +1918,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
- the current frame. Frob regnum so that we pull the value from
- the correct place. */
- if (regnum == gdbarch_pc_regnum (gdbarch))
-- regnum = PR_REGNUM;
-+ regnum = PR_REGNUM; /* XXX: really? */
-
- if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
- return frame_unwind_got_memory (this_frame, regnum,
-@@ -2240,8 +2227,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
- static struct gdbarch *
- sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- {
-- struct gdbarch *gdbarch;
- struct gdbarch_tdep *tdep;
-+ struct gdbarch *gdbarch;
-
- /* SH5 is handled entirely in sh64-tdep.c. */
- if (info.bfd_arch_info->mach == bfd_mach_sh5)
-@@ -2257,6 +2244,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- tdep = XCNEW (struct gdbarch_tdep);
- gdbarch = gdbarch_alloc (&info, tdep);
-
-+ /* General-purpose registers. */
-+ tdep->gregset = NULL;
-+ tdep->gregset_reg_offset = NULL;
-+ tdep->gregset_num_regs = 23;
-+ tdep->sizeof_gregset = 0;
-+
-+ /* Floating-point registers. */
-+ tdep->fpregset = NULL;
-+ tdep->sizeof_fpregset = 34*4;
-+
-+ tdep->jb_pc_offset = -1;
-+
- set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
- set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-@@ -2407,10 +2406,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- break;
- }
-
-+ dwarf2_append_unwinders (gdbarch);
-+
- /* Hook in ABI-specific overrides, if they have been registered. */
- gdbarch_init_osabi (info, gdbarch);
-
-- dwarf2_append_unwinders (gdbarch);
- frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind);
- frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
-
-diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
-index 666968f..62c65b5 100644
---- a/gdb/sh-tdep.h
-+++ b/gdb/sh-tdep.h
-@@ -21,6 +21,12 @@
-
- /* Contributed by Steve Chamberlain sac@cygnus.com. */
-
-+struct frame_info;
-+struct gdbarch;
-+struct reggroup;
-+struct regset;
-+struct regcache;
-+
- /* Registers for all SH variants. Used also by sh3-rom.c. */
- enum
- {
-@@ -29,6 +35,7 @@ enum
- ARG0_REGNUM = 4,
- ARGLAST_REGNUM = 7,
- FP_REGNUM = 14,
-+ SP_REGNUM = 15,
- PC_REGNUM = 16,
- PR_REGNUM = 17,
- GBR_REGNUM = 18,
-@@ -81,6 +88,24 @@ enum
- FV0_REGNUM = 76,
- FV_LAST_REGNUM = 79
- };
-+#define SH_NUM_REGS 67
-+
-+struct sh_frame_cache
-+{
-+ /* Base address. */
-+ CORE_ADDR base;
-+ LONGEST sp_offset;
-+ CORE_ADDR pc;
-+
-+ /* Flag showing that a frame has been created in the prologue code. */
-+ int uses_fp;
-+
-+ /* Saved registers. */
-+ CORE_ADDR saved_regs[SH_NUM_REGS];
-+ CORE_ADDR saved_sp;
-+};
-+
-+extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache);
-
- /* This structure describes a register in a core-file. */
- struct sh_corefile_regmap
-@@ -89,8 +114,32 @@ struct sh_corefile_regmap
- unsigned int offset;
- };
-
-+/* sh architecture specific information. */
- struct gdbarch_tdep
- {
-+ /* General-purpose registers. */
-+ struct regset *gregset;
-+ int *gregset_reg_offset;
-+ int gregset_num_regs;
-+ size_t sizeof_gregset;
-+
-+ /* Floating-point registers. */
-+ struct regset *fpregset;
-+ size_t sizeof_fpregset;
-+
-+ /* Offset of saved PC in jmp_buf. */
-+ int jb_pc_offset;
-+
-+ /* Detect sigtramp. */
-+ int (*sigtramp_p) (struct frame_info *);
-+
-+ /* Get address of sigcontext for sigtramp. */
-+ CORE_ADDR (*sigcontext_addr) (struct frame_info *);
-+
-+ /* Offset of registers in `struct sigcontext'. */
-+ int *sc_reg_offset;
-+ int sc_num_regs;
-+
- /* Non-NULL when debugging from a core file. Provides the offset
- where each general-purpose register is stored inside the associated
- core file section. */
-diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
-index 6d9aef8..5b66b42 100644
---- a/gdb/testsuite/gdb.asm/asm-source.exp
-+++ b/gdb/testsuite/gdb.asm/asm-source.exp
-@@ -116,6 +116,11 @@ switch -glob -- [istarget] {
- append link-flags " -m elf32ppc"
- }
- }
-+ "sh*-linux*" {
-+ set asm-arch sh-linux
-+ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
-+ set debug-flags "-gdwarf-2"
-+ }
- "sh*-*-*" {
- set asm-arch sh
- set debug-flags "-gdwarf-2"
-diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
-index a4a5fc5..89efed7 100644
---- a/gdb/testsuite/gdb.asm/sh.inc
-+++ b/gdb/testsuite/gdb.asm/sh.inc
-@@ -40,9 +40,8 @@
- mov.l .Lconst\@,r1
- bra .Lafterconst\@
- nop
-- nop
--.Lconst\@:
- .align 2
-+.Lconst\@:
- .long \subr
- .align 1
- .Lafterconst\@:
-diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c
-index 424e1b8..0de2e7b 100644
---- a/gdb/testsuite/gdb.base/annota1.c
-+++ b/gdb/testsuite/gdb.base/annota1.c
-@@ -1,6 +1,9 @@
- #include <stdio.h>
- #include <signal.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c
-index 424e1b8..952aaf21 100644
---- a/gdb/testsuite/gdb.base/annota3.c
-+++ b/gdb/testsuite/gdb.base/annota3.c
-@@ -1,6 +1,10 @@
- #include <stdio.h>
- #include <signal.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-+
-
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
-index 81f3b08..1574b2d 100644
---- a/gdb/testsuite/gdb.base/sigall.c
-+++ b/gdb/testsuite/gdb.base/sigall.c
-@@ -1,6 +1,9 @@
- #include <signal.h>
- #include <unistd.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-
- /* Signal handlers, we set breakpoints in them to make sure that the
- signals really get delivered. */
-diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c
-index 7566068..1205a9b 100644
---- a/gdb/testsuite/gdb.base/signals.c
-+++ b/gdb/testsuite/gdb.base/signals.c
-@@ -3,6 +3,10 @@
- #include <signal.h>
- #include <unistd.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#define alarm(a) /* Ditto for alarm() */
-+#endif
-
- static int count = 0;
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch b/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
deleted file mode 100644
index 394d26d..0000000
--- a/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f3932cb2960fd54655a448b13d5a5b80f356f8de Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:25:03 -0700
-Subject: [PATCH 06/10] Dont disable libreadline.a when using --disable-static
-
-If gdb is configured with --disable-static then this is dutifully passed to
-readline which then disables libreadline.a, which causes a problem when gdb
-tries to link against that.
-
-To ensure that readline always builds static libraries, pass --enable-static to
-the sub-configure.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.def | 3 ++-
- Makefile.in | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.def b/Makefile.def
-index ea8453e..0fc66c6 100644
---- a/Makefile.def
-+++ b/Makefile.def
-@@ -104,7 +104,8 @@ host_modules= { module= libiconv;
- missing= install-html;
- missing= install-info; };
- host_modules= { module= m4; };
--host_modules= { module= readline; };
-+host_modules= { module= readline;
-+ extra_configure_flags='--enable-static';};
- host_modules= { module= sid; };
- host_modules= { module= sim; };
- host_modules= { module= texinfo; no_install= true; };
-diff --git a/Makefile.in b/Makefile.in
-index 2733c4d..3e04e80 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -25380,7 +25380,7 @@ configure-readline:
- $$s/$$module_srcdir/configure \
- --srcdir=$${topdir}/$$module_srcdir \
- $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
-- --target=${target_alias} \
-+ --target=${target_alias} --enable-static \
- || exit 1
- @endif readline
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch b/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
deleted file mode 100644
index f32f8ee..0000000
--- a/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 048675a915a72989f2613386975730da016e7c5d Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <amccurdy@gmail.com>
-Date: Sat, 30 Apr 2016 15:29:06 -0700
-Subject: [PATCH 07/10] use <asm/sgidefs.h>
-
-Build fix for MIPS with musl libc
-
-The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
-but not by musl. Regardless of the libc, the kernel headers provide
-<asm/sgidefs.h> which provides the same definitions, so use that
-instead.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/mips-linux-nat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index 449b43a..09603da 100644
---- a/gdb/mips-linux-nat.c
-+++ b/gdb/mips-linux-nat.c
-@@ -31,7 +31,7 @@
- #include "gdb_proc_service.h"
- #include "gregset.h"
-
--#include <sgidefs.h>
-+#include <asm/sgidefs.h>
- #include "nat/gdb_ptrace.h"
- #include <asm/ptrace.h>
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch b/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
deleted file mode 100644
index 7e58b61..0000000
--- a/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From e54ead9d81f4d38412751b815f909db3cb144bb1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:31:40 -0700
-Subject: [PATCH 08/10] Use exorted definitions of SIGRTMIN
-
-Define W_STOPCODE if not defined already
-
-__SIGRTMIN is internal to glibc and other libcs e.g. musl
-may not provide them
-
-Fixes
-https://sourceware.org/bugzilla/show_bug.cgi?id=13012
-
-Upstream-Status: Submitted
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/linux-nat.c | 4 ++--
- gdb/nat/linux-nat.h | 4 ++++
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
-index 0829bcb..3b8a896 100644
---- a/gdb/linux-nat.c
-+++ b/gdb/linux-nat.c
-@@ -4845,6 +4845,6 @@ lin_thread_get_thread_signals (sigset_t *set)
- /* NPTL reserves the first two RT signals, but does not provide any
- way for the debugger to query the signal numbers - fortunately
- they don't change. */
-- sigaddset (set, __SIGRTMIN);
-- sigaddset (set, __SIGRTMIN + 1);
-+ sigaddset (set, SIGRTMIN);
-+ sigaddset (set, SIGRTMIN + 1);
- }
-diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
-index 2b485db..d058afc 100644
---- a/gdb/nat/linux-nat.h
-+++ b/gdb/nat/linux-nat.h
-@@ -85,4 +85,8 @@ extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
-
- extern void linux_stop_lwp (struct lwp_info *lwp);
-
-+#ifndef W_STOPCODE
-+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
-+#endif
-+
- #endif /* LINUX_NAT_H */
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch b/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
deleted file mode 100644
index a230047..0000000
--- a/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ba0bbf887d4911ccee9df57cb13eafb1de34bb31 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:35:39 -0700
-Subject: [PATCH 09/10] Change order of CFLAGS
-
-Lets us override Werror if need be
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gdbserver/Makefile.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
-index 1e874e3..91e8550 100644
---- a/gdb/gdbserver/Makefile.in
-+++ b/gdb/gdbserver/Makefile.in
-@@ -138,10 +138,10 @@ CXXFLAGS = @CXXFLAGS@
- CPPFLAGS = @CPPFLAGS@
-
- # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
--INTERNAL_CFLAGS_BASE = ${COMPILER_CFLAGS} ${GLOBAL_CFLAGS} \
-+INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
- ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS}
- INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
--INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
-+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
-
- # LDFLAGS is specifically reserved for setting from the command line
- # when running make.
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch b/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
deleted file mode 100644
index 16c34c7..0000000
--- a/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5a9ccb8c0728b658fc4f7f0f7b36873c64274f10 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 10 May 2016 08:47:05 -0700
-Subject: [PATCH 10/10] resolve restrict keyword conflict
-
-GCC detects that we call 'restrict' as param name in function
-signatures and complains since both params are called 'restrict'
-therefore we use __restrict to denote the C99 keywork
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gnulib/import/sys_time.in.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gdb/gnulib/import/sys_time.in.h b/gdb/gnulib/import/sys_time.in.h
-index c556c5d..2a6107f 100644
---- a/gdb/gnulib/import/sys_time.in.h
-+++ b/gdb/gnulib/import/sys_time.in.h
-@@ -93,20 +93,20 @@ struct timeval
- # define gettimeofday rpl_gettimeofday
- # endif
- _GL_FUNCDECL_RPL (gettimeofday, int,
-- (struct timeval *restrict, void *restrict)
-+ (struct timeval *__restrict, void *__restrict)
- _GL_ARG_NONNULL ((1)));
- _GL_CXXALIAS_RPL (gettimeofday, int,
-- (struct timeval *restrict, void *restrict));
-+ (struct timeval *__restrict, void *__restrict));
- # else
- # if !@HAVE_GETTIMEOFDAY@
- _GL_FUNCDECL_SYS (gettimeofday, int,
-- (struct timeval *restrict, void *restrict)
-+ (struct timeval *__restrict, void *__restrict)
- _GL_ARG_NONNULL ((1)));
- # endif
- /* Need to cast, because on glibc systems, by default, the second argument is
- struct timezone *. */
- _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
-- (struct timeval *restrict, void *restrict));
-+ (struct timeval *__restrict, void *__restrict));
- # endif
- _GL_CXXALIASWARN (gettimeofday);
- #elif defined GNULIB_POSIXCHECK
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch b/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
deleted file mode 100644
index 209c4fc..0000000
--- a/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
+++ /dev/null
@@ -1,2601 +0,0 @@
-gdb: Backport patch to support changes with AVX and MPX
-
-The current MPX target descriptions assume that MPX is always combined
-with AVX, however that's not correct. We can have machines with MPX
-and without AVX; or machines with AVX and without MPX.
-
-This patch adds new target descriptions for machines that support
-both MPX and AVX, as duplicates of the existing MPX descriptions.
-
-The following commit will remove AVX from the MPX-only descriptions.
-
-Upstream-Status: Backport
-
-Signed-off-by: bavery <brian.avery@intel.com>
-
-
-Orignal patch changelog and author attribution:
-
-2016-04-16 Walfred Tedeschi <walfred.tedeschi@intel.com>
-
-gdb/ChangeLog:
-
- * amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):
- New include.
- (amd64_linux_core_read_description): Add case for
- X86_XSTATE_AVX_MPX_MASK.
- (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.
- * amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.
- * amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.
- (amd64_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
- (_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.
- * common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.
- (X86_XSTATE_AVX_MPX_MASK): New case.
- * features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)
- (i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.
- (i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)
- (i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):
- New expedites.
- * i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New
- include.
- (i386_linux_core_read_description): Add case
- X86_XSTATE_AVX_MPX_MASK.
- (_initialize_i386_linux_tdep): Call
- initialize_tdesc_i386_avx_mpx_linux.
- * i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.
- * i386-tdep.c (features/i386/i386-avx-mpx.c): New include.
- (i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
- * x86-linux-nat.c (x86_linux_read_description): Add case for
- X86_XSTATE_AVX_MPX_MASK.
- * features/i386/amd64-avx-mpx-linux.xml: New file.
- * features/i386/i386-avx-mpx-linux.xml: New file.
- * features/i386/i386-avx-mpx.xml: New file.
- * features/i386/amd64-avx-mpx.xml: New file.
- * features/i386/amd64-avx-mpx-linux.c: Generated.
- * features/i386/amd64-avx-mpx.c: Generated.
- * features/i386/i386-avx-mpx-linux.c: Generated.
- * features/i386/i386-avx-mpx.c: Generated.
- * regformats/i386/amd64-avx-mpx-linux.dat: Generated.
- * regformats/i386/amd64-avx-mpx.dat: Generated.
- * regformats/i386/i386-avx-mpx-linux.dat: Generated.
- * regformats/i386/i386-avx-mpx.dat: Generated.
-
-gdb/gdbserver/ChangeLog:
-
- * Makefile.in (clean): Add removal for i386-avx-mpx.c,
- i386-avx-mpx-linux.c, amd64-avx-mpx.c and amd64-avx-mpx-linux.c.
- (i386-avx-mpx.c, i386-avx-mpx-linux.c, amd64-avx-mpx.c)
- (amd64-avx-mpx-linux.c): New rules.
- (amd64-avx-mpx-linux-ipa.o, i386-avx-mpx-linux-ipa.o): New rule.
- * configure.srv (srv_i386_regobj): Add i386-avx-mpx.o.
- (srv_i386_linux_regobj): Add i386-avx-mpx-linux.o.
- (srv_amd64_regobj): Add amd64-avx-mpx.o.
- (srv_amd64_linux_regobj): Add amd64-avx-mpx-linux.o.
- (srv_i386_xmlfiles): Add i386/i386-avx-mpx.xml.
- (srv_amd64_xmlfiles): Add i386/amd64-avx-mpx.xml.
- (srv_i386_linux_xmlfiles): Add i386/i386-avx-mpx-linux.xml.
- (srv_amd64_linux_xmlfiles): Add i386/amd64-avx-mpx-linux.xml.
- (ipa_i386_linux_regobj): Add i386-avx-mpx-linux-ipa.o.
- (ipa_amd64_linux_regobj): Add amd64-avx-mpx-linux-ipa.o.
- * linux-x86-low.c (x86_linux_read_description): Add case for
- X86_XSTATE_AVX_MPX_MASK.
- (x86_get_ipa_tdesc_idx): Add cases for avx_mpx.
- (initialize_low_arch): Call init_registers_amd64_avx_mpx_linux and
- init_registers_i386_avx_mpx_linux.
- * linux-i386-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
- (initialize_low_tracepoint): Call
- init_registers_i386_avx_mpx_linux.
- * linux-amd64-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
- (initialize_low_tracepoint): Call
- init_registers_amd64_avx_mpx_linux.
- * linux-x86-tdesc.h (X86_TDESC_AVX_MPX): New enum value.
- (init_registers_amd64_avx_mpx_linux, tdesc_amd64_avx_mpx_linux)
- (init_registers_i386_avx_mpx_linux, tdesc_i386_avx_mpx_linux): New
- declarations.
-
-
-
-
-diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
-index 21bcd99..5327f7c 100644
---- a/gdb/amd64-linux-tdep.c
-+++ b/gdb/amd64-linux-tdep.c
-@@ -43,6 +43,7 @@
- #include "features/i386/amd64-linux.c"
- #include "features/i386/amd64-avx-linux.c"
- #include "features/i386/amd64-mpx-linux.c"
-+#include "features/i386/amd64-avx-mpx-linux.c"
- #include "features/i386/amd64-avx512-linux.c"
-
- #include "features/i386/x32-linux.c"
-@@ -1590,6 +1591,11 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch,
- return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
- else
- return tdesc_amd64_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ if (gdbarch_ptr_bit (gdbarch) == 32)
-+ return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
-+ else
-+ return tdesc_amd64_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- if (gdbarch_ptr_bit (gdbarch) == 32)
- return tdesc_x32_avx_linux;
-@@ -2285,6 +2291,7 @@ _initialize_amd64_linux_tdep (void)
- initialize_tdesc_amd64_linux ();
- initialize_tdesc_amd64_avx_linux ();
- initialize_tdesc_amd64_mpx_linux ();
-+ initialize_tdesc_amd64_avx_mpx_linux ();
- initialize_tdesc_amd64_avx512_linux ();
-
- initialize_tdesc_x32_linux ();
-diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h
-index 8673442..d64d5d6 100644
---- a/gdb/amd64-linux-tdep.h
-+++ b/gdb/amd64-linux-tdep.h
-@@ -35,6 +35,7 @@
- extern struct target_desc *tdesc_amd64_linux;
- extern struct target_desc *tdesc_amd64_avx_linux;
- extern struct target_desc *tdesc_amd64_mpx_linux;
-+extern struct target_desc *tdesc_amd64_avx_mpx_linux;
- extern struct target_desc *tdesc_amd64_avx512_linux;
-
- extern struct target_desc *tdesc_x32_linux;
-diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
-index fae92b2..88e3bf8 100644
---- a/gdb/amd64-tdep.c
-+++ b/gdb/amd64-tdep.c
-@@ -44,6 +44,7 @@
- #include "features/i386/amd64.c"
- #include "features/i386/amd64-avx.c"
- #include "features/i386/amd64-mpx.c"
-+#include "features/i386/amd64-avx-mpx.c"
- #include "features/i386/amd64-avx512.c"
-
- #include "features/i386/x32.c"
-@@ -3132,6 +3133,8 @@ amd64_target_description (uint64_t xcr0)
- return tdesc_amd64_avx512;
- case X86_XSTATE_MPX_MASK:
- return tdesc_amd64_mpx;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_amd64_avx_mpx;
- case X86_XSTATE_AVX_MASK:
- return tdesc_amd64_avx;
- default:
-@@ -3148,6 +3151,7 @@ _initialize_amd64_tdep (void)
- initialize_tdesc_amd64 ();
- initialize_tdesc_amd64_avx ();
- initialize_tdesc_amd64_mpx ();
-+ initialize_tdesc_amd64_avx_mpx ();
- initialize_tdesc_amd64_avx512 ();
-
- initialize_tdesc_x32 ();
-diff --git a/gdb/common/x86-xstate.h b/gdb/common/x86-xstate.h
-index 8386420..0aa9164 100644
---- a/gdb/common/x86-xstate.h
-+++ b/gdb/common/x86-xstate.h
-@@ -39,9 +39,10 @@
- #define X86_XSTATE_X87_MASK X86_XSTATE_X87
- #define X86_XSTATE_SSE_MASK (X86_XSTATE_X87 | X86_XSTATE_SSE)
- #define X86_XSTATE_AVX_MASK (X86_XSTATE_SSE_MASK | X86_XSTATE_AVX)
--#define X86_XSTATE_MPX_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
-+#define X86_XSTATE_MPX_MASK (X86_XSTATE_SSE_MASK | X86_XSTATE_MPX)
-+#define X86_XSTATE_AVX_MPX_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
- #define X86_XSTATE_AVX512_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_AVX512)
--#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_MPX_MASK | X86_XSTATE_AVX512)
-+#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_AVX_MPX_MASK | X86_XSTATE_AVX512)
-
- #define X86_XSTATE_ALL_MASK (X86_XSTATE_MPX_AVX512_MASK)
-
-diff --git a/gdb/features/Makefile b/gdb/features/Makefile
-index 10173cf..e5c5154 100644
---- a/gdb/features/Makefile
-+++ b/gdb/features/Makefile
-@@ -50,9 +50,11 @@ WHICH = aarch64 \
- i386/amd64 i386/amd64-linux \
- i386/i386-avx i386/i386-avx-linux \
- i386/i386-mpx i386/i386-mpx-linux \
-+ i386/i386-avx-mpx i386/i386-avx-mpx-linux \
- i386/i386-avx512 i386/i386-avx512-linux \
- i386/amd64-avx i386/amd64-avx-linux \
- i386/amd64-mpx i386/amd64-mpx-linux \
-+ i386/amd64-avx-mpx i386/amd64-avx-mpx-linux \
- i386/amd64-avx512 i386/amd64-avx512-linux \
- i386/x32 i386/x32-linux \
- i386/x32-avx i386/x32-avx-linux \
-@@ -83,7 +85,9 @@ i386/amd64-linux-expedite = rbp,rsp,rip
- i386/i386-avx-expedite = ebp,esp,eip
- i386/i386-avx-linux-expedite = ebp,esp,eip
- i386/i386-mpx-expedite = ebp,esp,eip
-+i386/i386-avx-mpx-expedite = ebp,esp,eip
- i386/i386-mpx-linux-expedite = ebp,esp,eip
-+i386/i386-avx-mpx-linux-expedite = ebp,esp,eip
- i386/i386-avx512-expedite = ebp,esp,eip
- i386/i386-avx512-linux-expedite = ebp,esp,eip
- i386/i386-mmx-expedite = ebp,esp,eip
-@@ -91,7 +95,9 @@ i386/i386-mmx-linux-expedite = ebp,esp,eip
- i386/amd64-avx-expedite = rbp,rsp,rip
- i386/amd64-avx-linux-expedite = rbp,rsp,rip
- i386/amd64-mpx-expedite = rbp,rsp,rip
-+i386/amd64-avx-mpx-expedite = rbp,rsp,rip
- i386/amd64-mpx-linux-expedite = rbp,rsp,rip
-+i386/amd64-avx-mpx-linux-expedite = rbp,rsp,rip
- i386/amd64-avx512-expedite = rbp,rsp,rip
- i386/amd64-avx512-linux-expedite = rbp,rsp,rip
- i386/x32-expedite = rbp,rsp,rip
-@@ -156,6 +162,8 @@ XMLTOC = \
- i386/amd64-linux.xml \
- i386/amd64-mpx-linux.xml \
- i386/amd64-mpx.xml \
-+ i386/amd64-avx-mpx-linux.xml \
-+ i386/amd64-avx-mpx.xml \
- i386/amd64.xml \
- i386/i386-avx-linux.xml \
- i386/i386-avx.xml \
-@@ -166,6 +174,8 @@ XMLTOC = \
- i386/i386-mmx.xml \
- i386/i386-mpx-linux.xml \
- i386/i386-mpx.xml \
-+ i386/i386-avx-mpx-linux.xml \
-+ i386/i386-avx-mpx.xml \
- i386/i386.xml \
- i386/x32-avx-linux.xml \
- i386/x32-avx.xml \
-@@ -271,6 +281,10 @@ $(outdir)/i386/i386-mpx.dat: i386/32bit-core.xml i386/32bit-avx.xml \
- i386/32bit-mpx.xml
- $(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
- i386/32bit-linux.xml i386/32bit-mpx.xml
-+$(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml \
-+ i386/32bit-linux.xml i386/32bit-mpx.xml
-+$(outdir)/i386/i386-avx-mpx-linux.dat: i386/32bit-core.xml \
-+ i386/32bit-linux.xml i386/32bit-mpx.xml
- $(outdir)/i386/i386-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \
- i386/32bit-mpx.xml i386/32bit-avx512.xml
- $(outdir)/i386/i386-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
-@@ -282,8 +296,12 @@ $(outdir)/i386/amd64-avx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-linux.xml
- $(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-linux.xml i386/64bit-mpx.xml
-+$(outdir)/i386/amd64-avx-mpx-linux.dat: i386/64bit-core.xml \
-+ i386/64bit-linux.xml i386/64bit-mpx.xml
- $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-mpx.xml
-+$(outdir)/i386/amd64-avx-mpx.dat: i386/64bit-core.xml \
-+ i386/64bit-mpx.xml
- $(outdir)/i386/amd64-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-mpx.xml i386/64bit-avx512.xml
- $(outdir)/i386/amd64-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
-diff --git a/gdb/features/i386/amd64-avx-mpx-linux.c b/gdb/features/i386/amd64-avx-mpx-linux.c
-new file mode 100644
-index 0000000..37b4c81
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx-linux.c
-@@ -0,0 +1,211 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: amd64-avx-mpx-linux.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_amd64_avx_mpx_linux;
-+static void
-+initialize_tdesc_amd64_avx_mpx_linux (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-+
-+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-+ tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 63);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 63);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 0);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status");
-+
-+ tdesc_amd64_avx_mpx_linux = result;
-+}
-diff --git a/gdb/features/i386/amd64-avx-mpx-linux.xml b/gdb/features/i386/amd64-avx-mpx-linux.xml
-new file mode 100644
-index 0000000..526c700
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx-linux.xml
-@@ -0,0 +1,19 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- AMD64 with AVX and MPX - Includes Linux-only special "register". -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386:x86-64</architecture>
-+ <osabi>GNU/Linux</osabi>
-+ <xi:include href="64bit-core.xml"/>
-+ <xi:include href="64bit-sse.xml"/>
-+ <xi:include href="64bit-linux.xml"/>
-+ <xi:include href="64bit-avx.xml"/>
-+ <xi:include href="64bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/amd64-avx-mpx.c b/gdb/features/i386/amd64-avx-mpx.c
-new file mode 100644
-index 0000000..1279f73
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx.c
-@@ -0,0 +1,206 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: amd64-avx-mpx.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_amd64_avx_mpx;
-+static void
-+initialize_tdesc_amd64_avx_mpx (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 63);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 63);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 0);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
-+
-+ tdesc_amd64_avx_mpx = result;
-+}
-diff --git a/gdb/features/i386/amd64-avx-mpx.xml b/gdb/features/i386/amd64-avx-mpx.xml
-new file mode 100644
-index 0000000..3eea6dd
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx.xml
-@@ -0,0 +1,17 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- AMD64 with AVX and MPX -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386:x86-64</architecture>
-+ <xi:include href="64bit-core.xml"/>
-+ <xi:include href="64bit-sse.xml"/>
-+ <xi:include href="64bit-avx.xml"/>
-+ <xi:include href="64bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/amd64-mpx-linux.c b/gdb/features/i386/amd64-mpx-linux.c
-index 86a1774..5c1584b 100644
---- a/gdb/features/i386/amd64-mpx-linux.c
-+++ b/gdb/features/i386/amd64-mpx-linux.c
-@@ -151,24 +151,6 @@ initialize_tdesc_amd64_mpx_linux (void)
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
- tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -200,12 +182,12 @@ initialize_tdesc_amd64_mpx_linux (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 58, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 59, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 60, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 61, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 62, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 63, 1, NULL, 64, "status");
-
- tdesc_amd64_mpx_linux = result;
- }
-diff --git a/gdb/features/i386/amd64-mpx-linux.xml b/gdb/features/i386/amd64-mpx-linux.xml
-index 15e87b4..835126b 100644
---- a/gdb/features/i386/amd64-mpx-linux.xml
-+++ b/gdb/features/i386/amd64-mpx-linux.xml
-@@ -14,6 +14,5 @@
- <xi:include href="64bit-core.xml"/>
- <xi:include href="64bit-sse.xml"/>
- <xi:include href="64bit-linux.xml"/>
-- <xi:include href="64bit-avx.xml"/>
- <xi:include href="64bit-mpx.xml"/>
- </target>
-diff --git a/gdb/features/i386/amd64-mpx.c b/gdb/features/i386/amd64-mpx.c
-index 15ae5f7..4c852ef 100644
---- a/gdb/features/i386/amd64-mpx.c
-+++ b/gdb/features/i386/amd64-mpx.c
-@@ -146,24 +146,6 @@ initialize_tdesc_amd64_mpx (void)
- tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -195,12 +177,12 @@ initialize_tdesc_amd64_mpx (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 57, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 58, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 59, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 60, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 61, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 62, 1, NULL, 64, "status");
-
- tdesc_amd64_mpx = result;
- }
-diff --git a/gdb/features/i386/amd64-mpx.xml b/gdb/features/i386/amd64-mpx.xml
-index 21b6df3..e458736 100644
---- a/gdb/features/i386/amd64-mpx.xml
-+++ b/gdb/features/i386/amd64-mpx.xml
-@@ -12,6 +12,5 @@
- <architecture>i386:x86-64</architecture>
- <xi:include href="64bit-core.xml"/>
- <xi:include href="64bit-sse.xml"/>
-- <xi:include href="64bit-avx.xml"/>
- <xi:include href="64bit-mpx.xml"/>
- </target>
-diff --git a/gdb/features/i386/i386-avx-mpx-linux.c b/gdb/features/i386/i386-avx-mpx-linux.c
-new file mode 100644
-index 0000000..dd75403
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx-linux.c
-@@ -0,0 +1,187 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: i386-avx-mpx-linux.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_i386_avx_mpx_linux;
-+static void
-+initialize_tdesc_i386_avx_mpx_linux (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-+
-+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-+ tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 31);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 31);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 1);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
-+
-+ tdesc_i386_avx_mpx_linux = result;
-+}
-diff --git a/gdb/features/i386/i386-avx-mpx-linux.xml b/gdb/features/i386/i386-avx-mpx-linux.xml
-new file mode 100644
-index 0000000..c9a1a61
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx-linux.xml
-@@ -0,0 +1,19 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- I386 with AVX and MPX- Includes Linux-only special "register". -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386</architecture>
-+ <osabi>GNU/Linux</osabi>
-+ <xi:include href="32bit-core.xml"/>
-+ <xi:include href="32bit-sse.xml"/>
-+ <xi:include href="32bit-linux.xml"/>
-+ <xi:include href="32bit-avx.xml"/>
-+ <xi:include href="32bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/i386-avx-mpx.c b/gdb/features/i386/i386-avx-mpx.c
-new file mode 100644
-index 0000000..f104e4b
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx.c
-@@ -0,0 +1,182 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: i386-avx-mpx.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_i386_avx_mpx;
-+static void
-+initialize_tdesc_i386_avx_mpx (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 31);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 31);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 1);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
-+
-+ tdesc_i386_avx_mpx = result;
-+}
-diff --git a/gdb/features/i386/i386-avx-mpx.xml b/gdb/features/i386/i386-avx-mpx.xml
-new file mode 100644
-index 0000000..ab97367
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx.xml
-@@ -0,0 +1,17 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- I386 with AVX and MPX -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386</architecture>
-+ <xi:include href="32bit-core.xml"/>
-+ <xi:include href="32bit-sse.xml"/>
-+ <xi:include href="32bit-avx.xml"/>
-+ <xi:include href="32bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/i386-mpx-linux.c b/gdb/features/i386/i386-mpx-linux.c
-index dbf8789..c6bafea 100644
---- a/gdb/features/i386/i386-mpx-linux.c
-+++ b/gdb/features/i386/i386-mpx-linux.c
-@@ -135,16 +135,6 @@ initialize_tdesc_i386_mpx_linux (void)
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
- tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -176,12 +166,12 @@ initialize_tdesc_i386_mpx_linux (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 42, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 43, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 44, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 45, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 46, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 47, 1, NULL, 64, "status");
-
- tdesc_i386_mpx_linux = result;
- }
-diff --git a/gdb/features/i386/i386-mpx-linux.xml b/gdb/features/i386/i386-mpx-linux.xml
-index c4004d6..4228cf5 100644
---- a/gdb/features/i386/i386-mpx-linux.xml
-+++ b/gdb/features/i386/i386-mpx-linux.xml
-@@ -14,6 +14,5 @@
- <xi:include href="32bit-core.xml"/>
- <xi:include href="32bit-sse.xml"/>
- <xi:include href="32bit-linux.xml"/>
-- <xi:include href="32bit-avx.xml"/>
- <xi:include href="32bit-mpx.xml"/>
- </target>
-diff --git a/gdb/features/i386/i386-mpx.c b/gdb/features/i386/i386-mpx.c
-index 1e04afd..430db3f 100644
---- a/gdb/features/i386/i386-mpx.c
-+++ b/gdb/features/i386/i386-mpx.c
-@@ -130,16 +130,6 @@ initialize_tdesc_i386_mpx (void)
- tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -171,12 +161,12 @@ initialize_tdesc_i386_mpx (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 41, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 42, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 43, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 44, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 45, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 46, 1, NULL, 64, "status");
-
- tdesc_i386_mpx = result;
- }
-diff --git a/gdb/features/i386/i386-mpx.xml b/gdb/features/i386/i386-mpx.xml
-index 52a68db..c1806cb 100644
---- a/gdb/features/i386/i386-mpx.xml
-+++ b/gdb/features/i386/i386-mpx.xml
-@@ -12,6 +12,5 @@
- <architecture>i386</architecture>
- <xi:include href="32bit-core.xml"/>
- <xi:include href="32bit-sse.xml"/>
-- <xi:include href="32bit-avx.xml"/>
- <xi:include href="32bit-mpx.xml"/>
- </target>
-diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
-index 1e874e3..dee2ea1 100644
---- a/gdb/gdbserver/Makefile.in
-+++ b/gdb/gdbserver/Makefile.in
-@@ -376,9 +376,11 @@ clean:
- rm -f xml-builtin.c stamp-xml
- rm -f i386-avx.c i386-avx-linux.c
- rm -f i386-mpx.c i386-mpx-linux.c
-+ rm -f i386-avx-mpx.c i386-avx-mpx-linux.c
- rm -f i386-avx512.c i386-avx512-linux.c
- rm -f amd64-avx.c amd64-avx-linux.c
- rm -f amd64-mpx.c amd64-mpx-linux.c
-+ rm -f amd64-avx-mpx.c amd64-avx-mpx-linux.c
- rm -f amd64-avx512.c amd64-avx512-linux.c
- rm -f i386-mmx.c i386-mmx-linux.c
- rm -f x32.c x32-linux.c
-@@ -495,6 +497,21 @@ regcache-ipa.o: regcache.c
- i386-linux-ipa.o: i386-linux.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-+i386-mmx-linux-ipa.o: i386-mmx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-avx-linux-ipa.o: i386-avx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-mpx-linux-ipa.o: i386-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-avx512-linux-ipa.o: i386-avx512-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
- linux-i386-ipa.o: linux-i386-ipa.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-@@ -504,6 +521,18 @@ linux-amd64-ipa.o: linux-amd64-ipa.c
- amd64-linux-ipa.o: amd64-linux.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-+amd64-avx-linux-ipa.o: amd64-avx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+amd64-mpx-linux-ipa.o: amd64-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+amd64-avx512-linux-ipa.o: amd64-avx512-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
- linux-aarch64-ipa.o: linux-aarch64-ipa.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-@@ -694,6 +723,10 @@ i386-mpx.c : $(srcdir)/../regformats/i386/i386-mpx.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx.dat i386-mpx.c
- i386-mpx-linux.c : $(srcdir)/../regformats/i386/i386-mpx-linux.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx-linux.dat i386-mpx-linux.c
-+i386-avx-mpx.c : $(srcdir)/../regformats/i386/i386-avx-mpx.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx.dat i386-avx-mpx.c
-+i386-avx-mpx-linux.c : $(srcdir)/../regformats/i386/i386-avx-mpx-linux.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx-linux.dat i386-avx-mpx-linux.c
- i386-mmx.c : $(srcdir)/../regformats/i386/i386-mmx.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx.dat i386-mmx.c
- i386-mmx-linux.c : $(srcdir)/../regformats/i386/i386-mmx-linux.dat $(regdat_sh)
-@@ -808,6 +841,10 @@ amd64-mpx.c : $(srcdir)/../regformats/i386/amd64-mpx.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx.dat amd64-mpx.c
- amd64-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-mpx-linux.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx-linux.dat amd64-mpx-linux.c
-+amd64-avx-mpx.c : $(srcdir)/../regformats/i386/amd64-avx-mpx.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx.dat amd64-avx-mpx.c
-+amd64-avx-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-avx-mpx-linux.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx-linux.dat amd64-avx-mpx-linux.c
- x32.c : $(srcdir)/../regformats/i386/x32.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32.dat x32.c
- x32-linux.c : $(srcdir)/../regformats/i386/x32-linux.dat $(regdat_sh)
-diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
-index a54b9e7..4935a36 100644
---- a/gdb/gdbserver/configure.srv
-+++ b/gdb/gdbserver/configure.srv
-@@ -24,20 +24,23 @@
- # Default hostio_last_error implementation
- srv_hostio_err_objs="hostio-errno.o"
-
--srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-mmx.o"
--srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-mmx-linux.o"
--srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o x32.o x32-avx.o x32-avx512.o"
--srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
-+srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-avx-mpx.o i386-mmx.o"
-+srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o"
-+srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx512.o"
-+srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
-+
-+
-+ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o i386-avx-mpx-linux-ipa.o i386-avx512-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
-+ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx512-linux-ipa.o amd64-mpx-linux-ipa.o"
-
--ipa_i386_linux_regobj=i386-linux-ipa.o
--ipa_amd64_linux_regobj=amd64-linux-ipa.o
-
- srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml"
- srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/64bit-avx512.xml i386/x32-core.xml i386/64bit-mpx.xml"
--srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
--srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml $srv_i386_64bit_xmlfiles"
--srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml $srv_i386_32bit_xmlfiles"
--srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
-+srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-avx-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
-+srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml i386/amd64-avx-mpx.xml $srv_i386_64bit_xmlfiles"
-+srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml i386/i386-avx-mpx-linux.xml $srv_i386_32bit_xmlfiles"
-+srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/amd64-avx-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
-+
-
-
- # Linux object files. This is so we don't have to repeat
-diff --git a/gdb/gdbserver/linux-aarch64-ipa.c b/gdb/gdbserver/linux-aarch64-ipa.c
-index 758708d..f1eaa70 100644
---- a/gdb/gdbserver/linux-aarch64-ipa.c
-+++ b/gdb/gdbserver/linux-aarch64-ipa.c
-@@ -143,9 +143,18 @@ gdb_agent_get_raw_reg (const unsigned char *raw_regs, int regnum)
- + aarch64_ft_collect_regmap[regnum] * FT_CR_SIZE);
- }
-
-+/* Return target_desc to use for IPA, given the tdesc index passed by
-+ gdbserver. Index is ignored, since we have only one tdesc
-+ at the moment. */
-+
-+const struct target_desc *
-+get_ipa_tdesc (int idx)
-+{
-+ return tdesc_aarch64;
-+}
-+
- void
- initialize_low_tracepoint (void)
- {
- init_registers_aarch64 ();
-- ipa_tdesc = tdesc_aarch64;
- }
-diff --git a/gdb/gdbserver/linux-amd64-ipa.c b/gdb/gdbserver/linux-amd64-ipa.c
-index 2eeedcd..f9c72a0 100644
---- a/gdb/gdbserver/linux-amd64-ipa.c
-+++ b/gdb/gdbserver/linux-amd64-ipa.c
-@@ -20,6 +20,7 @@
-
- #include "server.h"
- #include "tracepoint.h"
-+#include "linux-x86-tdesc.h"
-
- /* Defined in auto-generated file amd64-linux.c. */
- void init_registers_amd64_linux (void);
-@@ -166,9 +167,37 @@ supply_static_tracepoint_registers (struct regcache *regcache,
-
- #endif /* HAVE_UST */
-
-+/* Return target_desc to use for IPA, given the tdesc index passed by
-+ gdbserver. */
-+
-+const struct target_desc *
-+get_ipa_tdesc (int idx)
-+{
-+ switch (idx)
-+ {
-+ case X86_TDESC_SSE:
-+ return tdesc_amd64_linux;
-+ case X86_TDESC_AVX:
-+ return tdesc_amd64_avx_linux;
-+ case X86_TDESC_MPX:
-+ return tdesc_amd64_mpx_linux;
-+ case X86_TDESC_AVX_MPX:
-+ return tdesc_amd64_avx_mpx_linux;
-+ case X86_TDESC_AVX512:
-+ return tdesc_amd64_avx512_linux;
-+ default:
-+ internal_error (__FILE__, __LINE__,
-+ "unknown ipa tdesc index: %d", idx);
-+ return tdesc_amd64_linux;
-+ }
-+}
-+
- void
- initialize_low_tracepoint (void)
- {
- init_registers_amd64_linux ();
-- ipa_tdesc = tdesc_amd64_linux;
-+ init_registers_amd64_avx_linux ();
-+ init_registers_amd64_avx_mpx_linux ();
-+ init_registers_amd64_mpx_linux ();
-+ init_registers_amd64_avx512_linux ();
- }
-diff --git a/gdb/gdbserver/linux-i386-ipa.c b/gdb/gdbserver/linux-i386-ipa.c
-index 11dc038..d7a8e7d 100644
---- a/gdb/gdbserver/linux-i386-ipa.c
-+++ b/gdb/gdbserver/linux-i386-ipa.c
-@@ -21,6 +21,7 @@
- #include "server.h"
- #include <sys/mman.h>
- #include "tracepoint.h"
-+#include "linux-x86-tdesc.h"
-
- /* GDB register numbers. */
-
-@@ -47,10 +48,6 @@ enum i386_gdb_regnum
-
- #define i386_num_regs 16
-
--/* Defined in auto-generated file i386-linux.c. */
--void init_registers_i386_linux (void);
--extern const struct target_desc *tdesc_i386_linux;
--
- #define FT_CR_EAX 15
- #define FT_CR_ECX 14
- #define FT_CR_EDX 13
-@@ -247,10 +244,40 @@ initialize_fast_tracepoint_trampoline_buffer (void)
- }
- }
-
-+/* Return target_desc to use for IPA, given the tdesc index passed by
-+ gdbserver. */
-+
-+const struct target_desc *
-+get_ipa_tdesc (int idx)
-+{
-+ switch (idx)
-+ {
-+ case X86_TDESC_MMX:
-+ return tdesc_i386_mmx_linux;
-+ case X86_TDESC_SSE:
-+ return tdesc_i386_linux;
-+ case X86_TDESC_AVX:
-+ return tdesc_i386_avx_linux;
-+ case X86_TDESC_MPX:
-+ return tdesc_i386_mpx_linux;
-+ case X86_TDESC_AVX_MPX:
-+ return tdesc_i386_avx_mpx_linux;
-+ case X86_TDESC_AVX512:
-+ return tdesc_i386_avx512_linux;
-+ default:
-+ internal_error (__FILE__, __LINE__,
-+ "unknown ipa tdesc index: %d", idx);
-+ return tdesc_i386_linux;
-+ }
-+}
-+
- void
- initialize_low_tracepoint (void)
- {
-+ init_registers_i386_mmx_linux ();
- init_registers_i386_linux ();
-- ipa_tdesc = tdesc_i386_linux;
-+ init_registers_i386_avx_linux ();
-+ init_registers_i386_mpx_linux ();
-+ init_registers_i386_avx512_linux ();
- initialize_fast_tracepoint_trampoline_buffer ();
- }
-diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
-index 8b025bd..a142c2c 100644
---- a/gdb/gdbserver/linux-low.c
-+++ b/gdb/gdbserver/linux-low.c
-@@ -6432,6 +6432,15 @@ linux_supports_catch_syscall (void)
- }
-
- static int
-+linux_get_ipa_tdesc_idx (void)
-+{
-+ if (the_low_target.get_ipa_tdesc_idx == NULL)
-+ return 0;
-+
-+ return (*the_low_target.get_ipa_tdesc_idx) ();
-+}
-+
-+static int
- linux_supports_tracepoints (void)
- {
- if (*the_low_target.supports_tracepoints == NULL)
-@@ -7408,6 +7417,7 @@ static struct target_ops linux_target_ops = {
- linux_breakpoint_kind_from_current_state,
- linux_supports_software_single_step,
- linux_supports_catch_syscall,
-+ linux_get_ipa_tdesc_idx,
- };
-
- #ifdef HAVE_LINUX_REGSETS
-diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
-index 4ec8550..d4946c1 100644
---- a/gdb/gdbserver/linux-low.h
-+++ b/gdb/gdbserver/linux-low.h
-@@ -246,6 +246,9 @@ struct linux_target_ops
- due to SYSCALL_SIGTRAP. */
- void (*get_syscall_trapinfo) (struct regcache *regcache,
- int *sysno, int *sysret);
-+
-+ /* See target.h. */
-+ int (*get_ipa_tdesc_idx) (void);
- };
-
- extern struct linux_target_ops the_low_target;
-diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
-index 0c4954a..2535959 100644
---- a/gdb/gdbserver/linux-x86-low.c
-+++ b/gdb/gdbserver/linux-x86-low.c
-@@ -45,57 +45,7 @@
- #include "nat/linux-nat.h"
- #include "nat/x86-linux.h"
- #include "nat/x86-linux-dregs.h"
--
--#ifdef __x86_64__
--/* Defined in auto-generated file amd64-linux.c. */
--void init_registers_amd64_linux (void);
--extern const struct target_desc *tdesc_amd64_linux;
--
--/* Defined in auto-generated file amd64-avx-linux.c. */
--void init_registers_amd64_avx_linux (void);
--extern const struct target_desc *tdesc_amd64_avx_linux;
--
--/* Defined in auto-generated file amd64-avx512-linux.c. */
--void init_registers_amd64_avx512_linux (void);
--extern const struct target_desc *tdesc_amd64_avx512_linux;
--
--/* Defined in auto-generated file amd64-mpx-linux.c. */
--void init_registers_amd64_mpx_linux (void);
--extern const struct target_desc *tdesc_amd64_mpx_linux;
--
--/* Defined in auto-generated file x32-linux.c. */
--void init_registers_x32_linux (void);
--extern const struct target_desc *tdesc_x32_linux;
--
--/* Defined in auto-generated file x32-avx-linux.c. */
--void init_registers_x32_avx_linux (void);
--extern const struct target_desc *tdesc_x32_avx_linux;
--
--/* Defined in auto-generated file x32-avx512-linux.c. */
--void init_registers_x32_avx512_linux (void);
--extern const struct target_desc *tdesc_x32_avx512_linux;
--
--#endif
--
--/* Defined in auto-generated file i386-linux.c. */
--void init_registers_i386_linux (void);
--extern const struct target_desc *tdesc_i386_linux;
--
--/* Defined in auto-generated file i386-mmx-linux.c. */
--void init_registers_i386_mmx_linux (void);
--extern const struct target_desc *tdesc_i386_mmx_linux;
--
--/* Defined in auto-generated file i386-avx-linux.c. */
--void init_registers_i386_avx_linux (void);
--extern const struct target_desc *tdesc_i386_avx_linux;
--
--/* Defined in auto-generated file i386-avx512-linux.c. */
--void init_registers_i386_avx512_linux (void);
--extern const struct target_desc *tdesc_i386_avx512_linux;
--
--/* Defined in auto-generated file i386-mpx-linux.c. */
--void init_registers_i386_mpx_linux (void);
--extern const struct target_desc *tdesc_i386_mpx_linux;
-+#include "linux-x86-tdesc.h"
-
- #ifdef __x86_64__
- static struct target_desc *tdesc_amd64_linux_no_xml;
-@@ -839,6 +789,9 @@ x86_linux_read_description (void)
- case X86_XSTATE_AVX512_MASK:
- return tdesc_amd64_avx512_linux;
-
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_amd64_avx_mpx_linux;
-+
- case X86_XSTATE_MPX_MASK:
- return tdesc_amd64_mpx_linux;
-
-@@ -886,6 +839,9 @@ x86_linux_read_description (void)
- case (X86_XSTATE_MPX_MASK):
- return tdesc_i386_mpx_linux;
-
-+ case (X86_XSTATE_AVX_MPX_MASK):
-+ return tdesc_i386_avx_mpx_linux;
-+
- case (X86_XSTATE_AVX_MASK):
- return tdesc_i386_avx_linux;
-
-@@ -2891,6 +2847,42 @@ x86_supports_hardware_single_step (void)
- return 1;
- }
-
-+static int
-+x86_get_ipa_tdesc_idx (void)
-+{
-+ struct regcache *regcache = get_thread_regcache (current_thread, 0);
-+ const struct target_desc *tdesc = regcache->tdesc;
-+
-+#ifdef __x86_64__
-+ if (tdesc == tdesc_amd64_linux || tdesc == tdesc_amd64_linux_no_xml
-+ || tdesc == tdesc_x32_linux)
-+ return X86_TDESC_SSE;
-+ if (tdesc == tdesc_amd64_avx_linux || tdesc == tdesc_x32_avx_linux)
-+ return X86_TDESC_AVX;
-+ if (tdesc == tdesc_amd64_mpx_linux)
-+ return X86_TDESC_MPX;
-+ if (tdesc == tdesc_amd64_avx_mpx_linux)
-+ return X86_TDESC_AVX_MPX;
-+ if (tdesc == tdesc_amd64_avx512_linux || tdesc == tdesc_x32_avx512_linux)
-+ return X86_TDESC_AVX512;
-+#endif
-+
-+ if (tdesc == tdesc_i386_mmx_linux)
-+ return X86_TDESC_MMX;
-+ if (tdesc == tdesc_i386_linux || tdesc == tdesc_i386_linux_no_xml)
-+ return X86_TDESC_SSE;
-+ if (tdesc == tdesc_i386_avx_linux)
-+ return X86_TDESC_AVX;
-+ if (tdesc == tdesc_i386_mpx_linux)
-+ return X86_TDESC_MPX;
-+ if (tdesc == tdesc_i386_avx_mpx_linux)
-+ return X86_TDESC_AVX_MPX;
-+ if (tdesc == tdesc_i386_avx512_linux)
-+ return X86_TDESC_AVX512;
-+
-+ return 0;
-+}
-+
- /* This is initialized assuming an amd64 target.
- x86_arch_setup will correct it for i386 or amd64 targets. */
-
-@@ -2934,6 +2926,7 @@ struct linux_target_ops the_low_target =
- NULL, /* breakpoint_kind_from_current_state */
- x86_supports_hardware_single_step,
- x86_get_syscall_trapinfo,
-+ x86_get_ipa_tdesc_idx,
- };
-
- void
-@@ -2945,6 +2938,7 @@ initialize_low_arch (void)
- init_registers_amd64_avx_linux ();
- init_registers_amd64_avx512_linux ();
- init_registers_amd64_mpx_linux ();
-+ init_registers_amd64_avx_mpx_linux ();
-
- init_registers_x32_linux ();
- init_registers_x32_avx_linux ();
-@@ -2959,6 +2953,7 @@ initialize_low_arch (void)
- init_registers_i386_avx_linux ();
- init_registers_i386_avx512_linux ();
- init_registers_i386_mpx_linux ();
-+ init_registers_i386_avx_mpx_linux ();
-
- tdesc_i386_linux_no_xml = XNEW (struct target_desc);
- copy_target_description (tdesc_i386_linux_no_xml, tdesc_i386_linux);
-diff --git a/gdb/gdbserver/linux-x86-tdesc.h b/gdb/gdbserver/linux-x86-tdesc.h
-new file mode 100644
-index 0000000..720f50c
---- /dev/null
-+++ b/gdb/gdbserver/linux-x86-tdesc.h
-@@ -0,0 +1,98 @@
-+/* Low level support for x86 (i386 and x86-64), shared between gdbserver
-+ and IPA.
-+
-+ Copyright (C) 2016 Free Software Foundation, Inc.
-+
-+ This file is part of GDB.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 3 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+/* Note: since IPA obviously knows what ABI it's running on (i386 vs x86_64
-+ vs x32), it's sufficient to pass only the register set here. This,
-+ together with the ABI known at IPA compile time, maps to a tdesc. */
-+
-+enum x86_linux_tdesc {
-+ X86_TDESC_MMX = 0,
-+ X86_TDESC_SSE = 1,
-+ X86_TDESC_AVX = 2,
-+ X86_TDESC_MPX = 3,
-+ X86_TDESC_AVX_MPX = 4,
-+ X86_TDESC_AVX512 = 5,
-+};
-+
-+#ifdef __x86_64__
-+
-+#if defined __LP64__ || !defined IN_PROCESS_AGENT
-+/* Defined in auto-generated file amd64-linux.c. */
-+void init_registers_amd64_linux (void);
-+extern const struct target_desc *tdesc_amd64_linux;
-+
-+/* Defined in auto-generated file amd64-avx-linux.c. */
-+void init_registers_amd64_avx_linux (void);
-+extern const struct target_desc *tdesc_amd64_avx_linux;
-+
-+/* Defined in auto-generated file amd64-avx512-linux.c. */
-+void init_registers_amd64_avx512_linux (void);
-+extern const struct target_desc *tdesc_amd64_avx512_linux;
-+
-+/* Defined in auto-generated file amd64-avx-mpx-linux.c. */
-+void init_registers_amd64_avx_mpx_linux (void);
-+extern const struct target_desc *tdesc_amd64_avx_mpx_linux;
-+
-+/* Defined in auto-generated file amd64-mpx-linux.c. */
-+void init_registers_amd64_mpx_linux (void);
-+extern const struct target_desc *tdesc_amd64_mpx_linux;
-+#endif
-+
-+#if defined __ILP32__ || !defined IN_PROCESS_AGENT
-+/* Defined in auto-generated file x32-linux.c. */
-+void init_registers_x32_linux (void);
-+extern const struct target_desc *tdesc_x32_linux;
-+
-+/* Defined in auto-generated file x32-avx-linux.c. */
-+void init_registers_x32_avx_linux (void);
-+extern const struct target_desc *tdesc_x32_avx_linux;
-+
-+/* Defined in auto-generated file x32-avx512-linux.c. */
-+void init_registers_x32_avx512_linux (void);
-+extern const struct target_desc *tdesc_x32_avx512_linux;
-+#endif
-+
-+#endif
-+
-+#if defined __i386__ || !defined IN_PROCESS_AGENT
-+/* Defined in auto-generated file i386-linux.c. */
-+void init_registers_i386_linux (void);
-+extern const struct target_desc *tdesc_i386_linux;
-+
-+/* Defined in auto-generated file i386-mmx-linux.c. */
-+void init_registers_i386_mmx_linux (void);
-+extern const struct target_desc *tdesc_i386_mmx_linux;
-+
-+/* Defined in auto-generated file i386-avx-linux.c. */
-+void init_registers_i386_avx_linux (void);
-+extern const struct target_desc *tdesc_i386_avx_linux;
-+
-+/* Defined in auto-generated file i386-avx-mpx-linux.c. */
-+void init_registers_i386_avx_mpx_linux (void);
-+extern const struct target_desc *tdesc_i386_avx_mpx_linux;
-+
-+/* Defined in auto-generated file i386-avx512-linux.c. */
-+void init_registers_i386_avx512_linux (void);
-+extern const struct target_desc *tdesc_i386_avx512_linux;
-+
-+/* Defined in auto-generated file i386-mpx-linux.c. */
-+void init_registers_i386_mpx_linux (void);
-+extern const struct target_desc *tdesc_i386_mpx_linux;
-+#endif
-diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
-index 5af2051..4c14c20 100644
---- a/gdb/gdbserver/target.h
-+++ b/gdb/gdbserver/target.h
-@@ -471,6 +471,9 @@ struct target_ops
- /* Return 1 if the target supports catch syscall, 0 (or leave the
- callback NULL) otherwise. */
- int (*supports_catch_syscall) (void);
-+
-+ /* Return tdesc index for IPA. */
-+ int (*get_ipa_tdesc_idx) (void);
- };
-
- extern struct target_ops *the_target;
-@@ -550,6 +553,10 @@ int kill_inferior (int);
- (the_target->supports_catch_syscall ? \
- (*the_target->supports_catch_syscall) () : 0)
-
-+#define target_get_ipa_tdesc_idx() \
-+ (the_target->get_ipa_tdesc_idx \
-+ ? (*the_target->get_ipa_tdesc_idx) () : 0)
-+
- #define target_supports_tracepoints() \
- (the_target->supports_tracepoints \
- ? (*the_target->supports_tracepoints) () : 0)
-diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
-index 0671999..cc86677 100644
---- a/gdb/gdbserver/tracepoint.c
-+++ b/gdb/gdbserver/tracepoint.c
-@@ -134,6 +134,7 @@ trace_vdebug (const char *fmt, ...)
- # define ust_loaded IPA_SYM_EXPORTED_NAME (ust_loaded)
- # define helper_thread_id IPA_SYM_EXPORTED_NAME (helper_thread_id)
- # define cmd_buf IPA_SYM_EXPORTED_NAME (cmd_buf)
-+# define ipa_tdesc_idx IPA_SYM_EXPORTED_NAME (ipa_tdesc_idx)
- #endif
-
- #ifndef IN_PROCESS_AGENT
-@@ -171,6 +172,7 @@ struct ipa_sym_addresses
- CORE_ADDR addr_get_trace_state_variable_value;
- CORE_ADDR addr_set_trace_state_variable_value;
- CORE_ADDR addr_ust_loaded;
-+ CORE_ADDR addr_ipa_tdesc_idx;
- };
-
- static struct
-@@ -207,6 +209,7 @@ static struct
- IPA_SYM(get_trace_state_variable_value),
- IPA_SYM(set_trace_state_variable_value),
- IPA_SYM(ust_loaded),
-+ IPA_SYM(ipa_tdesc_idx),
- };
-
- static struct ipa_sym_addresses ipa_sym_addrs;
-@@ -3231,6 +3234,11 @@ cmd_qtstart (char *packet)
-
- *packet = '\0';
-
-+ /* Tell IPA about the correct tdesc. */
-+ if (write_inferior_integer (ipa_sym_addrs.addr_ipa_tdesc_idx,
-+ target_get_ipa_tdesc_idx ()))
-+ error ("Error setting ipa_tdesc_idx variable in lib");
-+
- /* Start out empty. */
- if (agent_loaded_p ())
- write_inferior_data_ptr (ipa_sym_addrs.addr_tracepoints, 0);
-@@ -4714,19 +4722,20 @@ collect_data_at_step (struct tracepoint_hit_ctx *ctx,
- #endif
-
- #ifdef IN_PROCESS_AGENT
--/* The target description used by the IPA. Given that the IPA library
-- is built for a specific architecture that is loaded into the
-- inferior, there only needs to be one such description per
-- build. */
--const struct target_desc *ipa_tdesc;
-+/* The target description index for IPA. Passed from gdbserver, used
-+ to select ipa_tdesc. */
-+EXTERN_C_PUSH
-+IP_AGENT_EXPORT_VAR int ipa_tdesc_idx;
-+EXTERN_C_POP
- #endif
-
- static struct regcache *
- get_context_regcache (struct tracepoint_hit_ctx *ctx)
- {
- struct regcache *regcache = NULL;
--
- #ifdef IN_PROCESS_AGENT
-+ const struct target_desc *ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
-+
- if (ctx->type == fast_tracepoint)
- {
- struct fast_tracepoint_ctx *fctx = (struct fast_tracepoint_ctx *) ctx;
-@@ -5799,11 +5808,13 @@ IP_AGENT_EXPORT_FUNC void
- gdb_collect (struct tracepoint *tpoint, unsigned char *regs)
- {
- struct fast_tracepoint_ctx ctx;
-+ const struct target_desc *ipa_tdesc;
-
- /* Don't do anything until the trace run is completely set up. */
- if (!tracing)
- return;
-
-+ ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
- ctx.base.type = fast_tracepoint;
- ctx.regs = regs;
- ctx.regcache_initted = 0;
-@@ -6660,6 +6671,7 @@ gdb_probe (const struct marker *mdata, void *probe_private,
- {
- struct tracepoint *tpoint;
- struct static_tracepoint_ctx ctx;
-+ const struct target_desc *ipa_tdesc;
-
- /* Don't do anything until the trace run is completely set up. */
- if (!tracing)
-@@ -6668,6 +6680,7 @@ gdb_probe (const struct marker *mdata, void *probe_private,
- return;
- }
-
-+ ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
- ctx.base.type = static_tracepoint;
- ctx.regcache_initted = 0;
- ctx.regs = regs;
-diff --git a/gdb/gdbserver/tracepoint.h b/gdb/gdbserver/tracepoint.h
-index cab89cf..e30f4f7 100644
---- a/gdb/gdbserver/tracepoint.h
-+++ b/gdb/gdbserver/tracepoint.h
-@@ -124,6 +124,7 @@ int handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc);
-
- #ifdef IN_PROCESS_AGENT
- void initialize_low_tracepoint (void);
-+const struct target_desc *get_ipa_tdesc (int idx);
- void supply_fast_tracepoint_registers (struct regcache *regcache,
- const unsigned char *regs);
- void supply_static_tracepoint_registers (struct regcache *regcache,
-@@ -131,9 +132,6 @@ void supply_static_tracepoint_registers (struct regcache *regcache,
- CORE_ADDR pc);
- void set_trampoline_buffer_space (CORE_ADDR begin, CORE_ADDR end,
- char *errmsg);
--
--extern const struct target_desc *ipa_tdesc;
--
- #else
- void stop_tracing (void);
-
-diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
-index af39e78..df47efd 100644
---- a/gdb/i386-linux-tdep.c
-+++ b/gdb/i386-linux-tdep.c
-@@ -47,6 +47,7 @@
- #include "features/i386/i386-linux.c"
- #include "features/i386/i386-mmx-linux.c"
- #include "features/i386/i386-mpx-linux.c"
-+#include "features/i386/i386-avx-mpx-linux.c"
- #include "features/i386/i386-avx-linux.c"
- #include "features/i386/i386-avx512-linux.c"
-
-@@ -630,6 +631,8 @@ i386_linux_core_read_description (struct gdbarch *gdbarch,
- return tdesc_i386_avx512_linux;
- case X86_XSTATE_MPX_MASK:
- return tdesc_i386_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_i386_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- return tdesc_i386_avx_linux;
- case X86_XSTATE_SSE_MASK:
-@@ -1018,5 +1021,6 @@ _initialize_i386_linux_tdep (void)
- initialize_tdesc_i386_mmx_linux ();
- initialize_tdesc_i386_avx_linux ();
- initialize_tdesc_i386_mpx_linux ();
-+ initialize_tdesc_i386_avx_mpx_linux ();
- initialize_tdesc_i386_avx512_linux ();
- }
-diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
-index ecc9e31..0cb0c4d 100644
---- a/gdb/i386-linux-tdep.h
-+++ b/gdb/i386-linux-tdep.h
-@@ -42,6 +42,7 @@ extern struct target_desc *tdesc_i386_linux;
- extern struct target_desc *tdesc_i386_mmx_linux;
- extern struct target_desc *tdesc_i386_avx_linux;
- extern struct target_desc *tdesc_i386_mpx_linux;
-+extern struct target_desc *tdesc_i386_avx_mpx_linux;
- extern struct target_desc *tdesc_i386_avx512_linux;
-
- /* Format of XSAVE extended state is:
-diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
-index b706463..1ec0a08 100644
---- a/gdb/i386-tdep.c
-+++ b/gdb/i386-tdep.c
-@@ -53,6 +53,7 @@
- #include "features/i386/i386.c"
- #include "features/i386/i386-avx.c"
- #include "features/i386/i386-mpx.c"
-+#include "features/i386/i386-avx-mpx.c"
- #include "features/i386/i386-avx512.c"
- #include "features/i386/i386-mmx.c"
-
-@@ -8618,6 +8619,8 @@ i386_target_description (uint64_t xcr0)
- case X86_XSTATE_MPX_AVX512_MASK:
- case X86_XSTATE_AVX512_MASK:
- return tdesc_i386_avx512;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_i386_avx_mpx;
- case X86_XSTATE_MPX_MASK:
- return tdesc_i386_mpx;
- case X86_XSTATE_AVX_MASK:
-@@ -8957,6 +8960,7 @@ Show Intel Memory Protection Extensions specific variables."),
- initialize_tdesc_i386_mmx ();
- initialize_tdesc_i386_avx ();
- initialize_tdesc_i386_mpx ();
-+ initialize_tdesc_i386_avx_mpx ();
- initialize_tdesc_i386_avx512 ();
-
- /* Tell remote stub that we support XML target description. */
-diff --git a/gdb/regformats/i386/amd64-avx-mpx-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
-new file mode 100644
-index 0000000..6d45324
---- /dev/null
-+++ b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
-@@ -0,0 +1,85 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/amd64-avx-mpx-linux.xml
-+name:amd64_avx_mpx_linux
-+xmltarget:amd64-avx-mpx-linux.xml
-+expedite:rbp,rsp,rip
-+64:rax
-+64:rbx
-+64:rcx
-+64:rdx
-+64:rsi
-+64:rdi
-+64:rbp
-+64:rsp
-+64:r8
-+64:r9
-+64:r10
-+64:r11
-+64:r12
-+64:r13
-+64:r14
-+64:r15
-+64:rip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+128:xmm8
-+128:xmm9
-+128:xmm10
-+128:xmm11
-+128:xmm12
-+128:xmm13
-+128:xmm14
-+128:xmm15
-+32:mxcsr
-+64:orig_rax
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:ymm8h
-+128:ymm9h
-+128:ymm10h
-+128:ymm11h
-+128:ymm12h
-+128:ymm13h
-+128:ymm14h
-+128:ymm15h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/amd64-avx-mpx.dat b/gdb/regformats/i386/amd64-avx-mpx.dat
-new file mode 100644
-index 0000000..d985641
---- /dev/null
-+++ b/gdb/regformats/i386/amd64-avx-mpx.dat
-@@ -0,0 +1,84 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/amd64-avx-mpx.xml
-+name:amd64_avx_mpx
-+xmltarget:amd64-avx-mpx.xml
-+expedite:rbp,rsp,rip
-+64:rax
-+64:rbx
-+64:rcx
-+64:rdx
-+64:rsi
-+64:rdi
-+64:rbp
-+64:rsp
-+64:r8
-+64:r9
-+64:r10
-+64:r11
-+64:r12
-+64:r13
-+64:r14
-+64:r15
-+64:rip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+128:xmm8
-+128:xmm9
-+128:xmm10
-+128:xmm11
-+128:xmm12
-+128:xmm13
-+128:xmm14
-+128:xmm15
-+32:mxcsr
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:ymm8h
-+128:ymm9h
-+128:ymm10h
-+128:ymm11h
-+128:ymm12h
-+128:ymm13h
-+128:ymm14h
-+128:ymm15h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/amd64-mpx-linux.dat b/gdb/regformats/i386/amd64-mpx-linux.dat
-index 7a05cfe..523ae01 100644
---- a/gdb/regformats/i386/amd64-mpx-linux.dat
-+++ b/gdb/regformats/i386/amd64-mpx-linux.dat
-@@ -61,22 +61,6 @@ expedite:rbp,rsp,rip
- 128:xmm15
- 32:mxcsr
- 64:orig_rax
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
--128:ymm8h
--128:ymm9h
--128:ymm10h
--128:ymm11h
--128:ymm12h
--128:ymm13h
--128:ymm14h
--128:ymm15h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/regformats/i386/amd64-mpx.dat b/gdb/regformats/i386/amd64-mpx.dat
-index 1b75f4d..43b8776 100644
---- a/gdb/regformats/i386/amd64-mpx.dat
-+++ b/gdb/regformats/i386/amd64-mpx.dat
-@@ -60,22 +60,6 @@ expedite:rbp,rsp,rip
- 128:xmm14
- 128:xmm15
- 32:mxcsr
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
--128:ymm8h
--128:ymm9h
--128:ymm10h
--128:ymm11h
--128:ymm12h
--128:ymm13h
--128:ymm14h
--128:ymm15h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/regformats/i386/i386-avx-mpx-linux.dat b/gdb/regformats/i386/i386-avx-mpx-linux.dat
-new file mode 100644
-index 0000000..831c476
---- /dev/null
-+++ b/gdb/regformats/i386/i386-avx-mpx-linux.dat
-@@ -0,0 +1,61 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/i386-avx-mpx-linux.xml
-+name:i386_avx_mpx_linux
-+xmltarget:i386-avx-mpx-linux.xml
-+expedite:ebp,esp,eip
-+32:eax
-+32:ecx
-+32:edx
-+32:ebx
-+32:esp
-+32:ebp
-+32:esi
-+32:edi
-+32:eip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+32:mxcsr
-+32:orig_eax
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/i386-avx-mpx.dat b/gdb/regformats/i386/i386-avx-mpx.dat
-new file mode 100644
-index 0000000..8caef75
---- /dev/null
-+++ b/gdb/regformats/i386/i386-avx-mpx.dat
-@@ -0,0 +1,60 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/i386-avx-mpx.xml
-+name:i386_avx_mpx
-+xmltarget:i386-avx-mpx.xml
-+expedite:ebp,esp,eip
-+32:eax
-+32:ecx
-+32:edx
-+32:ebx
-+32:esp
-+32:ebp
-+32:esi
-+32:edi
-+32:eip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+32:mxcsr
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/i386-mpx-linux.dat b/gdb/regformats/i386/i386-mpx-linux.dat
-index b52b68d..1dcdce9 100644
---- a/gdb/regformats/i386/i386-mpx-linux.dat
-+++ b/gdb/regformats/i386/i386-mpx-linux.dat
-@@ -45,14 +45,6 @@ expedite:ebp,esp,eip
- 128:xmm7
- 32:mxcsr
- 32:orig_eax
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/regformats/i386/i386-mpx.dat b/gdb/regformats/i386/i386-mpx.dat
-index 0ea420b..dda5164 100644
---- a/gdb/regformats/i386/i386-mpx.dat
-+++ b/gdb/regformats/i386/i386-mpx.dat
-@@ -44,14 +44,6 @@ expedite:ebp,esp,eip
- 128:xmm6
- 128:xmm7
- 32:mxcsr
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp
-index 15ad7e7..3a94471 100644
---- a/gdb/testsuite/gdb.trace/ftrace.exp
-+++ b/gdb/testsuite/gdb.trace/ftrace.exp
-@@ -132,7 +132,6 @@ proc test_fast_tracepoints {} {
- gdb_test "tfind pc *set_point" "Found trace frame .*" \
- "tfind set_point frame, first time"
-
-- setup_kfail "gdb/13808" "x86_64-*-linux*"
- gdb_test "print globvar" " = 1"
-
- gdb_test "tfind pc *set_point" "Found trace frame .*" \
-diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
-index 3cc18c1..107576f 100644
---- a/gdb/x86-linux-nat.c
-+++ b/gdb/x86-linux-nat.c
-@@ -215,6 +215,11 @@ x86_linux_read_description (struct target_ops *ops)
- return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
- else
- return tdesc_amd64_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ if (is_x32)
-+ return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
-+ else
-+ return tdesc_amd64_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- if (is_x32)
- return tdesc_x32_avx_linux;
-@@ -237,6 +242,8 @@ x86_linux_read_description (struct target_ops *ops)
- return tdesc_i386_avx512_linux;
- case X86_XSTATE_MPX_MASK:
- return tdesc_i386_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_i386_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- return tdesc_i386_avx_linux;
- default:
diff --git a/meta/recipes-devtools/gdb/gdb_7.11.1.bb b/meta/recipes-devtools/gdb/gdb_7.12.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb_7.11.1.bb
rename to meta/recipes-devtools/gdb/gdb_7.12.bb
--
2.7.4
^ permalink raw reply related
* [PATCH 0/2 V2] gdb 7.11.1 -> 7.12
From: Zheng Ruoqin @ 2016-12-15 10:46 UTC (permalink / raw)
To: openembedded-core
1) Upgrade gdb from 7.11.1 to 7.12
2) Delete 11 patches below, since they are integrated upstream.
0001-include-sys-types.h-for-mode_t.patch
0002-make-man-install-relative-to-DESTDIR.patch
0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
0005-Add-support-for-Renesas-SH-sh4-architecture.patch
0006-Dont-disable-libreadline.a-when-using-disable-static.patch
0007-use-asm-sgidefs.h.patch
0008-Use-exorted-definitions-of-SIGRTMIN.patch
0009-Change-order-of-CFLAGS.patch
0010-resolve-restrict-keyword-conflict.patch
0011-avx_mpx.patch
3) Change default gdb config to 7.12
Zheng Ruoqin (2):
[OE-core] [PATCH] gdb 7.11.1 -> 7.12
[OE-core] [PATCH] Change default gdb config
meta/conf/distro/include/tcmode-default.inc | 2 +-
meta/recipes-devtools/gdb/gdb-7.11.1.inc | 22 -
meta/recipes-devtools/gdb/gdb-7.12.inc | 11 +
...nadian_7.11.1.bb => gdb-cross-canadian_7.12.bb} | 0
.../gdb/{gdb-cross_7.11.1.bb => gdb-cross_7.12.bb} | 0
.../gdb/0001-include-sys-types.h-for-mode_t.patch | 30 -
...0002-make-man-install-relative-to-DESTDIR.patch | 28 -
...s-linux-nat-Define-_ABIO32-if-not-defined.patch | 37 -
...Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 53 -
...d-support-for-Renesas-SH-sh4-architecture.patch | 921 -------
...e-libreadline.a-when-using-disable-static.patch | 50 -
.../gdb/gdb/0007-use-asm-sgidefs.h.patch | 36 -
.../0008-Use-exorted-definitions-of-SIGRTMIN.patch | 50 -
.../gdb/gdb/0009-Change-order-of-CFLAGS.patch | 34 -
.../0010-resolve-restrict-keyword-conflict.patch | 48 -
meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch | 2601 --------------------
.../gdb/{gdb_7.11.1.bb => gdb_7.12.bb} | 0
17 files changed, 12 insertions(+), 3911 deletions(-)
delete mode 100644 meta/recipes-devtools/gdb/gdb-7.11.1.inc
create mode 100644 meta/recipes-devtools/gdb/gdb-7.12.inc
rename meta/recipes-devtools/gdb/{gdb-cross-canadian_7.11.1.bb => gdb-cross-canadian_7.12.bb} (100%)
rename meta/recipes-devtools/gdb/{gdb-cross_7.11.1.bb => gdb-cross_7.12.bb} (100%)
delete mode 100644 meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
rename meta/recipes-devtools/gdb/{gdb_7.11.1.bb => gdb_7.12.bb} (100%)
--
2.7.4
^ permalink raw reply
* [PATCH] [PATCH 2/2 V2] Change default gdb config
From: Zheng Ruoqin @ 2016-12-15 10:46 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <1481798810-36217-1-git-send-email-zhengrq.fnst@cn.fujitsu.com>
Change default gdb config to 7.12
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
meta/conf/distro/include/tcmode-default.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index ca3c5ec..16e1e55 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -25,7 +25,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
GCCVERSION ?= "6.2%"
SDKGCCVERSION ?= "${GCCVERSION}"
BINUVERSION ?= "2.27%"
-GDBVERSION ?= "7.11%"
+GDBVERSION ?= "7.12%"
GLIBCVERSION ?= "2.24"
UCLIBCVERSION ?= "1.0%"
LINUXLIBCVERSION ?= "4.8%"
--
2.7.4
^ permalink raw reply related
* Re: [PATCH] gdb 7.11.1 -> 7.12
From: Burton, Ross @ 2016-12-15 9:50 UTC (permalink / raw)
To: Zheng Ruoqin; +Cc: OE-core
In-Reply-To: <1481793382-34767-1-git-send-email-zhengrq.fnst@cn.fujitsu.com>
[-- Attachment #1: Type: text/plain, Size: 1064 bytes --]
On 15 December 2016 at 09:16, Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
wrote:
> 1) Upgrade gdb from 7.11.1 to 7.12
> 2) Delete 11 patches below, since they are integrated upstream.
> 0001-include-sys-types.h-for-mode_t.patch
> 0002-make-man-install-relative-to-DESTDIR.patch
> 0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
> 0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
> 0005-Add-support-for-Renesas-SH-sh4-architecture.patch
> 0006-Dont-disable-libreadline.a-when-using-disable-static.patch
> 0007-use-asm-sgidefs.h.patch
> 0008-Use-exorted-definitions-of-SIGRTMIN.patch
> 0009-Change-order-of-CFLAGS.patch
> 0010-resolve-restrict-keyword-conflict.patch
> 0011-avx_mpx.patch
>
NOTE: preferred version 7.11% of gdb not available (for item gdb)
NOTE: versions of gdb available: 7.12
This would be because the preferred version is locked in oe-core:
meta/conf/distro/include/tcmode-default.inc:GDBVERSION ?= "7.11%"
Please also update that reference.
Ross
[-- Attachment #2: Type: text/html, Size: 1949 bytes --]
^ permalink raw reply
* Re: [PATCH] glibc: add -fno-builtin-strlen when not using -O2
From: Andre McCurdy @ 2016-12-15 9:28 UTC (permalink / raw)
To: Randy MacLeod; +Cc: Patches and discussions about the oe-core layer
In-Reply-To: <00b0154b-3278-87e2-a8f0-48e8be3c309d@windriver.com>
On Wed, Dec 14, 2016 at 5:04 PM, Randy MacLeod
<randy.macleod@windriver.com> wrote:
> On 2016-12-13 04:16 AM, Andre McCurdy wrote:
>>
>> On Mon, Dec 12, 2016 at 9:14 PM, Huang, Jie (Jackie)
>> <Jackie.Huang@windriver.com> wrote:
>>>>
>>>> From: Andre McCurdy [mailto:armccurdy@gmail.com]
>>>> For reference, here's the patch I've been using. It's a slightly more
>>>> generic fix than the one in the KDE bug report.
>>>
>>> Thanks, It's a better patch and I will take it and send as v2 of this
>>> issue if you're
>>> not going to send it yourself, is it fine for you and could you provide
>>> extra info
>>> for the patch header like, upstream-status, written by or Signed-off-by?
>>
>> Sure. I forget why I didn't submit this at the time. The full patch is:
>>
>>> From d34e2a50ca5493f5a0ce9ccad83a36ac33689266 Mon Sep 17 00:00:00 2001
>>
>> From: Andre McCurdy <armccurdy@gmail.com>
>> Date: Fri, 12 Feb 2016 18:22:12 -0800
>> Subject: [PATCH] make ld-XXX.so strlen intercept optional
>>
>> Hack: Depending on how glibc was compiled (e.g. optimised for size or
>> built with _FORTIFY_SOURCE enabled) the strlen symbol might not be
>> found in ld-XXX.so. Therefore although we should still try to
>> intercept it, don't make it mandatory to do so.
>>
>> Upstream-Status: Inappropriate
>
> Can you explain why it's not appropriate for upstream?
Because it doesn't take into account the main reason why valgrind
tries to find a strlen symbol in ld-XXX.so, ie as a sanity check that
debug symbols for ld-XXX.so are available. In OE core, it's OK to
relax the sanity check because we ensure that symbols are available
via an RRECOMMENDS in the valgrind recipe:
# valgrind needs debug information for ld.so at runtime in order to
# redirect functions like strlen.
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
However applying my patch (or the KDE patch referenced by Khem - which
is an even bigger hack) in a build environment which doesn't try to
make the same guarantees might be dangerous.
For reference, Buildroot handles the problem by never fully stripping ld-XXX.so
https://github.com/buildroot/buildroot/commit/1edb4c51dee78d7d26700c037f29558e73d27ee0
> Does valgrind not support running with different optimizations
> of glibc?
Apparently not, but you should probably ask that question on the
valgrind lists rather than here.
A solution which may be more suitable for upstream would be for
valgrind to check for a number of different symbols (rather than just
strlen) and only generate a fatal error if none can be found. That's
not a trivial patch though.
>> Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
>> ---
>> coregrind/m_redir.c | 13 ++++++++++++-
>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
>> index 7e4df8d..640a346 100644
>> --- a/coregrind/m_redir.c
>> +++ b/coregrind/m_redir.c
>> @@ -1220,7 +1220,18 @@ static void add_hardwired_spec (const HChar*
>> sopatt, const HChar* fnpatt,
>> spec->from_fnpatt = CONST_CAST(HChar *,fnpatt);
>> spec->to_addr = to_addr;
>> spec->isWrap = False;
>> - spec->mandatory = mandatory;
>> +
>> + /* Hack: Depending on how glibc was compiled (e.g. optimised for size
>> or
>> + built with _FORTIFY_SOURCE enabled) the strlen symbol might not be
>> found.
>> + Therefore although we should still try to intercept it, don't make
>> it
>> + mandatory to do so. We over-ride "mandatory" here to avoid the need
>> to
>> + patch the many different architecture specific callers to
>> + add_hardwired_spec(). */
>> + if (0==VG_(strcmp)("strlen", fnpatt))
>> + spec->mandatory = NULL;
>
>
> I know that Jackie has a v2 out but since the interested parties are
> CCed here, and since this is marked as a hack, would there
> be any value in issuing a warning:
>
> #warning "strlen() will not be tracked due to glibc optimization level"
>
> or something like that. Maybe it's overkill since strlen is (should be?)
> side-effect free but I thought I'd share the thought.
>
> What's the right thing to do upstream after we have this hack merged
> locally to fix our ptests?
>
> ../Randy
>
>> + else
>> + spec->mandatory = mandatory;
>> +
>> /* VARIABLE PARTS */
>> spec->mark = False; /* not significant */
>> spec->done = False; /* not significant */
>>
>
>
> --
> # Randy MacLeod. SMTS, Linux, Wind River
> Direct: 613.963.1350 | 350 Terry Fox Drive, Suite 200, Ottawa, ON, Canada,
> K2K 2W5
^ permalink raw reply
* [PATCH] gdb 7.11.1 -> 7.12
From: Zheng Ruoqin @ 2016-12-15 9:16 UTC (permalink / raw)
To: openembedded-core
1) Upgrade gdb from 7.11.1 to 7.12
2) Delete 11 patches below, since they are integrated upstream.
0001-include-sys-types.h-for-mode_t.patch
0002-make-man-install-relative-to-DESTDIR.patch
0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
0005-Add-support-for-Renesas-SH-sh4-architecture.patch
0006-Dont-disable-libreadline.a-when-using-disable-static.patch
0007-use-asm-sgidefs.h.patch
0008-Use-exorted-definitions-of-SIGRTMIN.patch
0009-Change-order-of-CFLAGS.patch
0010-resolve-restrict-keyword-conflict.patch
0011-avx_mpx.patch
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
meta/recipes-devtools/gdb/gdb-7.11.1.inc | 22 -
meta/recipes-devtools/gdb/gdb-7.12.inc | 11 +
...nadian_7.11.1.bb => gdb-cross-canadian_7.12.bb} | 0
.../gdb/{gdb-cross_7.11.1.bb => gdb-cross_7.12.bb} | 0
.../gdb/0001-include-sys-types.h-for-mode_t.patch | 30 -
...0002-make-man-install-relative-to-DESTDIR.patch | 28 -
...s-linux-nat-Define-_ABIO32-if-not-defined.patch | 37 -
...Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 53 -
...d-support-for-Renesas-SH-sh4-architecture.patch | 921 -------
...e-libreadline.a-when-using-disable-static.patch | 50 -
.../gdb/gdb/0007-use-asm-sgidefs.h.patch | 36 -
.../0008-Use-exorted-definitions-of-SIGRTMIN.patch | 50 -
.../gdb/gdb/0009-Change-order-of-CFLAGS.patch | 34 -
.../0010-resolve-restrict-keyword-conflict.patch | 48 -
meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch | 2601 --------------------
.../gdb/{gdb_7.11.1.bb => gdb_7.12.bb} | 0
16 files changed, 11 insertions(+), 3910 deletions(-)
delete mode 100644 meta/recipes-devtools/gdb/gdb-7.11.1.inc
create mode 100644 meta/recipes-devtools/gdb/gdb-7.12.inc
rename meta/recipes-devtools/gdb/{gdb-cross-canadian_7.11.1.bb => gdb-cross-canadian_7.12.bb} (100%)
rename meta/recipes-devtools/gdb/{gdb-cross_7.11.1.bb => gdb-cross_7.12.bb} (100%)
delete mode 100644 meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
delete mode 100644 meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
rename meta/recipes-devtools/gdb/{gdb_7.11.1.bb => gdb_7.12.bb} (100%)
diff --git a/meta/recipes-devtools/gdb/gdb-7.11.1.inc b/meta/recipes-devtools/gdb/gdb-7.11.1.inc
deleted file mode 100644
index d9dfe6f..0000000
--- a/meta/recipes-devtools/gdb/gdb-7.11.1.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
-
-SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
- file://0001-include-sys-types.h-for-mode_t.patch \
- file://0002-make-man-install-relative-to-DESTDIR.patch \
- file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
- file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
- file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \
- file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \
- file://0007-use-asm-sgidefs.h.patch \
- file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \
- file://0009-Change-order-of-CFLAGS.patch \
- file://0010-resolve-restrict-keyword-conflict.patch \
- file://0011-avx_mpx.patch \
-"
-
-SRC_URI[md5sum] = "5aa71522e488e358243917967db87476"
-SRC_URI[sha256sum] = "e9216da4e3755e9f414c1aa0026b626251dfc57ffe572a266e98da4f6988fc70"
diff --git a/meta/recipes-devtools/gdb/gdb-7.12.inc b/meta/recipes-devtools/gdb/gdb-7.12.inc
new file mode 100644
index 0000000..68acef6
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb-7.12.inc
@@ -0,0 +1,11 @@
+LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
+
+SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "a0a3a00f7499b0c5278ba8676745d180"
+SRC_URI[sha256sum] = "834ff3c5948b30718343ea57b11cbc3235d7995c6a4f3a5cecec8c8114164f94"
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.1.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_7.12.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross-canadian_7.12.bb
diff --git a/meta/recipes-devtools/gdb/gdb-cross_7.11.1.bb b/meta/recipes-devtools/gdb/gdb-cross_7.12.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross_7.11.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross_7.12.bb
diff --git a/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch b/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
deleted file mode 100644
index 0042c00..0000000
--- a/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From fddd7178915968acf680814411b8b3cb137d0587 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Jan 2016 18:18:52 -0800
-Subject: [PATCH 01/10] include sys/types.h for mode_t
-
-mode_t is used in target.h, so we need to include sys/types.h to get the
-defintion
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- gdb/gdbserver/target.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
-index 5af2051..f42c510 100644
---- a/gdb/gdbserver/target.h
-+++ b/gdb/gdbserver/target.h
-@@ -28,6 +28,7 @@
- #include "target/waitstatus.h"
- #include "mem-break.h"
- #include "btrace-common.h"
-+#include <sys/types.h>
-
- struct emit_ops;
- struct buffer;
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch b/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
deleted file mode 100644
index defed62..0000000
--- a/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3229cb09033eeb5003a08d91fa9d43be8ba4c86b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:27:55 +0000
-Subject: [PATCH 02/10] make man install relative to DESTDIR
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sim/common/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in
-index a05f507..8d0fa64 100644
---- a/sim/common/Makefile.in
-+++ b/sim/common/Makefile.in
-@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
- datarootdir = @datarootdir@
- datadir = @datadir@
- mandir = @mandir@
--man1dir = $(mandir)/man1
-+man1dir = $(DESTDIR)$(mandir)/man1
- infodir = @infodir@
- includedir = @includedir@
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
deleted file mode 100644
index bac7939..0000000
--- a/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 88e67caed662d8344c8db56176c9f1221e6cd2a2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 23 Mar 2016 06:30:09 +0000
-Subject: [PATCH 03/10] mips-linux-nat: Define _ABIO32 if not defined
-
-This helps building gdb on mips64 on musl, since
-musl does not provide sgidefs.h this define is
-only defined when GCC is using o32 ABI, in that
-case gcc emits it as built-in define and hence
-it works ok for mips32
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- gdb/mips-linux-nat.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index bfe9fcb..449b43a 100644
---- a/gdb/mips-linux-nat.c
-+++ b/gdb/mips-linux-nat.c
-@@ -46,6 +46,11 @@
- #define PTRACE_GET_THREAD_AREA 25
- #endif
-
-+/* musl does not define and relies on compiler built-in macros for it */
-+#ifndef _ABIO32
-+#define _ABIO32 1
-+#endif
-+
- /* Assume that we have PTRACE_GETREGS et al. support. If we do not,
- we'll clear this and use PTRACE_PEEKUSER instead. */
- static int have_ptrace_regsets = 1;
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
deleted file mode 100644
index a5fe2a2..0000000
--- a/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From bec564eb454bc7fc6ecfcb573aa53040bf39c1d5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 16:46:03 +0000
-Subject: [PATCH 04/10] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC
- systems
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gdbserver/linux-ppc-low.c | 6 ++++++
- gdb/nat/ppc-linux.h | 6 ++++++
- 2 files changed, 12 insertions(+)
-
-diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
-index 2145c50..777905d 100644
---- a/gdb/gdbserver/linux-ppc-low.c
-+++ b/gdb/gdbserver/linux-ppc-low.c
-@@ -21,7 +21,13 @@
- #include "linux-low.h"
-
- #include <elf.h>
-+#if !defined(__GLIBC__)
-+# define pt_regs uapi_pt_regs
-+#endif
- #include <asm/ptrace.h>
-+#if !defined(__GLIBC__)
-+# undef pt_regs
-+#endif
-
- #include "nat/ppc-linux.h"
-
-diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
-index 85fbcd8..cbec9c5 100644
---- a/gdb/nat/ppc-linux.h
-+++ b/gdb/nat/ppc-linux.h
-@@ -18,7 +18,13 @@
- #ifndef PPC_LINUX_H
- #define PPC_LINUX_H 1
-
-+#if !defined(__GLIBC__)
-+# define pt_regs uapi_pt_regs
-+#endif
- #include <asm/ptrace.h>
-+#if !defined(__GLIBC__)
-+# undef pt_regs
-+#endif
- #include <asm/cputable.h>
-
- /* This sometimes isn't defined. */
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch b/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
deleted file mode 100644
index 8809e6f..0000000
--- a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
+++ /dev/null
@@ -1,921 +0,0 @@
-From 8c5fe58c5a0044ddb517a41b277ed27fb3d3bedc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:31:12 +0000
-Subject: [PATCH 05/10] Add support for Renesas SH (sh4) architecture.
-
-gdb (7.4-1~cvs20111117.2) experimental; urgency=low
- .
- * Add Renesas SH (sh4) support (Closes: #576242)
- - Thanks Nobuhiro Iwamatsu, Takashi Yoshii.
-Author: Hector Oron <zumbi@debian.org>
-Bug-Debian: http://bugs.debian.org/576242
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/Makefile.in | 1 +
- gdb/configure.host | 1 +
- gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++++++++++
- gdb/sh-tdep.c | 54 ++--
- gdb/sh-tdep.h | 49 ++++
- gdb/testsuite/gdb.asm/asm-source.exp | 5 +
- gdb/testsuite/gdb.asm/sh.inc | 3 +-
- gdb/testsuite/gdb.base/annota1.c | 3 +
- gdb/testsuite/gdb.base/annota3.c | 4 +
- gdb/testsuite/gdb.base/sigall.c | 3 +
- gdb/testsuite/gdb.base/signals.c | 4 +
- 11 files changed, 617 insertions(+), 29 deletions(-)
-
-diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index ec2af52..df8e84d 100644
---- a/gdb/Makefile.in
-+++ b/gdb/Makefile.in
-@@ -1736,6 +1736,7 @@ ALLDEPFILES = \
- score-tdep.c \
- ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \
- sh-tdep.c sh64-tdep.c shnbsd-tdep.c shnbsd-nat.c \
-+ sh-linux-tdep.c sh-linux-nat.c \
- sol2-tdep.c \
- solib-svr4.c \
- sparc-linux-nat.c sparc-linux-tdep.c \
-diff --git a/gdb/configure.host b/gdb/configure.host
-index ef265eb..322a1e2 100644
---- a/gdb/configure.host
-+++ b/gdb/configure.host
-@@ -149,6 +149,7 @@ powerpc*-*-linux*) gdb_host=linux ;;
-
- s390*-*-linux*) gdb_host=linux ;;
-
-+sh*-*-linux*) gdb_host=linux ;;
- sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
- gdb_host=nbsd ;;
- sh*-*-openbsd*) gdb_host=nbsd ;;
-diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
-index 2418d25..ac8ea9e 100644
---- a/gdb/sh-linux-tdep.c
-+++ b/gdb/sh-linux-tdep.c
-@@ -18,14 +18,37 @@
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
- #include "defs.h"
-+#include "gdbcore.h"
-+#include "frame.h"
-+#include "frame-base.h"
-+#include "frame-unwind.h"
-+#include "dwarf2-frame.h"
-+#include "value.h"
-+#include "regcache.h"
-+#include "inferior.h"
- #include "osabi.h"
-
-+#include "reggroups.h"
-+#include "arch-utils.h"
-+#include "floatformat.h"
- #include "solib-svr4.h"
- #include "symtab.h"
-+#include "gdb_string.h"
-+#include "command.h"
-+#include "gdb_assert.h"
-
- #include "trad-frame.h"
- #include "tramp-frame.h"
-
-+#include <sys/ptrace.h>
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/user.h>
-+#include <sys/syscall.h>
-+
-+#include <asm/ptrace.h>
-+
-+#include "regset.h"
- #include "glibc-tdep.h"
- #include "sh-tdep.h"
- #include "linux-tdep.h"
-@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
- sh_linux_rt_sigreturn_init
- };
-
-+/* Recognizing signal handler frames. */
-+
-+/* GNU/Linux has two flavors of signals. Normal signal handlers, and
-+ "realtime" (RT) signals. The RT signals can provide additional
-+ information to the signal handler if the SA_SIGINFO flag is set
-+ when establishing a signal handler using `sigaction'. It is not
-+ unlikely that future versions of GNU/Linux will support SA_SIGINFO
-+ for normal signals too. */
-+
-+/* When the SH Linux kernel calls a signal handler and the
-+ SA_RESTORER flag isn't set, the return address points to a bit of
-+ code on the stack. This function returns whether the PC appears to
-+ be within this bit of code.
-+
-+ The instruction sequence for normal signals is
-+ mov.w 1f,r3
-+ trapa #16
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ 1: .word __NR_sigreturn
-+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077.
-+
-+ Checking for the code sequence should be somewhat reliable, because
-+ the effect is to call the system call sigreturn. This is unlikely
-+ to occur anywhere other than a signal trampoline.
-+
-+ It kind of sucks that we have to read memory from the process in
-+ order to identify a signal trampoline, but there doesn't seem to be
-+ any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to
-+ only call us if no function name could be identified, which should
-+ be the case since the code is on the stack.
-+
-+ Detection of signal trampolines for handlers that set the
-+ SA_RESTORER flag is in general not possible. Unfortunately this is
-+ what the GNU C Library has been doing for quite some time now.
-+ However, as of version 2.1.2, the GNU C Library uses signal
-+ trampolines (named __restore and __restore_rt) that are identical
-+ to the ones used by the kernel. Therefore, these trampolines are
-+ supported too. */
-+
-+#define MOVW(n) (0x9300|((n)-2)) /* Move mem word at PC+n to R3 */
-+#define TRAP16 0xc310 /* Syscall w/no args (NR in R3) */
-+#define OR_R0_R0 0x200b /* or r0,r0 (insert to avoid hardware bug) */
-+
-+#define LINUX_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
-+#define LINUX_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
-+#define LINUX_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_sigtramp_code[] =
-+{
-+ LINUX_SIGTRAMP_INSN0,
-+ LINUX_SIGTRAMP_INSN1,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ __NR_sigreturn
-+};
-+
-+#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)
-+
-+/* If PC is in a sigtramp routine, return the address of the start of
-+ the routine. Otherwise, return 0. */
-+
-+static CORE_ADDR
-+sh_linux_sigtramp_start (struct frame_info *next_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (next_frame);
-+ gdb_byte buf[LINUX_SIGTRAMP_LEN];
-+
-+ /* We only recognize a signal trampoline if PC is at the start of
-+ one of the three instructions. We optimize for finding the PC at
-+ the start, as will be the case when the trampoline is not the
-+ first frame on the stack. We assume that in the case where the
-+ PC is not at the start of the instruction sequence, there will be
-+ a few trailing readable bytes on the stack. */
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+ return 0;
-+
-+ if (buf[0] != LINUX_SIGTRAMP_INSN0)
-+ {
-+ if (buf[0] != LINUX_SIGTRAMP_INSN1)
-+ return 0;
-+
-+ pc -= 2;
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+ return 0;
-+ }
-+
-+ if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0)
-+ return 0;
-+
-+ return pc;
-+}
-+
-+/* This function does the same for RT signals. Here the instruction
-+ sequence is
-+ mov.w 1f,r3
-+ trapa #16
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ 1: .word __NR_rt_sigreturn
-+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad.
-+
-+ The effect is to call the system call rt_sigreturn. */
-+
-+#define LINUX_RT_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
-+#define LINUX_RT_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
-+#define LINUX_RT_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_rt_sigtramp_code[] =
-+{
-+ LINUX_RT_SIGTRAMP_INSN0,
-+ LINUX_RT_SIGTRAMP_INSN1,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ __NR_rt_sigreturn
-+};
-+
-+#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)
-+
-+/* If PC is in a RT sigtramp routine, return the address of the start
-+ of the routine. Otherwise, return 0. */
-+
-+static CORE_ADDR
-+sh_linux_rt_sigtramp_start (struct frame_info *next_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (next_frame);
-+ gdb_byte buf[LINUX_RT_SIGTRAMP_LEN];
-+
-+ /* We only recognize a signal trampoline if PC is at the start of
-+ one of the two instructions. We optimize for finding the PC at
-+ the start, as will be the case when the trampoline is not the
-+ first frame on the stack. We assume that in the case where the
-+ PC is not at the start of the instruction sequence, there will be
-+ a few trailing readable bytes on the stack. */
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN))
-+ return 0;
-+
-+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN0)
-+ {
-+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN1)
-+ return 0;
-+
-+ pc -= 2;
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf,
-+ LINUX_RT_SIGTRAMP_LEN))
-+ return 0;
-+ }
-+
-+ if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0)
-+ return 0;
-+
-+ return pc;
-+}
-+
-+/* Return whether PC is in a GNU/Linux sigtramp routine. */
-+
-+static int
-+sh_linux_sigtramp_p (struct frame_info *this_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (this_frame);
-+ char *name;
-+
-+ find_pc_partial_function (pc, &name, NULL, NULL);
-+
-+ /* If we have NAME, we can optimize the search. The trampolines are
-+ named __restore and __restore_rt. However, they aren't dynamically
-+ exported from the shared C library, so the trampoline may appear to
-+ be part of the preceding function. This should always be sigaction,
-+ __sigaction, or __libc_sigaction (all aliases to the same function). */
-+ if (name == NULL || strstr (name, "sigaction") != NULL)
-+ return (sh_linux_sigtramp_start (this_frame) != 0
-+ || sh_linux_rt_sigtramp_start (this_frame) != 0);
-+
-+ return (strcmp ("__restore", name) == 0
-+ || strcmp ("__restore_rt", name) == 0);
-+}
-+
-+/* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>. */
-+#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12
-+
-+
-+/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp
-+ routine, return the address of the associated sigcontext structure. */
-+
-+static CORE_ADDR
-+sh_linux_sigcontext_addr (struct frame_info *this_frame)
-+{
-+ CORE_ADDR pc;
-+ CORE_ADDR sp;
-+
-+ sp = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+
-+ pc = sh_linux_sigtramp_start (this_frame);
-+ if (pc)
-+ {
-+ return sp;
-+ }
-+
-+ pc = sh_linux_rt_sigtramp_start (this_frame);
-+ if (pc)
-+ {
-+ CORE_ADDR ucontext_addr;
-+
-+ /* The sigcontext structure is part of the user context. A
-+ pointer to the user context is passed as the third argument
-+ to the signal handler. */
-+ ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2);
-+ return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
-+ }
-+
-+ error ("Couldn't recognize signal trampoline.");
-+ return 0;
-+}
-+
-+/* Signal trampolines. */
-+extern struct sh_frame_cache *sh_alloc_frame_cache (void);
-+
-+static struct sh_frame_cache *
-+sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache)
-+{
-+ struct sh_frame_cache *cache;
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ());
-+ CORE_ADDR sigcontext_addr;
-+
-+ if (*this_cache)
-+ return *this_cache;
-+
-+ cache = sh_alloc_frame_cache ();
-+
-+ cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+ sigcontext_addr = tdep->sigcontext_addr (this_frame);
-+ if (tdep->sc_reg_offset)
-+ {
-+ int i;
-+
-+ gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS);
-+
-+ for (i = 0; i < tdep->sc_num_regs; i++)
-+ if (tdep->sc_reg_offset[i] != -1)
-+ cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i];
-+ }
-+
-+ *this_cache = cache;
-+ return cache;
-+}
-+
-+static void
-+sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache,
-+ struct frame_id *this_id)
-+{
-+ struct sh_frame_cache *cache =
-+ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+ (*this_id) = frame_id_build (cache->base + 64, cache->pc);
-+}
-+
-+extern struct value * sh_frame_prev_register ();
-+static struct value *
-+sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame,
-+ void **this_cache, int regnum)
-+{
-+ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+ return sh_frame_prev_register (this_frame, this_cache, regnum);
-+}
-+
-+static int
-+sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
-+ struct frame_info *this_frame,
-+ void **this_prologue_cache)
-+{
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
-+
-+ /* We shouldn't even bother if we don't have a sigcontext_addr
-+ handler. */
-+ if (tdep->sigcontext_addr == NULL)
-+ return 0;
-+
-+ if (tdep->sigtramp_p != NULL)
-+ {
-+ if (tdep->sigtramp_p (this_frame))
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct frame_unwind sh_linux_sigtramp_frame_unwind =
-+{
-+ SIGTRAMP_FRAME,
-+ sh_linux_sigtramp_frame_this_id,
-+ sh_linux_sigtramp_frame_prev_register,
-+ NULL,
-+ sh_linux_sigtramp_frame_sniffer
-+};
-+
-+/* Supply register REGNUM from the buffer specified by GREGS and LEN
-+ in the general-purpose register set REGSET to register cache
-+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
-+
-+void
-+sh_supply_gregset (const struct regset *regset, struct regcache *regcache,
-+ int regnum, const void *gregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ const char *regs = gregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_gregset);
-+
-+ for (i = 0; i < tdep->gregset_num_regs; i++)
-+ {
-+ if ((regnum == i || regnum == -1)
-+ && tdep->gregset_reg_offset[i] != -1)
-+ regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+ }
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+ it in the buffer specified by GREGS and LEN as described by the
-+ general-purpose register set REGSET. If REGNUM is -1, do this for
-+ all registers in REGSET. */
-+
-+void
-+sh_collect_gregset (const struct regset *regset,
-+ const struct regcache *regcache,
-+ int regnum, void *gregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ char *regs = gregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_gregset);
-+
-+ for (i = 0; i < tdep->gregset_num_regs; i++)
-+ {
-+ if ((regnum == i || regnum == -1)
-+ && tdep->gregset_reg_offset[i] != -1)
-+ regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+ }
-+}
-+
-+/* Supply register REGNUM from the buffer specified by FPREGS and LEN
-+ in the floating-point register set REGSET to register cache
-+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
-+
-+static void
-+sh_supply_fpregset (const struct regset *regset, struct regcache *regcache,
-+ int regnum, const void *fpregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ const char *regs = fpregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_fpregset);
-+ for (i = 0; i < 16; i++)
-+ {
-+ if (regnum == i+25 || regnum == -1)
-+ regcache_raw_supply (regcache, i+25, regs + i*4);
-+ }
-+ if (regnum == FPSCR_REGNUM || regnum == -1)
-+ regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4);
-+ if (regnum == FPUL_REGNUM || regnum == -1)
-+ regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+ it in the buffer specified by FPREGS and LEN as described by the
-+ floating-point register set REGSET. If REGNUM is -1, do this for
-+ all registers in REGSET. */
-+
-+static void
-+sh_collect_fpregset (const struct regset *regset,
-+ const struct regcache *regcache,
-+ int regnum, void *fpregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ char *regs = fpregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_fpregset);
-+ for (i = 0; i < 16; i++)
-+ {
-+ if (regnum == i+25 || regnum == -1)
-+ regcache_raw_collect (regcache, i+25, regs + i*4);
-+ }
-+ if (regnum == FPSCR_REGNUM || regnum == -1)
-+ regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4);
-+ if (regnum == FPUL_REGNUM || regnum == -1)
-+ regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Return the appropriate register set for the core section identified
-+ by SECT_NAME and SECT_SIZE. */
-+
-+const struct regset *
-+sh_linux_regset_from_core_section (struct gdbarch *gdbarch,
-+ const char *sect_name, size_t sect_size)
-+{
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+
-+ if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset)
-+ {
-+ if (tdep->gregset == NULL)
-+ tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset,
-+ sh_collect_gregset);
-+ return tdep->gregset;
-+ }
-+
-+ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset))
-+ {
-+ if (tdep->fpregset == NULL)
-+ tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset,
-+ sh_collect_fpregset);
-+ return tdep->fpregset;
-+ }
-+
-+ return NULL;
-+}
-+
-+/* The register sets used in GNU/Linux ELF core-dumps are identical to
-+ the register sets in `struct user' that are used for a.out
-+ core-dumps. These are also used by ptrace(2). The corresponding
-+ types are `elf_gregset_t' for the general-purpose registers (with
-+ `elf_greg_t' the type of a single GP register) and `elf_fpregset_t'
-+ for the floating-point registers.
-+
-+ Those types used to be available under the names `gregset_t' and
-+ `fpregset_t' too, and GDB used those names in the past. But those
-+ names are now used for the register sets used in the `mcontext_t'
-+ type, which have a different size and layout. */
-+
-+/* Mapping between the general-purpose registers in `struct user'
-+ format and GDB's register cache layout. */
-+
-+/* From <sys/reg.h>. */
-+static int sh_linux_gregset_reg_offset[] =
-+{
-+ 0, 4, 8, 12, 16, 20, 24, 28,
-+ 32, 36, 40, 44, 48, 52, 56, 60,
-+
-+ REG_PC*4, REG_PR*4, REG_GBR*4, -1,
-+ REG_MACH*4, REG_MACL*4, REG_SR*4,
-+};
-+
-+/* Mapping between the general-purpose registers in `struct
-+ sigcontext' format and GDB's register cache layout. */
-+
-+/* From <asm/sigcontext.h>. */
-+static int sh_linux_sc_reg_offset[] =
-+{
-+ 4, 8, 12, 16, 20, 24, 28, 32,
-+ 36, 40, 44, 48, 52, 56, 60, 64,
-+ 68, 72, 80, -1,
-+ 84, 88, 76
-+};
-+
- static void
- sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
- {
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+ bfd abfd;
-+
-+ tdep->gregset_reg_offset = sh_linux_gregset_reg_offset;
-+ tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset);
-+ tdep->sizeof_gregset = 23 * 4;
-+
-+ tdep->jb_pc_offset = 32; /* From <bits/setjmp.h>. */
-+
-+ tdep->sigtramp_p = sh_linux_sigtramp_p;
-+ tdep->sigcontext_addr = sh_linux_sigcontext_addr;
-+ tdep->sc_reg_offset = sh_linux_sc_reg_offset;
-+ tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset);
-+
-+ frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind);
-+
-+ /* If we have a register mapping, enable the generic core file
-+ support, unless it has already been enabled. */
-+ if (tdep->gregset_reg_offset
-+ && !gdbarch_regset_from_core_section_p (gdbarch))
-+ set_gdbarch_regset_from_core_section (gdbarch,
-+ sh_linux_regset_from_core_section);
-+
- linux_init_abi (info, gdbarch);
-
- /* GNU/Linux uses SVR4-style shared libraries. */
-diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
-index 336b48e..847b271 100644
---- a/gdb/sh-tdep.c
-+++ b/gdb/sh-tdep.c
-@@ -21,6 +21,9 @@
- sac@cygnus.com. */
-
- #include "defs.h"
-+#include "arch-utils.h"
-+#include "command.h"
-+#include "dummy-frame.h"
- #include "frame.h"
- #include "frame-base.h"
- #include "frame-unwind.h"
-@@ -35,6 +38,7 @@
- #include "arch-utils.h"
- #include "floatformat.h"
- #include "regcache.h"
-+#include "regset.h"
- #include "doublest.h"
- #include "osabi.h"
- #include "reggroups.h"
-@@ -67,23 +71,6 @@ static const char *const sh_cc_enum[] = {
-
- static const char *sh_active_calling_convention = sh_cc_gcc;
-
--#define SH_NUM_REGS 67
--
--struct sh_frame_cache
--{
-- /* Base address. */
-- CORE_ADDR base;
-- LONGEST sp_offset;
-- CORE_ADDR pc;
--
-- /* Flag showing that a frame has been created in the prologue code. */
-- int uses_fp;
--
-- /* Saved registers. */
-- CORE_ADDR saved_regs[SH_NUM_REGS];
-- CORE_ADDR saved_sp;
--};
--
- static int
- sh_is_renesas_calling_convention (struct type *func_type)
- {
-@@ -1043,7 +1030,7 @@ sh_treat_as_flt_p (struct type *type)
- return 0;
- /* Otherwise if the type of that member is float, the whole type is
- treated as float. */
-- if (TYPE_CODE (TYPE_FIELD_TYPE (type, 0)) == TYPE_CODE_FLT)
-+ if (TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, 0))) == TYPE_CODE_FLT)
- return 1;
- /* Otherwise it's not treated as float. */
- return 0;
-@@ -1093,7 +1080,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
- in four registers available. Loop thru args from first to last. */
- for (argnum = 0; argnum < nargs; argnum++)
- {
-- type = value_type (args[argnum]);
-+ type = check_typedef (value_type (args[argnum]));
- len = TYPE_LENGTH (type);
- val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
-
-@@ -1821,7 +1808,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
- reg->how = DWARF2_FRAME_REG_UNDEFINED;
- }
-
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_alloc_frame_cache (void)
- {
- struct sh_frame_cache *cache;
-@@ -1848,7 +1835,7 @@ sh_alloc_frame_cache (void)
- return cache;
- }
-
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- {
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
-@@ -1915,9 +1902,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- return cache;
- }
-
--static struct value *
--sh_frame_prev_register (struct frame_info *this_frame,
-- void **this_cache, int regnum)
-+struct value *
-+sh_frame_prev_register (struct frame_info *this_frame, void **this_cache,
-+ int regnum)
- {
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
- struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
-@@ -1931,7 +1918,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
- the current frame. Frob regnum so that we pull the value from
- the correct place. */
- if (regnum == gdbarch_pc_regnum (gdbarch))
-- regnum = PR_REGNUM;
-+ regnum = PR_REGNUM; /* XXX: really? */
-
- if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
- return frame_unwind_got_memory (this_frame, regnum,
-@@ -2240,8 +2227,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
- static struct gdbarch *
- sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- {
-- struct gdbarch *gdbarch;
- struct gdbarch_tdep *tdep;
-+ struct gdbarch *gdbarch;
-
- /* SH5 is handled entirely in sh64-tdep.c. */
- if (info.bfd_arch_info->mach == bfd_mach_sh5)
-@@ -2257,6 +2244,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- tdep = XCNEW (struct gdbarch_tdep);
- gdbarch = gdbarch_alloc (&info, tdep);
-
-+ /* General-purpose registers. */
-+ tdep->gregset = NULL;
-+ tdep->gregset_reg_offset = NULL;
-+ tdep->gregset_num_regs = 23;
-+ tdep->sizeof_gregset = 0;
-+
-+ /* Floating-point registers. */
-+ tdep->fpregset = NULL;
-+ tdep->sizeof_fpregset = 34*4;
-+
-+ tdep->jb_pc_offset = -1;
-+
- set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
- set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-@@ -2407,10 +2406,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- break;
- }
-
-+ dwarf2_append_unwinders (gdbarch);
-+
- /* Hook in ABI-specific overrides, if they have been registered. */
- gdbarch_init_osabi (info, gdbarch);
-
-- dwarf2_append_unwinders (gdbarch);
- frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind);
- frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
-
-diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
-index 666968f..62c65b5 100644
---- a/gdb/sh-tdep.h
-+++ b/gdb/sh-tdep.h
-@@ -21,6 +21,12 @@
-
- /* Contributed by Steve Chamberlain sac@cygnus.com. */
-
-+struct frame_info;
-+struct gdbarch;
-+struct reggroup;
-+struct regset;
-+struct regcache;
-+
- /* Registers for all SH variants. Used also by sh3-rom.c. */
- enum
- {
-@@ -29,6 +35,7 @@ enum
- ARG0_REGNUM = 4,
- ARGLAST_REGNUM = 7,
- FP_REGNUM = 14,
-+ SP_REGNUM = 15,
- PC_REGNUM = 16,
- PR_REGNUM = 17,
- GBR_REGNUM = 18,
-@@ -81,6 +88,24 @@ enum
- FV0_REGNUM = 76,
- FV_LAST_REGNUM = 79
- };
-+#define SH_NUM_REGS 67
-+
-+struct sh_frame_cache
-+{
-+ /* Base address. */
-+ CORE_ADDR base;
-+ LONGEST sp_offset;
-+ CORE_ADDR pc;
-+
-+ /* Flag showing that a frame has been created in the prologue code. */
-+ int uses_fp;
-+
-+ /* Saved registers. */
-+ CORE_ADDR saved_regs[SH_NUM_REGS];
-+ CORE_ADDR saved_sp;
-+};
-+
-+extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache);
-
- /* This structure describes a register in a core-file. */
- struct sh_corefile_regmap
-@@ -89,8 +114,32 @@ struct sh_corefile_regmap
- unsigned int offset;
- };
-
-+/* sh architecture specific information. */
- struct gdbarch_tdep
- {
-+ /* General-purpose registers. */
-+ struct regset *gregset;
-+ int *gregset_reg_offset;
-+ int gregset_num_regs;
-+ size_t sizeof_gregset;
-+
-+ /* Floating-point registers. */
-+ struct regset *fpregset;
-+ size_t sizeof_fpregset;
-+
-+ /* Offset of saved PC in jmp_buf. */
-+ int jb_pc_offset;
-+
-+ /* Detect sigtramp. */
-+ int (*sigtramp_p) (struct frame_info *);
-+
-+ /* Get address of sigcontext for sigtramp. */
-+ CORE_ADDR (*sigcontext_addr) (struct frame_info *);
-+
-+ /* Offset of registers in `struct sigcontext'. */
-+ int *sc_reg_offset;
-+ int sc_num_regs;
-+
- /* Non-NULL when debugging from a core file. Provides the offset
- where each general-purpose register is stored inside the associated
- core file section. */
-diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
-index 6d9aef8..5b66b42 100644
---- a/gdb/testsuite/gdb.asm/asm-source.exp
-+++ b/gdb/testsuite/gdb.asm/asm-source.exp
-@@ -116,6 +116,11 @@ switch -glob -- [istarget] {
- append link-flags " -m elf32ppc"
- }
- }
-+ "sh*-linux*" {
-+ set asm-arch sh-linux
-+ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
-+ set debug-flags "-gdwarf-2"
-+ }
- "sh*-*-*" {
- set asm-arch sh
- set debug-flags "-gdwarf-2"
-diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
-index a4a5fc5..89efed7 100644
---- a/gdb/testsuite/gdb.asm/sh.inc
-+++ b/gdb/testsuite/gdb.asm/sh.inc
-@@ -40,9 +40,8 @@
- mov.l .Lconst\@,r1
- bra .Lafterconst\@
- nop
-- nop
--.Lconst\@:
- .align 2
-+.Lconst\@:
- .long \subr
- .align 1
- .Lafterconst\@:
-diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c
-index 424e1b8..0de2e7b 100644
---- a/gdb/testsuite/gdb.base/annota1.c
-+++ b/gdb/testsuite/gdb.base/annota1.c
-@@ -1,6 +1,9 @@
- #include <stdio.h>
- #include <signal.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c
-index 424e1b8..952aaf21 100644
---- a/gdb/testsuite/gdb.base/annota3.c
-+++ b/gdb/testsuite/gdb.base/annota3.c
-@@ -1,6 +1,10 @@
- #include <stdio.h>
- #include <signal.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-+
-
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
-index 81f3b08..1574b2d 100644
---- a/gdb/testsuite/gdb.base/sigall.c
-+++ b/gdb/testsuite/gdb.base/sigall.c
-@@ -1,6 +1,9 @@
- #include <signal.h>
- #include <unistd.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-
- /* Signal handlers, we set breakpoints in them to make sure that the
- signals really get delivered. */
-diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c
-index 7566068..1205a9b 100644
---- a/gdb/testsuite/gdb.base/signals.c
-+++ b/gdb/testsuite/gdb.base/signals.c
-@@ -3,6 +3,10 @@
- #include <signal.h>
- #include <unistd.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#define alarm(a) /* Ditto for alarm() */
-+#endif
-
- static int count = 0;
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch b/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
deleted file mode 100644
index 394d26d..0000000
--- a/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f3932cb2960fd54655a448b13d5a5b80f356f8de Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:25:03 -0700
-Subject: [PATCH 06/10] Dont disable libreadline.a when using --disable-static
-
-If gdb is configured with --disable-static then this is dutifully passed to
-readline which then disables libreadline.a, which causes a problem when gdb
-tries to link against that.
-
-To ensure that readline always builds static libraries, pass --enable-static to
-the sub-configure.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.def | 3 ++-
- Makefile.in | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.def b/Makefile.def
-index ea8453e..0fc66c6 100644
---- a/Makefile.def
-+++ b/Makefile.def
-@@ -104,7 +104,8 @@ host_modules= { module= libiconv;
- missing= install-html;
- missing= install-info; };
- host_modules= { module= m4; };
--host_modules= { module= readline; };
-+host_modules= { module= readline;
-+ extra_configure_flags='--enable-static';};
- host_modules= { module= sid; };
- host_modules= { module= sim; };
- host_modules= { module= texinfo; no_install= true; };
-diff --git a/Makefile.in b/Makefile.in
-index 2733c4d..3e04e80 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -25380,7 +25380,7 @@ configure-readline:
- $$s/$$module_srcdir/configure \
- --srcdir=$${topdir}/$$module_srcdir \
- $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
-- --target=${target_alias} \
-+ --target=${target_alias} --enable-static \
- || exit 1
- @endif readline
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch b/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
deleted file mode 100644
index f32f8ee..0000000
--- a/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 048675a915a72989f2613386975730da016e7c5d Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <amccurdy@gmail.com>
-Date: Sat, 30 Apr 2016 15:29:06 -0700
-Subject: [PATCH 07/10] use <asm/sgidefs.h>
-
-Build fix for MIPS with musl libc
-
-The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
-but not by musl. Regardless of the libc, the kernel headers provide
-<asm/sgidefs.h> which provides the same definitions, so use that
-instead.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/mips-linux-nat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index 449b43a..09603da 100644
---- a/gdb/mips-linux-nat.c
-+++ b/gdb/mips-linux-nat.c
-@@ -31,7 +31,7 @@
- #include "gdb_proc_service.h"
- #include "gregset.h"
-
--#include <sgidefs.h>
-+#include <asm/sgidefs.h>
- #include "nat/gdb_ptrace.h"
- #include <asm/ptrace.h>
-
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch b/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
deleted file mode 100644
index 7e58b61..0000000
--- a/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From e54ead9d81f4d38412751b815f909db3cb144bb1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:31:40 -0700
-Subject: [PATCH 08/10] Use exorted definitions of SIGRTMIN
-
-Define W_STOPCODE if not defined already
-
-__SIGRTMIN is internal to glibc and other libcs e.g. musl
-may not provide them
-
-Fixes
-https://sourceware.org/bugzilla/show_bug.cgi?id=13012
-
-Upstream-Status: Submitted
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/linux-nat.c | 4 ++--
- gdb/nat/linux-nat.h | 4 ++++
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
-index 0829bcb..3b8a896 100644
---- a/gdb/linux-nat.c
-+++ b/gdb/linux-nat.c
-@@ -4845,6 +4845,6 @@ lin_thread_get_thread_signals (sigset_t *set)
- /* NPTL reserves the first two RT signals, but does not provide any
- way for the debugger to query the signal numbers - fortunately
- they don't change. */
-- sigaddset (set, __SIGRTMIN);
-- sigaddset (set, __SIGRTMIN + 1);
-+ sigaddset (set, SIGRTMIN);
-+ sigaddset (set, SIGRTMIN + 1);
- }
-diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
-index 2b485db..d058afc 100644
---- a/gdb/nat/linux-nat.h
-+++ b/gdb/nat/linux-nat.h
-@@ -85,4 +85,8 @@ extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
-
- extern void linux_stop_lwp (struct lwp_info *lwp);
-
-+#ifndef W_STOPCODE
-+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
-+#endif
-+
- #endif /* LINUX_NAT_H */
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch b/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
deleted file mode 100644
index a230047..0000000
--- a/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ba0bbf887d4911ccee9df57cb13eafb1de34bb31 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Apr 2016 15:35:39 -0700
-Subject: [PATCH 09/10] Change order of CFLAGS
-
-Lets us override Werror if need be
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gdbserver/Makefile.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
-index 1e874e3..91e8550 100644
---- a/gdb/gdbserver/Makefile.in
-+++ b/gdb/gdbserver/Makefile.in
-@@ -138,10 +138,10 @@ CXXFLAGS = @CXXFLAGS@
- CPPFLAGS = @CPPFLAGS@
-
- # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
--INTERNAL_CFLAGS_BASE = ${COMPILER_CFLAGS} ${GLOBAL_CFLAGS} \
-+INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
- ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS}
- INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
--INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
-+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
-
- # LDFLAGS is specifically reserved for setting from the command line
- # when running make.
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch b/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
deleted file mode 100644
index 16c34c7..0000000
--- a/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5a9ccb8c0728b658fc4f7f0f7b36873c64274f10 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 10 May 2016 08:47:05 -0700
-Subject: [PATCH 10/10] resolve restrict keyword conflict
-
-GCC detects that we call 'restrict' as param name in function
-signatures and complains since both params are called 'restrict'
-therefore we use __restrict to denote the C99 keywork
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gnulib/import/sys_time.in.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gdb/gnulib/import/sys_time.in.h b/gdb/gnulib/import/sys_time.in.h
-index c556c5d..2a6107f 100644
---- a/gdb/gnulib/import/sys_time.in.h
-+++ b/gdb/gnulib/import/sys_time.in.h
-@@ -93,20 +93,20 @@ struct timeval
- # define gettimeofday rpl_gettimeofday
- # endif
- _GL_FUNCDECL_RPL (gettimeofday, int,
-- (struct timeval *restrict, void *restrict)
-+ (struct timeval *__restrict, void *__restrict)
- _GL_ARG_NONNULL ((1)));
- _GL_CXXALIAS_RPL (gettimeofday, int,
-- (struct timeval *restrict, void *restrict));
-+ (struct timeval *__restrict, void *__restrict));
- # else
- # if !@HAVE_GETTIMEOFDAY@
- _GL_FUNCDECL_SYS (gettimeofday, int,
-- (struct timeval *restrict, void *restrict)
-+ (struct timeval *__restrict, void *__restrict)
- _GL_ARG_NONNULL ((1)));
- # endif
- /* Need to cast, because on glibc systems, by default, the second argument is
- struct timezone *. */
- _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
-- (struct timeval *restrict, void *restrict));
-+ (struct timeval *__restrict, void *__restrict));
- # endif
- _GL_CXXALIASWARN (gettimeofday);
- #elif defined GNULIB_POSIXCHECK
---
-2.8.2
-
diff --git a/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch b/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
deleted file mode 100644
index 209c4fc..0000000
--- a/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
+++ /dev/null
@@ -1,2601 +0,0 @@
-gdb: Backport patch to support changes with AVX and MPX
-
-The current MPX target descriptions assume that MPX is always combined
-with AVX, however that's not correct. We can have machines with MPX
-and without AVX; or machines with AVX and without MPX.
-
-This patch adds new target descriptions for machines that support
-both MPX and AVX, as duplicates of the existing MPX descriptions.
-
-The following commit will remove AVX from the MPX-only descriptions.
-
-Upstream-Status: Backport
-
-Signed-off-by: bavery <brian.avery@intel.com>
-
-
-Orignal patch changelog and author attribution:
-
-2016-04-16 Walfred Tedeschi <walfred.tedeschi@intel.com>
-
-gdb/ChangeLog:
-
- * amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):
- New include.
- (amd64_linux_core_read_description): Add case for
- X86_XSTATE_AVX_MPX_MASK.
- (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.
- * amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.
- * amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.
- (amd64_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
- (_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.
- * common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.
- (X86_XSTATE_AVX_MPX_MASK): New case.
- * features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)
- (i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.
- (i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)
- (i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):
- New expedites.
- * i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New
- include.
- (i386_linux_core_read_description): Add case
- X86_XSTATE_AVX_MPX_MASK.
- (_initialize_i386_linux_tdep): Call
- initialize_tdesc_i386_avx_mpx_linux.
- * i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.
- * i386-tdep.c (features/i386/i386-avx-mpx.c): New include.
- (i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
- * x86-linux-nat.c (x86_linux_read_description): Add case for
- X86_XSTATE_AVX_MPX_MASK.
- * features/i386/amd64-avx-mpx-linux.xml: New file.
- * features/i386/i386-avx-mpx-linux.xml: New file.
- * features/i386/i386-avx-mpx.xml: New file.
- * features/i386/amd64-avx-mpx.xml: New file.
- * features/i386/amd64-avx-mpx-linux.c: Generated.
- * features/i386/amd64-avx-mpx.c: Generated.
- * features/i386/i386-avx-mpx-linux.c: Generated.
- * features/i386/i386-avx-mpx.c: Generated.
- * regformats/i386/amd64-avx-mpx-linux.dat: Generated.
- * regformats/i386/amd64-avx-mpx.dat: Generated.
- * regformats/i386/i386-avx-mpx-linux.dat: Generated.
- * regformats/i386/i386-avx-mpx.dat: Generated.
-
-gdb/gdbserver/ChangeLog:
-
- * Makefile.in (clean): Add removal for i386-avx-mpx.c,
- i386-avx-mpx-linux.c, amd64-avx-mpx.c and amd64-avx-mpx-linux.c.
- (i386-avx-mpx.c, i386-avx-mpx-linux.c, amd64-avx-mpx.c)
- (amd64-avx-mpx-linux.c): New rules.
- (amd64-avx-mpx-linux-ipa.o, i386-avx-mpx-linux-ipa.o): New rule.
- * configure.srv (srv_i386_regobj): Add i386-avx-mpx.o.
- (srv_i386_linux_regobj): Add i386-avx-mpx-linux.o.
- (srv_amd64_regobj): Add amd64-avx-mpx.o.
- (srv_amd64_linux_regobj): Add amd64-avx-mpx-linux.o.
- (srv_i386_xmlfiles): Add i386/i386-avx-mpx.xml.
- (srv_amd64_xmlfiles): Add i386/amd64-avx-mpx.xml.
- (srv_i386_linux_xmlfiles): Add i386/i386-avx-mpx-linux.xml.
- (srv_amd64_linux_xmlfiles): Add i386/amd64-avx-mpx-linux.xml.
- (ipa_i386_linux_regobj): Add i386-avx-mpx-linux-ipa.o.
- (ipa_amd64_linux_regobj): Add amd64-avx-mpx-linux-ipa.o.
- * linux-x86-low.c (x86_linux_read_description): Add case for
- X86_XSTATE_AVX_MPX_MASK.
- (x86_get_ipa_tdesc_idx): Add cases for avx_mpx.
- (initialize_low_arch): Call init_registers_amd64_avx_mpx_linux and
- init_registers_i386_avx_mpx_linux.
- * linux-i386-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
- (initialize_low_tracepoint): Call
- init_registers_i386_avx_mpx_linux.
- * linux-amd64-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
- (initialize_low_tracepoint): Call
- init_registers_amd64_avx_mpx_linux.
- * linux-x86-tdesc.h (X86_TDESC_AVX_MPX): New enum value.
- (init_registers_amd64_avx_mpx_linux, tdesc_amd64_avx_mpx_linux)
- (init_registers_i386_avx_mpx_linux, tdesc_i386_avx_mpx_linux): New
- declarations.
-
-
-
-
-diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
-index 21bcd99..5327f7c 100644
---- a/gdb/amd64-linux-tdep.c
-+++ b/gdb/amd64-linux-tdep.c
-@@ -43,6 +43,7 @@
- #include "features/i386/amd64-linux.c"
- #include "features/i386/amd64-avx-linux.c"
- #include "features/i386/amd64-mpx-linux.c"
-+#include "features/i386/amd64-avx-mpx-linux.c"
- #include "features/i386/amd64-avx512-linux.c"
-
- #include "features/i386/x32-linux.c"
-@@ -1590,6 +1591,11 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch,
- return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
- else
- return tdesc_amd64_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ if (gdbarch_ptr_bit (gdbarch) == 32)
-+ return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
-+ else
-+ return tdesc_amd64_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- if (gdbarch_ptr_bit (gdbarch) == 32)
- return tdesc_x32_avx_linux;
-@@ -2285,6 +2291,7 @@ _initialize_amd64_linux_tdep (void)
- initialize_tdesc_amd64_linux ();
- initialize_tdesc_amd64_avx_linux ();
- initialize_tdesc_amd64_mpx_linux ();
-+ initialize_tdesc_amd64_avx_mpx_linux ();
- initialize_tdesc_amd64_avx512_linux ();
-
- initialize_tdesc_x32_linux ();
-diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h
-index 8673442..d64d5d6 100644
---- a/gdb/amd64-linux-tdep.h
-+++ b/gdb/amd64-linux-tdep.h
-@@ -35,6 +35,7 @@
- extern struct target_desc *tdesc_amd64_linux;
- extern struct target_desc *tdesc_amd64_avx_linux;
- extern struct target_desc *tdesc_amd64_mpx_linux;
-+extern struct target_desc *tdesc_amd64_avx_mpx_linux;
- extern struct target_desc *tdesc_amd64_avx512_linux;
-
- extern struct target_desc *tdesc_x32_linux;
-diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
-index fae92b2..88e3bf8 100644
---- a/gdb/amd64-tdep.c
-+++ b/gdb/amd64-tdep.c
-@@ -44,6 +44,7 @@
- #include "features/i386/amd64.c"
- #include "features/i386/amd64-avx.c"
- #include "features/i386/amd64-mpx.c"
-+#include "features/i386/amd64-avx-mpx.c"
- #include "features/i386/amd64-avx512.c"
-
- #include "features/i386/x32.c"
-@@ -3132,6 +3133,8 @@ amd64_target_description (uint64_t xcr0)
- return tdesc_amd64_avx512;
- case X86_XSTATE_MPX_MASK:
- return tdesc_amd64_mpx;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_amd64_avx_mpx;
- case X86_XSTATE_AVX_MASK:
- return tdesc_amd64_avx;
- default:
-@@ -3148,6 +3151,7 @@ _initialize_amd64_tdep (void)
- initialize_tdesc_amd64 ();
- initialize_tdesc_amd64_avx ();
- initialize_tdesc_amd64_mpx ();
-+ initialize_tdesc_amd64_avx_mpx ();
- initialize_tdesc_amd64_avx512 ();
-
- initialize_tdesc_x32 ();
-diff --git a/gdb/common/x86-xstate.h b/gdb/common/x86-xstate.h
-index 8386420..0aa9164 100644
---- a/gdb/common/x86-xstate.h
-+++ b/gdb/common/x86-xstate.h
-@@ -39,9 +39,10 @@
- #define X86_XSTATE_X87_MASK X86_XSTATE_X87
- #define X86_XSTATE_SSE_MASK (X86_XSTATE_X87 | X86_XSTATE_SSE)
- #define X86_XSTATE_AVX_MASK (X86_XSTATE_SSE_MASK | X86_XSTATE_AVX)
--#define X86_XSTATE_MPX_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
-+#define X86_XSTATE_MPX_MASK (X86_XSTATE_SSE_MASK | X86_XSTATE_MPX)
-+#define X86_XSTATE_AVX_MPX_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
- #define X86_XSTATE_AVX512_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_AVX512)
--#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_MPX_MASK | X86_XSTATE_AVX512)
-+#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_AVX_MPX_MASK | X86_XSTATE_AVX512)
-
- #define X86_XSTATE_ALL_MASK (X86_XSTATE_MPX_AVX512_MASK)
-
-diff --git a/gdb/features/Makefile b/gdb/features/Makefile
-index 10173cf..e5c5154 100644
---- a/gdb/features/Makefile
-+++ b/gdb/features/Makefile
-@@ -50,9 +50,11 @@ WHICH = aarch64 \
- i386/amd64 i386/amd64-linux \
- i386/i386-avx i386/i386-avx-linux \
- i386/i386-mpx i386/i386-mpx-linux \
-+ i386/i386-avx-mpx i386/i386-avx-mpx-linux \
- i386/i386-avx512 i386/i386-avx512-linux \
- i386/amd64-avx i386/amd64-avx-linux \
- i386/amd64-mpx i386/amd64-mpx-linux \
-+ i386/amd64-avx-mpx i386/amd64-avx-mpx-linux \
- i386/amd64-avx512 i386/amd64-avx512-linux \
- i386/x32 i386/x32-linux \
- i386/x32-avx i386/x32-avx-linux \
-@@ -83,7 +85,9 @@ i386/amd64-linux-expedite = rbp,rsp,rip
- i386/i386-avx-expedite = ebp,esp,eip
- i386/i386-avx-linux-expedite = ebp,esp,eip
- i386/i386-mpx-expedite = ebp,esp,eip
-+i386/i386-avx-mpx-expedite = ebp,esp,eip
- i386/i386-mpx-linux-expedite = ebp,esp,eip
-+i386/i386-avx-mpx-linux-expedite = ebp,esp,eip
- i386/i386-avx512-expedite = ebp,esp,eip
- i386/i386-avx512-linux-expedite = ebp,esp,eip
- i386/i386-mmx-expedite = ebp,esp,eip
-@@ -91,7 +95,9 @@ i386/i386-mmx-linux-expedite = ebp,esp,eip
- i386/amd64-avx-expedite = rbp,rsp,rip
- i386/amd64-avx-linux-expedite = rbp,rsp,rip
- i386/amd64-mpx-expedite = rbp,rsp,rip
-+i386/amd64-avx-mpx-expedite = rbp,rsp,rip
- i386/amd64-mpx-linux-expedite = rbp,rsp,rip
-+i386/amd64-avx-mpx-linux-expedite = rbp,rsp,rip
- i386/amd64-avx512-expedite = rbp,rsp,rip
- i386/amd64-avx512-linux-expedite = rbp,rsp,rip
- i386/x32-expedite = rbp,rsp,rip
-@@ -156,6 +162,8 @@ XMLTOC = \
- i386/amd64-linux.xml \
- i386/amd64-mpx-linux.xml \
- i386/amd64-mpx.xml \
-+ i386/amd64-avx-mpx-linux.xml \
-+ i386/amd64-avx-mpx.xml \
- i386/amd64.xml \
- i386/i386-avx-linux.xml \
- i386/i386-avx.xml \
-@@ -166,6 +174,8 @@ XMLTOC = \
- i386/i386-mmx.xml \
- i386/i386-mpx-linux.xml \
- i386/i386-mpx.xml \
-+ i386/i386-avx-mpx-linux.xml \
-+ i386/i386-avx-mpx.xml \
- i386/i386.xml \
- i386/x32-avx-linux.xml \
- i386/x32-avx.xml \
-@@ -271,6 +281,10 @@ $(outdir)/i386/i386-mpx.dat: i386/32bit-core.xml i386/32bit-avx.xml \
- i386/32bit-mpx.xml
- $(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
- i386/32bit-linux.xml i386/32bit-mpx.xml
-+$(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml \
-+ i386/32bit-linux.xml i386/32bit-mpx.xml
-+$(outdir)/i386/i386-avx-mpx-linux.dat: i386/32bit-core.xml \
-+ i386/32bit-linux.xml i386/32bit-mpx.xml
- $(outdir)/i386/i386-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \
- i386/32bit-mpx.xml i386/32bit-avx512.xml
- $(outdir)/i386/i386-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
-@@ -282,8 +296,12 @@ $(outdir)/i386/amd64-avx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-linux.xml
- $(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-linux.xml i386/64bit-mpx.xml
-+$(outdir)/i386/amd64-avx-mpx-linux.dat: i386/64bit-core.xml \
-+ i386/64bit-linux.xml i386/64bit-mpx.xml
- $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-mpx.xml
-+$(outdir)/i386/amd64-avx-mpx.dat: i386/64bit-core.xml \
-+ i386/64bit-mpx.xml
- $(outdir)/i386/amd64-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
- i386/64bit-mpx.xml i386/64bit-avx512.xml
- $(outdir)/i386/amd64-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
-diff --git a/gdb/features/i386/amd64-avx-mpx-linux.c b/gdb/features/i386/amd64-avx-mpx-linux.c
-new file mode 100644
-index 0000000..37b4c81
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx-linux.c
-@@ -0,0 +1,211 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: amd64-avx-mpx-linux.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_amd64_avx_mpx_linux;
-+static void
-+initialize_tdesc_amd64_avx_mpx_linux (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-+
-+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-+ tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 63);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 63);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 0);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status");
-+
-+ tdesc_amd64_avx_mpx_linux = result;
-+}
-diff --git a/gdb/features/i386/amd64-avx-mpx-linux.xml b/gdb/features/i386/amd64-avx-mpx-linux.xml
-new file mode 100644
-index 0000000..526c700
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx-linux.xml
-@@ -0,0 +1,19 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- AMD64 with AVX and MPX - Includes Linux-only special "register". -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386:x86-64</architecture>
-+ <osabi>GNU/Linux</osabi>
-+ <xi:include href="64bit-core.xml"/>
-+ <xi:include href="64bit-sse.xml"/>
-+ <xi:include href="64bit-linux.xml"/>
-+ <xi:include href="64bit-avx.xml"/>
-+ <xi:include href="64bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/amd64-avx-mpx.c b/gdb/features/i386/amd64-avx-mpx.c
-new file mode 100644
-index 0000000..1279f73
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx.c
-@@ -0,0 +1,206 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: amd64-avx-mpx.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_amd64_avx_mpx;
-+static void
-+initialize_tdesc_amd64_avx_mpx (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-+ tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 63);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 63);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 0);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
-+
-+ tdesc_amd64_avx_mpx = result;
-+}
-diff --git a/gdb/features/i386/amd64-avx-mpx.xml b/gdb/features/i386/amd64-avx-mpx.xml
-new file mode 100644
-index 0000000..3eea6dd
---- /dev/null
-+++ b/gdb/features/i386/amd64-avx-mpx.xml
-@@ -0,0 +1,17 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- AMD64 with AVX and MPX -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386:x86-64</architecture>
-+ <xi:include href="64bit-core.xml"/>
-+ <xi:include href="64bit-sse.xml"/>
-+ <xi:include href="64bit-avx.xml"/>
-+ <xi:include href="64bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/amd64-mpx-linux.c b/gdb/features/i386/amd64-mpx-linux.c
-index 86a1774..5c1584b 100644
---- a/gdb/features/i386/amd64-mpx-linux.c
-+++ b/gdb/features/i386/amd64-mpx-linux.c
-@@ -151,24 +151,6 @@ initialize_tdesc_amd64_mpx_linux (void)
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
- tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -200,12 +182,12 @@ initialize_tdesc_amd64_mpx_linux (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 58, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 59, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 60, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 61, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 62, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 63, 1, NULL, 64, "status");
-
- tdesc_amd64_mpx_linux = result;
- }
-diff --git a/gdb/features/i386/amd64-mpx-linux.xml b/gdb/features/i386/amd64-mpx-linux.xml
-index 15e87b4..835126b 100644
---- a/gdb/features/i386/amd64-mpx-linux.xml
-+++ b/gdb/features/i386/amd64-mpx-linux.xml
-@@ -14,6 +14,5 @@
- <xi:include href="64bit-core.xml"/>
- <xi:include href="64bit-sse.xml"/>
- <xi:include href="64bit-linux.xml"/>
-- <xi:include href="64bit-avx.xml"/>
- <xi:include href="64bit-mpx.xml"/>
- </target>
-diff --git a/gdb/features/i386/amd64-mpx.c b/gdb/features/i386/amd64-mpx.c
-index 15ae5f7..4c852ef 100644
---- a/gdb/features/i386/amd64-mpx.c
-+++ b/gdb/features/i386/amd64-mpx.c
-@@ -146,24 +146,6 @@ initialize_tdesc_amd64_mpx (void)
- tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -195,12 +177,12 @@ initialize_tdesc_amd64_mpx (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 57, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 58, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 59, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 60, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 61, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 62, 1, NULL, 64, "status");
-
- tdesc_amd64_mpx = result;
- }
-diff --git a/gdb/features/i386/amd64-mpx.xml b/gdb/features/i386/amd64-mpx.xml
-index 21b6df3..e458736 100644
---- a/gdb/features/i386/amd64-mpx.xml
-+++ b/gdb/features/i386/amd64-mpx.xml
-@@ -12,6 +12,5 @@
- <architecture>i386:x86-64</architecture>
- <xi:include href="64bit-core.xml"/>
- <xi:include href="64bit-sse.xml"/>
-- <xi:include href="64bit-avx.xml"/>
- <xi:include href="64bit-mpx.xml"/>
- </target>
-diff --git a/gdb/features/i386/i386-avx-mpx-linux.c b/gdb/features/i386/i386-avx-mpx-linux.c
-new file mode 100644
-index 0000000..dd75403
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx-linux.c
-@@ -0,0 +1,187 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: i386-avx-mpx-linux.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_i386_avx_mpx_linux;
-+static void
-+initialize_tdesc_i386_avx_mpx_linux (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-+
-+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-+ tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 31);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 31);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 1);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
-+
-+ tdesc_i386_avx_mpx_linux = result;
-+}
-diff --git a/gdb/features/i386/i386-avx-mpx-linux.xml b/gdb/features/i386/i386-avx-mpx-linux.xml
-new file mode 100644
-index 0000000..c9a1a61
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx-linux.xml
-@@ -0,0 +1,19 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- I386 with AVX and MPX- Includes Linux-only special "register". -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386</architecture>
-+ <osabi>GNU/Linux</osabi>
-+ <xi:include href="32bit-core.xml"/>
-+ <xi:include href="32bit-sse.xml"/>
-+ <xi:include href="32bit-linux.xml"/>
-+ <xi:include href="32bit-avx.xml"/>
-+ <xi:include href="32bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/i386-avx-mpx.c b/gdb/features/i386/i386-avx-mpx.c
-new file mode 100644
-index 0000000..f104e4b
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx.c
-@@ -0,0 +1,182 @@
-+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
-+ Original: i386-avx-mpx.xml */
-+
-+#include "defs.h"
-+#include "osabi.h"
-+#include "target-descriptions.h"
-+
-+struct target_desc *tdesc_i386_avx_mpx;
-+static void
-+initialize_tdesc_i386_avx_mpx (void)
-+{
-+ struct target_desc *result = allocate_target_description ();
-+ struct tdesc_feature *feature;
-+ struct tdesc_type *field_type;
-+ struct tdesc_type *type;
-+
-+ set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-+ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
-+ tdesc_add_flag (field_type, 0, "CF");
-+ tdesc_add_flag (field_type, 1, "");
-+ tdesc_add_flag (field_type, 2, "PF");
-+ tdesc_add_flag (field_type, 4, "AF");
-+ tdesc_add_flag (field_type, 6, "ZF");
-+ tdesc_add_flag (field_type, 7, "SF");
-+ tdesc_add_flag (field_type, 8, "TF");
-+ tdesc_add_flag (field_type, 9, "IF");
-+ tdesc_add_flag (field_type, 10, "DF");
-+ tdesc_add_flag (field_type, 11, "OF");
-+ tdesc_add_flag (field_type, 14, "NT");
-+ tdesc_add_flag (field_type, 16, "RF");
-+ tdesc_add_flag (field_type, 17, "VM");
-+ tdesc_add_flag (field_type, 18, "AC");
-+ tdesc_add_flag (field_type, 19, "VIF");
-+ tdesc_add_flag (field_type, 20, "VIP");
-+ tdesc_add_flag (field_type, 21, "ID");
-+
-+ tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-+ tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-+ tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-+ tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-+ tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-+ tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-+ tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-+ field_type = tdesc_named_type (feature, "ieee_single");
-+ tdesc_create_vector (feature, "v4f", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "ieee_double");
-+ tdesc_create_vector (feature, "v2d", field_type, 2);
-+
-+ field_type = tdesc_named_type (feature, "int8");
-+ tdesc_create_vector (feature, "v16i8", field_type, 16);
-+
-+ field_type = tdesc_named_type (feature, "int16");
-+ tdesc_create_vector (feature, "v8i16", field_type, 8);
-+
-+ field_type = tdesc_named_type (feature, "int32");
-+ tdesc_create_vector (feature, "v4i32", field_type, 4);
-+
-+ field_type = tdesc_named_type (feature, "int64");
-+ tdesc_create_vector (feature, "v2i64", field_type, 2);
-+
-+ type = tdesc_create_union (feature, "vec128");
-+ field_type = tdesc_named_type (feature, "v4f");
-+ tdesc_add_field (type, "v4_float", field_type);
-+ field_type = tdesc_named_type (feature, "v2d");
-+ tdesc_add_field (type, "v2_double", field_type);
-+ field_type = tdesc_named_type (feature, "v16i8");
-+ tdesc_add_field (type, "v16_int8", field_type);
-+ field_type = tdesc_named_type (feature, "v8i16");
-+ tdesc_add_field (type, "v8_int16", field_type);
-+ field_type = tdesc_named_type (feature, "v4i32");
-+ tdesc_add_field (type, "v4_int32", field_type);
-+ field_type = tdesc_named_type (feature, "v2i64");
-+ tdesc_add_field (type, "v2_int64", field_type);
-+ field_type = tdesc_named_type (feature, "uint128");
-+ tdesc_add_field (type, "uint128", field_type);
-+
-+ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-+ tdesc_add_flag (field_type, 0, "IE");
-+ tdesc_add_flag (field_type, 1, "DE");
-+ tdesc_add_flag (field_type, 2, "ZE");
-+ tdesc_add_flag (field_type, 3, "OE");
-+ tdesc_add_flag (field_type, 4, "UE");
-+ tdesc_add_flag (field_type, 5, "PE");
-+ tdesc_add_flag (field_type, 6, "DAZ");
-+ tdesc_add_flag (field_type, 7, "IM");
-+ tdesc_add_flag (field_type, 8, "DM");
-+ tdesc_add_flag (field_type, 9, "ZM");
-+ tdesc_add_flag (field_type, 10, "OM");
-+ tdesc_add_flag (field_type, 11, "UM");
-+ tdesc_add_flag (field_type, 12, "PM");
-+ tdesc_add_flag (field_type, 15, "FZ");
-+
-+ tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-+ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-+ tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-+ tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
-+
-+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-+ type = tdesc_create_struct (feature, "br128");
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "lbound", field_type);
-+ field_type = tdesc_named_type (feature, "uint64");
-+ tdesc_add_field (type, "ubound_raw", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndstatus");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "bde", 2, 31);
-+ tdesc_add_bitfield (type, "error", 0, 1);
-+
-+ type = tdesc_create_union (feature, "status");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndstatus");
-+ tdesc_add_field (type, "status", field_type);
-+
-+ type = tdesc_create_struct (feature, "_bndcfgu");
-+ tdesc_set_struct_size (type, 8);
-+ tdesc_add_bitfield (type, "base", 12, 31);
-+ tdesc_add_bitfield (type, "reserved", 2, 11);
-+ tdesc_add_bitfield (type, "preserved", 1, 1);
-+ tdesc_add_bitfield (type, "enabled", 0, 1);
-+
-+ type = tdesc_create_union (feature, "cfgu");
-+ field_type = tdesc_named_type (feature, "data_ptr");
-+ tdesc_add_field (type, "raw", field_type);
-+ field_type = tdesc_named_type (feature, "_bndcfgu");
-+ tdesc_add_field (type, "config", field_type);
-+
-+ tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
-+
-+ tdesc_i386_avx_mpx = result;
-+}
-diff --git a/gdb/features/i386/i386-avx-mpx.xml b/gdb/features/i386/i386-avx-mpx.xml
-new file mode 100644
-index 0000000..ab97367
---- /dev/null
-+++ b/gdb/features/i386/i386-avx-mpx.xml
-@@ -0,0 +1,17 @@
-+<?xml version="1.0"?>
-+<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
-+
-+ Copying and distribution of this file, with or without modification,
-+ are permitted in any medium without royalty provided the copyright
-+ notice and this notice are preserved. -->
-+
-+<!-- I386 with AVX and MPX -->
-+
-+<!DOCTYPE target SYSTEM "gdb-target.dtd">
-+<target>
-+ <architecture>i386</architecture>
-+ <xi:include href="32bit-core.xml"/>
-+ <xi:include href="32bit-sse.xml"/>
-+ <xi:include href="32bit-avx.xml"/>
-+ <xi:include href="32bit-mpx.xml"/>
-+</target>
-diff --git a/gdb/features/i386/i386-mpx-linux.c b/gdb/features/i386/i386-mpx-linux.c
-index dbf8789..c6bafea 100644
---- a/gdb/features/i386/i386-mpx-linux.c
-+++ b/gdb/features/i386/i386-mpx-linux.c
-@@ -135,16 +135,6 @@ initialize_tdesc_i386_mpx_linux (void)
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
- tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -176,12 +166,12 @@ initialize_tdesc_i386_mpx_linux (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 42, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 43, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 44, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 45, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 46, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 47, 1, NULL, 64, "status");
-
- tdesc_i386_mpx_linux = result;
- }
-diff --git a/gdb/features/i386/i386-mpx-linux.xml b/gdb/features/i386/i386-mpx-linux.xml
-index c4004d6..4228cf5 100644
---- a/gdb/features/i386/i386-mpx-linux.xml
-+++ b/gdb/features/i386/i386-mpx-linux.xml
-@@ -14,6 +14,5 @@
- <xi:include href="32bit-core.xml"/>
- <xi:include href="32bit-sse.xml"/>
- <xi:include href="32bit-linux.xml"/>
-- <xi:include href="32bit-avx.xml"/>
- <xi:include href="32bit-mpx.xml"/>
- </target>
-diff --git a/gdb/features/i386/i386-mpx.c b/gdb/features/i386/i386-mpx.c
-index 1e04afd..430db3f 100644
---- a/gdb/features/i386/i386-mpx.c
-+++ b/gdb/features/i386/i386-mpx.c
-@@ -130,16 +130,6 @@ initialize_tdesc_i386_mpx (void)
- tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-- tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-- tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
--
- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
- type = tdesc_create_struct (feature, "br128");
- field_type = tdesc_named_type (feature, "uint64");
-@@ -171,12 +161,12 @@ initialize_tdesc_i386_mpx (void)
- field_type = tdesc_named_type (feature, "_bndcfgu");
- tdesc_add_field (type, "config", field_type);
-
-- tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
-- tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
-- tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
-+ tdesc_create_reg (feature, "bnd0raw", 41, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd1raw", 42, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd2raw", 43, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bnd3raw", 44, 1, NULL, 128, "br128");
-+ tdesc_create_reg (feature, "bndcfgu", 45, 1, NULL, 64, "cfgu");
-+ tdesc_create_reg (feature, "bndstatus", 46, 1, NULL, 64, "status");
-
- tdesc_i386_mpx = result;
- }
-diff --git a/gdb/features/i386/i386-mpx.xml b/gdb/features/i386/i386-mpx.xml
-index 52a68db..c1806cb 100644
---- a/gdb/features/i386/i386-mpx.xml
-+++ b/gdb/features/i386/i386-mpx.xml
-@@ -12,6 +12,5 @@
- <architecture>i386</architecture>
- <xi:include href="32bit-core.xml"/>
- <xi:include href="32bit-sse.xml"/>
-- <xi:include href="32bit-avx.xml"/>
- <xi:include href="32bit-mpx.xml"/>
- </target>
-diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
-index 1e874e3..dee2ea1 100644
---- a/gdb/gdbserver/Makefile.in
-+++ b/gdb/gdbserver/Makefile.in
-@@ -376,9 +376,11 @@ clean:
- rm -f xml-builtin.c stamp-xml
- rm -f i386-avx.c i386-avx-linux.c
- rm -f i386-mpx.c i386-mpx-linux.c
-+ rm -f i386-avx-mpx.c i386-avx-mpx-linux.c
- rm -f i386-avx512.c i386-avx512-linux.c
- rm -f amd64-avx.c amd64-avx-linux.c
- rm -f amd64-mpx.c amd64-mpx-linux.c
-+ rm -f amd64-avx-mpx.c amd64-avx-mpx-linux.c
- rm -f amd64-avx512.c amd64-avx512-linux.c
- rm -f i386-mmx.c i386-mmx-linux.c
- rm -f x32.c x32-linux.c
-@@ -495,6 +497,21 @@ regcache-ipa.o: regcache.c
- i386-linux-ipa.o: i386-linux.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-+i386-mmx-linux-ipa.o: i386-mmx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-avx-linux-ipa.o: i386-avx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-mpx-linux-ipa.o: i386-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+i386-avx512-linux-ipa.o: i386-avx512-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
- linux-i386-ipa.o: linux-i386-ipa.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-@@ -504,6 +521,18 @@ linux-amd64-ipa.o: linux-amd64-ipa.c
- amd64-linux-ipa.o: amd64-linux.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-+amd64-avx-linux-ipa.o: amd64-avx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+amd64-mpx-linux-ipa.o: amd64-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
-+amd64-avx512-linux-ipa.o: amd64-avx512-linux.c
-+ $(IPAGENT_COMPILE) $<
-+ $(POSTCOMPILE)
- linux-aarch64-ipa.o: linux-aarch64-ipa.c
- $(IPAGENT_COMPILE) $<
- $(POSTCOMPILE)
-@@ -694,6 +723,10 @@ i386-mpx.c : $(srcdir)/../regformats/i386/i386-mpx.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx.dat i386-mpx.c
- i386-mpx-linux.c : $(srcdir)/../regformats/i386/i386-mpx-linux.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx-linux.dat i386-mpx-linux.c
-+i386-avx-mpx.c : $(srcdir)/../regformats/i386/i386-avx-mpx.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx.dat i386-avx-mpx.c
-+i386-avx-mpx-linux.c : $(srcdir)/../regformats/i386/i386-avx-mpx-linux.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx-linux.dat i386-avx-mpx-linux.c
- i386-mmx.c : $(srcdir)/../regformats/i386/i386-mmx.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx.dat i386-mmx.c
- i386-mmx-linux.c : $(srcdir)/../regformats/i386/i386-mmx-linux.dat $(regdat_sh)
-@@ -808,6 +841,10 @@ amd64-mpx.c : $(srcdir)/../regformats/i386/amd64-mpx.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx.dat amd64-mpx.c
- amd64-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-mpx-linux.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx-linux.dat amd64-mpx-linux.c
-+amd64-avx-mpx.c : $(srcdir)/../regformats/i386/amd64-avx-mpx.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx.dat amd64-avx-mpx.c
-+amd64-avx-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-avx-mpx-linux.dat $(regdat_sh)
-+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx-linux.dat amd64-avx-mpx-linux.c
- x32.c : $(srcdir)/../regformats/i386/x32.dat $(regdat_sh)
- $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32.dat x32.c
- x32-linux.c : $(srcdir)/../regformats/i386/x32-linux.dat $(regdat_sh)
-diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
-index a54b9e7..4935a36 100644
---- a/gdb/gdbserver/configure.srv
-+++ b/gdb/gdbserver/configure.srv
-@@ -24,20 +24,23 @@
- # Default hostio_last_error implementation
- srv_hostio_err_objs="hostio-errno.o"
-
--srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-mmx.o"
--srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-mmx-linux.o"
--srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o x32.o x32-avx.o x32-avx512.o"
--srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
-+srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-avx-mpx.o i386-mmx.o"
-+srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o"
-+srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx512.o"
-+srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
-+
-+
-+ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o i386-avx-mpx-linux-ipa.o i386-avx512-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
-+ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx512-linux-ipa.o amd64-mpx-linux-ipa.o"
-
--ipa_i386_linux_regobj=i386-linux-ipa.o
--ipa_amd64_linux_regobj=amd64-linux-ipa.o
-
- srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml"
- srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/64bit-avx512.xml i386/x32-core.xml i386/64bit-mpx.xml"
--srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
--srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml $srv_i386_64bit_xmlfiles"
--srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml $srv_i386_32bit_xmlfiles"
--srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
-+srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-avx-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
-+srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml i386/amd64-avx-mpx.xml $srv_i386_64bit_xmlfiles"
-+srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml i386/i386-avx-mpx-linux.xml $srv_i386_32bit_xmlfiles"
-+srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/amd64-avx-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
-+
-
-
- # Linux object files. This is so we don't have to repeat
-diff --git a/gdb/gdbserver/linux-aarch64-ipa.c b/gdb/gdbserver/linux-aarch64-ipa.c
-index 758708d..f1eaa70 100644
---- a/gdb/gdbserver/linux-aarch64-ipa.c
-+++ b/gdb/gdbserver/linux-aarch64-ipa.c
-@@ -143,9 +143,18 @@ gdb_agent_get_raw_reg (const unsigned char *raw_regs, int regnum)
- + aarch64_ft_collect_regmap[regnum] * FT_CR_SIZE);
- }
-
-+/* Return target_desc to use for IPA, given the tdesc index passed by
-+ gdbserver. Index is ignored, since we have only one tdesc
-+ at the moment. */
-+
-+const struct target_desc *
-+get_ipa_tdesc (int idx)
-+{
-+ return tdesc_aarch64;
-+}
-+
- void
- initialize_low_tracepoint (void)
- {
- init_registers_aarch64 ();
-- ipa_tdesc = tdesc_aarch64;
- }
-diff --git a/gdb/gdbserver/linux-amd64-ipa.c b/gdb/gdbserver/linux-amd64-ipa.c
-index 2eeedcd..f9c72a0 100644
---- a/gdb/gdbserver/linux-amd64-ipa.c
-+++ b/gdb/gdbserver/linux-amd64-ipa.c
-@@ -20,6 +20,7 @@
-
- #include "server.h"
- #include "tracepoint.h"
-+#include "linux-x86-tdesc.h"
-
- /* Defined in auto-generated file amd64-linux.c. */
- void init_registers_amd64_linux (void);
-@@ -166,9 +167,37 @@ supply_static_tracepoint_registers (struct regcache *regcache,
-
- #endif /* HAVE_UST */
-
-+/* Return target_desc to use for IPA, given the tdesc index passed by
-+ gdbserver. */
-+
-+const struct target_desc *
-+get_ipa_tdesc (int idx)
-+{
-+ switch (idx)
-+ {
-+ case X86_TDESC_SSE:
-+ return tdesc_amd64_linux;
-+ case X86_TDESC_AVX:
-+ return tdesc_amd64_avx_linux;
-+ case X86_TDESC_MPX:
-+ return tdesc_amd64_mpx_linux;
-+ case X86_TDESC_AVX_MPX:
-+ return tdesc_amd64_avx_mpx_linux;
-+ case X86_TDESC_AVX512:
-+ return tdesc_amd64_avx512_linux;
-+ default:
-+ internal_error (__FILE__, __LINE__,
-+ "unknown ipa tdesc index: %d", idx);
-+ return tdesc_amd64_linux;
-+ }
-+}
-+
- void
- initialize_low_tracepoint (void)
- {
- init_registers_amd64_linux ();
-- ipa_tdesc = tdesc_amd64_linux;
-+ init_registers_amd64_avx_linux ();
-+ init_registers_amd64_avx_mpx_linux ();
-+ init_registers_amd64_mpx_linux ();
-+ init_registers_amd64_avx512_linux ();
- }
-diff --git a/gdb/gdbserver/linux-i386-ipa.c b/gdb/gdbserver/linux-i386-ipa.c
-index 11dc038..d7a8e7d 100644
---- a/gdb/gdbserver/linux-i386-ipa.c
-+++ b/gdb/gdbserver/linux-i386-ipa.c
-@@ -21,6 +21,7 @@
- #include "server.h"
- #include <sys/mman.h>
- #include "tracepoint.h"
-+#include "linux-x86-tdesc.h"
-
- /* GDB register numbers. */
-
-@@ -47,10 +48,6 @@ enum i386_gdb_regnum
-
- #define i386_num_regs 16
-
--/* Defined in auto-generated file i386-linux.c. */
--void init_registers_i386_linux (void);
--extern const struct target_desc *tdesc_i386_linux;
--
- #define FT_CR_EAX 15
- #define FT_CR_ECX 14
- #define FT_CR_EDX 13
-@@ -247,10 +244,40 @@ initialize_fast_tracepoint_trampoline_buffer (void)
- }
- }
-
-+/* Return target_desc to use for IPA, given the tdesc index passed by
-+ gdbserver. */
-+
-+const struct target_desc *
-+get_ipa_tdesc (int idx)
-+{
-+ switch (idx)
-+ {
-+ case X86_TDESC_MMX:
-+ return tdesc_i386_mmx_linux;
-+ case X86_TDESC_SSE:
-+ return tdesc_i386_linux;
-+ case X86_TDESC_AVX:
-+ return tdesc_i386_avx_linux;
-+ case X86_TDESC_MPX:
-+ return tdesc_i386_mpx_linux;
-+ case X86_TDESC_AVX_MPX:
-+ return tdesc_i386_avx_mpx_linux;
-+ case X86_TDESC_AVX512:
-+ return tdesc_i386_avx512_linux;
-+ default:
-+ internal_error (__FILE__, __LINE__,
-+ "unknown ipa tdesc index: %d", idx);
-+ return tdesc_i386_linux;
-+ }
-+}
-+
- void
- initialize_low_tracepoint (void)
- {
-+ init_registers_i386_mmx_linux ();
- init_registers_i386_linux ();
-- ipa_tdesc = tdesc_i386_linux;
-+ init_registers_i386_avx_linux ();
-+ init_registers_i386_mpx_linux ();
-+ init_registers_i386_avx512_linux ();
- initialize_fast_tracepoint_trampoline_buffer ();
- }
-diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
-index 8b025bd..a142c2c 100644
---- a/gdb/gdbserver/linux-low.c
-+++ b/gdb/gdbserver/linux-low.c
-@@ -6432,6 +6432,15 @@ linux_supports_catch_syscall (void)
- }
-
- static int
-+linux_get_ipa_tdesc_idx (void)
-+{
-+ if (the_low_target.get_ipa_tdesc_idx == NULL)
-+ return 0;
-+
-+ return (*the_low_target.get_ipa_tdesc_idx) ();
-+}
-+
-+static int
- linux_supports_tracepoints (void)
- {
- if (*the_low_target.supports_tracepoints == NULL)
-@@ -7408,6 +7417,7 @@ static struct target_ops linux_target_ops = {
- linux_breakpoint_kind_from_current_state,
- linux_supports_software_single_step,
- linux_supports_catch_syscall,
-+ linux_get_ipa_tdesc_idx,
- };
-
- #ifdef HAVE_LINUX_REGSETS
-diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
-index 4ec8550..d4946c1 100644
---- a/gdb/gdbserver/linux-low.h
-+++ b/gdb/gdbserver/linux-low.h
-@@ -246,6 +246,9 @@ struct linux_target_ops
- due to SYSCALL_SIGTRAP. */
- void (*get_syscall_trapinfo) (struct regcache *regcache,
- int *sysno, int *sysret);
-+
-+ /* See target.h. */
-+ int (*get_ipa_tdesc_idx) (void);
- };
-
- extern struct linux_target_ops the_low_target;
-diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
-index 0c4954a..2535959 100644
---- a/gdb/gdbserver/linux-x86-low.c
-+++ b/gdb/gdbserver/linux-x86-low.c
-@@ -45,57 +45,7 @@
- #include "nat/linux-nat.h"
- #include "nat/x86-linux.h"
- #include "nat/x86-linux-dregs.h"
--
--#ifdef __x86_64__
--/* Defined in auto-generated file amd64-linux.c. */
--void init_registers_amd64_linux (void);
--extern const struct target_desc *tdesc_amd64_linux;
--
--/* Defined in auto-generated file amd64-avx-linux.c. */
--void init_registers_amd64_avx_linux (void);
--extern const struct target_desc *tdesc_amd64_avx_linux;
--
--/* Defined in auto-generated file amd64-avx512-linux.c. */
--void init_registers_amd64_avx512_linux (void);
--extern const struct target_desc *tdesc_amd64_avx512_linux;
--
--/* Defined in auto-generated file amd64-mpx-linux.c. */
--void init_registers_amd64_mpx_linux (void);
--extern const struct target_desc *tdesc_amd64_mpx_linux;
--
--/* Defined in auto-generated file x32-linux.c. */
--void init_registers_x32_linux (void);
--extern const struct target_desc *tdesc_x32_linux;
--
--/* Defined in auto-generated file x32-avx-linux.c. */
--void init_registers_x32_avx_linux (void);
--extern const struct target_desc *tdesc_x32_avx_linux;
--
--/* Defined in auto-generated file x32-avx512-linux.c. */
--void init_registers_x32_avx512_linux (void);
--extern const struct target_desc *tdesc_x32_avx512_linux;
--
--#endif
--
--/* Defined in auto-generated file i386-linux.c. */
--void init_registers_i386_linux (void);
--extern const struct target_desc *tdesc_i386_linux;
--
--/* Defined in auto-generated file i386-mmx-linux.c. */
--void init_registers_i386_mmx_linux (void);
--extern const struct target_desc *tdesc_i386_mmx_linux;
--
--/* Defined in auto-generated file i386-avx-linux.c. */
--void init_registers_i386_avx_linux (void);
--extern const struct target_desc *tdesc_i386_avx_linux;
--
--/* Defined in auto-generated file i386-avx512-linux.c. */
--void init_registers_i386_avx512_linux (void);
--extern const struct target_desc *tdesc_i386_avx512_linux;
--
--/* Defined in auto-generated file i386-mpx-linux.c. */
--void init_registers_i386_mpx_linux (void);
--extern const struct target_desc *tdesc_i386_mpx_linux;
-+#include "linux-x86-tdesc.h"
-
- #ifdef __x86_64__
- static struct target_desc *tdesc_amd64_linux_no_xml;
-@@ -839,6 +789,9 @@ x86_linux_read_description (void)
- case X86_XSTATE_AVX512_MASK:
- return tdesc_amd64_avx512_linux;
-
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_amd64_avx_mpx_linux;
-+
- case X86_XSTATE_MPX_MASK:
- return tdesc_amd64_mpx_linux;
-
-@@ -886,6 +839,9 @@ x86_linux_read_description (void)
- case (X86_XSTATE_MPX_MASK):
- return tdesc_i386_mpx_linux;
-
-+ case (X86_XSTATE_AVX_MPX_MASK):
-+ return tdesc_i386_avx_mpx_linux;
-+
- case (X86_XSTATE_AVX_MASK):
- return tdesc_i386_avx_linux;
-
-@@ -2891,6 +2847,42 @@ x86_supports_hardware_single_step (void)
- return 1;
- }
-
-+static int
-+x86_get_ipa_tdesc_idx (void)
-+{
-+ struct regcache *regcache = get_thread_regcache (current_thread, 0);
-+ const struct target_desc *tdesc = regcache->tdesc;
-+
-+#ifdef __x86_64__
-+ if (tdesc == tdesc_amd64_linux || tdesc == tdesc_amd64_linux_no_xml
-+ || tdesc == tdesc_x32_linux)
-+ return X86_TDESC_SSE;
-+ if (tdesc == tdesc_amd64_avx_linux || tdesc == tdesc_x32_avx_linux)
-+ return X86_TDESC_AVX;
-+ if (tdesc == tdesc_amd64_mpx_linux)
-+ return X86_TDESC_MPX;
-+ if (tdesc == tdesc_amd64_avx_mpx_linux)
-+ return X86_TDESC_AVX_MPX;
-+ if (tdesc == tdesc_amd64_avx512_linux || tdesc == tdesc_x32_avx512_linux)
-+ return X86_TDESC_AVX512;
-+#endif
-+
-+ if (tdesc == tdesc_i386_mmx_linux)
-+ return X86_TDESC_MMX;
-+ if (tdesc == tdesc_i386_linux || tdesc == tdesc_i386_linux_no_xml)
-+ return X86_TDESC_SSE;
-+ if (tdesc == tdesc_i386_avx_linux)
-+ return X86_TDESC_AVX;
-+ if (tdesc == tdesc_i386_mpx_linux)
-+ return X86_TDESC_MPX;
-+ if (tdesc == tdesc_i386_avx_mpx_linux)
-+ return X86_TDESC_AVX_MPX;
-+ if (tdesc == tdesc_i386_avx512_linux)
-+ return X86_TDESC_AVX512;
-+
-+ return 0;
-+}
-+
- /* This is initialized assuming an amd64 target.
- x86_arch_setup will correct it for i386 or amd64 targets. */
-
-@@ -2934,6 +2926,7 @@ struct linux_target_ops the_low_target =
- NULL, /* breakpoint_kind_from_current_state */
- x86_supports_hardware_single_step,
- x86_get_syscall_trapinfo,
-+ x86_get_ipa_tdesc_idx,
- };
-
- void
-@@ -2945,6 +2938,7 @@ initialize_low_arch (void)
- init_registers_amd64_avx_linux ();
- init_registers_amd64_avx512_linux ();
- init_registers_amd64_mpx_linux ();
-+ init_registers_amd64_avx_mpx_linux ();
-
- init_registers_x32_linux ();
- init_registers_x32_avx_linux ();
-@@ -2959,6 +2953,7 @@ initialize_low_arch (void)
- init_registers_i386_avx_linux ();
- init_registers_i386_avx512_linux ();
- init_registers_i386_mpx_linux ();
-+ init_registers_i386_avx_mpx_linux ();
-
- tdesc_i386_linux_no_xml = XNEW (struct target_desc);
- copy_target_description (tdesc_i386_linux_no_xml, tdesc_i386_linux);
-diff --git a/gdb/gdbserver/linux-x86-tdesc.h b/gdb/gdbserver/linux-x86-tdesc.h
-new file mode 100644
-index 0000000..720f50c
---- /dev/null
-+++ b/gdb/gdbserver/linux-x86-tdesc.h
-@@ -0,0 +1,98 @@
-+/* Low level support for x86 (i386 and x86-64), shared between gdbserver
-+ and IPA.
-+
-+ Copyright (C) 2016 Free Software Foundation, Inc.
-+
-+ This file is part of GDB.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 3 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+/* Note: since IPA obviously knows what ABI it's running on (i386 vs x86_64
-+ vs x32), it's sufficient to pass only the register set here. This,
-+ together with the ABI known at IPA compile time, maps to a tdesc. */
-+
-+enum x86_linux_tdesc {
-+ X86_TDESC_MMX = 0,
-+ X86_TDESC_SSE = 1,
-+ X86_TDESC_AVX = 2,
-+ X86_TDESC_MPX = 3,
-+ X86_TDESC_AVX_MPX = 4,
-+ X86_TDESC_AVX512 = 5,
-+};
-+
-+#ifdef __x86_64__
-+
-+#if defined __LP64__ || !defined IN_PROCESS_AGENT
-+/* Defined in auto-generated file amd64-linux.c. */
-+void init_registers_amd64_linux (void);
-+extern const struct target_desc *tdesc_amd64_linux;
-+
-+/* Defined in auto-generated file amd64-avx-linux.c. */
-+void init_registers_amd64_avx_linux (void);
-+extern const struct target_desc *tdesc_amd64_avx_linux;
-+
-+/* Defined in auto-generated file amd64-avx512-linux.c. */
-+void init_registers_amd64_avx512_linux (void);
-+extern const struct target_desc *tdesc_amd64_avx512_linux;
-+
-+/* Defined in auto-generated file amd64-avx-mpx-linux.c. */
-+void init_registers_amd64_avx_mpx_linux (void);
-+extern const struct target_desc *tdesc_amd64_avx_mpx_linux;
-+
-+/* Defined in auto-generated file amd64-mpx-linux.c. */
-+void init_registers_amd64_mpx_linux (void);
-+extern const struct target_desc *tdesc_amd64_mpx_linux;
-+#endif
-+
-+#if defined __ILP32__ || !defined IN_PROCESS_AGENT
-+/* Defined in auto-generated file x32-linux.c. */
-+void init_registers_x32_linux (void);
-+extern const struct target_desc *tdesc_x32_linux;
-+
-+/* Defined in auto-generated file x32-avx-linux.c. */
-+void init_registers_x32_avx_linux (void);
-+extern const struct target_desc *tdesc_x32_avx_linux;
-+
-+/* Defined in auto-generated file x32-avx512-linux.c. */
-+void init_registers_x32_avx512_linux (void);
-+extern const struct target_desc *tdesc_x32_avx512_linux;
-+#endif
-+
-+#endif
-+
-+#if defined __i386__ || !defined IN_PROCESS_AGENT
-+/* Defined in auto-generated file i386-linux.c. */
-+void init_registers_i386_linux (void);
-+extern const struct target_desc *tdesc_i386_linux;
-+
-+/* Defined in auto-generated file i386-mmx-linux.c. */
-+void init_registers_i386_mmx_linux (void);
-+extern const struct target_desc *tdesc_i386_mmx_linux;
-+
-+/* Defined in auto-generated file i386-avx-linux.c. */
-+void init_registers_i386_avx_linux (void);
-+extern const struct target_desc *tdesc_i386_avx_linux;
-+
-+/* Defined in auto-generated file i386-avx-mpx-linux.c. */
-+void init_registers_i386_avx_mpx_linux (void);
-+extern const struct target_desc *tdesc_i386_avx_mpx_linux;
-+
-+/* Defined in auto-generated file i386-avx512-linux.c. */
-+void init_registers_i386_avx512_linux (void);
-+extern const struct target_desc *tdesc_i386_avx512_linux;
-+
-+/* Defined in auto-generated file i386-mpx-linux.c. */
-+void init_registers_i386_mpx_linux (void);
-+extern const struct target_desc *tdesc_i386_mpx_linux;
-+#endif
-diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
-index 5af2051..4c14c20 100644
---- a/gdb/gdbserver/target.h
-+++ b/gdb/gdbserver/target.h
-@@ -471,6 +471,9 @@ struct target_ops
- /* Return 1 if the target supports catch syscall, 0 (or leave the
- callback NULL) otherwise. */
- int (*supports_catch_syscall) (void);
-+
-+ /* Return tdesc index for IPA. */
-+ int (*get_ipa_tdesc_idx) (void);
- };
-
- extern struct target_ops *the_target;
-@@ -550,6 +553,10 @@ int kill_inferior (int);
- (the_target->supports_catch_syscall ? \
- (*the_target->supports_catch_syscall) () : 0)
-
-+#define target_get_ipa_tdesc_idx() \
-+ (the_target->get_ipa_tdesc_idx \
-+ ? (*the_target->get_ipa_tdesc_idx) () : 0)
-+
- #define target_supports_tracepoints() \
- (the_target->supports_tracepoints \
- ? (*the_target->supports_tracepoints) () : 0)
-diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
-index 0671999..cc86677 100644
---- a/gdb/gdbserver/tracepoint.c
-+++ b/gdb/gdbserver/tracepoint.c
-@@ -134,6 +134,7 @@ trace_vdebug (const char *fmt, ...)
- # define ust_loaded IPA_SYM_EXPORTED_NAME (ust_loaded)
- # define helper_thread_id IPA_SYM_EXPORTED_NAME (helper_thread_id)
- # define cmd_buf IPA_SYM_EXPORTED_NAME (cmd_buf)
-+# define ipa_tdesc_idx IPA_SYM_EXPORTED_NAME (ipa_tdesc_idx)
- #endif
-
- #ifndef IN_PROCESS_AGENT
-@@ -171,6 +172,7 @@ struct ipa_sym_addresses
- CORE_ADDR addr_get_trace_state_variable_value;
- CORE_ADDR addr_set_trace_state_variable_value;
- CORE_ADDR addr_ust_loaded;
-+ CORE_ADDR addr_ipa_tdesc_idx;
- };
-
- static struct
-@@ -207,6 +209,7 @@ static struct
- IPA_SYM(get_trace_state_variable_value),
- IPA_SYM(set_trace_state_variable_value),
- IPA_SYM(ust_loaded),
-+ IPA_SYM(ipa_tdesc_idx),
- };
-
- static struct ipa_sym_addresses ipa_sym_addrs;
-@@ -3231,6 +3234,11 @@ cmd_qtstart (char *packet)
-
- *packet = '\0';
-
-+ /* Tell IPA about the correct tdesc. */
-+ if (write_inferior_integer (ipa_sym_addrs.addr_ipa_tdesc_idx,
-+ target_get_ipa_tdesc_idx ()))
-+ error ("Error setting ipa_tdesc_idx variable in lib");
-+
- /* Start out empty. */
- if (agent_loaded_p ())
- write_inferior_data_ptr (ipa_sym_addrs.addr_tracepoints, 0);
-@@ -4714,19 +4722,20 @@ collect_data_at_step (struct tracepoint_hit_ctx *ctx,
- #endif
-
- #ifdef IN_PROCESS_AGENT
--/* The target description used by the IPA. Given that the IPA library
-- is built for a specific architecture that is loaded into the
-- inferior, there only needs to be one such description per
-- build. */
--const struct target_desc *ipa_tdesc;
-+/* The target description index for IPA. Passed from gdbserver, used
-+ to select ipa_tdesc. */
-+EXTERN_C_PUSH
-+IP_AGENT_EXPORT_VAR int ipa_tdesc_idx;
-+EXTERN_C_POP
- #endif
-
- static struct regcache *
- get_context_regcache (struct tracepoint_hit_ctx *ctx)
- {
- struct regcache *regcache = NULL;
--
- #ifdef IN_PROCESS_AGENT
-+ const struct target_desc *ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
-+
- if (ctx->type == fast_tracepoint)
- {
- struct fast_tracepoint_ctx *fctx = (struct fast_tracepoint_ctx *) ctx;
-@@ -5799,11 +5808,13 @@ IP_AGENT_EXPORT_FUNC void
- gdb_collect (struct tracepoint *tpoint, unsigned char *regs)
- {
- struct fast_tracepoint_ctx ctx;
-+ const struct target_desc *ipa_tdesc;
-
- /* Don't do anything until the trace run is completely set up. */
- if (!tracing)
- return;
-
-+ ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
- ctx.base.type = fast_tracepoint;
- ctx.regs = regs;
- ctx.regcache_initted = 0;
-@@ -6660,6 +6671,7 @@ gdb_probe (const struct marker *mdata, void *probe_private,
- {
- struct tracepoint *tpoint;
- struct static_tracepoint_ctx ctx;
-+ const struct target_desc *ipa_tdesc;
-
- /* Don't do anything until the trace run is completely set up. */
- if (!tracing)
-@@ -6668,6 +6680,7 @@ gdb_probe (const struct marker *mdata, void *probe_private,
- return;
- }
-
-+ ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
- ctx.base.type = static_tracepoint;
- ctx.regcache_initted = 0;
- ctx.regs = regs;
-diff --git a/gdb/gdbserver/tracepoint.h b/gdb/gdbserver/tracepoint.h
-index cab89cf..e30f4f7 100644
---- a/gdb/gdbserver/tracepoint.h
-+++ b/gdb/gdbserver/tracepoint.h
-@@ -124,6 +124,7 @@ int handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc);
-
- #ifdef IN_PROCESS_AGENT
- void initialize_low_tracepoint (void);
-+const struct target_desc *get_ipa_tdesc (int idx);
- void supply_fast_tracepoint_registers (struct regcache *regcache,
- const unsigned char *regs);
- void supply_static_tracepoint_registers (struct regcache *regcache,
-@@ -131,9 +132,6 @@ void supply_static_tracepoint_registers (struct regcache *regcache,
- CORE_ADDR pc);
- void set_trampoline_buffer_space (CORE_ADDR begin, CORE_ADDR end,
- char *errmsg);
--
--extern const struct target_desc *ipa_tdesc;
--
- #else
- void stop_tracing (void);
-
-diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
-index af39e78..df47efd 100644
---- a/gdb/i386-linux-tdep.c
-+++ b/gdb/i386-linux-tdep.c
-@@ -47,6 +47,7 @@
- #include "features/i386/i386-linux.c"
- #include "features/i386/i386-mmx-linux.c"
- #include "features/i386/i386-mpx-linux.c"
-+#include "features/i386/i386-avx-mpx-linux.c"
- #include "features/i386/i386-avx-linux.c"
- #include "features/i386/i386-avx512-linux.c"
-
-@@ -630,6 +631,8 @@ i386_linux_core_read_description (struct gdbarch *gdbarch,
- return tdesc_i386_avx512_linux;
- case X86_XSTATE_MPX_MASK:
- return tdesc_i386_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_i386_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- return tdesc_i386_avx_linux;
- case X86_XSTATE_SSE_MASK:
-@@ -1018,5 +1021,6 @@ _initialize_i386_linux_tdep (void)
- initialize_tdesc_i386_mmx_linux ();
- initialize_tdesc_i386_avx_linux ();
- initialize_tdesc_i386_mpx_linux ();
-+ initialize_tdesc_i386_avx_mpx_linux ();
- initialize_tdesc_i386_avx512_linux ();
- }
-diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
-index ecc9e31..0cb0c4d 100644
---- a/gdb/i386-linux-tdep.h
-+++ b/gdb/i386-linux-tdep.h
-@@ -42,6 +42,7 @@ extern struct target_desc *tdesc_i386_linux;
- extern struct target_desc *tdesc_i386_mmx_linux;
- extern struct target_desc *tdesc_i386_avx_linux;
- extern struct target_desc *tdesc_i386_mpx_linux;
-+extern struct target_desc *tdesc_i386_avx_mpx_linux;
- extern struct target_desc *tdesc_i386_avx512_linux;
-
- /* Format of XSAVE extended state is:
-diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
-index b706463..1ec0a08 100644
---- a/gdb/i386-tdep.c
-+++ b/gdb/i386-tdep.c
-@@ -53,6 +53,7 @@
- #include "features/i386/i386.c"
- #include "features/i386/i386-avx.c"
- #include "features/i386/i386-mpx.c"
-+#include "features/i386/i386-avx-mpx.c"
- #include "features/i386/i386-avx512.c"
- #include "features/i386/i386-mmx.c"
-
-@@ -8618,6 +8619,8 @@ i386_target_description (uint64_t xcr0)
- case X86_XSTATE_MPX_AVX512_MASK:
- case X86_XSTATE_AVX512_MASK:
- return tdesc_i386_avx512;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_i386_avx_mpx;
- case X86_XSTATE_MPX_MASK:
- return tdesc_i386_mpx;
- case X86_XSTATE_AVX_MASK:
-@@ -8957,6 +8960,7 @@ Show Intel Memory Protection Extensions specific variables."),
- initialize_tdesc_i386_mmx ();
- initialize_tdesc_i386_avx ();
- initialize_tdesc_i386_mpx ();
-+ initialize_tdesc_i386_avx_mpx ();
- initialize_tdesc_i386_avx512 ();
-
- /* Tell remote stub that we support XML target description. */
-diff --git a/gdb/regformats/i386/amd64-avx-mpx-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
-new file mode 100644
-index 0000000..6d45324
---- /dev/null
-+++ b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
-@@ -0,0 +1,85 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/amd64-avx-mpx-linux.xml
-+name:amd64_avx_mpx_linux
-+xmltarget:amd64-avx-mpx-linux.xml
-+expedite:rbp,rsp,rip
-+64:rax
-+64:rbx
-+64:rcx
-+64:rdx
-+64:rsi
-+64:rdi
-+64:rbp
-+64:rsp
-+64:r8
-+64:r9
-+64:r10
-+64:r11
-+64:r12
-+64:r13
-+64:r14
-+64:r15
-+64:rip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+128:xmm8
-+128:xmm9
-+128:xmm10
-+128:xmm11
-+128:xmm12
-+128:xmm13
-+128:xmm14
-+128:xmm15
-+32:mxcsr
-+64:orig_rax
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:ymm8h
-+128:ymm9h
-+128:ymm10h
-+128:ymm11h
-+128:ymm12h
-+128:ymm13h
-+128:ymm14h
-+128:ymm15h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/amd64-avx-mpx.dat b/gdb/regformats/i386/amd64-avx-mpx.dat
-new file mode 100644
-index 0000000..d985641
---- /dev/null
-+++ b/gdb/regformats/i386/amd64-avx-mpx.dat
-@@ -0,0 +1,84 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/amd64-avx-mpx.xml
-+name:amd64_avx_mpx
-+xmltarget:amd64-avx-mpx.xml
-+expedite:rbp,rsp,rip
-+64:rax
-+64:rbx
-+64:rcx
-+64:rdx
-+64:rsi
-+64:rdi
-+64:rbp
-+64:rsp
-+64:r8
-+64:r9
-+64:r10
-+64:r11
-+64:r12
-+64:r13
-+64:r14
-+64:r15
-+64:rip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+128:xmm8
-+128:xmm9
-+128:xmm10
-+128:xmm11
-+128:xmm12
-+128:xmm13
-+128:xmm14
-+128:xmm15
-+32:mxcsr
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:ymm8h
-+128:ymm9h
-+128:ymm10h
-+128:ymm11h
-+128:ymm12h
-+128:ymm13h
-+128:ymm14h
-+128:ymm15h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/amd64-mpx-linux.dat b/gdb/regformats/i386/amd64-mpx-linux.dat
-index 7a05cfe..523ae01 100644
---- a/gdb/regformats/i386/amd64-mpx-linux.dat
-+++ b/gdb/regformats/i386/amd64-mpx-linux.dat
-@@ -61,22 +61,6 @@ expedite:rbp,rsp,rip
- 128:xmm15
- 32:mxcsr
- 64:orig_rax
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
--128:ymm8h
--128:ymm9h
--128:ymm10h
--128:ymm11h
--128:ymm12h
--128:ymm13h
--128:ymm14h
--128:ymm15h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/regformats/i386/amd64-mpx.dat b/gdb/regformats/i386/amd64-mpx.dat
-index 1b75f4d..43b8776 100644
---- a/gdb/regformats/i386/amd64-mpx.dat
-+++ b/gdb/regformats/i386/amd64-mpx.dat
-@@ -60,22 +60,6 @@ expedite:rbp,rsp,rip
- 128:xmm14
- 128:xmm15
- 32:mxcsr
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
--128:ymm8h
--128:ymm9h
--128:ymm10h
--128:ymm11h
--128:ymm12h
--128:ymm13h
--128:ymm14h
--128:ymm15h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/regformats/i386/i386-avx-mpx-linux.dat b/gdb/regformats/i386/i386-avx-mpx-linux.dat
-new file mode 100644
-index 0000000..831c476
---- /dev/null
-+++ b/gdb/regformats/i386/i386-avx-mpx-linux.dat
-@@ -0,0 +1,61 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/i386-avx-mpx-linux.xml
-+name:i386_avx_mpx_linux
-+xmltarget:i386-avx-mpx-linux.xml
-+expedite:ebp,esp,eip
-+32:eax
-+32:ecx
-+32:edx
-+32:ebx
-+32:esp
-+32:ebp
-+32:esi
-+32:edi
-+32:eip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+32:mxcsr
-+32:orig_eax
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/i386-avx-mpx.dat b/gdb/regformats/i386/i386-avx-mpx.dat
-new file mode 100644
-index 0000000..8caef75
---- /dev/null
-+++ b/gdb/regformats/i386/i386-avx-mpx.dat
-@@ -0,0 +1,60 @@
-+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-+# Generated from: i386/i386-avx-mpx.xml
-+name:i386_avx_mpx
-+xmltarget:i386-avx-mpx.xml
-+expedite:ebp,esp,eip
-+32:eax
-+32:ecx
-+32:edx
-+32:ebx
-+32:esp
-+32:ebp
-+32:esi
-+32:edi
-+32:eip
-+32:eflags
-+32:cs
-+32:ss
-+32:ds
-+32:es
-+32:fs
-+32:gs
-+80:st0
-+80:st1
-+80:st2
-+80:st3
-+80:st4
-+80:st5
-+80:st6
-+80:st7
-+32:fctrl
-+32:fstat
-+32:ftag
-+32:fiseg
-+32:fioff
-+32:foseg
-+32:fooff
-+32:fop
-+128:xmm0
-+128:xmm1
-+128:xmm2
-+128:xmm3
-+128:xmm4
-+128:xmm5
-+128:xmm6
-+128:xmm7
-+32:mxcsr
-+128:ymm0h
-+128:ymm1h
-+128:ymm2h
-+128:ymm3h
-+128:ymm4h
-+128:ymm5h
-+128:ymm6h
-+128:ymm7h
-+128:bnd0raw
-+128:bnd1raw
-+128:bnd2raw
-+128:bnd3raw
-+64:bndcfgu
-+64:bndstatus
-diff --git a/gdb/regformats/i386/i386-mpx-linux.dat b/gdb/regformats/i386/i386-mpx-linux.dat
-index b52b68d..1dcdce9 100644
---- a/gdb/regformats/i386/i386-mpx-linux.dat
-+++ b/gdb/regformats/i386/i386-mpx-linux.dat
-@@ -45,14 +45,6 @@ expedite:ebp,esp,eip
- 128:xmm7
- 32:mxcsr
- 32:orig_eax
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/regformats/i386/i386-mpx.dat b/gdb/regformats/i386/i386-mpx.dat
-index 0ea420b..dda5164 100644
---- a/gdb/regformats/i386/i386-mpx.dat
-+++ b/gdb/regformats/i386/i386-mpx.dat
-@@ -44,14 +44,6 @@ expedite:ebp,esp,eip
- 128:xmm6
- 128:xmm7
- 32:mxcsr
--128:ymm0h
--128:ymm1h
--128:ymm2h
--128:ymm3h
--128:ymm4h
--128:ymm5h
--128:ymm6h
--128:ymm7h
- 128:bnd0raw
- 128:bnd1raw
- 128:bnd2raw
-diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp
-index 15ad7e7..3a94471 100644
---- a/gdb/testsuite/gdb.trace/ftrace.exp
-+++ b/gdb/testsuite/gdb.trace/ftrace.exp
-@@ -132,7 +132,6 @@ proc test_fast_tracepoints {} {
- gdb_test "tfind pc *set_point" "Found trace frame .*" \
- "tfind set_point frame, first time"
-
-- setup_kfail "gdb/13808" "x86_64-*-linux*"
- gdb_test "print globvar" " = 1"
-
- gdb_test "tfind pc *set_point" "Found trace frame .*" \
-diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
-index 3cc18c1..107576f 100644
---- a/gdb/x86-linux-nat.c
-+++ b/gdb/x86-linux-nat.c
-@@ -215,6 +215,11 @@ x86_linux_read_description (struct target_ops *ops)
- return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
- else
- return tdesc_amd64_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ if (is_x32)
-+ return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
-+ else
-+ return tdesc_amd64_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- if (is_x32)
- return tdesc_x32_avx_linux;
-@@ -237,6 +242,8 @@ x86_linux_read_description (struct target_ops *ops)
- return tdesc_i386_avx512_linux;
- case X86_XSTATE_MPX_MASK:
- return tdesc_i386_mpx_linux;
-+ case X86_XSTATE_AVX_MPX_MASK:
-+ return tdesc_i386_avx_mpx_linux;
- case X86_XSTATE_AVX_MASK:
- return tdesc_i386_avx_linux;
- default:
diff --git a/meta/recipes-devtools/gdb/gdb_7.11.1.bb b/meta/recipes-devtools/gdb/gdb_7.12.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb_7.11.1.bb
rename to meta/recipes-devtools/gdb/gdb_7.12.bb
--
2.7.4
^ permalink raw reply related
* Re: [PATCH] lttng-ust: Patch python shebang appropriately for native builds
From: Burton, Ross @ 2016-12-15 8:43 UTC (permalink / raw)
To: Khem Raj; +Cc: Patches and discussions about the oe-core layer
In-Reply-To: <CAMKF1sq--mXBzTh+xc+gZb9L9wNugK8izZ-MMrYJyKKKdR9aOg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 332 bytes --]
On 14 December 2016 at 23:38, Khem Raj <raj.khem@gmail.com> wrote:
> This also means we need to add a dependency on python-native may be it
> should inherit the python native class.
>
Indeed. For python-native, '#! /usr/bin/env python3' will always work as
that should find the Python that bitbake is running in.
Ross
[-- Attachment #2: Type: text/html, Size: 818 bytes --]
^ permalink raw reply
* [PATCH] e2fsprogs 1.43 -> 1.43.3
From: Zheng Ruoqin @ 2016-12-15 2:42 UTC (permalink / raw)
To: openembedded-core
Upgrade e2fsprogs from 1.43 to 1.43.3
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
.../e2fsprogs/{e2fsprogs_1.43.bb => e2fsprogs_1.43.3.bb} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename meta/recipes-devtools/e2fsprogs/{e2fsprogs_1.43.bb => e2fsprogs_1.43.3.bb} (98%)
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.3.bb
similarity index 98%
rename from meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
rename to meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.3.bb
index f4855bc..ac4589c 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.3.bb
@@ -13,7 +13,7 @@ SRC_URI += "file://acinclude.m4 \
SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch"
-SRCREV = "d6adf070b0e85f209c0d7f310188b134b5cb7180"
+SRCREV = "4e52870eeb08ed7532bf4fd3d5cb1538f714bdc8"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
--
2.7.4
^ permalink raw reply related
* [PATCH 1/1] selftest/bbtests.py: update test_bitbake_g()
From: Robert Yang @ 2016-12-15 1:57 UTC (permalink / raw)
To: openembedded-core
In-Reply-To: <cover.1481767010.git.liezhi.yang@windriver.com>
Add tests:
bitbake -g world
bitbake -g world -cfetchall
I saw they were failed in the past.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/lib/oeqa/selftest/bbtests.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/meta/lib/oeqa/selftest/bbtests.py b/meta/lib/oeqa/selftest/bbtests.py
index baae1e0..bec82f8 100644
--- a/meta/lib/oeqa/selftest/bbtests.py
+++ b/meta/lib/oeqa/selftest/bbtests.py
@@ -114,11 +114,16 @@ class BitbakeTests(oeSelfTest):
@testcase(167)
def test_bitbake_g(self):
- result = bitbake('-g core-image-full-cmdline')
for f in ['pn-buildlist', 'pn-depends.dot', 'package-depends.dot', 'task-depends.dot']:
self.addCleanup(os.remove, f)
- self.assertTrue('NOTE: PN build list saved to \'pn-buildlist\'' in result.output, msg = "No dependency \"pn-buildlist\" file was generated for the given task target. bitbake output: %s" % result.output)
- self.assertTrue('openssh' in ftools.read_file(os.path.join(self.builddir, 'pn-buildlist')), msg = "No \"openssh\" dependency found in pn-buildlist file.")
+ cmds = ('-g core-image-full-cmdline', '-g world', '-g world -cfetchall')
+ for cmd in cmds:
+ result = bitbake(cmd)
+ self.assertTrue('NOTE: PN build list saved to \'pn-buildlist\'' in result.output, \
+ msg = "No dependency \"pn-buildlist\" file was generated for the given task target. bitbake output: %s. Command: \"bitbake %s\"" % \
+ (result.output, cmd))
+ self.assertTrue('openssh' in ftools.read_file(os.path.join(self.builddir, 'pn-buildlist')), \
+ msg = "No \"openssh\" dependency found in pn-buildlist file. Command: %s" % cmd)
@testcase(899)
def test_image_manifest(self):
--
2.9.0
^ permalink raw reply related
* [PATCH 0/1] selftest/bbtests.py: update test_bitbake_g()
From: Robert Yang @ 2016-12-15 1:57 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 91f856426c7523e1ebdf6d6f93f5fa7e509d6e49:
oeqa/utils/commands.py: Fix get_bb_vars() when called without arguments (2016-12-14 16:14:59 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/test
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/test
Robert Yang (1):
selftest/bbtests.py: update test_bitbake_g()
meta/lib/oeqa/selftest/bbtests.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
--
2.9.0
^ permalink raw reply
* [PATCH] sudo: 1.8.17p1 -> 1.8.18p1
From: Huang Qiyu @ 2016-12-15 9:24 UTC (permalink / raw)
To: openembedded-core
Upgrade sudo from 1.8.17p1 to 1.8.18p1.
Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
---
meta/recipes-extended/sudo/{sudo_1.8.17p1.bb => sudo_1.8.18p1.bb} | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-extended/sudo/{sudo_1.8.17p1.bb => sudo_1.8.18p1.bb} (90%)
diff --git a/meta/recipes-extended/sudo/sudo_1.8.17p1.bb b/meta/recipes-extended/sudo/sudo_1.8.18p1.bb
similarity index 90%
rename from meta/recipes-extended/sudo/sudo_1.8.17p1.bb
rename to meta/recipes-extended/sudo/sudo_1.8.18p1.bb
index 614ad5c..95e1b84 100644
--- a/meta/recipes-extended/sudo/sudo_1.8.17p1.bb
+++ b/meta/recipes-extended/sudo/sudo_1.8.18p1.bb
@@ -7,8 +7,8 @@ SRC_URI = "http://ftp.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
PAM_SRC_URI = "file://sudo.pam"
-SRC_URI[md5sum] = "50a840a688ceb6fa3ab24fc0adf4fa23"
-SRC_URI[sha256sum] = "c690d707fb561b3ecdf6a6de5563bc0b769388eff201c851edbace408bb155cc"
+SRC_URI[md5sum] = "28f5214d5bcb5af5710decb95184a0a6"
+SRC_URI[sha256sum] = "e5a0471c721281a693025bbde33ebd9d3db43245d83ab8516bbfc23980379434"
DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
--
2.7.4
^ permalink raw reply related
* Re: [PATCH] glibc: add -fno-builtin-strlen when not using -O2
From: Randy MacLeod @ 2016-12-15 1:04 UTC (permalink / raw)
To: Andre McCurdy, Huang, Jie (Jackie)
Cc: Patches and discussions about the oe-core layer
In-Reply-To: <CAJ86T=Xw9JAQDE+qPKX3T00VYHP0Kt7s47Yh3cNxzpZpc5Pp0w@mail.gmail.com>
On 2016-12-13 04:16 AM, Andre McCurdy wrote:
> On Mon, Dec 12, 2016 at 9:14 PM, Huang, Jie (Jackie)
> <Jackie.Huang@windriver.com> wrote:
>>> From: Andre McCurdy [mailto:armccurdy@gmail.com]
>>> For reference, here's the patch I've been using. It's a slightly more
>>> generic fix than the one in the KDE bug report.
>>
>> Thanks, It's a better patch and I will take it and send as v2 of this issue if you're
>> not going to send it yourself, is it fine for you and could you provide extra info
>> for the patch header like, upstream-status, written by or Signed-off-by?
>
> Sure. I forget why I didn't submit this at the time. The full patch is:
>
>>From d34e2a50ca5493f5a0ce9ccad83a36ac33689266 Mon Sep 17 00:00:00 2001
> From: Andre McCurdy <armccurdy@gmail.com>
> Date: Fri, 12 Feb 2016 18:22:12 -0800
> Subject: [PATCH] make ld-XXX.so strlen intercept optional
>
> Hack: Depending on how glibc was compiled (e.g. optimised for size or
> built with _FORTIFY_SOURCE enabled) the strlen symbol might not be
> found in ld-XXX.so. Therefore although we should still try to
> intercept it, don't make it mandatory to do so.
>
> Upstream-Status: Inappropriate
Can you explain why it's not appropriate for upstream?
Does valgrind not support running with different optimizations
of glibc?
>
> Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
> ---
> coregrind/m_redir.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
> index 7e4df8d..640a346 100644
> --- a/coregrind/m_redir.c
> +++ b/coregrind/m_redir.c
> @@ -1220,7 +1220,18 @@ static void add_hardwired_spec (const HChar*
> sopatt, const HChar* fnpatt,
> spec->from_fnpatt = CONST_CAST(HChar *,fnpatt);
> spec->to_addr = to_addr;
> spec->isWrap = False;
> - spec->mandatory = mandatory;
> +
> + /* Hack: Depending on how glibc was compiled (e.g. optimised for size or
> + built with _FORTIFY_SOURCE enabled) the strlen symbol might not be found.
> + Therefore although we should still try to intercept it, don't make it
> + mandatory to do so. We over-ride "mandatory" here to avoid the need to
> + patch the many different architecture specific callers to
> + add_hardwired_spec(). */
> + if (0==VG_(strcmp)("strlen", fnpatt))
> + spec->mandatory = NULL;
I know that Jackie has a v2 out but since the interested parties are
CCed here, and since this is marked as a hack, would there
be any value in issuing a warning:
#warning "strlen() will not be tracked due to glibc optimization level"
or something like that. Maybe it's overkill since strlen is (should be?)
side-effect free but I thought I'd share the thought.
What's the right thing to do upstream after we have this hack merged
locally to fix our ptests?
../Randy
> + else
> + spec->mandatory = mandatory;
> +
> /* VARIABLE PARTS */
> spec->mark = False; /* not significant */
> spec->done = False; /* not significant */
>
--
# Randy MacLeod. SMTS, Linux, Wind River
Direct: 613.963.1350 | 350 Terry Fox Drive, Suite 200, Ottawa, ON,
Canada, K2K 2W5
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox