S390: Place "s390:31-bit" after default arch in 64-bit arch list
On 64-bit platforms GDB did not include "s390:31-bit" in its list of architecture names. This patch fixes that. To determine the list of architecture names for S390, gdbarch_printable_names() walks through the linked list of BFD arches starting with the default S390 arch, which is "s390:64-bit" on 64-bit platforms. But since "s390:64-bit" was at the end of that list, the 31-bit architecture was not reached. The patch swaps the elements of that list on 64-bit platforms. bfd/ChangeLog: * cpu-s390.c (N): New macro. (bfd_s390_31_arch): New. Define only if default target word size is 64 bits. Otherwise define... (bfd_390_64_arch): ...this. Make static. (bfd_s390_arch): Define according to the default target word size. Let the 'next' field point to the alternate arch.
This commit is contained in:
parent
511aee7c39
commit
df88b70224
2 changed files with 33 additions and 37 deletions
|
@ -1,3 +1,12 @@
|
|||
2015-03-04 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||
|
||||
* cpu-s390.c (N): New macro.
|
||||
(bfd_s390_31_arch): New. Define only if default target word size
|
||||
is 64 bits. Otherwise define...
|
||||
(bfd_390_64_arch): ...this. Make static.
|
||||
(bfd_s390_arch): Define according to the default target word size.
|
||||
Let the 'next' field point to the alternate arch.
|
||||
|
||||
2015-03-04 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
PR gas/17843
|
||||
|
|
|
@ -23,44 +23,31 @@
|
|||
#include "bfd.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
const bfd_arch_info_type bfd_s390_64_arch =
|
||||
{
|
||||
64, /* bits in a word */
|
||||
64, /* bits in an address */
|
||||
8, /* bits in a byte */
|
||||
bfd_arch_s390,
|
||||
bfd_mach_s390_64,
|
||||
"s390",
|
||||
"s390:64-bit",
|
||||
3, /* section alignment power */
|
||||
#if BFD_DEFAULT_TARGET_SIZE == 64
|
||||
TRUE, /* the default */
|
||||
#else
|
||||
FALSE, /* the default */
|
||||
#endif
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan,
|
||||
bfd_arch_default_fill,
|
||||
NULL
|
||||
};
|
||||
#define N(bits, number, print, is_default, next) \
|
||||
{ \
|
||||
bits, /* bits in a word */ \
|
||||
bits, /* bits in an address */ \
|
||||
8, /* bits in a byte */ \
|
||||
bfd_arch_s390, \
|
||||
number, \
|
||||
"s390", \
|
||||
print, \
|
||||
3, /* section alignment power */ \
|
||||
is_default, \
|
||||
bfd_default_compatible, \
|
||||
bfd_default_scan, \
|
||||
bfd_arch_default_fill, \
|
||||
next \
|
||||
}
|
||||
|
||||
const bfd_arch_info_type bfd_s390_arch =
|
||||
{
|
||||
32, /* bits in a word */
|
||||
32, /* bits in an address */
|
||||
8, /* bits in a byte */
|
||||
bfd_arch_s390,
|
||||
bfd_mach_s390_31,
|
||||
"s390",
|
||||
"s390:31-bit",
|
||||
3, /* section alignment power */
|
||||
#if BFD_DEFAULT_TARGET_SIZE == 64
|
||||
FALSE, /* the default */
|
||||
static const bfd_arch_info_type bfd_s390_31_arch =
|
||||
N (32, bfd_mach_s390_31, "s390:31-bit", FALSE, NULL);
|
||||
const bfd_arch_info_type bfd_s390_arch =
|
||||
N (64, bfd_mach_s390_64, "s390:64-bit", TRUE, &bfd_s390_31_arch);
|
||||
#else
|
||||
TRUE, /* the default */
|
||||
static const bfd_arch_info_type bfd_s390_64_arch =
|
||||
N (64, bfd_mach_s390_64, "s390:64-bit", FALSE, NULL);
|
||||
const bfd_arch_info_type bfd_s390_arch =
|
||||
N (32, bfd_mach_s390_31, "s390:31-bit", TRUE, &bfd_s390_64_arch);
|
||||
#endif
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan,
|
||||
bfd_arch_default_fill,
|
||||
&bfd_s390_64_arch
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue