* aoutx.h, archive.c: Add casts to avoid warnings from SVR4 cc.
authorIan Lance Taylor <ian@airs.com>
Sat, 26 Feb 1994 18:25:23 +0000 (18:25 +0000)
committerIan Lance Taylor <ian@airs.com>
Sat, 26 Feb 1994 18:25:23 +0000 (18:25 +0000)
* ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise.
* elf32-i386.c: Likewise.
* elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old
#if 0 code.
(elf_write_phdrs): Make i unsigned.
(map_program_segments): Make i and n_left unsigned.
(assign_file_positions_except_relocs): Make i unsigned.
(write_shdrs_and_ehdr): Make count unsigned.
(assign_file_positions_for_relocs): Make i unsigned.
(NAME(bfd,elf_write_object_contents)): Make count unsigned.
(section_from_elf_index): Make index argument unsigned.

bfd/ChangeLog
bfd/aoutx.h
bfd/ecoff.c
bfd/ecofflink.c
bfd/elf32-i386.c
bfd/elfcode.h
bfd/srec.c

index 93e7eeb..44b4f50 100644 (file)
@@ -1,3 +1,22 @@
+Sat Feb 26 10:00:45 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+       * reloc.c (_bfd_relocate_contents): Adjust handling of overflow to
+       avoid depending upon right shifts of signed numbers, and to
+       correct handling of src_mask with lower bits zero.
+
+       * aoutx.h, archive.c: Add casts to avoid warnings from SVR4 cc.
+       * ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise.
+       * elf32-i386.c: Likewise.
+       * elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old
+       #if 0 code.
+       (elf_write_phdrs): Make i unsigned.
+       (map_program_segments): Make i and n_left unsigned.
+       (assign_file_positions_except_relocs): Make i unsigned.
+       (write_shdrs_and_ehdr): Make count unsigned.
+       (assign_file_positions_for_relocs): Make i unsigned.
+       (NAME(bfd,elf_write_object_contents)): Make count unsigned.
+       (section_from_elf_index): Make index argument unsigned.
+
 Fri Feb 25 21:34:58 1994  Ian Lance Taylor  (ian@cygnus.com)
 
        * elfcode.h: Don't include assert.h.
index d5698dc..aa49239 100644 (file)
@@ -287,7 +287,7 @@ DEFUN(NAME(aout,swap_exec_header_in),(abfd, raw_bytes, execp),
      configuration (IE for i960), so ensure that all such uninitialized
      fields are zero'd out.  There are places where two of these structs
      are memcmp'd, and thus the contents do matter. */
-  memset (execp, 0, sizeof (struct internal_exec));
+  memset ((PTR) execp, 0, sizeof (struct internal_exec));
   /* Now fill in fields in the execp, from the bytes in the raw data.  */
   execp->a_info   = bfd_h_get_32 (abfd, bytes->e_info);
   execp->a_text   = GET_WORD (abfd, bytes->e_text);
@@ -364,7 +364,7 @@ DEFUN(NAME(aout,some_aout_object_p),(abfd, execp, callback_to_real_object_p),
 
   rawptr = (struct aout_data_struct  *) bfd_zalloc (abfd, sizeof (struct aout_data_struct ));
   if (rawptr == NULL) {
-    bfd_error = no_memory;
+    bfd_set_error (bfd_error_no_memory);
     return 0;
   }
 
@@ -552,13 +552,13 @@ DEFUN(NAME(aout,mkobject),(abfd),
 {
   struct aout_data_struct  *rawptr;
 
-  bfd_error = system_call_error;
+  bfd_set_error (bfd_error_system_call);
 
   /* Use an intermediate variable for clarity */
   rawptr = (struct aout_data_struct *)bfd_zalloc (abfd, sizeof (struct aout_data_struct ));
 
   if (rawptr == NULL) {
-    bfd_error = no_memory;
+    bfd_set_error (bfd_error_no_memory);
     return false;
   }
 
@@ -878,7 +878,7 @@ DEFUN (NAME(aout,adjust_sizes_and_vmas), (abfd, text_size, text_end),
 
   if ((obj_textsec (abfd) == NULL) || (obj_datasec (abfd) == NULL))
     {
-      bfd_error = invalid_operation;
+      bfd_set_error (bfd_error_invalid_operation);
       return false;
     }
   if (adata(abfd).magic != undecided_magic) return true;
@@ -1104,7 +1104,7 @@ DEFUN (translate_from_native_sym_flags, (sym_pointer, cache_ptr, abfd),
 
        if (!copy || !reloc)
          {
-           bfd_error = no_memory;
+           bfd_set_error (bfd_error_no_memory);
            return false;
          }
 
@@ -1136,7 +1136,7 @@ DEFUN (translate_from_native_sym_flags, (sym_pointer, cache_ptr, abfd),
            cache_ptr->type = N_BSS;
            break;
          default:
-           bfd_error = bad_value;
+           bfd_set_error (bfd_error_bad_value);
            return false;
          }
 
@@ -1338,14 +1338,14 @@ DEFUN(translate_to_native_sym_flags,(sym_pointer, cache_ptr, abfd),
   else if (bfd_get_output_section(cache_ptr) == NULL) {
     /* Protect the bfd_is_com_section call.
        This case occurs, e.g., for the *DEBUG* section of a COFF file.  */
-    bfd_error = nonrepresentable_section;
+    bfd_set_error (bfd_error_nonrepresentable_section);
     return false;
   }
   else if (bfd_is_com_section (bfd_get_output_section (cache_ptr))) {
     sym_pointer->e_type[0] = (N_UNDF | N_EXT);
   }
   else {
-    bfd_error = nonrepresentable_section;
+    bfd_set_error (bfd_error_nonrepresentable_section);
     return false;
   }
 
@@ -1393,7 +1393,7 @@ DEFUN(NAME(aout,make_empty_symbol),(abfd),
     (aout_symbol_type *)bfd_zalloc (abfd, sizeof (aout_symbol_type));
   if (!new)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return NULL;
     }
   new->symbol.the_bfd = abfd;
@@ -1475,7 +1475,7 @@ DEFUN(NAME(aout,slurp_symbol_table),(abfd),
   symbol_size = exec_hdr(abfd)->a_syms;
   if (symbol_size == 0)
     {
-      bfd_error = no_symbols;
+      bfd_set_error (bfd_error_no_symbols);
       return false;
     }
 
@@ -1505,7 +1505,7 @@ DEFUN(NAME(aout,slurp_symbol_table),(abfd),
   syms = (struct external_nlist *) malloc(symbol_size);
   if (!strings || !cached || !syms)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return false;
     }
   bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET);
@@ -1843,7 +1843,7 @@ add_to_stringtab (abfd, str, tab)
     bfd_alloc_by_size_t (abfd, sizeof (struct stringtab_entry));
   if (!entry)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       abort();                 /* FIXME */
     }
 
@@ -2336,7 +2336,7 @@ DEFUN(NAME(aout,slurp_reloc_table),(abfd, asect, symbols),
     reloc_size = exec_hdr(abfd)->a_trsize;
   else
     {
-      bfd_error = invalid_operation;
+      bfd_set_error (bfd_error_invalid_operation);
       return false;
     }
 
@@ -2361,7 +2361,7 @@ DEFUN(NAME(aout,slurp_reloc_table),(abfd, asect, symbols),
   if (!reloc_cache)
     {
     nomem:
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return false;
     }
 
@@ -2376,7 +2376,7 @@ DEFUN(NAME(aout,slurp_reloc_table),(abfd, asect, symbols),
     {
       bfd_release (abfd, relocs);
       bfd_release (abfd, reloc_cache);
-      bfd_error = system_call_error;
+      bfd_set_error (bfd_error_system_call);
       return false;
     }
 
@@ -2467,7 +2467,7 @@ DEFUN(NAME(aout,squirt_out_relocs),(abfd, section),
   natsize = each_size * count;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native) {
-    bfd_error = no_memory;
+    bfd_set_error (bfd_error_no_memory);
     return false;
   }
 
@@ -2540,7 +2540,7 @@ DEFUN(NAME(aout,get_reloc_upper_bound),(abfd, asect),
   bfd_size_type dynrel_count = 0;
 
   if (bfd_get_format (abfd) != bfd_object) {
-    bfd_error = invalid_operation;
+    bfd_set_error (bfd_error_invalid_operation);
     return 0;
   }
   if (asect->flags & SEC_CONSTRUCTOR) {
@@ -2568,7 +2568,7 @@ DEFUN(NAME(aout,get_reloc_upper_bound),(abfd, asect),
            ((exec_hdr(abfd)->a_trsize / obj_reloc_entry_size (abfd))
             + dynrel_count + 1));
 
-  bfd_error = invalid_operation;
+  bfd_set_error (bfd_error_invalid_operation);
   return 0;
 }
 
@@ -2831,7 +2831,7 @@ aout_link_hash_newfunc (entry, table, string)
           bfd_hash_allocate (table, sizeof (struct aout_link_hash_entry)));
   if (ret == (struct aout_link_hash_entry *) NULL)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return (struct bfd_hash_entry *) ret;
     }
 
@@ -2858,7 +2858,7 @@ NAME(aout,link_hash_table_create) (abfd)
         malloc (sizeof (struct aout_link_hash_table)));
   if (ret == (struct aout_link_hash_table *) NULL)
       {
-       bfd_error = no_memory;
+       bfd_set_error (bfd_error_no_memory);
        return (struct bfd_link_hash_table *) NULL;
       }
   if (! _bfd_link_hash_table_init (&ret->root, abfd,
@@ -2905,7 +2905,7 @@ NAME(aout,link_add_symbols) (abfd, info)
       return _bfd_generic_link_add_archive_symbols
        (abfd, info, aout_link_check_archive_element);
     default:
-      bfd_error = wrong_format;
+      bfd_set_error (bfd_error_wrong_format);
       return false;
     }
 }
@@ -2992,7 +2992,7 @@ aout_link_get_symbols (abfd)
          malloc ((size_t) count * EXTERNAL_NLIST_SIZE));
   if (syms == (struct external_nlist *) NULL)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return false;
     }
 
@@ -3010,7 +3010,7 @@ aout_link_get_symbols (abfd)
   strings = (char *) malloc ((size_t) stringsize);
   if (strings == NULL)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return false;
     }
 
@@ -3200,7 +3200,7 @@ aout_link_add_symbols (abfd, info)
                          * sizeof (struct aout_link_hash_entry *))));
   if (!sym_hash)
     {
-      bfd_error = no_memory;
+      bfd_set_error (bfd_error_no_memory);
       return false;
     }
   obj_aout_sym_hashes (abfd) = sym_hash;
index 821e75f..552be69 100644 (file)
@@ -550,7 +550,8 @@ ecoff_swap_rndx_in (bigend, ext_copy, intern)
     intern->index = ((ext->r_bits[1] & RNDX_BITS1_INDEX_LITTLE)
                                    >> RNDX_BITS1_INDEX_SH_LITTLE)
                  | (ext->r_bits[2] << RNDX_BITS2_INDEX_SH_LEFT_LITTLE)
-                 | (ext->r_bits[3] << RNDX_BITS3_INDEX_SH_LEFT_LITTLE);
+                 | ((unsigned int) ext->r_bits[3]
+                    << RNDX_BITS3_INDEX_SH_LEFT_LITTLE);
   }
 
 #ifdef TEST
@@ -820,7 +821,7 @@ ecoff_make_empty_symbol (abfd)
       bfd_set_error (bfd_error_no_memory);
       return (asymbol *) NULL;
     }
-  memset (new, 0, sizeof *new);
+  memset ((PTR) new, 0, sizeof *new);
   new->symbol.section = (asection *) NULL;
   new->fdr = (FDR *) NULL;
   new->local = false;
@@ -2759,7 +2760,7 @@ ecoff_write_object_contents (abfd)
              asymbol *sym;
              struct internal_reloc in;
          
-             memset (&in, 0, sizeof in);
+             memset ((PTR) &in, 0, sizeof in);
 
              reloc = *reloc_ptr_ptr;
              sym = *reloc->sym_ptr_ptr;
@@ -3355,7 +3356,7 @@ ecoff_link_hash_newfunc (entry, table, string)
       ret->indx = -1;
       ret->abfd = NULL;
     }
-  memset (&ret->esym, 0, sizeof ret->esym);
+  memset ((PTR) &ret->esym, 0, sizeof ret->esym);
 
   return (struct bfd_hash_entry *) ret;
 }
index 596f169..a4507ea 100644 (file)
@@ -932,7 +932,7 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
   asymbol **sym_end;
   PTR external_fdr;
 
-  memset (&fdr, 0, sizeof fdr);
+  memset ((PTR) &fdr, 0, sizeof fdr);
 
   sec = bfd_get_section_by_name (input_bfd, ".text");
   if (sec != NULL)
@@ -971,7 +971,7 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
 
       if (((*sym_ptr)->flags & BSF_EXPORT) != 0)
        continue;
-      memset (&internal_sym, 0, sizeof internal_sym);
+      memset ((PTR) &internal_sym, 0, sizeof internal_sym);
       internal_sym.iss = ecoff_add_string (ainfo, info, output_debug, &fdr,
                                           (*sym_ptr)->name);
 
@@ -1168,7 +1168,7 @@ ecoff_align_debug (abfd, debug, swap)
   if (add != debug_align)
     {
       if (debug->line != (unsigned char *) NULL)
-       memset (debug->line + symhdr->cbLine, 0, add);
+       memset ((PTR) (debug->line + symhdr->cbLine), 0, add);
       symhdr->cbLine += add;
     }
 
@@ -1176,7 +1176,7 @@ ecoff_align_debug (abfd, debug, swap)
   if (add != debug_align)
     {
       if (debug->ss != (char *) NULL)
-       memset (debug->ss + symhdr->issMax, 0, add);
+       memset ((PTR) (debug->ss + symhdr->issMax), 0, add);
       symhdr->issMax += add;
     }
 
@@ -1184,7 +1184,7 @@ ecoff_align_debug (abfd, debug, swap)
   if (add != debug_align)
     {
       if (debug->ssext != (char *) NULL)
-       memset (debug->ssext + symhdr->issExtMax, 0, add);
+       memset ((PTR) (debug->ssext + symhdr->issExtMax), 0, add);
       symhdr->issExtMax += add;
     }
 
@@ -1192,7 +1192,7 @@ ecoff_align_debug (abfd, debug, swap)
   if (add != aux_align)
     {
       if (debug->external_aux != (union aux_ext *) NULL)
-       memset (debug->external_aux + symhdr->iauxMax, 0,
+       memset ((PTR) (debug->external_aux + symhdr->iauxMax), 0,
                add * sizeof (union aux_ext));
       symhdr->iauxMax += add;
     }
@@ -1201,8 +1201,8 @@ ecoff_align_debug (abfd, debug, swap)
   if (add != rfd_align)
     {
       if (debug->external_rfd != (PTR) NULL)
-       memset (((char *) debug->external_rfd
-                + symhdr->crfd * swap->external_rfd_size),
+       memset ((PTR) ((char *) debug->external_rfd
+                      + symhdr->crfd * swap->external_rfd_size),
                0, add * swap->external_rfd_size);
       symhdr->crfd += add;
     }
@@ -1263,6 +1263,8 @@ ecoff_write_symhdr (abfd, debug, swap, where)
 
   where += swap->external_hdr_size;
 
+  symhdr->magic = swap->sym_magic;
+
   /* Fill in the file offsets.  */
 #define SET(offset, count, size) \
   if (symhdr->count == 0) \
@@ -1376,7 +1378,7 @@ ecoff_write_shuffle (abfd, swap, shuffle, space)
 
       i = swap->debug_align - (total & (swap->debug_align - 1));
       s = (bfd_byte *) alloca (i);
-      memset (s, 0, i);
+      memset ((PTR) s, 0, i);
       if (bfd_write ((PTR) s, 1, i, abfd) != i)
        return false;
     }
@@ -1450,7 +1452,7 @@ bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where)
 
          i = swap->debug_align - (total & (swap->debug_align - 1));
          s = (bfd_byte *) alloca (i);
-         memset (s, 0, i);
+         memset ((PTR) s, 0, i);
          if (bfd_write ((PTR) s, 1, i, abfd) != i)
            return false;
        }
@@ -1469,7 +1471,7 @@ bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where)
       i = (swap->debug_align
           - (debug->symbolic_header.issExtMax & (swap->debug_align - 1)));
       s = (bfd_byte *) alloca (i);
-      memset (s, 0, i);
+      memset ((PTR) s, 0, i);
       if (bfd_write ((PTR) s, 1, i, abfd) != i)
        return false;
     }
index 9ead8bf..f5a1e48 100644 (file)
@@ -17,10 +17,6 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-/*
- * This file contains changes from the Open Software Foundation.
- */
-
 #include "bfd.h"
 #include "sysdep.h"
 #include "libbfd.h"
@@ -31,12 +27,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 enum reloc_type
   {
     R_386_NONE = 0,
-    R_386_32,          R_386_PC32,
-    R_386_GOT32,       R_386_PLT32,
+    R_386_32,
+    R_386_PC32,
+    R_386_GOT32,
+    R_386_PLT32,
     R_386_COPY,
-    R_386_GLOB_DAT,    R_386_JUMP_SLOT,
+    R_386_GLOB_DAT,
+    R_386_JUMP_SLOT,
     R_386_RELATIVE,
-    R_386_GOTOFF,      R_386_GOTPC,
+    R_386_GOTOFF,
+    R_386_GOTPC,
     R_386_max
   };
 
@@ -44,22 +44,32 @@ enum reloc_type
 static CONST char *CONST reloc_type_names[] =
 {
   "R_386_NONE",
-  "R_386_32",          "R_386_PC32",
-  "R_386_GOT32",       "R_386_PLT32",
+  "R_386_32",
+  "R_386_PC32",
+  "R_386_GOT32",
+  "R_386_PLT32",
   "R_386_COPY",
-  "R_386_GLOB_DAT",    "R_386_JUMP_SLOT",
+  "R_386_GLOB_DAT",
+  "R_386_JUMP_SLOT",
   "R_386_RELATIVE",
-  "R_386_GOTOFF",      "R_386_GOTPC",
+  "R_386_GOTOFF",
+  "R_386_GOTPC",
 };
 #endif
 
-
 static reloc_howto_type elf_howto_table[]=
 {
-  HOWTO(R_386_NONE,  0,0, 0,false,0, complain_overflow_dont, 0,"R_386_NONE", false,0x00000000,0x00000000,false),
-  HOWTO(R_386_32,    0,2,32,false,0,  complain_overflow_bitfield,  0,"R_386_32",   false,0xffffffff,0xffffffff,false),
-  HOWTO(R_386_PC32,  0,2,32,true, 0, complain_overflow_signed,  0,"R_386_PC32", false,0xffffffff,0xffffffff,false),
-  HOWTO(R_386_GOT32, 0,2,32,false,0,  complain_overflow_bitfield,  0,"R_386_GOT32",false,0xffffffff,0xffffffff,false)
+  HOWTO(R_386_NONE,     0,0, 0,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_NONE",     true,0x00000000,0x00000000,false),
+  HOWTO(R_386_32,       0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_32",       true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_PC32,     0,2,32,true, 0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_PC32",     true,0xffffffff,0xffffffff,true),
+  HOWTO(R_386_GOT32,    0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GOT32",    true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_PLT32,    0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_PLT32",    true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_COPY,      0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_COPY",            true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_GLOB_DAT,  0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GLOB_DAT", true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_JUMP_SLOT, 0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_JUMP_SLOT",true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_RELATIVE,  0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_RELATIVE", true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_GOTOFF,    0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GOTOFF",   true,0xffffffff,0xffffffff,false),
+  HOWTO(R_386_GOTPC,     0,2,32,false,0,complain_overflow_bitfield, bfd_elf_generic_reloc,"R_386_GOTPC",    true,0xffffffff,0xffffffff,false),
 };
 
 #ifdef DEBUG_GEN_RELOC
@@ -87,8 +97,40 @@ DEFUN (elf_i386_reloc_type_lookup, (abfd, code),
       TRACE ("BFD_RELOC_PC32");
       return &elf_howto_table[ (int)R_386_PC32 ];
 
+    case BFD_RELOC_386_GOT32:
+      TRACE ("BFD_RELOC_386_GOT32");
+      return &elf_howto_table[ (int)R_386_GOT32 ];
+
+    case BFD_RELOC_386_PLT32:
+      TRACE ("BFD_RELOC_386_PLT32");
+      return &elf_howto_table[ (int)R_386_PLT32 ];
+
+    case BFD_RELOC_386_COPY:
+      TRACE ("BFD_RELOC_386_COPY");
+      return &elf_howto_table[ (int)R_386_COPY ];
+
+    case BFD_RELOC_386_GLOB_DAT:
+      TRACE ("BFD_RELOC_386_GLOB_DAT");
+      return &elf_howto_table[ (int)R_386_GLOB_DAT ];
+
+    case BFD_RELOC_386_JUMP_SLOT:
+      TRACE ("BFD_RELOC_386_JUMP_SLOT");
+      return &elf_howto_table[ (int)R_386_JUMP_SLOT ];
+
+    case BFD_RELOC_386_RELATIVE:
+      TRACE ("BFD_RELOC_386_RELATIVE");
+      return &elf_howto_table[ (int)R_386_RELATIVE ];
+
+    case BFD_RELOC_386_GOTOFF:
+      TRACE ("BFD_RELOC_386_GOTOFF");
+      return &elf_howto_table[ (int)R_386_GOTOFF ];
+
+    case BFD_RELOC_386_GOTPC:
+      TRACE ("BFD_RELOC_386_GOTPC");
+      return &elf_howto_table[ (int)R_386_GOTPC ];
+
     default:
-      abort ();
+      break;
     }
 
   TRACE ("Unknown");
@@ -101,7 +143,7 @@ DEFUN(elf_i386_info_to_howto, (abfd, cache_ptr, dst),
       arelent          *cache_ptr AND
       Elf32_Internal_Rela *dst)
 {
-  BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < R_386_GOT32);
+  BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_386_max);
 
   cache_ptr->howto = &elf_howto_table[ELF32_R_TYPE(dst->r_info)];
 }
@@ -112,7 +154,7 @@ DEFUN(elf_i386_info_to_howto_rel, (abfd, cache_ptr, dst),
       arelent          *cache_ptr AND
       Elf32_Internal_Rel *dst)
 {
-  BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < R_386_GOT32);
+  BFD_ASSERT (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_386_max);
 
   cache_ptr->howto = &elf_howto_table[ELF32_R_TYPE(dst->r_info)];
 }
@@ -120,8 +162,10 @@ DEFUN(elf_i386_info_to_howto_rel, (abfd, cache_ptr, dst),
 #define TARGET_LITTLE_SYM              bfd_elf32_i386_vec
 #define TARGET_LITTLE_NAME             "elf32-i386"
 #define ELF_ARCH                       bfd_arch_i386
+#define ELF_MACHINE_CODE               EM_386
 #define elf_info_to_howto              elf_i386_info_to_howto
 #define elf_info_to_howto_rel          elf_i386_info_to_howto_rel
 #define bfd_elf32_bfd_reloc_type_lookup        elf_i386_reloc_type_lookup
+#define ELF_MAXPAGESIZE                        0x1000
 
 #include "elf32-target.h"
index d01a2d6..cb4f451 100644 (file)
@@ -118,7 +118,7 @@ struct elf_sect_data {
 
 /* Forward declarations of static functions */
 
-static struct sec * section_from_elf_index PARAMS ((bfd *, int));
+static struct sec * section_from_elf_index PARAMS ((bfd *, unsigned int));
 
 static int elf_section_from_bfd_section PARAMS ((bfd *, struct sec *));
 
@@ -556,7 +556,7 @@ DEFUN (bfd_section_from_shdr, (abfd, shindex),
          return true;
        }
       {
-       int i;
+       unsigned int i;
 
        for (i = 1; i < ehdr->e_shnum; i++)
          {
@@ -841,7 +841,7 @@ DEFUN (elf_object_p, (abfd), bfd * abfd)
   Elf_Internal_Ehdr *i_ehdrp;  /* Elf file header, internal form */
   Elf_External_Shdr x_shdr;    /* Section header table entry, external form */
   Elf_Internal_Shdr *i_shdrp;  /* Section header table, internal form */
-  int shindex;
+  unsigned int shindex;
   char *shstrtab;              /* Internal copy of section header stringtab */
   struct elf_backend_data *ebd;
   struct elf_obj_tdata *preserved_tdata = elf_tdata (abfd);
@@ -981,27 +981,6 @@ DEFUN (elf_object_p, (abfd), bfd * abfd)
       bfd_section_from_shdr (abfd, i_ehdrp->e_shstrndx);
     }
 
-#if 0
-  for (shindex = i_ehdrp->e_shnum - 1; shindex >= 0; shindex--)
-    {
-      if (!strcmp (elf_string_from_elf_strtab (abfd,
-                                              i_shdrp[shindex].sh_name),
-                  ".strtab"))
-       {
-         elf_tdata(abfd)->strtab_hdr = i_shdrp[shindex];
-         elf_elfsections(abfd)[shindex] = &elf_tdata(abfd)->strtab_hdr;
-       }
-      else if (!strcmp (elf_string_from_elf_strtab (abfd,
-                                                   i_shdrp[shindex].sh_name),
-                       ".symtab"))
-       {
-         elf_tdata(abfd)->symtab_hdr = i_shdrp[shindex];
-         elf_elfsections(abfd)[shindex] = &elf_tdata(abfd)->symtab_hdr;
-         elf_onesymtab (abfd) = shindex;
-       }
-    }
-#endif
-
   /* Read in the string table containing the names of the sections.  We
      will need the base pointer to this table later. */
   /* We read this inline now, so that we don't have to go through
@@ -1548,7 +1527,7 @@ DEFUN (elf_write_phdrs, (abfd, i_ehdrp, i_phdrp, phdr_cnt),
 {
   /* first program header entry goes after the file header */
   int outbase = i_ehdrp->e_phoff;
-  int i;
+  unsigned int i;
   Elf_External_Phdr x_phdr;
 
   for (i = 0; i < phdr_cnt; i++)
@@ -1697,7 +1676,7 @@ map_program_segments (abfd)
   Elf_Internal_Shdr *i_shdrp;
   Elf_Internal_Phdr *phdr;
   char *done;
-  int i, n_left = 0;
+  unsigned int i, n_left = 0;
   file_ptr lowest_offset = 0;
   struct seg_info *seg = NULL;
 
@@ -1885,7 +1864,7 @@ assign_file_positions_except_relocs (abfd)
 
   struct elf_obj_tdata *t = elf_tdata (abfd);
   file_ptr off;
-  int i;
+  unsigned int i;
   Elf_Internal_Shdr **i_shdrpp = elf_elfsections (abfd);
   Elf_Internal_Shdr *i_shdrp;
   Elf_Internal_Ehdr *i_ehdrp = elf_elfheader (abfd);
@@ -2284,7 +2263,7 @@ write_shdrs_and_ehdr (abfd)
   Elf_Internal_Ehdr *i_ehdrp;  /* Elf file header, internal form */
   Elf_External_Shdr *x_shdrp;  /* Section header table, external form */
   Elf_Internal_Shdr **i_shdrp; /* Section header table, internal form */
-  int count;
+  unsigned int count;
   struct strtab *shstrtab;
 
   i_ehdrp = elf_elfheader (abfd);
@@ -2329,7 +2308,7 @@ assign_file_positions_for_relocs (abfd)
      bfd *abfd;
 {
   file_ptr off = elf_tdata(abfd)->next_file_pos;
-  int i;
+  unsigned int i;
   Elf_Internal_Shdr **shdrpp = elf_elfsections (abfd);
   Elf_Internal_Shdr *shdrp;
   for (i = 1; i < elf_elfheader(abfd)->e_shnum; i++)
@@ -2349,7 +2328,7 @@ DEFUN (NAME(bfd_elf,write_object_contents), (abfd), bfd * abfd)
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
   Elf_Internal_Ehdr *i_ehdrp;
   Elf_Internal_Shdr **i_shdrp;
-  int count;
+  unsigned int count;
 
   /* We don't know how to write dynamic objects.  Specifically, we
      don't know how to construct the program header.  */
@@ -2406,7 +2385,7 @@ DEFUN (NAME(bfd_elf,write_object_contents), (abfd), bfd * abfd)
 static struct sec *
 DEFUN (section_from_elf_index, (abfd, index),
        bfd * abfd AND
-       int index)
+       unsigned int index)
 {
   /* @@ Is bfd_com_section really correct in all the places it could
      be returned from this routine?  */
index 5e020a2..6c6f875 100644 (file)
@@ -586,7 +586,7 @@ DEFUN (srec_set_section_contents, (abfd, section, location, offset, bytes_to_do)
          bfd_set_error (bfd_error_no_memory);
          return false;
        }
-      memcpy (data, location, bytes_to_do);
+      memcpy ((PTR) data, location, bytes_to_do);
 
       if ((section->lma + offset + bytes_to_do) <= 0xffff)
        {