* dep-in.sed: Cope with absolute paths.
[deliverable/binutils-gdb.git] / bfd / aout-target.h
index 5ca50ac5682634c383017fcb196b01e061580c1a..ccedb93ee7f9f8232781b9d23b4537b4a09788ff 100644 (file)
@@ -1,5 +1,6 @@
 /* Define a target vector and some small routines for a variant of a.out.
 /* Define a target vector and some small routines for a variant of a.out.
-   Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 98, 1999
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+   2000, 2001
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -61,7 +62,7 @@ MY(callback) (abfd)
       bfd_vma adjust;
 
       adjust = execp->a_entry - obj_textsec (abfd)->vma;
       bfd_vma adjust;
 
       adjust = execp->a_entry - obj_textsec (abfd)->vma;
-      /* Adjust only by whole pages. */
+      /* Adjust only by whole pages.  */
       adjust &= ~(TARGET_PAGE_SIZE - 1);
       obj_textsec (abfd)->vma += adjust;
       obj_datasec (abfd)->vma += adjust;
       adjust &= ~(TARGET_PAGE_SIZE - 1);
       obj_textsec (abfd)->vma += adjust;
       obj_datasec (abfd)->vma += adjust;
@@ -84,12 +85,12 @@ MY(callback) (abfd)
   /* The file offsets of the string table and symbol table.  */
   obj_sym_filepos (abfd) = N_SYMOFF (*execp);
   obj_str_filepos (abfd) = N_STROFF (*execp);
   /* The file offsets of the string table and symbol table.  */
   obj_sym_filepos (abfd) = N_SYMOFF (*execp);
   obj_str_filepos (abfd) = N_STROFF (*execp);
-  
+
   /* Determine the architecture and machine type of the object file.  */
 #ifdef SET_ARCH_MACH
   /* Determine the architecture and machine type of the object file.  */
 #ifdef SET_ARCH_MACH
-  SET_ARCH_MACH(abfd, *execp);
+  SET_ARCH_MACH (abfd, *execp);
 #else
 #else
-  bfd_default_set_arch_mach(abfd, DEFAULT_ARCH, 0);
+  bfd_default_set_arch_mach (abfd, DEFAULT_ARCH, 0);
 #endif
 
   /* The number of relocation records.  This must be called after
 #endif
 
   /* The number of relocation records.  This must be called after
@@ -145,18 +146,19 @@ MY(object_p) (abfd)
   struct external_exec exec_bytes;     /* Raw exec header from file */
   struct internal_exec exec;           /* Cleaned-up exec header */
   const bfd_target *target;
   struct external_exec exec_bytes;     /* Raw exec header from file */
   struct internal_exec exec;           /* Cleaned-up exec header */
   const bfd_target *target;
+  bfd_size_type amt = EXEC_BYTES_SIZE;
 
 
-  if (bfd_read ((PTR) &exec_bytes, 1, EXEC_BYTES_SIZE, abfd)
-      != EXEC_BYTES_SIZE) {
-    if (bfd_get_error () != bfd_error_system_call)
-      bfd_set_error (bfd_error_wrong_format);
-    return 0;
-  }
+  if (bfd_bread ((PTR) &exec_bytes, amt, abfd) != amt)
+    {
+      if (bfd_get_error () != bfd_error_system_call)
+       bfd_set_error (bfd_error_wrong_format);
+      return 0;
+    }
 
 #ifdef SWAP_MAGIC
   exec.a_info = SWAP_MAGIC (exec_bytes.e_info);
 #else
 
 #ifdef SWAP_MAGIC
   exec.a_info = SWAP_MAGIC (exec_bytes.e_info);
 #else
-  exec.a_info = bfd_h_get_32 (abfd, exec_bytes.e_info);
+  exec.a_info = GET_MAGIC (abfd, exec_bytes.e_info);
 #endif /* SWAP_MAGIC */
 
   if (N_BADMAG (exec)) return 0;
 #endif /* SWAP_MAGIC */
 
   if (N_BADMAG (exec)) return 0;
@@ -164,7 +166,7 @@ MY(object_p) (abfd)
   if (!(MACHTYPE_OK (N_MACHTYPE (exec)))) return 0;
 #endif
 
   if (!(MACHTYPE_OK (N_MACHTYPE (exec)))) return 0;
 #endif
 
-  NAME(aout,swap_exec_header_in)(abfd, &exec_bytes, &exec);
+  NAME(aout,swap_exec_header_in) (abfd, &exec_bytes, &exec);
 
 #ifdef SWAP_MAGIC
   /* swap_exec_header_in read in a_info with the wrong byte order */
 
 #ifdef SWAP_MAGIC
   /* swap_exec_header_in read in a_info with the wrong byte order */
@@ -178,7 +180,7 @@ MY(object_p) (abfd)
    * means that it isn't obvious if EXEC_P should be set.
    * All of the following must be true for an executable:
    * There must be no relocations, the bfd can be neither an
    * means that it isn't obvious if EXEC_P should be set.
    * All of the following must be true for an executable:
    * There must be no relocations, the bfd can be neither an
-   * archive nor an archive element, and the file must be executable. */
+   * archive nor an archive element, and the file must be executable.  */
 
   if (exec.a_trsize + exec.a_drsize == 0
       && bfd_get_format(abfd) == bfd_object && abfd->my_archive == NULL)
 
   if (exec.a_trsize + exec.a_drsize == 0
       && bfd_get_format(abfd) == bfd_object && abfd->my_archive == NULL)
@@ -197,7 +199,6 @@ MY(object_p) (abfd)
 #define MY_object_p MY(object_p)
 #endif
 
 #define MY_object_p MY(object_p)
 #endif
 
-
 #ifndef MY_mkobject
 
 static boolean MY(mkobject) PARAMS ((bfd *));
 #ifndef MY_mkobject
 
 static boolean MY(mkobject) PARAMS ((bfd *));
@@ -206,7 +207,7 @@ static boolean
 MY(mkobject) (abfd)
      bfd *abfd;
 {
 MY(mkobject) (abfd)
      bfd *abfd;
 {
-  if (NAME(aout,mkobject)(abfd) == false)
+  if (NAME(aout,mkobject) (abfd) == false)
     return false;
 #if 0 /* Sizes get set in set_sizes callback, later, after we know
         the architecture and machine.  */
     return false;
 #if 0 /* Sizes get set in set_sizes callback, later, after we know
         the architecture and machine.  */
@@ -230,7 +231,6 @@ MY(mkobject) (abfd)
 static boolean MY_bfd_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
 
 static boolean MY_bfd_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
 
-/*ARGSUSED*/
 static boolean
 MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
 static boolean
 MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
@@ -251,6 +251,8 @@ MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
    file header, symbols, and relocation.  */
 
 #ifndef MY_write_object_contents
    file header, symbols, and relocation.  */
 
 #ifndef MY_write_object_contents
+static boolean MY(write_object_contents) PARAMS ((bfd *));
+
 static boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 static boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
@@ -258,11 +260,7 @@ MY(write_object_contents) (abfd)
   struct external_exec exec_bytes;
   struct internal_exec *execp = exec_hdr (abfd);
 
   struct external_exec exec_bytes;
   struct internal_exec *execp = exec_hdr (abfd);
 
-#if CHOOSE_RELOC_SIZE
-  CHOOSE_RELOC_SIZE(abfd);
-#else
   obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
   obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
-#endif
 
   WRITE_HEADERS(abfd, execp);
 
 
   WRITE_HEADERS(abfd, execp);
 
@@ -331,7 +329,7 @@ MY(set_sizes) (abfd)
 #define MY_finish_dynamic_link 0
 #endif
 
 #define MY_finish_dynamic_link 0
 #endif
 
-static CONST struct aout_backend_data MY(backend_data) = {
+static const struct aout_backend_data MY(backend_data) = {
   MY_zmagic_contiguous,
   MY_text_includes_header,
   MY_entry_is_text_address,
   MY_zmagic_contiguous,
   MY_text_includes_header,
   MY_entry_is_text_address,
@@ -512,6 +510,9 @@ MY_bfd_final_link (abfd, info)
 #ifndef MY_bfd_gc_sections
 #define MY_bfd_gc_sections bfd_generic_gc_sections
 #endif
 #ifndef MY_bfd_gc_sections
 #define MY_bfd_gc_sections bfd_generic_gc_sections
 #endif
+#ifndef MY_bfd_merge_sections
+#define MY_bfd_merge_sections bfd_generic_merge_sections
+#endif
 #ifndef MY_bfd_reloc_type_lookup
 #define MY_bfd_reloc_type_lookup NAME(aout,reloc_type_lookup)
 #endif
 #ifndef MY_bfd_reloc_type_lookup
 #define MY_bfd_reloc_type_lookup NAME(aout,reloc_type_lookup)
 #endif
@@ -534,7 +535,6 @@ MY_bfd_final_link (abfd, info)
 #define MY_bfd_link_split_section  _bfd_generic_link_split_section
 #endif
 
 #define MY_bfd_link_split_section  _bfd_generic_link_split_section
 #endif
 
-
 #ifndef MY_bfd_copy_private_bfd_data
 #define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
 #endif
 #ifndef MY_bfd_copy_private_bfd_data
 #define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
 #endif
@@ -585,7 +585,7 @@ MY_bfd_final_link (abfd, info)
 #endif
 
 /* Aout symbols normally have leading underscores */
 #endif
 
 /* Aout symbols normally have leading underscores */
-#ifndef MY_symbol_leading_char 
+#ifndef MY_symbol_leading_char
 #define MY_symbol_leading_char '_'
 #endif
 
 #define MY_symbol_leading_char '_'
 #endif
 
@@ -647,7 +647,7 @@ const bfd_target MY(vec) =
 
   /* Alternative_target */
   NULL,
 
   /* Alternative_target */
   NULL,
-  
+
   (PTR) MY_backend_data
 };
 #endif /* MY_BFD_TARGET */
   (PTR) MY_backend_data
 };
 #endif /* MY_BFD_TARGET */
This page took 0.046497 seconds and 4 git commands to generate.