summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorDave Korn <dave.korn@artimi.com>2009-05-17 05:10:21 +0000
committerDave Korn <dave.korn@artimi.com>2009-05-17 05:10:21 +0000
commit177b81d66a6cf42aaa2b15ccc499bb7b292c3955 (patch)
tree1736415f33049710f5257069456ed6050febb979 /ld
parent6ec72856884353055e9397fef5ac77b7aac37f99 (diff)
downloadbinutils-177b81d66a6cf42aaa2b15ccc499bb7b292c3955.tar.gz
binutils-177b81d66a6cf42aaa2b15ccc499bb7b292c3955.tar.bz2
binutils-177b81d66a6cf42aaa2b15ccc499bb7b292c3955.zip
Committed on behalf of
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.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/pe-dll.c4
-rw-r--r--ld/testsuite/ChangeLog8
-rw-r--r--ld/testsuite/ld-pe/exports.d4
-rw-r--r--ld/testsuite/ld-pe/exports.s2
-rwxr-xr-xld/testsuite/ld-pe/exports64.d4
-rw-r--r--ld/testsuite/ld-pe/pe.exp8
7 files changed, 35 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 01323e0bae6..52364ef83bd 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index b5470c5c75b..3f2815e37af 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -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)
{
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 839a40393f8..4aef6b764da 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -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
index 00000000000..bbeda11d891
--- /dev/null
+++ b/ld/testsuite/ld-pe/exports.d
@@ -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
index 00000000000..aac7075e7b4
--- /dev/null
+++ b/ld/testsuite/ld-pe/exports.s
@@ -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
index 00000000000..5fc5aeb15db
--- /dev/null
+++ b/ld/testsuite/ld-pe/exports64.d
@@ -0,0 +1,4 @@
+#...
+The Data Directory
+Entry 0 0000000000000000 00000000 Export Directory \[\.edata \(or where ever we found it\)\]
+#...
diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp
index 3cff6b4ebc9..ad91f06c44c 100644
--- a/ld/testsuite/ld-pe/pe.exp
+++ b/ld/testsuite/ld-pe/pe.exp
@@ -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"}
}
}