summaryrefslogtreecommitdiff
path: root/ld/pe-dll.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-10-02 11:18:13 +0000
committerNick Clifton <nickc@redhat.com>2003-10-02 11:18:13 +0000
commit2a7aa21dbcd399832187d3ea842c91ae325e3c2b (patch)
treefdc143589fa5376cf76b0e663a6eaf1f0e06da04 /ld/pe-dll.c
parent430b010c669a0f36226e578e7073a96ec12a89dd (diff)
downloadbinutils-redhat-2a7aa21dbcd399832187d3ea842c91ae325e3c2b.tar.gz
Correct sym def order & pick right sym for .idata$7 reloc.
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 92cd64bf2f..cc69474d20 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1780,10 +1780,10 @@ make_one (def_file_export *exp, bfd *parent)
if (*exp->internal_name == '@')
{
- if (! exp->flag_data)
- quick_symbol (abfd, "", exp->internal_name, "", tx, BSF_GLOBAL, 0);
quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC,
BSF_GLOBAL, 0);
+ if (! exp->flag_data)
+ quick_symbol (abfd, "", exp->internal_name, "", tx, BSF_GLOBAL, 0);
quick_symbol (abfd, U ("_imp_"), exp->internal_name, "", id5,
BSF_GLOBAL, 0);
/* Fastcall applies only to functions,
@@ -1791,11 +1791,11 @@ make_one (def_file_export *exp, bfd *parent)
}
else
{
+ quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC,
+ BSF_GLOBAL, 0);
if (! exp->flag_data)
quick_symbol (abfd, U (""), exp->internal_name, "", tx,
BSF_GLOBAL, 0);
- quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC,
- BSF_GLOBAL, 0);
quick_symbol (abfd, U ("_imp__"), exp->internal_name, "", id5,
BSF_GLOBAL, 0);
/* Symbol to reference ord/name of imported
@@ -1838,7 +1838,7 @@ make_one (def_file_export *exp, bfd *parent)
d7 = xmalloc (4);
id7->contents = d7;
memset (d7, 0, 4);
- quick_reloc (abfd, 0, BFD_RELOC_RVA, 6);
+ quick_reloc (abfd, 0, BFD_RELOC_RVA, 5);
save_relocs (id7);
bfd_set_section_size (abfd, id5, 4);