This is the mail archive of the binutils@sourceware.cygnus.com 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]

Re: [PATCH] Support for R_SPARC_OLO10 relocations


On Mon, Jul 05, 1999 at 05:47:29PM +0200, Jakub Jelinek wrote:
> 	* include/elf/sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
> 	(ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.

Actually, these macros macros made assumptions about the size
of bfd_vma.  They did before your patch too, so I don't hold
that against you, but that doesn't mean it doesn't want fixing.

Plus I went ahead and killed DT_SPARC_PLTFMT.  It was me that
added it in the first place, before we had a real ABI.

I committed this.


r~


Index: sparc.h
===================================================================
RCS file: /cvs/binutils/binutils/include/elf/sparc.h,v
retrieving revision 1.2
diff -c -p -d -r1.2 sparc.h
*** sparc.h	1999/06/10 21:00:53	1.2
--- sparc.h	1999/07/08 23:00:24
*************** END_RELOC_NUMBERS
*** 138,158 ****
  
  /* Relocation macros.  */
  
! #define ELF64_R_TYPE_DATA(info)		(((bfd_vma) (info) << 32) >> 40)
! #define ELF64_R_TYPE_ID(info)		(((bfd_vma) (info) << 56) >> 56)
! #define ELF64_R_TYPE_INFO(data, type)	(((bfd_vma) (data) << 8) \
! 					 + (bfd_vma) (type))
! 
! #define DT_SPARC_REGISTER	0x70000001
  
! /*
!  * FIXME: NOT ABI -- GET RID OF THIS
!  * Defines the format used by the .plt.  Currently defined values are
!  *   0 -- reserved to SI
!  *   1 -- absolute address in .got.plt
!  *   2 -- got-relative address in .got.plt
!  */
  
! #define DT_SPARC_PLTFMT		0x70000001
  
  #endif /* _ELF_SPARC_H */
--- 138,152 ----
  
  /* Relocation macros.  */
  
! #define ELF64_R_TYPE_DATA(info) \
!   (((bfd_signed_vma)((info) >> 8) ^ 0x800000) - 0x800000)
! #define ELF64_R_TYPE_ID(info) \
!   ((info) & 0xff)
! #define ELF64_R_TYPE_INFO(data, type) \
!   (((bfd_vma) ((data) & 0xffffff) << 8) | (bfd_vma) (type))
  
! /* Values for Elf64_Dyn.d_tag.  */
  
! #define DT_SPARC_REGISTER	0x70000001
  
  #endif /* _ELF_SPARC_H */

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