diff options
author | cvs2svn <> | 2004-10-12 23:40:05 +0000 |
---|---|---|
committer | cvs2svn <> | 2004-10-12 23:40:05 +0000 |
commit | 18b21e9e5c334b56cf52d7c118c1f0a84ea0115c (patch) | |
tree | dcd6d3f0ee7dc88c7af6e684fb01451c8bee0e4a /include/bfdlink.h | |
parent | 83ff0aeb3979911d1458c3814eeeceeee4c6d178 (diff) | |
download | cygnal-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.h | 50 |
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 |