diff mbox

[3/6] : Update dat files with arch and osabi

Message ID 737CEA28-7C3E-4A3C-AE7C-C0139A84FAC8@arm.com
State New
Headers show

Commit Message

Alan Hayward Jan. 16, 2018, 9:52 a.m. UTC
This patch simply ensures the osabi and arch fields exist in the dat
files. Otherwise, they will be missing in later patches when gdbserver
converts target descriptions to xml.

The patch changes regdat.sh and Makefile, and then regenerated the dat
files.

Alan.

2018-01-16  Alan Hayward  <alan.hayward@arm.com>

	* features/Makefile: Add arch and osabi to .dat.
	* regformats/aarch64.dat: Regenerate.
	* regformats/arm/arm-with-iwmmxt.dat: Likewise.
	* regformats/arm/arm-with-neon.dat: Likewise.
	* regformats/arm/arm-with-vfpv2.dat: Likewise.
	* regformats/arm/arm-with-vfpv3.dat: Likewise.
	* regformats/i386/amd64-avx-avx512-linux.dat: Likewise.
	* regformats/i386/amd64-avx-linux.dat: Likewise.
	* regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat: Likewise.
	* regformats/i386/amd64-avx-mpx-linux.dat: Likewise.
	* regformats/i386/amd64-linux.dat: Likewise.
	* regformats/i386/amd64-mpx-linux.dat: Likewise.
	* regformats/i386/amd64.dat: Likewise.
	* regformats/i386/i386-avx-avx512-linux.dat: Likewise.
	* regformats/i386/i386-avx-linux.dat: Likewise.
	* regformats/i386/i386-avx-mpx-avx512-pku-linux.dat: Likewise.
	* regformats/i386/i386-avx-mpx-linux.dat: Likewise.
	* regformats/i386/i386-avx.dat: Remove.
	* regformats/i386/i386-linux.dat: Likewise.
	* regformats/i386/i386-mmx-linux.dat: Likewise.
	* regformats/i386/i386-mpx-linux.dat: Likewise.
	* regformats/i386/i386.dat: Likewise.
	* regformats/i386/x32-avx-avx512-linux.dat: Likewise.
	* regformats/i386/x32-avx-linux.dat: Likewise.
	* regformats/i386/x32-linux.dat: Likewise.
	* regformats/mips-dsp-linux.dat: Likewise.
	* regformats/mips-linux.dat: Likewise.
	* regformats/mips64-dsp-linux.dat: Likewise.
	* regformats/mips64-linux.dat: Likewise.
	* regformats/nios2-linux.dat: Likewise.
	* regformats/regdat.sh: Check for arch and osabi.
	* regformats/rs6000/powerpc-32.dat:  Add arch and osabi to .dat.
	* regformats/rs6000/powerpc-32l.dat: Likewise.
	* regformats/rs6000/powerpc-64l.dat: Likewise.
	* regformats/rs6000/powerpc-altivec32l.dat: Likewise.
	* regformats/rs6000/powerpc-altivec64l.dat: Likewise.
	* regformats/rs6000/powerpc-cell32l.dat: Likewise.
	* regformats/rs6000/powerpc-cell64l.dat: Likewise.
	* regformats/rs6000/powerpc-e500l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-32l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-64l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-altivec32l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-altivec64l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-vsx32l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-vsx64l.dat: Likewise.
	* regformats/rs6000/powerpc-vsx32l.dat: Likewise.
	* regformats/rs6000/powerpc-vsx64l.dat: Likewise.
	* regformats/s390-gs-linux64.dat: Likewise.
	* regformats/s390-linux32.dat: Likewise.
	* regformats/s390-linux32v1.dat: Likewise.
	* regformats/s390-linux32v2.dat: Likewise.
	* regformats/s390-linux64.dat: Likewise.
	* regformats/s390-linux64v1.dat: Likewise.
	* regformats/s390-linux64v2.dat: Likewise.
	* regformats/s390-te-linux64.dat: Likewise.
	* regformats/s390-tevx-linux64.dat: Likewise.
	* regformats/s390-vx-linux64.dat: Likewise.
	* regformats/s390x-gs-linux64.dat: Likewise.
	* regformats/s390x-linux64.dat: Likewise.
	* regformats/s390x-linux64v1.dat: Likewise.
	* regformats/s390x-linux64v2.dat: Likewise.
	* regformats/s390x-te-linux64.dat: Likewise.
	* regformats/s390x-tevx-linux64.dat: Likewise.
	* regformats/s390x-vx-linux64.dat: Likewise.
	* regformats/tic6x-c62x-linux.dat: Likewise.
	* regformats/tic6x-c64x-linux.dat: Likewise.
	* regformats/tic6x-c64xp-linux.dat: Likewise.

Comments

Yao Qi Jan. 19, 2018, 10:01 p.m. UTC | #1
On Tue, Jan 16, 2018 at 9:52 AM, Alan Hayward <Alan.Hayward@arm.com> wrote:
> This patch simply ensures the osabi and arch fields exist in the dat
> files. Otherwise, they will be missing in later patches when gdbserver
> converts target descriptions to xml.

I don't think we need to change *.dat.  *.dat are used to generate *.c files
in gdbserver build directory for the following two reasons,

 - the port isn't converted to new style flexible target descriptions yet,
 - or the generated *.c files are used for test,

The goal of this series, IMO, is to get rid of the xml features for the ports
which already use new style flexible target descriptions, like x86
and aarch64.

For the old style target description, they still use xml files for each
description, and osabi/arch is written in these xml files.
Alan Hayward Jan. 22, 2018, 1:22 p.m. UTC | #2
> On 19 Jan 2018, at 22:01, Yao Qi <qiyaoltc@gmail.com> wrote:
> 
> On Tue, Jan 16, 2018 at 9:52 AM, Alan Hayward <Alan.Hayward@arm.com> wrote:
>> This patch simply ensures the osabi and arch fields exist in the dat
>> files. Otherwise, they will be missing in later patches when gdbserver
>> converts target descriptions to xml.
> 
> I don't think we need to change *.dat.  *.dat are used to generate *.c files
> in gdbserver build directory for the following two reasons,
> 
> - the port isn't converted to new style flexible target descriptions yet,
> - or the generated *.c files are used for test,
> 
> The goal of this series, IMO, is to get rid of the xml features for the ports
> which already use new style flexible target descriptions, like x86
> and aarch64.
> 
> For the old style target description, they still use xml files for each
> description, and osabi/arch is written in these xml files.
> 

If you remove this patch, but keep all the rest of the series, then the ports
using the new style target descriptions will segfault when printing the xml
in print_xml_feature::visit_pre() because the  -generated.c files do not
contain an arch or osabi.

The segfault happens on gdbserver init because the -generated.c functions
are calling tdesc_get_features_xml().
Thinking about it, I will remove this call from -generated.
That fixes the bug.

This leaves a question:
Is it required that the generated target descriptions have the osabi and arch?
If it does not need this information, then I will delete this patch.

Alan.
Yao Qi Jan. 22, 2018, 3:28 p.m. UTC | #3
Alan Hayward <Alan.Hayward@arm.com> writes:

> If you remove this patch, but keep all the rest of the series, then the ports
> using the new style target descriptions will segfault when printing the xml
> in print_xml_feature::visit_pre() because the  -generated.c files do not
> contain an arch or osabi.

Can you elaborate how does that happen?  New style target description
doesn't use anything from -generated.c files.  Note that there is even no
-generated.c files in gdbserver build directory when gdb is in release mode
(bfd/development.sh:development is false).

>
> The segfault happens on gdbserver init because the -generated.c functions
> are calling tdesc_get_features_xml().

I still don't see why -generated.c functions call
tdesc_get_features_xml.  For new style target description, it already
generate osabi and arch (see tdesc_get_features_xml path
tdesc->xmltarget == NULL).  For old style target description, arch and
osabi is from xml file.  Take i386-avx-linux-generated.c for example,

static const char *xmltarget_i386_avx_linux = "i386-avx-linux.xml";

#ifndef IN_PROCESS_AGENT
  result->expedite_regs = expedite_regs_i386_avx_linux;
  result->xmltarget = xmltarget_i386_avx_linux;
#endif

osabi and arch is specified in features/i386/i386-avx-linux.xml,

  <architecture>i386</architecture>
  <osabi>GNU/Linux</osabi>

> Thinking about it, I will remove this call from -generated.
> That fixes the bug.
>
> This leaves a question:
> Is it required that the generated target descriptions have the osabi and arch?
> If it does not need this information, then I will delete this patch.

If by "the generated target descriptions", you mean *-generated.c files
in gdbserver build directory, yes, they don't have osabi and arch.  As I
said above, arch and osabi, if any, are specified in the xml files.
diff mbox

Patch

diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 82609f5862fa95dbc587c7cc08537373faf7bfd6..96478b051262fadb074e37300f09cadbd5a1512c 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -202,6 +202,8 @@  $(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl gdbserver-regs.xsl
 	echo "xmltarget:$(<F)" >> $(outdir)/$*.tmp
 	echo "expedite:$(if $($*-expedite),$($*-expedite),$($(firstword $(subst -, ,$(notdir $*)))-expedite))" \
 	  >> $(outdir)/$*.tmp
+	sed -n 's:.*<osabi>\(.*\)</osabi>.*:osabi\:\1:p' $*.xml >> $(outdir)/$*.tmp
+	sed -n 's:.*<architecture>\(.*\)</architecture>.*:xmlarch\:\1:p' $*.xml >> $(outdir)/$*.tmp
 	$(XSLTPROC) --path "$(PWD)" --xinclude number-regs.xsl $< | \
 	  $(XSLTPROC) sort-regs.xsl - | \
 	  $(XSLTPROC) gdbserver-regs.xsl - >> $(outdir)/$*.tmp
diff --git a/gdb/regformats/aarch64.dat b/gdb/regformats/aarch64.dat
index d4cea04358ecf6a7b0645353b1944d49113632ed..2a150e50bf8d2a1fea13e0ea3dbc024705865bb9 100644
--- a/gdb/regformats/aarch64.dat
+++ b/gdb/regformats/aarch64.dat
@@ -3,6 +3,7 @@ 
 name:aarch64
 xmltarget:aarch64.xml
 expedite:x29,sp,pc
+xmlarch:aarch64
 64:x0
 64:x1
 64:x2
diff --git a/gdb/regformats/arm/arm-with-iwmmxt.dat b/gdb/regformats/arm/arm-with-iwmmxt.dat
index f529c2c493c39ff204a22d34c8a2c7a622f349a2..71fd07075b0a80d062a93b4a5f81a8b703818fde 100644
--- a/gdb/regformats/arm/arm-with-iwmmxt.dat
+++ b/gdb/regformats/arm/arm-with-iwmmxt.dat
@@ -3,6 +3,7 @@ 
 name:arm_with_iwmmxt
 xmltarget:arm-with-iwmmxt.xml
 expedite:r11,sp,pc
+xmlarch:iwmmxt
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/arm/arm-with-neon.dat b/gdb/regformats/arm/arm-with-neon.dat
index 2e6cb85cf4bc1712b640fdca902774f87bdac376..2c58e1b590dc9a729f9e024b3d559878a7ccbf2d 100644
--- a/gdb/regformats/arm/arm-with-neon.dat
+++ b/gdb/regformats/arm/arm-with-neon.dat
@@ -3,6 +3,7 @@ 
 name:arm_with_neon
 xmltarget:arm-with-neon.xml
 expedite:r11,sp,pc
+xmlarch:arm
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/arm/arm-with-vfpv2.dat b/gdb/regformats/arm/arm-with-vfpv2.dat
index aa71f85bcb26f11c8a4ded0738d39fdaf3c3f9f9..456977ec09b6125f12071f9f5fec828fe0baecca 100644
--- a/gdb/regformats/arm/arm-with-vfpv2.dat
+++ b/gdb/regformats/arm/arm-with-vfpv2.dat
@@ -3,6 +3,7 @@ 
 name:arm_with_vfpv2
 xmltarget:arm-with-vfpv2.xml
 expedite:r11,sp,pc
+xmlarch:arm
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/arm/arm-with-vfpv3.dat b/gdb/regformats/arm/arm-with-vfpv3.dat
index 6fec4fd8f5d11ee8f29402704fb7e55f7fc9ea45..9fe6f6e0219f78f5dcdd04388874cb1bc9132f41 100644
--- a/gdb/regformats/arm/arm-with-vfpv3.dat
+++ b/gdb/regformats/arm/arm-with-vfpv3.dat
@@ -3,6 +3,7 @@ 
 name:arm_with_vfpv3
 xmltarget:arm-with-vfpv3.xml
 expedite:r11,sp,pc
+xmlarch:arm
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/i386/amd64-avx-avx512-linux.dat b/gdb/regformats/i386/amd64-avx-avx512-linux.dat
index 0743693886bb3984074191698155d7b0c422008b..76cb4bf3e1ab0d42ccf271a2c5263aec74438884 100644
--- a/gdb/regformats/i386/amd64-avx-avx512-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-avx512-linux.dat
@@ -3,6 +3,8 @@ 
 name:amd64_avx_avx512_linux
 xmltarget:amd64-avx-avx512-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-avx-linux.dat b/gdb/regformats/i386/amd64-avx-linux.dat
index 7780b3b6a214592fdd6c7afce6215351ff4787d8..f07a45c1d7df267e69dfa3af7eb49a417e16d9f7 100644
--- a/gdb/regformats/i386/amd64-avx-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-linux.dat
@@ -3,6 +3,8 @@ 
 name:amd64_avx_linux
 xmltarget:amd64-avx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
index 9cd0fae8202596630fdab8321c6cb7c7ba38c7af..d55a3dbd08cb979ac8bf268f979fbb9b8461ff4f 100644
--- a/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
@@ -3,6 +3,8 @@ 
 name:amd64_avx_mpx_avx512_pku_linux
 xmltarget:amd64-avx-mpx-avx512-pku-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-avx-mpx-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
index 7c2f928070fe291e5ca1249617fe8b8e96644912..4b81aaebc7813dd50ac962a115f128e02a910a15 100644
--- a/gdb/regformats/i386/amd64-avx-mpx-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
@@ -3,6 +3,8 @@ 
 name:amd64_avx_mpx_linux
 xmltarget:amd64-avx-mpx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-linux.dat b/gdb/regformats/i386/amd64-linux.dat
index cd16a1544283edd5e22f9bd8ce4ae56012af7833..893a8873f783b40571f071b5ea3f1ec899a99bf8 100644
--- a/gdb/regformats/i386/amd64-linux.dat
+++ b/gdb/regformats/i386/amd64-linux.dat
@@ -3,6 +3,8 @@ 
 name:amd64_linux
 xmltarget:amd64-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-mpx-linux.dat b/gdb/regformats/i386/amd64-mpx-linux.dat
index 10487f698708b431ca9e5cf9c6a077c78651ad33..bf6fe32fd90c646b42db8eb00fd90d42b17cc8cb 100644
--- a/gdb/regformats/i386/amd64-mpx-linux.dat
+++ b/gdb/regformats/i386/amd64-mpx-linux.dat
@@ -3,6 +3,8 @@ 
 name:amd64_mpx_linux
 xmltarget:amd64-mpx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64.dat b/gdb/regformats/i386/amd64.dat
index 66f26ad0947eca8849ff5f5ca67f173d6705ba70..05d3d133caf07b105bab6ea50fa974b0ccf9b920 100644
--- a/gdb/regformats/i386/amd64.dat
+++ b/gdb/regformats/i386/amd64.dat
@@ -3,6 +3,7 @@ 
 name:amd64
 xmltarget:amd64.xml
 expedite:rbp,rsp,rip
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/i386-avx-avx512-linux.dat b/gdb/regformats/i386/i386-avx-avx512-linux.dat
index 4477133997252ff3fc375b772dbdc1f8d723132d..e0bda8c6a94d12e535b75269957a1dc090051198 100644
--- a/gdb/regformats/i386/i386-avx-avx512-linux.dat
+++ b/gdb/regformats/i386/i386-avx-avx512-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_avx_avx512_linux
 xmltarget:i386-avx-avx512-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx-linux.dat b/gdb/regformats/i386/i386-avx-linux.dat
index 1c3fcfd7633b937e2ce4e033a4706a8d9d14d277..9a21f7f1a2a21289e2619158f7c758bb5d37a629 100644
--- a/gdb/regformats/i386/i386-avx-linux.dat
+++ b/gdb/regformats/i386/i386-avx-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_avx_linux
 xmltarget:i386-avx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat b/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
index 515ee10525bd8b9fb238e4f0fb14815b65a7b73f..5fe5f64e7868e27cf140fe26a0db72e34b15f178 100644
--- a/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
+++ b/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_avx_mpx_avx512_pku_linux
 xmltarget:i386-avx-mpx-avx512-pku-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx-mpx-linux.dat b/gdb/regformats/i386/i386-avx-mpx-linux.dat
index 831c476fef4398d661fc00412f165f61daf3b2a0..82df093b25f39b1c88e78f4a5c19ad26409c086a 100644
--- a/gdb/regformats/i386/i386-avx-mpx-linux.dat
+++ b/gdb/regformats/i386/i386-avx-mpx-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_avx_mpx_linux
 xmltarget:i386-avx-mpx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx.dat b/gdb/regformats/i386/i386-avx.dat
deleted file mode 100644
index 67eaa33a1aef63457594d15bcec088e9771fa0d6..0000000000000000000000000000000000000000
--- a/gdb/regformats/i386/i386-avx.dat
+++ /dev/null
@@ -1,54 +0,0 @@ 
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx.xml
-name:i386_avx
-xmltarget:i386-avx.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
diff --git a/gdb/regformats/i386/i386-linux.dat b/gdb/regformats/i386/i386-linux.dat
index 0e414e649029020eefd789026787f9959bb791d3..937b6536a15733432478ad5c5b2014ca792d038c 100644
--- a/gdb/regformats/i386/i386-linux.dat
+++ b/gdb/regformats/i386/i386-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_linux
 xmltarget:i386-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-mmx-linux.dat b/gdb/regformats/i386/i386-mmx-linux.dat
index aa2a564ac7466e4cb13fb02c9c386b2847b3aa3b..1bef702be43e9ea29cfda7aeb6ac6d2090e52d82 100644
--- a/gdb/regformats/i386/i386-mmx-linux.dat
+++ b/gdb/regformats/i386/i386-mmx-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_mmx_linux
 xmltarget:i386-mmx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-mpx-linux.dat b/gdb/regformats/i386/i386-mpx-linux.dat
index 1dcdce98cf50141722cb273ad379d00339a33483..c7ee4b762cb1274e241a453503937fc27c1107c8 100644
--- a/gdb/regformats/i386/i386-mpx-linux.dat
+++ b/gdb/regformats/i386/i386-mpx-linux.dat
@@ -3,6 +3,8 @@ 
 name:i386_mpx_linux
 xmltarget:i386-mpx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386.dat b/gdb/regformats/i386/i386.dat
index 13abb485e4913a471b2992fc12e49eded688fbe3..bb258b266b91c1a8bb32bc1614dda77c4ff820d8 100644
--- a/gdb/regformats/i386/i386.dat
+++ b/gdb/regformats/i386/i386.dat
@@ -3,6 +3,7 @@ 
 name:i386
 xmltarget:i386.xml
 expedite:ebp,esp,eip
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/x32-avx-avx512-linux.dat b/gdb/regformats/i386/x32-avx-avx512-linux.dat
index 00786172fb9809b4eb5f0cc4fc4408b31dc0f677..f5a79f453d3d1d71e7820685d4ef80bc191e1bf4 100644
--- a/gdb/regformats/i386/x32-avx-avx512-linux.dat
+++ b/gdb/regformats/i386/x32-avx-avx512-linux.dat
@@ -3,6 +3,8 @@ 
 name:x32_avx_avx512_linux
 xmltarget:x32-avx-avx512-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x64-32
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/x32-avx-linux.dat b/gdb/regformats/i386/x32-avx-linux.dat
index eb0e395366e68d692e38158302908bfed4269720..7bfc7a86269d7f037877f04301651f4e078ad9be 100644
--- a/gdb/regformats/i386/x32-avx-linux.dat
+++ b/gdb/regformats/i386/x32-avx-linux.dat
@@ -3,6 +3,8 @@ 
 name:x32_avx_linux
 xmltarget:x32-avx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x64-32
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/x32-linux.dat b/gdb/regformats/i386/x32-linux.dat
index eee378fd846a8ac5ee5ba503190bc25245eddef3..b669f325ec689f75b46396d85ff7965f3f9b3355 100644
--- a/gdb/regformats/i386/x32-linux.dat
+++ b/gdb/regformats/i386/x32-linux.dat
@@ -3,6 +3,8 @@ 
 name:x32_linux
 xmltarget:x32-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x64-32
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/mips-dsp-linux.dat b/gdb/regformats/mips-dsp-linux.dat
index ce37bf38bdb9322acd0ee5cebbecf7eb62183a9f..0994fbfe4f3b8068215ca3d8baa9bee5c137dbd0 100644
--- a/gdb/regformats/mips-dsp-linux.dat
+++ b/gdb/regformats/mips-dsp-linux.dat
@@ -3,6 +3,8 @@ 
 name:mips_dsp_linux
 xmltarget:mips-dsp-linux.xml
 expedite:r29,pc
+osabi:GNU/Linux
+xmlarch:mips
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/mips-linux.dat b/gdb/regformats/mips-linux.dat
index d95e2c9ed455d536eb046d1e56a11b8fd51ea3ea..e181c7a10879ea259e110c77082f77f651879315 100644
--- a/gdb/regformats/mips-linux.dat
+++ b/gdb/regformats/mips-linux.dat
@@ -3,6 +3,8 @@ 
 name:mips_linux
 xmltarget:mips-linux.xml
 expedite:r29,pc
+osabi:GNU/Linux
+xmlarch:mips
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/mips64-dsp-linux.dat b/gdb/regformats/mips64-dsp-linux.dat
index e73df93d69b8a2e9064e167e071eb2bf9e99e876..3c8179de2dca87e0b9ac99a135596176639f2a59 100644
--- a/gdb/regformats/mips64-dsp-linux.dat
+++ b/gdb/regformats/mips64-dsp-linux.dat
@@ -3,6 +3,7 @@ 
 name:mips64_dsp_linux
 xmltarget:mips64-dsp-linux.xml
 expedite:r29,pc
+xmlarch:mips
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/mips64-linux.dat b/gdb/regformats/mips64-linux.dat
index 6770c8f65455d6b5329e6eb430c7da1a6b269958..5e503ce59d5f348a1360147a7001996571234a4d 100644
--- a/gdb/regformats/mips64-linux.dat
+++ b/gdb/regformats/mips64-linux.dat
@@ -3,6 +3,7 @@ 
 name:mips64_linux
 xmltarget:mips64-linux.xml
 expedite:r29,pc
+xmlarch:mips
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/nios2-linux.dat b/gdb/regformats/nios2-linux.dat
index fe4af2f4f361d693ea64f59ae5ecdbe488f9945b..6036dc8439e1fe54e359ff46a9cb6c8aee535a95 100644
--- a/gdb/regformats/nios2-linux.dat
+++ b/gdb/regformats/nios2-linux.dat
@@ -3,6 +3,8 @@ 
 name:nios2_linux
 xmltarget:nios2-linux.xml
 expedite:sp,pc
+osabi:GNU/Linux
+xmlarch:nios2
 32:zero
 32:at
 32:r2
diff --git a/gdb/regformats/regdat.sh b/gdb/regformats/regdat.sh
index 8c6e191596350fb4e983f8736985d9832f41e2d3..8341e11ba76031cc260d60fdc2071bc8a2188f8e 100755
--- a/gdb/regformats/regdat.sh
+++ b/gdb/regformats/regdat.sh
@@ -177,8 +177,17 @@  else
 fi
 echo

+echo "#ifndef IN_PROCESS_AGENT"
+
+if test "${xmlarch}" != x; then
+  echo "set_tdesc_architecture (result, \"${xmlarch}\");"
+fi
+
+if test "${xmlosabi}" != x; then
+  echo "set_tdesc_osabi (result, \"${xmlosabi}\");"
+fi
+
 cat <<EOF
-#ifndef IN_PROCESS_AGENT
   result->expedite_regs = expedite_regs_${name};
   result->xmltarget = xmltarget_${name};
 #endif
diff --git a/gdb/regformats/rs6000/powerpc-32.dat b/gdb/regformats/rs6000/powerpc-32.dat
index 266636b11f95d68a8842c86eff140582c1b3bb0a..fe648439bd14da8171ee5f9612bddfab0c812ea6 100644
--- a/gdb/regformats/rs6000/powerpc-32.dat
+++ b/gdb/regformats/rs6000/powerpc-32.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_32
 xmltarget:powerpc-32.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-32l.dat b/gdb/regformats/rs6000/powerpc-32l.dat
index 2c8ccbe49b9827c54d7d6a3ec498a1e8d289bf29..626984f4892663d994788763ce79ba92c098a8b3 100644
--- a/gdb/regformats/rs6000/powerpc-32l.dat
+++ b/gdb/regformats/rs6000/powerpc-32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_32l
 xmltarget:powerpc-32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-64l.dat b/gdb/regformats/rs6000/powerpc-64l.dat
index 10f43b16241a2cf94e2e9b21d9140e0a34d42f4f..20cfae1fc42a0c5ee5de1df3b221d0007c533fbc 100644
--- a/gdb/regformats/rs6000/powerpc-64l.dat
+++ b/gdb/regformats/rs6000/powerpc-64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_64l
 xmltarget:powerpc-64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-altivec32l.dat b/gdb/regformats/rs6000/powerpc-altivec32l.dat
index c792a2f96161ce55c63f9e17b14a35df7b71705d..4475dccbea85cbc5dd7115049e0502a4fc463618 100644
--- a/gdb/regformats/rs6000/powerpc-altivec32l.dat
+++ b/gdb/regformats/rs6000/powerpc-altivec32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_altivec32l
 xmltarget:powerpc-altivec32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-altivec64l.dat b/gdb/regformats/rs6000/powerpc-altivec64l.dat
index a806141b6eee6a9015a06bddb5efb0b1eeafc002..73ff175c348738dee5e5ead296487fbd793ae3f4 100644
--- a/gdb/regformats/rs6000/powerpc-altivec64l.dat
+++ b/gdb/regformats/rs6000/powerpc-altivec64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_altivec64l
 xmltarget:powerpc-altivec64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-cell32l.dat b/gdb/regformats/rs6000/powerpc-cell32l.dat
index bd285054958360a13dfe3cc0424b2b70132f8be7..31975be687bc41159d1b6e3853ee4b5f3d5ec2b3 100644
--- a/gdb/regformats/rs6000/powerpc-cell32l.dat
+++ b/gdb/regformats/rs6000/powerpc-cell32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_cell32l
 xmltarget:powerpc-cell32l.xml
 expedite:r1,pc,r0,orig_r3,r4
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-cell64l.dat b/gdb/regformats/rs6000/powerpc-cell64l.dat
index b5b162eced28b8b369765d72cde58828bfc7209b..ce940d9c410d0148567aa50a99c4226e86a393ca 100644
--- a/gdb/regformats/rs6000/powerpc-cell64l.dat
+++ b/gdb/regformats/rs6000/powerpc-cell64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_cell64l
 xmltarget:powerpc-cell64l.xml
 expedite:r1,pc,r0,orig_r3,r4
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-e500l.dat b/gdb/regformats/rs6000/powerpc-e500l.dat
index 750eafed7ca2fd872e0c30097fc305cb509b5c86..a13e29470e5dbd7c1d61fecc7b444f84447023f8 100644
--- a/gdb/regformats/rs6000/powerpc-e500l.dat
+++ b/gdb/regformats/rs6000/powerpc-e500l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_e500l
 xmltarget:powerpc-e500l.xml
 expedite:r1,pc
+xmlarch:powerpc:e500
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-32l.dat b/gdb/regformats/rs6000/powerpc-isa205-32l.dat
index 7227d06c977350c460d8bec46331e2ff470cdadd..3e011aa71321fcee9118433e2d2c8fe505433c95 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-32l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_isa205_32l
 xmltarget:powerpc-isa205-32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-64l.dat b/gdb/regformats/rs6000/powerpc-isa205-64l.dat
index 13a72c7eb8f14871252fe028b5ef67b9af170256..12a5e265e2eb9cc3d99ccfe1f78486d927b44bb5 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-64l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_isa205_64l
 xmltarget:powerpc-isa205-64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat b/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
index 051724c6132d2c23783b5cb2767e799ae89b48dc..539670e0b568937ebf85e13a24faaf810f296197 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_isa205_altivec32l
 xmltarget:powerpc-isa205-altivec32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat b/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
index 867e82135167776d2f9febf2cfd001657ca1b827..929084354fbea7eef0f37cc47ecb6168f4def7a1 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_isa205_altivec64l
 xmltarget:powerpc-isa205-altivec64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat b/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
index fa05cae859452ed4d7587d09af21cf13dd1d1df0..82e9dd7a26a4084166607873fc379baf3bd04148 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_isa205_vsx32l
 xmltarget:powerpc-isa205-vsx32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat b/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
index 75bd4539ad06964ed6937339f40ea1bb4f69a233..5f91fed8e6492c58eddef1dc800096921031d9d4 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_isa205_vsx64l
 xmltarget:powerpc-isa205-vsx64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-vsx32l.dat b/gdb/regformats/rs6000/powerpc-vsx32l.dat
index 6db3e38d5f235b05f6fe736f3717023d6b516c13..3471d10d7a210b7d4ca008fca4ea25b7071631c8 100644
--- a/gdb/regformats/rs6000/powerpc-vsx32l.dat
+++ b/gdb/regformats/rs6000/powerpc-vsx32l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_vsx32l
 xmltarget:powerpc-vsx32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-vsx64l.dat b/gdb/regformats/rs6000/powerpc-vsx64l.dat
index bc0a45512c81c15b13c60d4478cd85b545a2e44c..a87b1f00a9777f29059c34b96721576861cd8078 100644
--- a/gdb/regformats/rs6000/powerpc-vsx64l.dat
+++ b/gdb/regformats/rs6000/powerpc-vsx64l.dat
@@ -3,6 +3,7 @@ 
 name:powerpc_vsx64l
 xmltarget:powerpc-vsx64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/s390-gs-linux64.dat b/gdb/regformats/s390-gs-linux64.dat
index 130c8ecc026dc5fca6e6ee87ccdd39302d3fff5a..8f1dbb10c8eb46546b2c9cbb1f4fa09e31997e54 100644
--- a/gdb/regformats/s390-gs-linux64.dat
+++ b/gdb/regformats/s390-gs-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390_gs_linux64
 xmltarget:s390-gs-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-linux32.dat b/gdb/regformats/s390-linux32.dat
index 545dd0fb91535288f01837f2d587c27de75fbb76..7445e64764050c0ff968b12206391d7ea99c1d80 100644
--- a/gdb/regformats/s390-linux32.dat
+++ b/gdb/regformats/s390-linux32.dat
@@ -3,6 +3,7 @@ 
 name:s390_linux32
 xmltarget:s390-linux32.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0
diff --git a/gdb/regformats/s390-linux32v1.dat b/gdb/regformats/s390-linux32v1.dat
index b9e7fc89730733db082dd2636bdab846b6004eee..98ffed8dd64acdede8d565b20ca6184a055a218e 100644
--- a/gdb/regformats/s390-linux32v1.dat
+++ b/gdb/regformats/s390-linux32v1.dat
@@ -3,6 +3,7 @@ 
 name:s390_linux32v1
 xmltarget:s390-linux32v1.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0
diff --git a/gdb/regformats/s390-linux32v2.dat b/gdb/regformats/s390-linux32v2.dat
index 220af5e3dfb2ef742550c31ef225d155cac14189..ff43ece3e754ce8a0512a94b9eaa202b70731f26 100644
--- a/gdb/regformats/s390-linux32v2.dat
+++ b/gdb/regformats/s390-linux32v2.dat
@@ -3,6 +3,7 @@ 
 name:s390_linux32v2
 xmltarget:s390-linux32v2.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0
diff --git a/gdb/regformats/s390-linux64.dat b/gdb/regformats/s390-linux64.dat
index b347b6bf33a789558f332cdc1d81089e7652caf5..ae61eb82c624d2b7d631e499dd3ffbc0e609baa2 100644
--- a/gdb/regformats/s390-linux64.dat
+++ b/gdb/regformats/s390-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390_linux64
 xmltarget:s390-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-linux64v1.dat b/gdb/regformats/s390-linux64v1.dat
index 8abd92d3a2e4d1361f9617f51d78fb9f7741b475..8f50d028d04b44b25bbaec141525ae3433af4b78 100644
--- a/gdb/regformats/s390-linux64v1.dat
+++ b/gdb/regformats/s390-linux64v1.dat
@@ -3,6 +3,7 @@ 
 name:s390_linux64v1
 xmltarget:s390-linux64v1.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-linux64v2.dat b/gdb/regformats/s390-linux64v2.dat
index b282025e2386aad11d446e33bb7d228220e58bbd..265bdf271c93f29520dfbc9d086b5e67d68267dd 100644
--- a/gdb/regformats/s390-linux64v2.dat
+++ b/gdb/regformats/s390-linux64v2.dat
@@ -3,6 +3,7 @@ 
 name:s390_linux64v2
 xmltarget:s390-linux64v2.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-te-linux64.dat b/gdb/regformats/s390-te-linux64.dat
index 28e1b8733ebedf40c5238c754cfe95aad65ea0dd..a784a11553132d7079950f9c5578bc836fbceb68 100644
--- a/gdb/regformats/s390-te-linux64.dat
+++ b/gdb/regformats/s390-te-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390_te_linux64
 xmltarget:s390-te-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-tevx-linux64.dat b/gdb/regformats/s390-tevx-linux64.dat
index 3db7a91546bb0172138413ffc76a54da0efa29df..020960e948e06e55ab9309d481d9e3d029809975 100644
--- a/gdb/regformats/s390-tevx-linux64.dat
+++ b/gdb/regformats/s390-tevx-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390_tevx_linux64
 xmltarget:s390-tevx-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-vx-linux64.dat b/gdb/regformats/s390-vx-linux64.dat
index 6a821fd5ac47447d55a9a7fbf9120a2e02381968..f06ac589ce21cb27451c9b05875e54e4ddffaeda 100644
--- a/gdb/regformats/s390-vx-linux64.dat
+++ b/gdb/regformats/s390-vx-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390_vx_linux64
 xmltarget:s390-vx-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390x-gs-linux64.dat b/gdb/regformats/s390x-gs-linux64.dat
index 8cd57515e5163ee3221b635b1e3ea2a6714d8bf0..72e3e7089ba15668439904b62cb2fa33a96dd216 100644
--- a/gdb/regformats/s390x-gs-linux64.dat
+++ b/gdb/regformats/s390x-gs-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390x_gs_linux64
 xmltarget:s390x-gs-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-linux64.dat b/gdb/regformats/s390x-linux64.dat
index 5832c438f59778d86cea30ad5faa06607b1f803e..802a6036577390695f8594ba7ef361c55f89f3bf 100644
--- a/gdb/regformats/s390x-linux64.dat
+++ b/gdb/regformats/s390x-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390x_linux64
 xmltarget:s390x-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-linux64v1.dat b/gdb/regformats/s390x-linux64v1.dat
index 4d4de0a14cf60a694d418786fc1070998fe0f846..d499eafb7e4a6b24f7502942d4ebfb6d9780a8e3 100644
--- a/gdb/regformats/s390x-linux64v1.dat
+++ b/gdb/regformats/s390x-linux64v1.dat
@@ -3,6 +3,7 @@ 
 name:s390x_linux64v1
 xmltarget:s390x-linux64v1.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-linux64v2.dat b/gdb/regformats/s390x-linux64v2.dat
index b1c5f830231a7ddfbf91fb2776928fa47ba6ef90..45a770541c4b0a4775a7dda35ebacc77caefc7b2 100644
--- a/gdb/regformats/s390x-linux64v2.dat
+++ b/gdb/regformats/s390x-linux64v2.dat
@@ -3,6 +3,7 @@ 
 name:s390x_linux64v2
 xmltarget:s390x-linux64v2.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-te-linux64.dat b/gdb/regformats/s390x-te-linux64.dat
index 80f5ab127ee0d5a3f163641c791d328c564b5232..682d47e586304d74d08b2b0f0b4c902aaeb14b49 100644
--- a/gdb/regformats/s390x-te-linux64.dat
+++ b/gdb/regformats/s390x-te-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390x_te_linux64
 xmltarget:s390x-te-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-tevx-linux64.dat b/gdb/regformats/s390x-tevx-linux64.dat
index 2df31e6863249e3ebf31dfead3a47621126f5a08..f3190cfd07c09dd129d3a7eb63771910086cd239 100644
--- a/gdb/regformats/s390x-tevx-linux64.dat
+++ b/gdb/regformats/s390x-tevx-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390x_tevx_linux64
 xmltarget:s390x-tevx-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-vx-linux64.dat b/gdb/regformats/s390x-vx-linux64.dat
index 1d8f2b6f04370adca545f0b2caa17bc7423f45a0..fe21013119ba16fe3a1414a39311f9dcb77b21a2 100644
--- a/gdb/regformats/s390x-vx-linux64.dat
+++ b/gdb/regformats/s390x-vx-linux64.dat
@@ -3,6 +3,7 @@ 
 name:s390x_vx_linux64
 xmltarget:s390x-vx-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/tic6x-c62x-linux.dat b/gdb/regformats/tic6x-c62x-linux.dat
index 82f2a0a0bf03d8bdfbbfc1917169e6ecd1497d4f..efcdee1342e88dae6680a9de182138d362ff0b10 100644
--- a/gdb/regformats/tic6x-c62x-linux.dat
+++ b/gdb/regformats/tic6x-c62x-linux.dat
@@ -3,6 +3,8 @@ 
 name:tic6x_c62x_linux
 xmltarget:tic6x-c62x-linux.xml
 expedite:A15,PC
+osabi:GNU/Linux
+xmlarch:tic6x
 32:A0
 32:A1
 32:A2
diff --git a/gdb/regformats/tic6x-c64x-linux.dat b/gdb/regformats/tic6x-c64x-linux.dat
index 542826ad1d34db5a291359ded18aaf52ba50c88c..8e70cf9cf913b807ea55a4f26921e1e4e79d7b8e 100644
--- a/gdb/regformats/tic6x-c64x-linux.dat
+++ b/gdb/regformats/tic6x-c64x-linux.dat
@@ -3,6 +3,8 @@ 
 name:tic6x_c64x_linux
 xmltarget:tic6x-c64x-linux.xml
 expedite:A15,PC
+osabi:GNU/Linux
+xmlarch:tic6x
 32:A0
 32:A1
 32:A2
diff --git a/gdb/regformats/tic6x-c64xp-linux.dat b/gdb/regformats/tic6x-c64xp-linux.dat
index 229b3c26c25f0361994789bf3d6e1b5e48a9d488..b6b0e8bc333123e6c1addc95842b84df8ab91b6c 100644
--- a/gdb/regformats/tic6x-c64xp-linux.dat
+++ b/gdb/regformats/tic6x-c64xp-linux.dat
@@ -3,6 +3,8 @@ 
 name:tic6x_c64xp_linux
 xmltarget:tic6x-c64xp-linux.xml
 expedite:A15,PC
+osabi:GNU/Linux
+xmlarch:tic6x
 32:A0
 32:A1
 32:A2