* sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
authorRichard Henderson <rth@redhat.com>
Thu, 8 Jul 1999 16:01:06 +0000 (16:01 +0000)
committerRichard Henderson <rth@redhat.com>
Thu, 8 Jul 1999 16:01:06 +0000 (16:01 +0000)
        (ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.
        (DT_SPARC_PLTFMT): Delete.

include/elf/ChangeLog
include/elf/sparc.h

index 46d4ddd3730686d1f58a88bf9bcd4da03fc94582..bbfd2b043509f24e899e15e2be5089f7cc3a30eb 100644 (file)
@@ -1,3 +1,10 @@
+1999-07-08  Richard Henderson  <rth@cygnus.com>
+
+       * sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
+       (ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.
+       (DT_SPARC_PLTFMT): Delete.
+       Based on a patch from Jakub Jelinek.
+
 Mon Jun 21 16:36:02 1999  Jeffrey A Law  (law@cygnus.com)
 
        * hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
index 89d00bee9757bcfedd3ebd146596fef880585317..ad3e1e5e8e15ba80cd74162fb3838e85ccd2cfc6 100644 (file)
@@ -138,21 +138,15 @@ END_RELOC_NUMBERS
 
 /* 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 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))
 
-#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
- */
+/* Values for Elf64_Dyn.d_tag.  */
 
-#define DT_SPARC_PLTFMT                0x70000001
+#define DT_SPARC_REGISTER      0x70000001
 
 #endif /* _ELF_SPARC_H */