Wed Nov 3 23:31:19 1999 Jeffrey A Law (law@cygnus.com)
[deliverable/binutils-gdb.git] / ld / ldctor.h
index 72ca8beec8e4c2fdd4d364c72afbc83654acac51..d873f77f3270fe73fcc8ed22aa4fd12dcd02c7b4 100644 (file)
@@ -1,9 +1,60 @@
+/* ldctor.h - linker constructor support
+   Copyright 1991, 92, 93, 94, 95, 1998 Free Software Foundation, Inc.
+   
+This file is part of GLD, the Gnu Linker.
 
-void EXFUN(find_constructors,(void));
-void EXFUN(ldlang_check_for_constructors,(
-                                    struct
-                                    lang_input_statement_struct *));
+GLD 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, or (at your option)
+any later version.
 
+GLD is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-void EXFUN(ldlang_add_constructor,(ldsym_type *name));
+You should have received a copy of the GNU General Public License
+along with GLD; see the file COPYING.  If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.  */
 
+#ifndef LDCTOR_H
+#define LDCTOR_H
+
+/* List of statements needed to handle constructors */
+extern lang_statement_list_type constructor_list;
+
+/* Whether the constructors should be sorted.  Note that this is
+   global for the entire link; we assume that there is only a single
+   CONSTRUCTORS command in the linker script.  */
+extern boolean constructors_sorted;
+
+/* We keep a list of these structures for each set we build.  */
+
+struct set_info
+{
+  struct set_info *next;               /* Next set.  */
+  struct bfd_link_hash_entry *h;       /* Hash table entry.  */
+  bfd_reloc_code_real_type reloc;      /* Reloc to use for an entry.  */
+  size_t count;                                /* Number of elements.  */
+  struct set_element *elements;                /* Elements in set.  */
+};
+
+struct set_element
+{
+  struct set_element *next;            /* Next element.  */
+  const char *name;                    /* Name in set (may be NULL).  */
+  asection *section;                   /* Section of value in set.  */
+  bfd_vma value;                       /* Value in set.  */
+};
+
+/* The sets we have seen.  */
+
+extern struct set_info *sets;
+
+extern void ldctor_add_set_entry PARAMS ((struct bfd_link_hash_entry *,
+                                         bfd_reloc_code_real_type,
+                                         const char *, asection *, bfd_vma));
+extern void ldctor_build_sets PARAMS ((void));
+
+#endif
This page took 0.025242 seconds and 4 git commands to generate.