aboutsummaryrefslogtreecommitdiff
path: root/ld/pe-dll.c
diff options
context:
space:
mode:
authorCharles Wilson <cygwin@cwilson.fastmail.fm>2001-09-12 15:58:10 +0000
committerCharles Wilson <cygwin@cwilson.fastmail.fm>2001-09-12 15:58:10 +0000
commit0d888aac30824dd7fc2481efefd0a0f4808812e8 (patch)
treedcc3c9663cffcbe49a873a805d2391c9c7f990bf /ld/pe-dll.c
parentcedacdc05a9872309cd078e32ce6565266bc9065 (diff)
downloadbinutils-0d888aac30824dd7fc2481efefd0a0f4808812e8.zip
binutils-0d888aac30824dd7fc2481efefd0a0f4808812e8.tar.gz
binutils-0d888aac30824dd7fc2481efefd0a0f4808812e8.tar.bz2
2001-09-12 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
* emultempl/pe.em(make_import_fixup): change signature to take asection as well as arelec; we need this for proper error reporting. Only call pe_create_import_fixup() if there is no attempt to add a constant addend to the reloc; otherwise, report error condition. * pe-dll.c(pe_walk_relocs_of_symbol): change signature, since final argument is a pointer to make_import_fixup(). Change call to cb() to match make_import_fixup() signature. (make_import_fixup_mark): make buffer_len unsigned. * pe-dll.h: change signature of pe_walk_relocs_of_symbol. 2001-09-12 Charles Wilson <cwilson@ece.gatech.edu> * ld.texinfo: add verbose documentation for auto-import direct-addressing workaround, to compliment the terse error message.
Diffstat (limited to 'ld/pe-dll.c')
-rw-r--r--ld/pe-dll.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index e47a17f..9914eac 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -982,10 +982,10 @@ void
pe_walk_relocs_of_symbol (info, name, cb)
struct bfd_link_info *info;
CONST char *name;
- int (*cb) (arelent *);
+ int (*cb) (arelent *, asection *);
{
bfd *b;
- struct sec *s;
+ asection *s;
for (b = info->input_bfds; b; b = b->link_next)
{
@@ -1003,7 +1003,7 @@ pe_walk_relocs_of_symbol (info, name, cb)
&& s->output_section == bfd_abs_section_ptr)
continue;
- current_sec=s;
+ current_sec = s;
symsize = bfd_get_symtab_upper_bound (b);
symbols = (asymbol **) xmalloc (symsize);
@@ -1016,7 +1016,7 @@ pe_walk_relocs_of_symbol (info, name, cb)
for (i = 0; i < nrelocs; i++)
{
struct symbol_cache_entry *sym = *relocs[i]->sym_ptr_ptr;
- if (!strcmp(name,sym->name)) cb(relocs[i]);
+ if (!strcmp(name,sym->name)) cb(relocs[i], s);
}
free (relocs);
/* Warning: the allocated symbols are remembered in BFD and reused
@@ -1908,7 +1908,7 @@ make_import_fixup_mark (rel)
/* we convert reloc to symbol, for later reference */
static int counter;
static char *fixup_name = NULL;
- static int buffer_len = 0;
+ static unsigned int buffer_len = 0;
struct symbol_cache_entry *sym = *rel->sym_ptr_ptr;