This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, RX] Add target rx-*-linux


On Wed, 31 Oct 2018 09:20:00 +0900,
H.J. Lu wrote:
> 
> On Tue, Oct 30, 2018 at 4:35 AM Yoshinori Sato
> <ysato@users.sourceforge.jp> wrote:
> >
> > ping
> 
> Is "make check" clean for this target?  If not, why?

Oh, I forgot it. Thanks your comment.

Update patches attached.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0959688f61..92e4ea7476 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2018-10-31  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-10-24  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/23818
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 e3bbbc3a84..a754e9565f 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2018-10-31  Yoshinori Sato  <ysato@users.sourceforge.jp>
+	* testsuite/lib/binutils-common.exp: Special section name
+	use only rx-*-elf.
+
 2018-10-18  Nick Clifton  <nickc@redhat.com>
 
 	* doc/binutils.texi (readelf): Document alternatives to the
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index 08d57ae963..df859fa210 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -1340,7 +1340,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 bbf6918c19..af2ca940af 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2018-10-31  Yoshinori Sato  <ysato@users.sourceforge.jp>
+
+	* configure.tgt: Add rx-*-linux.
+	* config/tc-rx.h (TARGET_FORMAT): Add "elf32-rx-linux".
+	* testsuite/gas/rx/pr19665.d: Add pattern.
+	* testsuite/gas/rx/pr22737.d: Likewise.
+
 2018-10-29  Alan Modra  <amodra@gmail.com>
 
 	* Makefile.am (HFILES): Delete struc-symbol.h.
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 .*:

> H.J.
> 
> -- 
> H.J.

-- 
Yosinori Sato


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]