aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2011-10-05 14:13:31 +0000
committerNick Clifton <nickc@redhat.com>2011-10-05 14:13:31 +0000
commitd4cb0ea0caf03bea93ae6891017bb2301facb33f (patch)
treecf3cb39ee841888cd026e0063f36241cc514fefb /binutils
parentb1c8db38fceb8464f02f1673b52c926c56203593 (diff)
downloadgdb-d4cb0ea0caf03bea93ae6891017bb2301facb33f.zip
gdb-d4cb0ea0caf03bea93ae6891017bb2301facb33f.tar.gz
gdb-d4cb0ea0caf03bea93ae6891017bb2301facb33f.tar.bz2
* readelf.c (get_machine_dlags): Add support for RX's PID mode.
* ld-scripts/phdrs.exp: Expect to fail for the RX. * elf32-rx.c: Add support for PID mode. (rx_elf_relocate_section): Add checks for unsafe PID relocations. Include addend in R_RX_SYM relocations. * config/rx-defs.h (rx_pid_register): New. (rx_gp_register): New. * config/rx-parse.y (rx_lex): Add support for %gpreg and %pidreg. (displacement): Add PID support. * config/tc-rx.c (rx_pid_mode): New. (rx_num_int_regs): New. (rx_pid_register): New. (rx_gp_register): New. (options): Add -mpid and -mint-register= options. (md_longopts): Likewise. (md_parse_option): Likewise. (md_show_usage): Likewise. (rx_pid_symbol): New. (rx_pidreg_symbol): New. (rx_gpreg_symbol): New. (md_begin): Support PID. (rx_validate_fix_sub): Support PID. (tc_gen_reloc): Support PID. * doc/c-rx.texi: Document PID support. * rx.h (E_FLAG_RX_PID): New.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog7
-rw-r--r--binutils/readelf.c5
-rw-r--r--binutils/testsuite/binutils-all/objdump.exp40
3 files changed, 33 insertions, 19 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9f10a2b..8d6e3c2 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,4 +1,9 @@
-2011-10-04 Paul Woegerer <paul_woegerer@mentor.com>
+2011-10-05 DJ Delorie <dj@redhat.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * readelf.c (get_machine_dlags): Add support for RX's PID mode.
+
+2011-10-04 Paul Woegerer <paul_woegerer@mentor.com>
Carlos O'Donell <carlos@codesourcery.com>
* dwarf.c (display_debug_lines_decoded): Index directory_table with
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 61064ca..d68cf27 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -2595,14 +2595,19 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
strcat (buf, ", 64-bit doubles");
if (e_flags & E_FLAG_RX_DSP)
strcat (buf, ", dsp");
+ if (e_flags & E_FLAG_RX_PID)
+ strcat (buf, ", pid");
+ break;
case EM_S390:
if (e_flags & EF_S390_HIGH_GPRS)
strcat (buf, ", highgprs");
+ break;
case EM_TI_C6000:
if ((e_flags & EF_C6000_REL))
strcat (buf, ", relocatable module");
+ break;
}
}
diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp
index ef5f246..3206a00 100644
--- a/binutils/testsuite/binutils-all/objdump.exp
+++ b/binutils/testsuite/binutils-all/objdump.exp
@@ -204,28 +204,32 @@ if { ![is_elf_format] } then {
# Test objdump -WL on a file that contains line information for multiple files and search directories.
-if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then {
- fail "objdump decoded line"
-}
-
-if [is_remote host] {
- set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o]
+if { ![is_elf_format] } then {
+ unsupported "objump decode line"
} else {
- set decodedline_testfile tmpdir/dw2-decodedline.o
-}
+ if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then {
+ fail "objdump decoded line"
+ }
+
+ if [is_remote host] {
+ set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o]
+ } else {
+ set decodedline_testfile tmpdir/dw2-decodedline.o
+ }
-set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"]
-if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
- fail "objdump -WL (reason: unexpected output)"
- send_log $got
- send_log "\n"
-}
+ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+ fail "objdump -WL (reason: unexpected output)"
+ send_log $got
+ send_log "\n"
+ }
-if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then {
- fail "objdump -WL"
-} else {
- pass "objdump -WL"
+ if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then {
+ fail "objdump -WL"
+ } else {
+ pass "objdump -WL"
+ }
}
# Options which are not tested: -a -d -D -R -T -x -l --stabs