aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-12-31 19:46:37 +0000
committerIan Lance Taylor <ian@airs.com>1996-12-31 19:46:37 +0000
commit148437ec14d18450dcfa0ebe7cfa2db57e263392 (patch)
treea953bda7330b884fa25a988597df2eab8f586944 /bfd/elflink.h
parenta5094cb9d5435a88738bf32b2ec662ceab2c32f4 (diff)
downloadgdb-148437ec14d18450dcfa0ebe7cfa2db57e263392.zip
gdb-148437ec14d18450dcfa0ebe7cfa2db57e263392.tar.gz
gdb-148437ec14d18450dcfa0ebe7cfa2db57e263392.tar.bz2
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Add
filter_shlib and auxiliary_filter_shlib parameters. * elf.c (_bfd_elf_print_private_bfd_data): Handle DT_AUXILIARY and DT_FILTER. * bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration. (bfd_elf64_size_dynamic_sections): Likewise. * bfd-in2.h: Rebuild.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r--bfd/elflink.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 3086a4b..81dcc9b 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -1352,11 +1352,14 @@ static const size_t elf_buckets[] =
boolean
NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
- export_dynamic, info, sinterpptr)
+ export_dynamic, filter_shlib,
+ auxiliary_filter_shlib, info, sinterpptr)
bfd *output_bfd;
const char *soname;
const char *rpath;
boolean export_dynamic;
+ const char *filter_shlib;
+ const char *auxiliary_filter_shlib;
struct bfd_link_info *info;
asection **sinterpptr;
{
@@ -1426,6 +1429,28 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
return false;
}
+ if (filter_shlib != NULL)
+ {
+ bfd_size_type indx;
+
+ indx = _bfd_stringtab_add (elf_hash_table (info)->dynstr,
+ filter_shlib, true, true);
+ if (indx == (bfd_size_type) -1
+ || ! elf_add_dynamic_entry (info, DT_FILTER, indx))
+ return false;
+ }
+
+ if (auxiliary_filter_shlib != NULL)
+ {
+ bfd_size_type indx;
+
+ indx = _bfd_stringtab_add (elf_hash_table (info)->dynstr,
+ auxiliary_filter_shlib, true, true);
+ if (indx == (bfd_size_type) -1
+ || ! elf_add_dynamic_entry (info, DT_AUXILIARY, indx))
+ return false;
+ }
+
/* Find all symbols which were defined in a dynamic object and make
the backend pick a reasonable value for them. */
eif.failed = false;