Committed on behalf of
authorDave Korn <dave.korn@artimi.com>
Sun, 17 May 2009 05:10:21 +0000 (05:10 +0000)
committerDave Korn <dave.korn@artimi.com>
Sun, 17 May 2009 05:10:21 +0000 (05:10 +0000)
  2008-08-07  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

ld/ChangeLog:

* pe-dll.c (process_def_file): Do not create empty export table.

ld/testsuite/ChangeLog:

* ld-pe/exports.d: New file.
* ld-pe/exports.s: New file.
* ld-pe/pe.exp: New test for empty export table.

ld/ChangeLog
ld/pe-dll.c
ld/testsuite/ChangeLog
ld/testsuite/ld-pe/exports.d [new file with mode: 0644]
ld/testsuite/ld-pe/exports.s [new file with mode: 0644]
ld/testsuite/ld-pe/exports64.d [new file with mode: 0755]
ld/testsuite/ld-pe/pe.exp

index 01323e0bae6c4f07c168762356a1f51fc4b1f1b7..52364ef83bd68075e975344d46fcb0278cbe2831 100644 (file)
@@ -1,3 +1,9 @@
+2009-05-17  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+  2008-08-07  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>
+
+       * pe-dll.c (process_def_file): Do not create empty export table.
+
 2009-05-15  Alan Modra  <amodra@bigpond.net.au>
 
        * ldlang.c (lang_output_section_statement_lookup): Add function
index b5470c5c75b373fc4d92ee3f5f7fd4208d42493e..3f2815e37af36813d7557f09ab7ebfac09034f7d 100644 (file)
@@ -720,6 +720,10 @@ process_def_file (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
 #undef NE
 #define NE pe_def_file->num_exports
 
+  /* Don't create an empty export table.  */
+  if (NE == 0)
+    return;
+
   /* Canonicalize the export list.  */
   if (pe_dll_kill_ats)
     {
index 839a40393f80184b9a654544926def4ad735d0e1..4aef6b764dac2f46a59301f3572196f43f20ad84 100644 (file)
@@ -1,3 +1,11 @@
+2009-05-17  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+  2008-08-07  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>
+
+       * ld-pe/exports.d: New file.
+       * ld-pe/exports.s: New file.
+       * ld-pe/pe.exp: New test for empty export table.
+
 2009-05-16  Alan Modra  <amodra@bigpond.net.au>
 
        * ld-elf/orphan3.d, * ld-elf/orphan3a.s, * ld-elf/orphan3b.s,
diff --git a/ld/testsuite/ld-pe/exports.d b/ld/testsuite/ld-pe/exports.d
new file mode 100644 (file)
index 0000000..bbeda11
--- /dev/null
@@ -0,0 +1,4 @@
+#...
+The Data Directory
+Entry 0 00000000 00000000 Export Directory \[\.edata \(or where ever we found it\)\]
+#...
diff --git a/ld/testsuite/ld-pe/exports.s b/ld/testsuite/ld-pe/exports.s
new file mode 100644 (file)
index 0000000..aac7075
--- /dev/null
@@ -0,0 +1,2 @@
+# Deliberately left empty.
+
diff --git a/ld/testsuite/ld-pe/exports64.d b/ld/testsuite/ld-pe/exports64.d
new file mode 100755 (executable)
index 0000000..5fc5aeb
--- /dev/null
@@ -0,0 +1,4 @@
+#...
+The Data Directory
+Entry 0 0000000000000000 00000000 Export Directory \[\.edata \(or where ever we found it\)\]
+#...
index 3cff6b4ebc938df5587caf7c1aada0263b4109ec..ad91f06c44c6c2af1b3cfae417ccceb761cac9a5 100644 (file)
@@ -35,17 +35,23 @@ if {[istarget i*86-*-cygwin*]
     if {[istarget x86_64-*-mingw*] } {
       set pe_tests {
        {".secrel32" "" "" {secrel1.s secrel2.s}
-       {{objdump -s secrel_64.d}} "secrel.x"}
+        {{objdump -s secrel_64.d}} "secrel.x"}
+       {"Empty export table" "" "" "exports.s"
+        {{objdump -p exports64.d}} "exports.dll"}
       }
     } elseif {[istarget i*86-*-cygwin*] } {
       set pe_tests {
        {".secrel32" "--disable-auto-import" "" {secrel1.s secrel2.s}
         {{objdump -s secrel.d}} "secrel.x"}
+       {"Empty export table" "" "" "exports.s"
+        {{objdump -p exports.d}} "exports.dll"}
       }
     } else {
       set pe_tests {
        {".secrel32" "" "" {secrel1.s secrel2.s}
         {{objdump -s secrel.d}} "secrel.x"}
+       {"Empty export table" "" "" "exports.s"
+        {{objdump -p exports.d}} "exports.dll"}
       }
     }