rx: Add target rx-*-linux.
authorYoshinori Sato <ysato@users.sourceforge.jp>
Wed, 7 Nov 2018 08:16:56 +0000 (17:16 +0900)
committerYoshinori Sato <ysato@users.sourceforge.jp>
Wed, 7 Nov 2018 08:18:05 +0000 (17:18 +0900)
12 files changed:
bfd/ChangeLog
bfd/config.bfd
bfd/configure.ac
bfd/elf32-rx.c
bfd/targets.c
binutils/ChangeLog
binutils/testsuite/lib/binutils-common.exp
gas/ChangeLog
gas/config/tc-rx.h
gas/configure.tgt
gas/testsuite/gas/rx/pr19665.d
gas/testsuite/gas/rx/pr22737.d

index 155251d3d4db0a03ceb101c50f22fbdfe738f6cf..babfe1b6860d45be38ea3efb252c84ce40bbb4a2 100644 (file)
@@ -1,3 +1,12 @@
+2018-11-07  Yoshinori Sato  <ysato@users.sourceforge.jp>
+
+       * 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  <lilrom13@gmail.com>
 
        PR 23742
index 5d8424a5f08b86c578a48b4e6d6d24ffa6388869..2bde98a819148880b5312bca6bded2596e2905cb 100644 (file)
@@ -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
index 270e54e7d13ff418c46eeb9ec683b47bff3c268b..5942a74d159f2b87bb9c46488ad441486bcc5f3f 100644 (file)
@@ -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 ;;
index 1f70b97a34501b6c4864a6221296e835d695ae90..ddcf5e980fa271f7d7b5c968a26949f678a96209 100644 (file)
@@ -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;
+}
  \f
 
 #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"
index b59dd766b265bff8de13ea5eae9fef9b25ca35df..dc4bef1d82b98917913d6ac33b86a7c4d174f75d 100644 (file)
@@ -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;
index f484f92294dd9b8a8f1aea2c43f97dcdfb3c9373..8964c96ff17ea902f85841c9d3080ca29c21b14c 100644 (file)
@@ -1,3 +1,7 @@
+2018-11-07  Yoshinori Sato  <ysato@users.sourceforge.jp>
+       * testsuite/lib/binutils-common.exp: Special section name
+       use only rx-*-elf.
+
 2018-11-06  H.J. Lu  <hongjiu.lu@intel.com>
 
        * doc/binutils.texi: Document --enable-x86-feature and
index fcd2c8ee0c743445002c97d9984d1d111b9bc3eb..f1a153193cba44866c2d551b59f3fa5a205c21b2 100644 (file)
@@ -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] } {
index d8cbf7eedb1bff9d81cd3651b8ad867538e242a1..40e468fb0d8db7d19194545c9755cb4ce368370f 100644 (file)
@@ -1,3 +1,8 @@
+2018-11-07  Yoshinori Sato  <ysato@users.sourceforge.jp>
+
+       * configure.tgt: Add rx-*-linux.
+       * config/tc-rx.h (TARGET_FORMAT): Add "elf32-rx-linux".
+
 2018-11-06  Matthew Malcomson  <matthew.malcomson@arm.com>
 
        * testsuite/gas/arm/neon-cond-bad_t2.d: Fix testcase for PE target.
index bf1f283d3d22e77b47f30aa1d804970160677d12..78b2bedc9f35ce87886edc681284db3e0300b073 100644 (file)
@@ -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
index d1b0535c2bdec7be79847a4317913856d841dddd..532f1135417b89730cb5d11cd9fb3e8bff088be7 100644 (file)
@@ -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 ;;
 
index 61b3b0e3f961404d2e8ab790535512dd42ae8028..04c6b7a42a3a7cc1617a65a7119f56bc5d274d69 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr
 
-.*:     file format elf32-rx-le
+.*:     file format elf32-rx-(le|linux)
 
 
 Disassembly of section .*:
index 1de868e0d41aa0c6348a430b30a502da10b74c60..1de3e0be14e5be35489d89804edd8af86c9ec92e 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr
 
-.*:     file format elf32-rx-le
+.*:     file format elf32-rx-(le|linux)
 
 
 Disassembly of section .*: