Correct sym def order & pick right sym for .idata$7 reloc.
authorNick Clifton <nickc@redhat.com>
Thu, 2 Oct 2003 11:18:13 +0000 (11:18 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 2 Oct 2003 11:18:13 +0000 (11:18 +0000)
ld/ChangeLog
ld/pe-dll.c

index fa55fc4014177e010cb0d5fc7951db1932224c49..6b8c9959a22db16f455635b88ad27414662f0fbe 100644 (file)
@@ -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.
index 92cd64bf2f61f7b636de0f9c9b8f853eade46a91..cc69474d203d272f855e235d49b28fa2d1b6f780 100644 (file)
@@ -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);