* coffgen.c (coff_write_symbols): Check to see if a symbol's flags
[binutils-gdb.git] / bfd / elf32-spu.h
index b74c3102b8be5b15791f5a6ab8d7f0e230892fac..ec443fd99f8245472aa81fe6be8a611180c84106 100644 (file)
@@ -1,12 +1,12 @@
 /* SPU specific support for 32-bit ELF.
 
-   Copyright 2006, 2007 Free Software Foundation, Inc.
+   Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -26,12 +26,20 @@ struct _spu_elf_section_data
 {
   struct bfd_elf_section_data elf;
 
-  /* Stack analysis info kept for this section.  */
+  union {
+    /* Info kept for input sections.  */
+    struct {
+      /* Stack analysis info kept for this section.  */
+      struct spu_elf_stack_info *stack_info;
+    } i;
 
-  struct spu_elf_stack_info *stack_info;
-
-  /* Non-zero for overlay output sections.  */
-  unsigned int ovl_index;
+    /* Info kept for output sections.  */
+    struct {
+      /* Non-zero for overlay output sections.  */
+      unsigned int ovl_index;
+      unsigned int ovl_buf;
+    } o;
+  } u;
 };
 
 #define spu_elf_section_data(sec) \
@@ -46,12 +54,13 @@ struct _ovl_stream
 extern void spu_elf_plugin (int);
 extern bfd_boolean spu_elf_open_builtin_lib (bfd **,
                                             const struct _ovl_stream *);
-extern bfd_boolean spu_elf_create_sections (bfd *,
-                                           struct bfd_link_info *, int, int);
-extern bfd_boolean spu_elf_find_overlays (bfd *, struct bfd_link_info *);
-extern bfd_boolean spu_elf_size_stubs (bfd *, struct bfd_link_info *, int, int,
-                                      asection **, asection **,
-                                      asection **);
-extern bfd_boolean spu_elf_build_stubs (struct bfd_link_info *, int,
-                                       asection *);
-extern asection *spu_elf_check_vma (bfd *, bfd_vma, bfd_vma);
+extern bfd_boolean spu_elf_create_sections (struct bfd_link_info *, int, int);
+extern bfd_boolean spu_elf_find_overlays (struct bfd_link_info *);
+extern int spu_elf_size_stubs (struct bfd_link_info *,
+                              void (*) (asection *, asection *, const char *),
+                              int);
+extern bfd_boolean spu_elf_build_stubs (struct bfd_link_info *, int);
+extern asection *spu_elf_check_vma (struct bfd_link_info *, int,
+                                   unsigned int, unsigned int, unsigned int,
+                                   unsigned int, int, void (*) (void),
+                                   FILE *(*) (void), void (*) (void));