From 8d3c78e473c2af54c8117808f2459a408f9f6327 Mon Sep 17 00:00:00 2001 From: Yoshinori Sato Date: Wed, 7 Nov 2018 17:16:56 +0900 Subject: [PATCH] rx: Add target rx-*-linux. --- bfd/ChangeLog | 9 +++++++++ bfd/config.bfd | 4 ++++ bfd/configure.ac | 1 + bfd/elf32-rx.c | 23 ++++++++++++++++++++++ bfd/targets.c | 1 + binutils/ChangeLog | 4 ++++ binutils/testsuite/lib/binutils-common.exp | 2 +- gas/ChangeLog | 5 +++++ gas/config/tc-rx.h | 4 ++++ gas/configure.tgt | 2 ++ gas/testsuite/gas/rx/pr19665.d | 2 +- gas/testsuite/gas/rx/pr22737.d | 2 +- 12 files changed, 56 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 155251d3d4..babfe1b686 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,12 @@ +2018-11-07 Yoshinori Sato + + * config.bfd: Add rx-*-linux. + * congigure.ac: Likewise. + * elf32-rx.c (rx_linux_object_p): New function. + (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME) + (elf_backend_object_p, elf32_bed): Define rx-*-linux. + * targets.c: Add rx_elf32_linux_le_vec. + 2018-11-06 Romain Margheriti PR 23742 diff --git a/bfd/config.bfd b/bfd/config.bfd index 5d8424a5f0..2bde98a819 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1202,6 +1202,10 @@ case "${targ}" in targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec" targ_underscore=yes ;; + rx-*-linux*) + targ_defvec=rx_elf32_linux_le_vec + targ_selvecs="rx_elf32_linux_le_vec" + ;; s390-*-linux*) targ_defvec=s390_elf32_vec diff --git a/bfd/configure.ac b/bfd/configure.ac index 270e54e7d1..5942a74d15 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -612,6 +612,7 @@ do rx_elf32_be_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;; rx_elf32_be_ns_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;; rx_elf32_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;; + rx_elf32_linux_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;; s390_elf32_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;; s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c index 1f70b97a34..ddcf5e980f 100644 --- a/bfd/elf32-rx.c +++ b/bfd/elf32-rx.c @@ -3310,6 +3310,14 @@ rx_elf_object_p (bfd * abfd) return TRUE; } + +static bfd_boolean +rx_linux_object_p (bfd * abfd) +{ + bfd_default_set_arch_mach (abfd, bfd_arch_rx, + elf32_rx_machine (abfd)); + return TRUE; +} #ifdef DEBUG @@ -4059,3 +4067,18 @@ rx_additional_link_map_text (bfd *obfd, struct bfd_link_info *info, FILE *mapfil #define elf32_bed elf32_rx_be_ns_bed #include "elf32-target.h" + +#undef TARGET_LITTLE_SYM +#define TARGET_LITTLE_SYM rx_elf32_linux_le_vec +#undef TARGET_LITTLE_NAME +#define TARGET_LITTLE_NAME "elf32-rx-linux" +#undef TARGET_BIG_SYM +#undef TARGET_BIG_NAME + +#undef elf_backend_object_p +#define elf_backend_object_p rx_linux_object_p +#undef elf_symbol_leading_char +#undef elf32_bed +#define elf32_bed elf32_rx_le_linux_bed + +#include "elf32-target.h" diff --git a/bfd/targets.c b/bfd/targets.c index b59dd766b2..dc4bef1d82 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -777,6 +777,7 @@ extern const bfd_target rs6000_xcoff_vec; extern const bfd_target rx_elf32_be_vec; extern const bfd_target rx_elf32_be_ns_vec; extern const bfd_target rx_elf32_le_vec; +extern const bfd_target rx_elf32_linux_le_vec; extern const bfd_target s390_elf32_vec; extern const bfd_target s390_elf64_vec; extern const bfd_target score_elf32_be_vec; diff --git a/binutils/ChangeLog b/binutils/ChangeLog index f484f92294..8964c96ff1 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2018-11-07 Yoshinori Sato + * testsuite/lib/binutils-common.exp: Special section name + use only rx-*-elf. + 2018-11-06 H.J. Lu * doc/binutils.texi: Document --enable-x86-feature and diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp index fcd2c8ee0c..f1a153193c 100644 --- a/binutils/testsuite/lib/binutils-common.exp +++ b/binutils/testsuite/lib/binutils-common.exp @@ -1359,7 +1359,7 @@ proc big_or_little_endian {} { # Internal procedure: return the names of the standard sections # proc get_standard_section_names {} { - if [istarget "rx-*-*"] { + if [istarget "rx-*-elf"] { return { "P" "D_1" "B_1" } } if { [istarget "alpha*-*-*vms*"] || [is_som_format] } { diff --git a/gas/ChangeLog b/gas/ChangeLog index d8cbf7eedb..40e468fb0d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2018-11-07 Yoshinori Sato + + * configure.tgt: Add rx-*-linux. + * config/tc-rx.h (TARGET_FORMAT): Add "elf32-rx-linux". + 2018-11-06 Matthew Malcomson * testsuite/gas/arm/neon-cond-bad_t2.d: Fix testcase for PE target. diff --git a/gas/config/tc-rx.h b/gas/config/tc-rx.h index bf1f283d3d..78b2bedc9f 100644 --- a/gas/config/tc-rx.h +++ b/gas/config/tc-rx.h @@ -31,7 +31,11 @@ extern int target_big_endian; /* Instruction bytes are big endian, data bytes can be either. */ #define TARGET_BYTES_BIG_ENDIAN 0 +#ifndef TE_LINUX #define TARGET_FORMAT (target_big_endian ? "elf32-rx-be" : "elf32-rx-le") +#else +#define TARGET_FORMAT "elf32-rx-linux" +#endif /* We don't need to handle .word strangely. */ #define WORKING_DOT_WORD diff --git a/gas/configure.tgt b/gas/configure.tgt index d1b0535c2b..532f113541 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -366,6 +366,8 @@ case ${generic_target} in riscv*-*-*) fmt=elf endian=little ;; + rx-*-linux*) fmt=elf em=linux ;; + s390-*-linux-*) fmt=elf em=linux ;; s390-*-tpf*) fmt=elf ;; diff --git a/gas/testsuite/gas/rx/pr19665.d b/gas/testsuite/gas/rx/pr19665.d index 61b3b0e3f9..04c6b7a42a 100644 --- a/gas/testsuite/gas/rx/pr19665.d +++ b/gas/testsuite/gas/rx/pr19665.d @@ -1,6 +1,6 @@ #objdump: -dr -.*: file format elf32-rx-le +.*: file format elf32-rx-(le|linux) Disassembly of section .*: diff --git a/gas/testsuite/gas/rx/pr22737.d b/gas/testsuite/gas/rx/pr22737.d index 1de868e0d4..1de3e0be14 100644 --- a/gas/testsuite/gas/rx/pr22737.d +++ b/gas/testsuite/gas/rx/pr22737.d @@ -1,6 +1,6 @@ #objdump: -dr -.*: file format elf32-rx-le +.*: file format elf32-rx-(le|linux) Disassembly of section .*: -- 2.34.1