gcc lint
[deliverable/binutils-gdb.git] / ld / ld.h
CommitLineData
2fa0b342
DHW
1/* ld.h -
2
c1074477 3 Copyright (C) 1991, 1993 Free Software Foundation, Inc.
2fa0b342
DHW
4
5 This file is part of GLD, the Gnu Linker.
6
7 GLD is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
c1074477 9 the Free Software Foundation; either version 2, or (at your option)
2fa0b342
DHW
10 any later version.
11
12 GLD 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 GLD; see the file COPYING. If not, write to
19 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21
22#define flag_is_not_at_end(x) ((x) & BSF_NOT_AT_END)
23#define flag_is_ordinary_local(x) (((x) & (BSF_LOCAL))&!((x) & (BSF_DEBUGGING)))
24#define flag_is_debugger(x) ((x) & BSF_DEBUGGING)
25#define flag_is_undefined_or_global(x) ((x) & (BSF_UNDEFINED | BSF_GLOBAL))
26#define flag_is_defined(x) (!((x) & (BSF_UNDEFINED)))
27#define flag_is_global_or_common(x) ((x) & (BSF_GLOBAL | BSF_FORT_COMM))
28#define flag_is_undefined_or_global_or_common(x) ((x) & (BSF_UNDEFINED | BSF_GLOBAL | BSF_FORT_COMM))
c1074477
DE
29#define flag_is_undefined_or_global_or_common_or_constructor(x) ((x) & (BSF_UNDEFINED | BSF_GLOBAL | BSF_FORT_COMM | BSF_CONSTRUCTOR))
30#define flag_is_constructor(x) ((x) & BSF_CONSTRUCTOR)
2fa0b342
DHW
31#define flag_is_common(x) ((x) & BSF_FORT_COMM)
32#define flag_is_global(x) ((x) & (BSF_GLOBAL))
33#define flag_is_undefined(x) ((x) & BSF_UNDEFINED)
34#define flag_set(x,y) (x = y)
35#define flag_is_fort_comm(x) ((x) & BSF_FORT_COMM)
36#define flag_is_absolute(x) ((x) & BSF_ABSOLUTE)
37/* Extra information we hold on sections */
38typedef struct user_section_struct {
39 /* Pointer to the section where this data will go */
40 struct lang_input_statement_struct *file;
41} section_userdata_type;
42
43
44#define get_userdata(x) ((x)->userdata)
45#define as_output_section_statement(x) ((x)->otheruserdata)
46
2fa0b342
DHW
47
48
49/* Which symbols should be stripped (omitted from the output):
50 none, all, or debugger symbols. */
c1074477 51typedef enum { STRIP_NONE, STRIP_ALL, STRIP_DEBUGGER, STRIP_SOME } strip_symbols_type;
2fa0b342
DHW
52
53
54
55
56/* Which local symbols should be omitted:
57 none, all, or those starting with L.
58 This is irrelevant if STRIP_NONE. */
5e83d38e 59typedef enum { DISCARD_NONE, DISCARD_ALL, DISCARD_L } discard_locals_type;
2fa0b342
DHW
60
61
c1074477
DE
62#define BYTE_SIZE (1)
63#define SHORT_SIZE (2)
64#define LONG_SIZE (4)
2fa0b342 65
c1074477
DE
66/* ALIGN macro changed to ALIGN_N to avoid */
67/* conflict in /usr/include/machine/machparam.h */
68#define ALIGN_N(this, boundary) ((( (this) + ((boundary) -1)) & (~((boundary)-1))))
2fa0b342 69
2fa0b342 70typedef struct {
2fa0b342
DHW
71 /* 1 => assign space to common symbols even if `relocatable_output'. */
72 boolean force_common_definition;
c1074477
DE
73 boolean relax;
74
2fa0b342
DHW
75} args_type;
76
77typedef int token_code_type;
78
79typedef struct
80{
c1074477 81 bfd_size_type specified_data_size;
2fa0b342
DHW
82 boolean magic_demand_paged;
83 boolean make_executable;
84 /* 1 => write relocation into output file so can re-input it later. */
85 boolean relocateable_output;
86
87 /* Will we build contstructors, or leave alone ? */
88 boolean build_constructors;
c1074477
DE
89
90 /* If true, warn about merging common symbols with others. */
91 boolean warn_common;
2fa0b342 92
b6316534 93 boolean sort_common;
c1074477
DE
94/* these flags may seem mutually exclusive, but not setting them
95 allows the back end to decide what would be the best thing to do */
96 boolean text_read_only;
97
98 char *map_filename;
99 FILE *map_file;
100
2fa0b342 101} ld_config_type;
1418c83b 102#define set_asymbol_chain(x,y) ((x)->udata = (PTR)y)
2fa0b342
DHW
103#define get_asymbol_chain(x) ((asymbol **)((x)->udata))
104#define get_loader_symbol(x) ((loader_global_asymbol *)((x)->udata))
1418c83b 105#define set_loader_symbol(x,y) ((x)->udata = (PTR)y)
2fa0b342
DHW
106
107
108
109
110
111
112typedef enum {
113 lang_first_phase_enum,
114 lang_allocating_phase_enum,
115 lang_final_phase_enum } lang_phase_type;
116
117
118
119
c1074477
DE
120
121int yyparse();
122#define BYTE_SIZE 1
123#define SHORT_SIZE 2
124#define LONG_SIZE 4
This page took 0.091714 seconds and 4 git commands to generate.