aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/pe-dll.c10
2 files changed, 10 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index fa55fc4..6b8c995 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-02 Ivan Warren <ivan@vmfacility.fr>
+
+ * pe-dll.c (make_one): Correct sym def order & pick right sym for
+ .idata$7 reloc.
+
2003-09-30 Chris Demetriou <cgd@broadcom.com>
* NEWS: Add an indication of the cutoff for 2.14.
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);