aboutsummaryrefslogtreecommitdiff
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
commit4b7f0676e44795d854404f5bc7d3fd17e6b31b30 (patch)
tree528b27391513263567a1944ab1329f92cd5b7de7 /ld/pe-dll.c
parent617daa0e43d56dbf4257ee665cbfb112604b2aab (diff)
downloadgdb-4b7f0676e44795d854404f5bc7d3fd17e6b31b30.zip
gdb-4b7f0676e44795d854404f5bc7d3fd17e6b31b30.tar.gz
gdb-4b7f0676e44795d854404f5bc7d3fd17e6b31b30.tar.bz2
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 92cd64b..cc69474 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);