summaryrefslogtreecommitdiffstats
path: root/include/bfdlink.h
diff options
context:
space:
mode:
authorcvs2svn <>2004-10-12 23:40:05 +0000
committercvs2svn <>2004-10-12 23:40:05 +0000
commit18b21e9e5c334b56cf52d7c118c1f0a84ea0115c (patch)
treedcd6d3f0ee7dc88c7af6e684fb01451c8bee0e4a /include/bfdlink.h
parent83ff0aeb3979911d1458c3814eeeceeee4c6d178 (diff)
downloadcygnal-18b21e9e5c334b56cf52d7c118c1f0a84ea0115c.tar.gz
cygnal-18b21e9e5c334b56cf52d7c118c1f0a84ea0115c.tar.bz2
cygnal-18b21e9e5c334b56cf52d7c118c1f0a84ea0115c.zip
This commit was manufactured by cvs2svn to create tag 'drow_intercu-drow_intercu-merge-20040915
merge-20040915'. Sprout from gdb_6_3-branch 2004-10-12 23:40:04 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'gdb_6_3-branch'.' Cherrypick from master 2004-09-14 01:16:22 UTC DJ Delorie <dj@redhat.com> 'merge from gcc': ChangeLog Makefile.in Makefile.tpl config.guess config/ChangeLog config/gettext.m4 configure configure.in include/ChangeLog include/bfdlink.h include/elf/ChangeLog include/elf/arm.h include/elf/common.h include/elf/dwarf2.h include/elf/x86-64.h include/elf/xtensa.h include/opcode/ChangeLog include/opcode/arm.h include/opcode/crx.h include/xtensa-config.h include/xtensa-isa-internal.h include/xtensa-isa.h install-sh ltcf-c.sh ltcf-cxx.sh ltconfig Cherrypick from cygnus 1999-05-03 07:29:06 UTC Richard Henderson <rth@redhat.com> '19990502 sourceware import': ylwrap Delete: config/codeset.m4 config/gcc-lib-path.m4 config/gettext-sister.m4 config/glibc21.m4 config/iconv.m4 config/intdiv0.m4 config/inttypes-pri.m4 config/inttypes.m4 config/inttypes_h.m4 config/lcmessage.m4 config/lib-ld.m4 config/lib-link.m4 config/lib-prefix.m4 config/mh-x86omitfp config/nls.m4 config/po.m4 config/stdint_h.m4 config/uintmax_t.m4 config/ulonglong.m4 config/warnings.m4
Diffstat (limited to 'include/bfdlink.h')
-rw-r--r--include/bfdlink.h50
1 files changed, 22 insertions, 28 deletions
diff --git a/include/bfdlink.h b/include/bfdlink.h
index db276b02c..5adad790e 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -85,6 +85,26 @@ struct bfd_link_hash_entry
/* Type of this entry. */
enum bfd_link_hash_type type;
+ /* Undefined and common symbols are kept in a linked list through
+ this field. This field is not in the union because that would
+ force us to remove entries from the list when we changed their
+ type, which would force the list to be doubly linked, which would
+ waste more memory. When an undefined or common symbol is
+ created, it should be added to this list, the head of which is in
+ the link hash table itself. As symbols are defined, they need
+ not be removed from the list; anything which reads the list must
+ doublecheck the symbol type.
+
+ Weak symbols are not kept on this list.
+
+ Defined and defweak symbols use this field as a reference marker.
+ If the field is not NULL, or this structure is the tail of the
+ undefined symbol list, the symbol has been referenced. If the
+ symbol is undefined and becomes defined, this field will
+ automatically be non-NULL since the symbol will have been on the
+ undefined symbol list. */
+ struct bfd_link_hash_entry *und_next;
+
/* A union of information depending upon the type. */
union
{
@@ -92,46 +112,23 @@ struct bfd_link_hash_entry
/* bfd_link_hash_undefined, bfd_link_hash_undefweak. */
struct
{
- /* Undefined and common symbols are kept in a linked list through
- this field. This field is present in all of the union element
- so that we don't need to remove entries from the list when we
- change their type. Removing entries would either require the
- list to be doubly linked, which would waste more memory, or
- require a traversal. When an undefined or common symbol is
- created, it should be added to this list, the head of which is in
- the link hash table itself. As symbols are defined, they need
- not be removed from the list; anything which reads the list must
- doublecheck the symbol type.
-
- Weak symbols are not kept on this list.
-
- Defined and defweak symbols use this field as a reference marker.
- If the field is not NULL, or this structure is the tail of the
- undefined symbol list, the symbol has been referenced. If the
- symbol is undefined and becomes defined, this field will
- automatically be non-NULL since the symbol will have been on the
- undefined symbol list. */
- struct bfd_link_hash_entry *next;
bfd *abfd; /* BFD symbol was found in. */
} undef;
/* bfd_link_hash_defined, bfd_link_hash_defweak. */
struct
{
- struct bfd_link_hash_entry *next;
- asection *section; /* Symbol section. */
bfd_vma value; /* Symbol value. */
+ asection *section; /* Symbol section. */
} def;
/* bfd_link_hash_indirect, bfd_link_hash_warning. */
struct
{
- struct bfd_link_hash_entry *next;
struct bfd_link_hash_entry *link; /* Real symbol. */
const char *warning; /* Warning (bfd_link_hash_warning only). */
} i;
/* bfd_link_hash_common. */
struct
{
- struct bfd_link_hash_entry *next;
/* The linker needs to know three things about common
symbols: the size, the alignment, and the section in
which the symbol should be placed. We store the size
@@ -141,12 +138,12 @@ struct bfd_link_hash_entry
directly because we don't want to increase the size of
the union; this structure is a major space user in the
linker. */
+ bfd_size_type size; /* Common symbol size. */
struct bfd_link_hash_common_entry
{
unsigned int alignment_power; /* Alignment. */
asection *section; /* Symbol section. */
} *p;
- bfd_size_type size; /* Common symbol size. */
} c;
} u;
};
@@ -308,9 +305,6 @@ struct bfd_link_info
/* TRUE if PT_GNU_RELRO segment should be created. */
unsigned int relro: 1;
- /* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */
- unsigned int warn_shared_textrel: 1;
-
/* What to do with unresolved symbols in an object file.
When producing executables the default is GENERATE_ERROR.
When producing shared libraries the default is IGNORE. The