diff options
author | cvs2svn <> | 2004-01-19 21:28:59 +0300 |
---|---|---|
committer | cvs2svn <> | 2004-01-19 21:28:59 +0300 |
commit | 19a58aa1e1b6710a4fe969ea55492f5fb7a0771d (patch) | |
tree | 5f47f649884879464a64357ffa3ebad0ddb2819e /include/bfdlink.h | |
parent | 2cb060991433298d2f701adc7fc22adacf88eeb1 (diff) |
This commit was manufactured by cvs2svn to create branchcagney_bigcore-20040122-branchpointcagney_bigcore-20040122-branch
'cagney_bigcore-20040122-branch'.
Sprout from ezannoni_pie-20030916-branch 2003-09-16 01:47:54 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch'
Cherrypick from master 2004-01-19 18:28:58 UTC Mark Kettenis <kettenis@gnu.org> '* common.h (NT_OPENBSD_IDENT): Define.':
COPYING.NEWLIB
ChangeLog
Makefile.def
Makefile.in
Makefile.tpl
config-ml.in
config/ChangeLog
config/acinclude.m4
config/acx.m4
config/gettext.m4
configure
configure.in
gettext.m4
include/ChangeLog
include/ChangeLog-9103
include/aout/ChangeLog
include/aout/stab.def
include/bfdlink.h
include/coff/ChangeLog
include/coff/ChangeLog-9103
include/coff/internal.h
include/demangle.h
include/dis-asm.h
include/elf/ChangeLog
include/elf/ChangeLog-9103
include/elf/common.h
include/elf/frv.h
include/elf/m32r.h
include/elf/mips.h
include/elf/mmix.h
include/elf/ppc.h
include/elf/sh.h
include/elf/xtensa.h
include/fibheap.h
include/floatformat.h
include/gdb/ChangeLog
include/gdb/callback.h
include/gdb/sim-frv.h
include/hp-symtab.h
include/obstack.h
include/opcode/ChangeLog
include/opcode/ChangeLog-9103
include/opcode/h8300.h
include/opcode/m68k.h
include/opcode/mips.h
include/opcode/mmix.h
ltconfig
src-release
Diffstat (limited to 'include/bfdlink.h')
-rw-r--r-- | include/bfdlink.h | 50 |
1 files changed, 34 insertions, 16 deletions
diff --git a/include/bfdlink.h b/include/bfdlink.h index c174dcdc6..a989f64f4 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -81,6 +81,7 @@ struct bfd_link_hash_entry { /* Base hash table entry structure. */ struct bfd_hash_entry root; + /* Type of this entry. */ enum bfd_link_hash_type type; @@ -102,7 +103,8 @@ struct bfd_link_hash_entry 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; + struct bfd_link_hash_entry *und_next; + /* A union of information depending upon the type. */ union { @@ -283,8 +285,8 @@ struct bfd_link_info /* TRUE if global symbols in discarded sections should be stripped. */ unsigned int strip_discarded: 1; - /* TRUE if relaxation is being finalized. */ - unsigned int relax_finalizing: 1; + /* TRUE if the final relax pass is needed. */ + unsigned int need_relax_finalize: 1; /* TRUE if generating a position independent executable. */ unsigned int pie: 1; @@ -366,11 +368,6 @@ struct bfd_link_info unloaded. */ const char *fini_function; - /* If non-zero, specifies that branches which are problematic for the - MPC860 C0 (or earlier) should be checked for and modified. It gives the - number of bytes that should be checked at the end of each text page. */ - int mpc860c0; - /* Non-zero if auto-import thunks for DATA items in pei386 DLLs should be generated/linked against. Set to 1 if this feature is explicitly requested by the user, -1 if enabled by default. */ @@ -617,20 +614,37 @@ extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *); BFD, but it would be a pain. Instead, the regular linker sets up these structures, and then passes them into BFD. */ -/* Regular expressions for a version. */ +/* Glob pattern for a version. */ struct bfd_elf_version_expr { - /* Next regular expression for this version. */ + /* Next glob pattern for this version. */ struct bfd_elf_version_expr *next; - /* Regular expression. */ + /* Glob pattern. */ const char *pattern; - /* Matching function. */ - int (*match) (struct bfd_elf_version_expr *, const char *); + /* NULL for a glob pattern, otherwise a straight symbol. */ + const char *symbol; /* Defined by ".symver". */ - unsigned int symver: 1; + unsigned int symver : 1; /* Defined by version script. */ unsigned int script : 1; + /* Pattern type. */ +#define BFD_ELF_VERSION_C_TYPE 1 +#define BFD_ELF_VERSION_CXX_TYPE 2 +#define BFD_ELF_VERSION_JAVA_TYPE 4 + unsigned int mask : 3; +}; + +struct bfd_elf_version_expr_head +{ + /* List of all patterns, both wildcards and non-wildcards. */ + struct bfd_elf_version_expr *list; + /* Hash table for non-wildcards. */ + void *htab; + /* Remaining patterns. */ + struct bfd_elf_version_expr *remaining; + /* What kind of pattern types are present in list (bitmask). */ + unsigned int mask; }; /* Version dependencies. */ @@ -654,15 +668,19 @@ struct bfd_elf_version_tree /* Version number. */ unsigned int vernum; /* Regular expressions for global symbols in this version. */ - struct bfd_elf_version_expr *globals; + struct bfd_elf_version_expr_head globals; /* Regular expressions for local symbols in this version. */ - struct bfd_elf_version_expr *locals; + struct bfd_elf_version_expr_head locals; /* List of versions which this version depends upon. */ struct bfd_elf_version_deps *deps; /* Index of the version name. This is used within BFD. */ unsigned int name_indx; /* Whether this version tree was used. This is used within BFD. */ int used; + /* Matching hook. */ + struct bfd_elf_version_expr *(*match) + (struct bfd_elf_version_expr_head *head, + struct bfd_elf_version_expr *prev, const char *sym); }; #endif |