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]

[PATCH] bfd/s390: Misc minor fixes.


The only non-comment fix here is in the code writing out the 3 fixed
.got.plt entries - it mistakenly put a 64-bit 0 at offsets 8 and 12
instead of 8 and 16.

bfd/ChangeLog:

	* elf32-s390.c (elf_s390_finish_dynamic_symbol): Fix comment.
	* elf64-s390.c (elf_s390x_plt_entry): Fix comment.
	(elf_s390_relocate_section): Fix comment.
	(elf_s390_finish_dynamic_sections): Fix initialization of fixed
	.got.plt entries.
---
OK to push?

 bfd/elf32-s390.c | 2 +-
 bfd/elf64-s390.c | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index f3ee40c..9480f72 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -3691,7 +3691,7 @@ elf_s390_finish_dynamic_symbol (bfd *output_bfd,
 
 	      /* Put in the GOT offset as displacement value.  The 0xc000
 		 value comes from the first word of the plt entry.  Look
-		 at the elf_s390_plt_pic16_entry content.  */
+		 at the elf_s390_plt_pic12_entry content.  */
 	      bfd_put_16 (output_bfd, (bfd_vma)0xc000 | got_offset,
 			  htab->elf.splt->contents + h->plt.offset + 2);
 
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index b14b479..f583b14 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -492,8 +492,8 @@ elf_s390_is_local_label_name (bfd *abfd, const char *name)
 
    The GOT holds the address in the PLT to be executed.
    The loader then gets:
-   24(15) =  Pointer to the structure describing the object.
-   28(15) =  Offset in symbol table
+   48(15) =  Pointer to the structure describing the object.
+   56(15) =  Offset in symbol table
    The loader  must  then find the module where the function is
    and insert the address in the GOT.
 
@@ -2479,7 +2479,7 @@ elf_s390_relocate_section (bfd *output_bfd,
 		    PLT_ENTRY_SIZE;
 
 		  /* Offset in GOT is PLT index plus GOT headers(3)
-		     times 4, addr & GOT addr.  */
+		     times 8, addr & GOT addr.  */
 		  relocation = (plt_index + 3) * GOT_ENTRY_SIZE;
 		  if (r_type == R_390_GOTPLTENT)
 		    relocation += htab->elf.sgot->output_section->vma;
@@ -3804,7 +3804,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd,
 	  /* One entry for shared object struct ptr.  */
 	  bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + 8);
 	  /* One entry for _dl_runtime_resolve.  */
-	  bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + 12);
+	  bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + 16);
 	}
 
       elf_section_data (htab->elf.sgot->output_section)
-- 
2.8.2


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