* reloc.c: Add PPC and PPC64 TLS relocs.
[deliverable/binutils-gdb.git] / bfd / simple.c
index 0c61cb48ecfb203986b1f97e1e52812d9828eca4..88f13370551edae5cabbdc9d877a8a1a57e124fa 100644 (file)
 #include "libbfd.h"
 #include "bfdlink.h"
 
-static boolean simple_dummy_warning
-  PARAMS ((struct bfd_link_info * ATTRIBUTE_UNUSED,
-          const char * ATTRIBUTE_UNUSED, const char * ATTRIBUTE_UNUSED,
-          bfd * ATTRIBUTE_UNUSED, asection * ATTRIBUTE_UNUSED,
-          bfd_vma ATTRIBUTE_UNUSED));
-
-static boolean simple_dummy_undefined_symbol
-  PARAMS ((struct bfd_link_info * ATTRIBUTE_UNUSED,
-          const char * ATTRIBUTE_UNUSED, bfd * ATTRIBUTE_UNUSED,
-          asection * ATTRIBUTE_UNUSED, bfd_vma ATTRIBUTE_UNUSED,
-          boolean ATTRIBUTE_UNUSED));
-
-static boolean simple_dummy_reloc_overflow 
-  PARAMS ((struct bfd_link_info * ATTRIBUTE_UNUSED,
-          const char * ATTRIBUTE_UNUSED, const char * ATTRIBUTE_UNUSED,
-          bfd_vma ATTRIBUTE_UNUSED, bfd * ATTRIBUTE_UNUSED,
-          asection * ATTRIBUTE_UNUSED, bfd_vma ATTRIBUTE_UNUSED));
-
-static boolean simple_dummy_reloc_dangerous
-  PARAMS ((struct bfd_link_info * ATTRIBUTE_UNUSED,
-          const char * ATTRIBUTE_UNUSED, bfd * ATTRIBUTE_UNUSED,
-          asection * ATTRIBUTE_UNUSED, bfd_vma ATTRIBUTE_UNUSED));
-
-static boolean simple_dummy_unattached_reloc
-  PARAMS ((struct bfd_link_info * ATTRIBUTE_UNUSED,
-          const char * ATTRIBUTE_UNUSED, bfd * ATTRIBUTE_UNUSED,
-          asection * ATTRIBUTE_UNUSED, bfd_vma ATTRIBUTE_UNUSED));
+static bfd_boolean simple_dummy_warning
+  PARAMS ((struct bfd_link_info *, const char *, const char *, bfd *,
+          asection *, bfd_vma));
+
+static bfd_boolean simple_dummy_undefined_symbol
+  PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *,
+          bfd_vma, bfd_boolean));
+
+static bfd_boolean simple_dummy_reloc_overflow
+  PARAMS ((struct bfd_link_info *, const char *, const char *, bfd_vma,
+          bfd *, asection *, bfd_vma));
+
+static bfd_boolean simple_dummy_reloc_dangerous
+  PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma));
+
+static bfd_boolean simple_dummy_unattached_reloc
+  PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma));
 
 bfd_byte * bfd_simple_get_relocated_section_contents
   PARAMS ((bfd *, asection *, bfd_byte *));
 
-static boolean
+static bfd_boolean
 simple_dummy_warning (link_info, warning, symbol, abfd, section, address)
-     struct bfd_link_info *link_info;
-     const char *warning;
-     const char *symbol;
-     bfd *abfd;
-     asection *section;
-     bfd_vma address;
+     struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+     const char *warning ATTRIBUTE_UNUSED;
+     const char *symbol ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     asection *section ATTRIBUTE_UNUSED;
+     bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_undefined_symbol (link_info, name, abfd, section, address, fatal)
-     struct bfd_link_info *link_info;
-     const char *name;
-     bfd *abfd;
-     asection *section;
-     bfd_vma address;
-     boolean fatal;
+     struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     asection *section ATTRIBUTE_UNUSED;
+     bfd_vma address ATTRIBUTE_UNUSED;
+     bfd_boolean fatal ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_reloc_overflow (link_info, name, reloc_name, addend, abfd,
                             section, address)
-     struct bfd_link_info *link_info;
-     const char *name;
-     const char *reloc_name;
-     bfd_vma addend;
-     bfd *abfd;
-     asection *section;
-     bfd_vma address;
+     struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
+     const char *reloc_name ATTRIBUTE_UNUSED;
+     bfd_vma addend ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     asection *section ATTRIBUTE_UNUSED;
+     bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_reloc_dangerous (link_info, message, abfd, section, address)
-     struct bfd_link_info *link_info;
-     const char *message;
-     bfd *abfd;
-     asection *section;
-     bfd_vma address;
+     struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+     const char *message ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     asection *section ATTRIBUTE_UNUSED;
+     bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_unattached_reloc (link_info, name, abfd, section, address)
-     struct bfd_link_info *link_info;
-     const char *name;
-     bfd *abfd;
-     asection *section;
-     bfd_vma address;
+     struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     asection *section ATTRIBUTE_UNUSED;
+     bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /*
@@ -148,6 +138,21 @@ bfd_simple_get_relocated_section_contents (abfd, sec, outbuf)
   int storage_needed, number_of_symbols;
   asymbol **symbol_table;
 
+  if (! (sec->flags & SEC_RELOC))
+    {
+      bfd_size_type size = bfd_section_size (abfd, sec);
+
+      if (outbuf == NULL)
+       contents = bfd_malloc (size);
+      else
+       contents = outbuf;
+
+      if (contents)
+       bfd_get_section_contents (abfd, sec, contents, 0, size);
+
+      return contents;
+    }
+
   /* In order to use bfd_get_relocated_section_contents, we need
      to forge some data structures that it expects.  */
 
This page took 0.025361 seconds and 4 git commands to generate.