From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Henderson To: Jakub Jelinek Cc: ian@cygnus.com, binutils@sourceware.cygnus.com, "David S. Miller" Subject: Re: [PATCH] Support for R_SPARC_OLO10 relocations Date: Thu, 08 Jul 1999 16:09:00 -0000 Message-id: <19990708160922.B17592@cygnus.com> References: <19990705174729.B1736@mff.cuni.cz> X-SW-Source: 1999-q3/msg00092.html 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 */