Improve load command's help text
[deliverable/binutils-gdb.git] / bfd / sparclinux.c
index b7fef220643d92ebf969d1185ed6a455c4df5a6b..661b50b652a066a97b3a5a9c82819bcda0a98a2f 100644 (file)
@@ -1,7 +1,5 @@
 /* BFD back-end for linux flavored sparc a.out binaries.
-   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -39,7 +37,7 @@
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
    the tokens.  */
-#define MY(OP) CONCAT2 (sparclinux_,OP)
+#define MY(OP) CONCAT2 (sparc_aout_linux_,OP)
 #define TARGETNAME "a.out-sparc-linux"
 
 extern const bfd_target MY(vec);
@@ -49,15 +47,10 @@ extern const bfd_target MY(vec);
    becomes important.  */
 
 static void MY_final_link_callback
-  PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
-
-static bfd_boolean sparclinux_bfd_final_link
-  PARAMS ((bfd *abfd, struct bfd_link_info *info));
+  (bfd *, file_ptr *, file_ptr *, file_ptr *);
 
 static bfd_boolean
-sparclinux_bfd_final_link (abfd, info)
-     bfd *abfd;
-     struct bfd_link_info *info;
+sparclinux_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
 {
   obj_aout_subformat (abfd) = q_magic_format;
   return NAME(aout,final_link) (abfd, info, MY_final_link_callback);
@@ -67,20 +60,17 @@ sparclinux_bfd_final_link (abfd, info)
 
 /* Set the machine type correctly.  */
 
-static bfd_boolean sparclinux_write_object_contents PARAMS ((bfd *abfd));
-
 static bfd_boolean
-sparclinux_write_object_contents (abfd)
-     bfd *abfd;
+sparclinux_write_object_contents (bfd *abfd)
 {
   struct external_exec exec_bytes;
   struct internal_exec *execp = exec_hdr (abfd);
 
-  N_SET_MACHTYPE (*execp, M_SPARC);
+  N_SET_MACHTYPE (execp, M_SPARC);
 
   obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
 
-  WRITE_HEADERS(abfd, execp);
+  WRITE_HEADERS (abfd, execp);
 
   return TRUE;
 }
@@ -170,31 +160,13 @@ struct linux_link_hash_table
   struct fixup *fixup_list;
 };
 
-static struct bfd_hash_entry *linux_link_hash_newfunc
-  PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static struct bfd_link_hash_table *linux_link_hash_table_create
-  PARAMS ((bfd *));
-static struct fixup *new_fixup
-  PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *,
-         bfd_vma, int));
-static bfd_boolean linux_link_create_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean linux_add_one_symbol
-  PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
-         bfd_vma, const char *, bfd_boolean, bfd_boolean,
-         struct bfd_link_hash_entry **));
-static bfd_boolean linux_tally_symbols
-  PARAMS ((struct linux_link_hash_entry *, PTR));
-static bfd_boolean linux_finish_dynamic_link
-  PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Routine to create an entry in an Linux link hash table.  */
 
 static struct bfd_hash_entry *
-linux_link_hash_newfunc (entry, table, string)
-     struct bfd_hash_entry *entry;
-     struct bfd_hash_table *table;
-     const char *string;
+linux_link_hash_newfunc (struct bfd_hash_entry *entry,
+                        struct bfd_hash_table *table,
+                        const char *string)
 {
   struct linux_link_hash_entry *ret = (struct linux_link_hash_entry *) entry;
 
@@ -221,13 +193,12 @@ linux_link_hash_newfunc (entry, table, string)
 /* Create a Linux link hash table.  */
 
 static struct bfd_link_hash_table *
-linux_link_hash_table_create (abfd)
-     bfd *abfd;
+linux_link_hash_table_create (bfd *abfd)
 {
   struct linux_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct linux_link_hash_table);
 
-  ret = (struct linux_link_hash_table *) bfd_malloc (amt);
+  ret = (struct linux_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct linux_link_hash_table *) NULL)
     return (struct bfd_link_hash_table *) NULL;
   if (!NAME(aout,link_hash_table_init) (&ret->root, abfd,
@@ -238,11 +209,6 @@ linux_link_hash_table_create (abfd)
       return (struct bfd_link_hash_table *) NULL;
     }
 
-  ret->dynobj = NULL;
-  ret->fixup_count = 0;
-  ret->local_builtins = 0;
-  ret->fixup_list = NULL;
-
   return &ret->root.root;
 }
 
@@ -258,7 +224,7 @@ linux_link_hash_table_create (abfd)
 #define linux_link_hash_traverse(table, func, info)                   \
   (aout_link_hash_traverse                                            \
    (&(table)->root,                                                   \
-    (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) (struct aout_link_hash_entry *, void *)) (func),  \
     (info)))
 
 /* Get the Linux link hash table from the info structure.  This is
@@ -269,11 +235,10 @@ linux_link_hash_table_create (abfd)
 /* Store the information for a new fixup.  */
 
 static struct fixup *
-new_fixup (info, h, value, builtin)
-     struct bfd_link_info *info;
-     struct linux_link_hash_entry *h;
-     bfd_vma value;
-     int builtin;
+new_fixup (struct bfd_link_info *info,
+          struct linux_link_hash_entry *h,
+          bfd_vma value,
+          int builtin)
 {
   struct fixup *f;
 
@@ -299,12 +264,11 @@ new_fixup (info, h, value, builtin)
    create it for now.  */
 
 static bfd_boolean
-linux_link_create_dynamic_sections (abfd, info)
-     bfd *abfd;
-     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+linux_link_create_dynamic_sections (bfd *abfd,
+                                   struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   flagword flags;
-  register asection *s;
+  asection *s;
 
   /* Note that we set the SEC_IN_MEMORY flag.  */
   flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
@@ -326,18 +290,16 @@ linux_link_create_dynamic_sections (abfd, info)
    tweaking needed for dynamic linking support.  */
 
 static bfd_boolean
-linux_add_one_symbol (info, abfd, name, flags, section, value, string,
-                     copy, collect, hashp)
-     struct bfd_link_info *info;
-     bfd *abfd;
-     const char *name;
-     flagword flags;
-     asection *section;
-     bfd_vma value;
-     const char *string;
-     bfd_boolean copy;
-     bfd_boolean collect;
-     struct bfd_link_hash_entry **hashp;
+linux_add_one_symbol (struct bfd_link_info *info,
+                     bfd *abfd,
+                     const char *name,
+                     flagword flags,
+                     asection *section,
+                     bfd_vma value,
+                     const char *string,
+                     bfd_boolean copy,
+                     bfd_boolean collect,
+                     struct bfd_link_hash_entry **hashp)
 {
   struct linux_link_hash_entry *h;
   bfd_boolean insert;
@@ -352,7 +314,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
 
   insert = FALSE;
 
-  if (! info->relocatable
+  if (! bfd_link_relocatable (info)
       && linux_hash_table (info)->dynobj == NULL
       && strcmp (name, SHARABLE_CONFLICTS) == 0
       && (flags & BSF_CONSTRUCTOR) != 0
@@ -447,14 +409,15 @@ linux_tally_symbols (struct linux_link_hash_entry *h, void * data)
        alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1);
 
       if (p == NULL || alloc == NULL)
-       (*_bfd_error_handler) (_("Output file requires shared library `%s'\n"),
-                              name);
+       _bfd_error_handler (_("Output file requires shared library `%s'\n"),
+                           name);
       else
        {
          strcpy (alloc, name);
          p = strrchr (alloc, '_');
          *p++ = '\0';
-         (*_bfd_error_handler)
+         _bfd_error_handler
+           /* xgettext:c-format */
            (_("Output file requires shared library `%s.so.%s'\n"),
             alloc, p);
          free (alloc);
@@ -548,9 +511,8 @@ linux_tally_symbols (struct linux_link_hash_entry *h, void * data)
    are required.  */
 
 bfd_boolean
-bfd_sparclinux_size_dynamic_sections (output_bfd, info)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
+bfd_sparclinux_size_dynamic_sections (bfd *output_bfd,
+                                     struct bfd_link_info *info)
 {
   struct fixup *f;
   asection *s;
@@ -561,7 +523,7 @@ bfd_sparclinux_size_dynamic_sections (output_bfd, info)
   /* First find the fixups...  */
   linux_link_hash_traverse (linux_hash_table (info),
                            linux_tally_symbols,
-                           (PTR) info);
+                           info);
 
   /* If there are builtin fixups, leave room for a marker.  This is
      used by the dynamic linker so that it knows that all that follow
@@ -603,9 +565,7 @@ bfd_sparclinux_size_dynamic_sections (output_bfd, info)
    the stuff we need.  */
 
 static bfd_boolean
-linux_finish_dynamic_link (output_bfd, info)
-     bfd *output_bfd;
-     struct bfd_link_info *info;
+linux_finish_dynamic_link (bfd *output_bfd, struct bfd_link_info *info)
 {
   asection *s, *os, *is;
   bfd_byte *fixup_table;
@@ -644,7 +604,7 @@ linux_finish_dynamic_link (output_bfd, info)
       if (f->h->root.root.type != bfd_link_hash_defined
          && f->h->root.root.type != bfd_link_hash_defweak)
        {
-         (*_bfd_error_handler)
+         _bfd_error_handler
            (_("Symbol %s not defined for fixups\n"),
             f->h->root.root.root.string);
          continue;
@@ -694,7 +654,7 @@ linux_finish_dynamic_link (output_bfd, info)
          if (f->h->root.root.type != bfd_link_hash_defined
              && f->h->root.root.type != bfd_link_hash_defweak)
            {
-             (*_bfd_error_handler)
+             _bfd_error_handler
                (_("Symbol %s not defined for fixups\n"),
                 f->h->root.root.root.string);
              continue;
@@ -719,7 +679,7 @@ linux_finish_dynamic_link (output_bfd, info)
 
   if (linux_hash_table (info)->fixup_count != fixups_written)
     {
-      (*_bfd_error_handler) (_("Warning: fixup count mismatch\n"));
+      _bfd_error_handler (_("Warning: fixup count mismatch\n"));
       while (linux_hash_table (info)->fixup_count > fixups_written)
        {
          bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table);
@@ -755,7 +715,7 @@ linux_finish_dynamic_link (output_bfd, info)
                SEEK_SET) != 0)
     return FALSE;
 
-  if (bfd_bwrite ((PTR) s->contents, s->size, output_bfd) != s->size)
+  if (bfd_bwrite (s->contents, s->size, output_bfd) != s->size)
     return FALSE;
 
   return TRUE;
This page took 0.044117 seconds and 4 git commands to generate.