diff options
author | Andreas Jaeger <aj@suse.de> | 2001-06-01 11:52:11 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2001-06-01 11:52:11 +0000 |
commit | 80643fbcdadad42b26b407c62a37f7148ece8191 (patch) | |
tree | 933c3108c0ed0b02f61e359bc92eb4e2242d00d5 /bfd | |
parent | 936260fe3ecba3d62e6fd07728b1bd7f7bfca849 (diff) | |
download | gdb-80643fbcdadad42b26b407c62a37f7148ece8191.zip gdb-80643fbcdadad42b26b407c62a37f7148ece8191.tar.gz gdb-80643fbcdadad42b26b407c62a37f7148ece8191.tar.bz2 |
* elf64-x86-64.c (elf64_x86_64_relocate_section): Add PC8
relocation, small reformatting.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 21 |
2 files changed, 17 insertions, 9 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 86624e5..a8491f0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2001-06-01 Andreas Jaeger <aj@suse.de> + + * elf64-x86-64.c (elf64_x86_64_relocate_section): Add PC8 + relocation, small reformatting. + 2001-05-29 Andreas Jaeger <aj@suse.de> * elf64-x86-64.c (elf64_x86_64_check_relocs): Handle R_X86_64_64. diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index c053ccb..9bd5eeb 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -1264,12 +1264,13 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, && ((! info->symbolic && h->dynindx != -1) || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - && ( r_type == R_X86_64_8 || - r_type == R_X86_64_16 || - r_type == R_X86_64_32 || - r_type == R_X86_64_64 || - r_type == R_X86_64_PC16 || - r_type == R_X86_64_PC32) + && (r_type == R_X86_64_8 + || r_type == R_X86_64_16 + || r_type == R_X86_64_32 + || r_type == R_X86_64_64 + || r_type == R_X86_64_PC8 + || r_type == R_X86_64_PC16 + || r_type == R_X86_64_PC32) && ((input_section->flags & SEC_ALLOC) != 0 /* DWARF will emit R_X86_64_32 relocations in its sections against symbols defined externally @@ -1440,11 +1441,12 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, case R_X86_64_PC8: case R_X86_64_PC16: case R_X86_64_PC32: - /* FIXME: The abi says the linker should make sure the value is + /* FIXME: The ABI says the linker should make sure the value is the same when it's zeroextended to 64 bit. */ if (info->shared && (input_section->flags & SEC_ALLOC) != 0 - && ((r_type != R_X86_64_PC8 && r_type != R_X86_64_PC16 + && ((r_type != R_X86_64_PC8 + && r_type != R_X86_64_PC16 && r_type != R_X86_64_PC32) || (h != NULL && h->dynindx != -1 @@ -1505,7 +1507,8 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, memset (&outrel, 0, sizeof outrel); relocate = false; } - else if ((r_type == R_X86_64_PC8) || (r_type == R_X86_64_PC16) + else if ((r_type == R_X86_64_PC8) + || (r_type == R_X86_64_PC16) || (r_type == R_X86_64_PC32)) { BFD_ASSERT (h != NULL && h->dynindx != -1); |