2002-09-19 Jakub Jelinek <jakub@redhat.com>
[binutils-gdb.git] / bfd / ChangeLog
index f0c5ef56b83225a2bb06d37b3b2a91e14cd0b678..8874b8c1ef171b513f142783fd4db98a602bd932 100644 (file)
@@ -1,3 +1,62 @@
+2002-09-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Clear .got word
+       even if generating R_PPC_RELATIVE reloc.
+       (ppc_elf_relocate_section): Make sure relocation is performed
+       if skip == -2.  Clear memory at r_offset when creating dynamic
+       relocation.
+
+2002-09-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * reloc.c (BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE,
+       BFD_RELOC_386_TLS_GOTIE): Add.
+       * bfd-in2.h, libbfd.h: Rebuilt.
+       * elf32-i386.c (elf_howto_table): Add R_386_TLS_TPOFF, R_386_TLS_IE
+       and R_386_TLS_GOTIE.
+       (elf_i386_reloc_type_lookup): Handle it.
+       (struct elf_i386_link_hash_entry): Change tls_type type to unsigned
+       char instead of enum, change GOT_* into defines.
+       (GOT_TLS_IE_POS, GOT_TLS_IE_NEG, GOT_TLS_IE_BOTH): Define.
+       (elf_i386_tls_transition): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
+       (elf_i386_check_relocs): Likewise.  Avoid crash if local symbol is
+       accessed both as normal and TLS symbol.  Move R_386_TLS_LDM and
+       R_386_PLT32 cases so that R_386_TLS_IE can fall through.
+       Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
+       (elf_i386_gc_sweep_hook): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
+       Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
+       (allocate_dynrelocs): Allocate 2 .got and 2 .rel.got entries if
+       tls_type is GOT_TLS_IE_BOTH.
+       (elf_i386_size_dynamic_sections): Likewise.
+       (elf_i386_relocate_section): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
+       Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
+       (elf_i386_finish_dynamic_symbol): Use tls_type & GOT_TLS_IE to catch
+       all 4 GOT_TLS_* TLS types.
+
+2002-09-19  Nick Clifton  <nickc@redhat.com>
+
+       * elflink.h (elf_fix_symbol_flags): When examining weak symbols,
+       follow indirect links.
+
+2002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>
+
+       * ecoffswap.h (ecoff_swap_pdr_in) <isym, iline>: Update to
+       correctly sign-extend 32-bit ECOFF null values (0xffffffff, -1)
+       on 64 bit machines.
+       (ecoff_swap_sym_in) <iss>: Likewise.
+       * ecoff.c (_bfd_ecoff_slurp_symbolic_info): Fix error reading
+       ECOFF information: 'ioptMax' refers to the actual *size*
+       of the optimization symtab, not the number of entries.
+
+2002-09-19  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elf32-arm.h (elf32_arm_adjust_dynamic_symbol): Update
+       ELF_LINK_HASH_NEEDS_PLT logic.
+
+2002-09-18  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elfcode.h (elf_slurp_reloc_table_from_section): Check
+       correct relocation count.
+
 2002-09-17  Daniel Jacobowitz  <drow@mvista.com>
 
        * bfd-in.h (bfd_get_dynamic_symcount): Define.
@@ -24,7 +83,8 @@
 
 2002-09-17  Jakub Jelinek  <jakub@redhat.com>
 
-       * elf_i386_relocate_section (R_386_TLS_TPOFF32): Negate addend.
+       * elf32-i386.c (elf_i386_relocate_section) [R_386_TLS_TPOFF32]: Negate
+       addend.
 
 2002-09-17  Alan Modra  <amodra@bigpond.net.au>