~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/ld/ldctor.h

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ldctor.h - linker constructor support
 
2
   Copyright 1991, 1992, 1993, 1994, 1995, 1998, 2000, 2002, 2003, 2005,
 
3
   2007, 2008  Free Software Foundation, Inc.
 
4
 
 
5
   This file is part of the GNU Binutils.
 
6
 
 
7
   This program is free software; you can redistribute it and/or modify
 
8
   it under the terms of the GNU General Public License as published by
 
9
   the Free Software Foundation; either version 3 of the License, or
 
10
   (at your option) any later version.
 
11
 
 
12
   This program is distributed in the hope that it will be useful,
 
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
   GNU General Public License for more details.
 
16
 
 
17
   You should have received a copy of the GNU General Public License
 
18
   along with this program; if not, write to the Free Software
 
19
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
 
20
   MA 02110-1301, USA.  */
 
21
 
 
22
#ifndef LDCTOR_H
 
23
#define LDCTOR_H
 
24
 
 
25
/* List of statements needed to handle constructors */
 
26
extern lang_statement_list_type constructor_list;
 
27
 
 
28
/* Whether the constructors should be sorted.  Note that this is
 
29
   global for the entire link; we assume that there is only a single
 
30
   CONSTRUCTORS command in the linker script.  */
 
31
extern bfd_boolean constructors_sorted;
 
32
 
 
33
/* We keep a list of these structures for each set we build.  */
 
34
 
 
35
struct set_info {
 
36
  struct set_info *next;                /* Next set.  */
 
37
  struct bfd_link_hash_entry *h;        /* Hash table entry.  */
 
38
  bfd_reloc_code_real_type reloc;       /* Reloc to use for an entry.  */
 
39
  size_t count;                         /* Number of elements.  */
 
40
  struct set_element *elements;         /* Elements in set.  */
 
41
};
 
42
 
 
43
struct set_element {
 
44
  struct set_element *next;             /* Next element.  */
 
45
  const char *name;                     /* Name in set (may be NULL).  */
 
46
  asection *section;                    /* Section of value in set.  */
 
47
  bfd_vma value;                        /* Value in set.  */
 
48
};
 
49
 
 
50
/* The sets we have seen.  */
 
51
 
 
52
extern struct set_info *sets;
 
53
 
 
54
extern void ldctor_add_set_entry
 
55
  (struct bfd_link_hash_entry *, bfd_reloc_code_real_type, const char *,
 
56
   asection *, bfd_vma);
 
57
extern void ldctor_build_sets
 
58
  (void);
 
59
 
 
60
#endif