aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-10-22 06:58:17 +0000
committerJakub Jelinek <jakub@redhat.com>2003-10-22 06:58:17 +0000
commit108ba30509ad6169d0f2e06b755fa39a2c28a946 (patch)
treef08f61aaf06d9e7ba1789b24f137c266bb6fc80e /bfd/elflink.h
parenta9b7fca23b894846cfca99db5bb1c9d06ea75a89 (diff)
downloadfsf-binutils-gdb-108ba30509ad6169d0f2e06b755fa39a2c28a946.zip
fsf-binutils-gdb-108ba30509ad6169d0f2e06b755fa39a2c28a946.tar.gz
fsf-binutils-gdb-108ba30509ad6169d0f2e06b755fa39a2c28a946.tar.bz2
bfd/
* elflink.c (_bfd_elf_export_symbol): Adjust for globals and locals field changes. (_bfd_elf_link_assign_sym_version): Likewise. * elflink.h (size_dynamic_sections): Likewise. include/ * bfdlink.h (struct bfd_elf_version_expr): Remove match field. Add wildcard and mask fields. (BFD_ELF_VERSION_C_TYPE): Define. (BFD_ELF_VERSION_CXX_TYPE): Likewise. (BFD_ELF_VERSION_JAVA_TYPE): Likewise. (struct bfd_elf_version_expr_head): New. (struct bfd_elf_version_tree): Add match field. Change type of globals and locals fields to struct bfd_elf_version_expr_head. ld/ * ldlang.c: Include hashtab.h. (lang_vers_match_lang_c, lang_vers_match_lang_cplusplus, lang_vers_match_lang_java): Remove. (lang_vers_match): New function. (lang_new_vers_pattern): Initialize wildcard and mask fields, don't initialize match. (lang_new_vers_node): Use xcalloc. Adjust for globals and locals field type changes. Set match field. (version_expr_head_hash, version_expr_head_eq): New functions. (lang_finalize_version_expr_head): New function. (lang_register_vers_node): Call lang_finalize_version_expr_head. Search in hash table if not wildcard when looking for duplicates. * emultempl/ppc64elf.em (new_vers_pattern): Don't bother with duplicate checking. Initialize all fields of dot_entry from entry with the exception of pattern and next.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r--bfd/elflink.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 383cb88..e53911d 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -2058,7 +2058,9 @@ NAME(bfd_elf,size_dynamic_sections) (bfd *output_bfd,
/* Make all global versions with definiton. */
for (t = verdefs; t != NULL; t = t->next)
- for (d = t->globals; d != NULL; d = d->next)
+ for (d = t->globals.list; d != NULL; d = d->next)
+ /* FIXME: Shouldn't this be !d->symver && d->wildcard == 0
+ instead? */
if (!d->symver && strchr (d->pattern, '*') == NULL)
{
const char *verstr, *name;
@@ -2124,7 +2126,7 @@ NAME(bfd_elf,size_dynamic_sections) (bfd *output_bfd,
/* Check if all global versions have a definiton. */
all_defined = TRUE;
for (t = verdefs; t != NULL; t = t->next)
- for (d = t->globals; d != NULL; d = d->next)
+ for (d = t->globals.list; d != NULL; d = d->next)
if (!d->symver && !d->script)
{
(*_bfd_error_handler)
@@ -2372,7 +2374,7 @@ NAME(bfd_elf,size_dynamic_sections) (bfd *output_bfd,
def.vd_version = VER_DEF_CURRENT;
def.vd_flags = 0;
- if (t->globals == NULL && t->locals == NULL && ! t->used)
+ if (t->globals.list == NULL && t->locals.list == NULL && ! t->used)
def.vd_flags |= VER_FLG_WEAK;
def.vd_ndx = t->vernum + 1;
def.vd_cnt = cdeps + 1;