* dlltool.c (gen_exp_file): Fix RVA handling.
authorSteve Chamberlain <sac@cygnus>
Wed, 16 Aug 1995 23:28:18 +0000 (23:28 +0000)
committerSteve Chamberlain <sac@cygnus>
Wed, 16 Aug 1995 23:28:18 +0000 (23:28 +0000)
(rva_s, rva_n): Delete.

binutils/ChangeLog
binutils/dlltool.c

index 3ff0644f33e7a9d237f3b916471c162a0a1d785c..08358256d266987cd25dcaa1bc6a66fc623459ad 100644 (file)
@@ -1,3 +1,8 @@
+Wed Aug 16 16:26:52 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+       * dlltool.c (gen_exp_file): Fix RVA handling.
+       (rva_s, rva_n): Delete.
+
 Fri Aug 11 18:27:18 1995  Ian Lance Taylor  <ian@cygnus.com>
 
        * nm.c (main): Ignore -e.
index 32a394c52e2918b0a69c5bcc1e079c7a14dffd5a..d8ac895b73ce15a190b158e2fcf1cdfa4a5146db 100644 (file)
@@ -606,19 +606,6 @@ sfunc (a, b)
 }
 
 
-static char *rva_n (long addr)
-{
-  char b[20];
-  sprintf (b, "0x%08x - __rva");
-  return strdup (b);
-}
-
-static char *rva_s (char *s)
-{
-  char b[20];
-  sprintf (b, "0x%08x - __rva");
-  return strdup (b);
-}
 
 static void 
 flush_page (f, need, page_addr, on_page)
@@ -629,9 +616,11 @@ flush_page (f, need, page_addr, on_page)
 {
   int i;
   /* Flush this page */
-  fprintf (f, "\t%s\t%s\t%s Starting RVA for chunk\n",
+  fprintf (f, "\t%s\t%s0x%08x%s\t%s Starting RVA for chunk\n",
           ASM_LONG,
-          rva_n(page_addr),
+          ASM_RVA_BEFORE,
+          page_addr,
+          ASM_RVA_AFTER,
           ASM_C);
   fprintf (f, "\t%s\t0x%x\t%s Size of block\n",
           ASM_LONG,
@@ -680,7 +669,8 @@ gen_exp_file ()
   fprintf (f, "\t%s    0       %s Allways 0\n", ASM_LONG, ASM_C);
   fprintf (f, "\t%s    %d      %s Time and date\n", ASM_LONG, time (0), ASM_C);
   fprintf (f, "\t%s    0       %s Major and Minor version\n", ASM_LONG, ASM_C);
-  fprintf (f, "\t%s    name    %s Ptr to name of dll\n", ASM_LONG, ASM_C);
+  fprintf (f, "\t%s    %sname%s%s Ptr to name of dll\n", ASM_LONG, ASM_RVA_BEFORE,
+          ASM_RVA_AFTER,ASM_C);
   fprintf (f, "\t%s    %d      %s Starting ordinal of exports\n", ASM_LONG, d_ord, ASM_C);
   fprintf (f, "\t%s The next field is documented as being the number of functions\n", ASM_C);
   fprintf (f, "\t%s yet it doesn't look like that in real PE dlls\n", ASM_C);
@@ -688,9 +678,12 @@ gen_exp_file ()
   fprintf (f, "\t%s always the number of names field\n", ASM_C);
   fprintf (f, "\t%s    %d      %s Number of functions\n", ASM_LONG, d_nfuncs, ASM_C);
   fprintf (f, "\t%s    %d      %s Number of names\n", ASM_LONG, d_nfuncs, ASM_C);
-  fprintf (f, "\t%s    afuncs  %s Address of functions\n", ASM_LONG, ASM_C);
-  fprintf (f, "\t%s    anames  %s Address of names\n", ASM_LONG, ASM_C);
-  fprintf (f, "\t%s    anords  %s Address of ordinals\n", ASM_LONG, ASM_C);
+  fprintf (f, "\t%s    %safuncs%s  %s Address of functions\n", ASM_LONG, 
+          ASM_RVA_BEFORE, ASM_RVA_AFTER,ASM_C);
+  fprintf (f, "\t%s    %sanames%s      %s Address of names\n", ASM_LONG, 
+                  ASM_RVA_BEFORE, ASM_RVA_AFTER,ASM_C);
+  fprintf (f, "\t%s    %sanords%s      %s Address of ordinals\n", ASM_LONG, 
+          ASM_RVA_BEFORE, ASM_RVA_AFTER,ASM_C);
 
   fprintf (f, "name:   %s      \"%s.%s\"\n", ASM_TEXT, outfile_prefix, d_suffix);
 
@@ -709,7 +702,8 @@ gen_exp_file ()
          i = exp->ordinal;
        }
 #endif
-      fprintf (f, "\t%s        %s\t%s %d\n", ASM_LONG, exp->internal_name, ASM_C, exp->ordinal);
+      fprintf (f, "\t%s\t%s%s%s%s %d\n", ASM_LONG, ASM_RVA_BEFORE,
+              exp->internal_name,ASM_RVA_AFTER, ASM_C, exp->ordinal);
       i++;
     }
 
@@ -724,7 +718,7 @@ gen_exp_file ()
        }
       else
        {
-         fprintf (f, "\t%s     n%d\n", ASM_LONG, i);
+         fprintf (f, "\t%s     %sn%d%s\n", ASM_LONG, ASM_RVA_BEFORE,i,ASM_RVA_AFTER);
        }
     }
 
@@ -817,6 +811,8 @@ gen_exp_file ()
          need[on_page++] = addr;
        }
       flush_page (f, need, page_addr, on_page);
+
+      fprintf (f, "\t%s\t0,0\t%s End\n",ASM_LONG, ASM_C);
     }
 
   fclose (f);