diff options
author | Dave Anglin <dave.anglin@nrc.ca> | 2004-03-19 19:19:53 +0000 |
---|---|---|
committer | Dave Anglin <dave.anglin@nrc.ca> | 2004-03-19 19:19:53 +0000 |
commit | c196a9890830e301eaddba390ae2a018cfd9f520 (patch) | |
tree | a14655e931a79b817444691555e781e6a5c67c0a | |
parent | 4dd615e1183bff2abcd7cd02b3e50d4c69b8f6bb (diff) | |
download | binutils-redhat-c196a9890830e301eaddba390ae2a018cfd9f520.tar.gz |
* elf-hppa.h (elf_hppa_reloc_final_type): Handle selectors for
R_PARISC_PCREL32 and R_PARISC_PCREL64 relocations.
* tc-hppa.c (cons_fix_new_hppa): Check for PC relative base type.
(pa_comm): Set BSF_OBJECT in symbol flags.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf-hppa.h | 22 | ||||
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 3 |
4 files changed, 35 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 58c5ffb70d..5d145bfab9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * elf-hppa.h (elf_hppa_reloc_final_type): Handle selectors for + R_PARISC_PCREL32 and R_PARISC_PCREL64 relocations. + 2004-03-19 Alan Modra <amodra@bigpond.net.au> * Makefile.am: Run "make dep-am". diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h index a5c0b44288..5efd808819 100644 --- a/bfd/elf-hppa.h +++ b/bfd/elf-hppa.h @@ -812,6 +812,28 @@ elf_hppa_reloc_final_type (bfd *abfd, } break; + case 32: + switch (field) + { + case e_fsel: + final_type = R_PARISC_PCREL32; + break; + default: + return R_PARISC_NONE; + } + break; + + case 64: + switch (field) + { + case e_fsel: + final_type = R_PARISC_PCREL64; + break; + default: + return R_PARISC_NONE; + } + break; + default: return R_PARISC_NONE; } diff --git a/gas/ChangeLog b/gas/ChangeLog index bb9d78f601..33085e0908 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2004-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * tc-hppa.c (cons_fix_new_hppa): Check for PC relative base type. + (pa_comm): Set BSF_OBJECT in symbol flags. + 2004-03-19 Alan Modra <amodra@bigpond.net.au> * Makefile.am: Run "make dep-am". diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 7fbcd0a6e0..77563a99be 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -1399,6 +1399,8 @@ cons_fix_new_hppa (frag, where, size, exp) /* Get a base relocation type. */ if (is_DP_relative (*exp)) rel_type = R_HPPA_GOTOFF; + else if (is_PC_relative (*exp)) + rel_type = R_HPPA_PCREL_CALL; else if (is_complex (*exp)) rel_type = R_HPPA_COMPLEX; else @@ -6386,6 +6388,7 @@ pa_comm (unused) if (symbol) { + symbol_get_bfdsym (symbol)->flags |= BSF_OBJECT; S_SET_VALUE (symbol, size); S_SET_SEGMENT (symbol, bfd_und_section_ptr); S_SET_EXTERNAL (symbol); |