projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR 10474
[deliverable/binutils-gdb.git]
/
ld
/
ldlang.h
diff --git
a/ld/ldlang.h
b/ld/ldlang.h
index f52f46ffbc693ebfac5ef0d43402abdaee419891..4629883bcc4bec88422000d8445a1cb2014fc7fd 100644
(file)
--- a/
ld/ldlang.h
+++ b/
ld/ldlang.h
@@
-1,24
+1,24
@@
/* ldlang.h - linker command language support
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
/* ldlang.h - linker command language support
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006
+ 2001, 2002, 2003, 2004, 2005, 2006
, 2007, 2008, 2009
Free Software Foundation, Inc.
Free Software Foundation, Inc.
- This file is part of
GLD, the Gnu Linker
.
+ This file is part of
the GNU Binutils
.
-
GLD
is free software; you can redistribute it and/or modify
+
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
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.
+ the Free Software Foundation; either version
3 of the License, or
+
(at your option)
any later version.
-
GLD
is distributed in the hope that it will be useful,
+
This program
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.
You should have received a copy of the GNU General Public License
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.
You should have received a copy of the GNU General Public License
- along with
GLD; see the file COPYING. If not, write to the Fre
e
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
+ along with
this program; if not, write to the Free Softwar
e
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+
MA
02110-1301, USA. */
#ifndef LDLANG_H
#define LDLANG_H
#ifndef LDLANG_H
#define LDLANG_H
@@
-43,13
+43,19
@@
struct _fill_type
typedef struct statement_list
{
typedef struct statement_list
{
- union lang_statement_union *head;
- union lang_statement_union **tail;
+ union lang_statement_union *
head;
+ union lang_statement_union **
tail;
} lang_statement_list_type;
} lang_statement_list_type;
+typedef struct memory_region_name_struct
+{
+ const char * name;
+ struct memory_region_name_struct * next;
+} lang_memory_region_name;
+
typedef struct memory_region_struct
{
typedef struct memory_region_struct
{
-
char *name
;
+
lang_memory_region_name name_list
;
struct memory_region_struct *next;
bfd_vma origin;
bfd_size_type length;
struct memory_region_struct *next;
bfd_vma origin;
bfd_size_type length;
@@
-79,8
+85,7
@@
typedef struct lang_statement_header_struct
lang_output_statement_enum,
lang_padding_statement_enum,
lang_group_statement_enum,
lang_output_statement_enum,
lang_padding_statement_enum,
lang_group_statement_enum,
-
- lang_afile_asection_pair_statement_enum,
+ lang_insert_statement_enum,
lang_constructors_statement_enum
} type;
} lang_statement_header_type;
lang_constructors_statement_enum
} type;
} lang_statement_header_type;
@@
-233,12
+238,6
@@
typedef struct lang_input_statement_struct
bfd *the_bfd;
bfd *the_bfd;
- file_ptr passive_position;
-
- /* Symbol table of the file. */
- asymbol **asymbols;
- unsigned int symbol_count;
-
/* Point to the next file - whatever it is, wanders up and down
archives */
union lang_statement_union *next;
/* Point to the next file - whatever it is, wanders up and down
archives */
union lang_statement_union *next;
@@
-248,7
+247,6
@@
typedef struct lang_input_statement_struct
const char *target;
const char *target;
- unsigned int closed : 1;
unsigned int is_archive : 1;
/* 1 means search a set of directories for this file. */
unsigned int is_archive : 1;
/* 1 means search a set of directories for this file. */
@@
-290,13
+288,6
@@
typedef struct
asection *section;
} lang_input_section_type;
asection *section;
} lang_input_section_type;
-typedef struct
-{
- lang_statement_header_type header;
- asection *section;
- union lang_statement_union *file;
-} lang_afile_asection_pair_statement_type;
-
typedef struct lang_wild_statement_struct lang_wild_statement_type;
typedef void (*callback_t) (lang_wild_statement_type *, struct wildcard_list *,
typedef struct lang_wild_statement_struct lang_wild_statement_type;
typedef void (*callback_t) (lang_wild_statement_type *, struct wildcard_list *,
@@
-361,6
+352,13
@@
typedef struct
lang_statement_list_type children;
} lang_group_statement_type;
lang_statement_list_type children;
} lang_group_statement_type;
+typedef struct
+{
+ lang_statement_header_type header;
+ const char *where;
+ bfd_boolean is_before;
+} lang_insert_statement_type;
+
typedef union lang_statement_union
{
lang_statement_header_type header;
typedef union lang_statement_union
{
lang_statement_header_type header;
@@
-369,7
+367,6
@@
typedef union lang_statement_union
lang_reloc_statement_type reloc_statement;
lang_address_statement_type address_statement;
lang_output_section_statement_type output_section_statement;
lang_reloc_statement_type reloc_statement;
lang_address_statement_type address_statement;
lang_output_section_statement_type output_section_statement;
- lang_afile_asection_pair_statement_type afile_asection_pair_statement;
lang_assignment_statement_type assignment_statement;
lang_input_statement_type input_statement;
lang_target_statement_type target_statement;
lang_assignment_statement_type assignment_statement;
lang_input_statement_type input_statement;
lang_target_statement_type target_statement;
@@
-380,6
+377,7
@@
typedef union lang_statement_union
lang_fill_statement_type fill_statement;
lang_padding_statement_type padding_statement;
lang_group_statement_type group_statement;
lang_fill_statement_type fill_statement;
lang_padding_statement_type padding_statement;
lang_group_statement_type group_statement;
+ lang_insert_statement_type insert_statement;
} lang_statement_union_type;
/* This structure holds information about a program header, from the
} lang_statement_union_type;
/* This structure holds information about a program header, from the
@@
-437,7
+435,8
@@
struct lang_definedness_hash_entry
/* Used by place_orphan to keep track of orphan sections and statements. */
/* Used by place_orphan to keep track of orphan sections and statements. */
-struct orphan_save {
+struct orphan_save
+{
const char *name;
flagword flags;
lang_output_section_statement_type *os;
const char *name;
flagword flags;
lang_output_section_statement_type *os;
@@
-465,10
+464,10
@@
extern void lang_init
(void);
extern void lang_finish
(void);
(void);
extern void lang_finish
(void);
-extern lang_memory_region_type *lang_memory_region_lookup
- (const char *const, bfd_boolean);
-extern
lang_memory_region_type *lang_memory_region_default
- (
asection
*);
+extern lang_memory_region_type *
lang_memory_region_lookup
+ (const char *
const, bfd_boolean);
+extern
void lang_memory_region_alias
+ (
const char *, const char
*);
extern void lang_map
(void);
extern void lang_set_flags
extern void lang_map
(void);
extern void lang_set_flags
@@
-484,6
+483,8
@@
extern lang_output_section_statement_type *lang_enter_output_section_statement
etree_type *, int);
extern void lang_final
(void);
etree_type *, int);
extern void lang_final
(void);
+extern void lang_relax_sections
+ (bfd_boolean);
extern void lang_process
(void);
extern void lang_section_start
extern void lang_process
(void);
extern void lang_section_start
@@
-533,31
+534,37
@@
extern void lang_do_assignments
statement != (lang_input_statement_type *) NULL; \
statement = (lang_input_statement_type *) statement->next) \
statement != (lang_input_statement_type *) NULL; \
statement = (lang_input_statement_type *) statement->next) \
+#define lang_output_section_find(NAME) \
+ lang_output_section_statement_lookup (NAME, 0, FALSE)
+
extern void lang_process
(void);
extern void ldlang_add_file
(lang_input_statement_type *);
extern void lang_process
(void);
extern void ldlang_add_file
(lang_input_statement_type *);
-extern lang_output_section_statement_type *lang_output_section_find
- (const char * const);
extern lang_output_section_statement_type *lang_output_section_find_by_flags
(const asection *, lang_output_section_statement_type **,
lang_match_sec_type_func);
extern lang_output_section_statement_type *lang_insert_orphan
extern lang_output_section_statement_type *lang_output_section_find_by_flags
(const asection *, lang_output_section_statement_type **,
lang_match_sec_type_func);
extern lang_output_section_statement_type *lang_insert_orphan
- (asection *, const char *, lang_output_section_statement_type *,
+ (asection *, const char *,
int,
lang_output_section_statement_type *,
struct orphan_save *, etree_type *, lang_statement_list_type *);
extern lang_input_statement_type *lang_add_input_file
(const char *, lang_input_file_enum_type, const char *);
extern void lang_add_keepsyms_file
(const char *);
struct orphan_save *, etree_type *, lang_statement_list_type *);
extern lang_input_statement_type *lang_add_input_file
(const char *, lang_input_file_enum_type, const char *);
extern void lang_add_keepsyms_file
(const char *);
-extern lang_output_section_statement_type *
- lang_output_section_statement_lookup
- (const char *const);
+extern lang_output_section_statement_type *lang_output_section_statement_lookup
+ (const char *, int, bfd_boolean);
+extern lang_output_section_statement_type *next_matching_output_section_statement
+ (lang_output_section_statement_type *, int);
extern void ldlang_add_undef
(const char *const);
extern void lang_add_output_format
(const char *, const char *, const char *, int);
extern void lang_list_init
(lang_statement_list_type *);
extern void ldlang_add_undef
(const char *const);
extern void lang_add_output_format
(const char *, const char *, const char *, int);
extern void lang_list_init
(lang_statement_list_type *);
+extern void push_stat_ptr
+ (lang_statement_list_type *);
+extern void pop_stat_ptr
+ (void);
extern void lang_add_data
(int type, union etree_union *);
extern void lang_add_reloc
extern void lang_add_data
(int type, union etree_union *);
extern void lang_add_reloc
@@
-575,6
+582,8
@@
extern void lang_size_sections
(bfd_boolean *, bfd_boolean);
extern void one_lang_size_sections_pass
(bfd_boolean *, bfd_boolean);
(bfd_boolean *, bfd_boolean);
extern void one_lang_size_sections_pass
(bfd_boolean *, bfd_boolean);
+extern void lang_add_insert
+ (const char *, int);
extern void lang_enter_group
(void);
extern void lang_leave_group
extern void lang_enter_group
(void);
extern void lang_leave_group
@@
-610,8
+619,6
@@
extern void lang_register_vers_node
extern void lang_append_dynamic_list (struct bfd_elf_version_expr *);
extern void lang_append_dynamic_list_cpp_typeinfo (void);
extern void lang_append_dynamic_list_cpp_new (void);
extern void lang_append_dynamic_list (struct bfd_elf_version_expr *);
extern void lang_append_dynamic_list_cpp_typeinfo (void);
extern void lang_append_dynamic_list_cpp_new (void);
-bfd_boolean unique_section_p
- (const asection *);
extern void lang_add_unique
(const char *);
extern const char *lang_get_output_target
extern void lang_add_unique
(const char *);
extern const char *lang_get_output_target
This page took
0.02563 seconds
and
4
git commands to generate.