ld/
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 18 Mar 2009 12:11:38 +0000 (12:11 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 18 Mar 2009 12:11:38 +0000 (12:11 +0000)
2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/6766
* lexsup.c (parse_args): Call ldlang_add_undef for -e.

ld/testsuite/

2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/6766
* ld-undefined/dummy.s: New.
* ld-undefined/entry-1.d: Likewise.
* ld-undefined/entry-2.d: Likewise.
* ld-undefined/entry-3.d: Likewise.
* ld-undefined/entry-4.d: Likewise.
* ld-undefined/entry-5.d: Likewise.
* ld-undefined/entry-6.d: Likewise.
* ld-undefined/entry.exp: Likewise.
* ld-undefined/entry.s: Likewise.

12 files changed:
ld/ChangeLog
ld/lexsup.c
ld/testsuite/ChangeLog
ld/testsuite/ld-undefined/dummy.s [new file with mode: 0644]
ld/testsuite/ld-undefined/entry-1.d [new file with mode: 0644]
ld/testsuite/ld-undefined/entry-2.d [new file with mode: 0644]
ld/testsuite/ld-undefined/entry-3.d [new file with mode: 0644]
ld/testsuite/ld-undefined/entry-4.d [new file with mode: 0644]
ld/testsuite/ld-undefined/entry-5.d [new file with mode: 0644]
ld/testsuite/ld-undefined/entry-6.d [new file with mode: 0644]
ld/testsuite/ld-undefined/entry.exp [new file with mode: 0644]
ld/testsuite/ld-undefined/entry.s [new file with mode: 0644]

index 3af7ecf..4e28d97 100644 (file)
@@ -1,3 +1,8 @@
+2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/6766
+       * lexsup.c (parse_args): Call ldlang_add_undef for -e.
+
 2009-03-18  Alan Modra  <amodra@bigpond.net.au>
 
        * ld.h: Remove alloca handling.
index 4dcfc3c..3ddde61 100644 (file)
@@ -818,6 +818,7 @@ parse_args (unsigned argc, char **argv)
          break;
        case 'e':
          lang_add_entry (optarg, TRUE);
+         ldlang_add_undef (optarg);
          break;
        case 'f':
          if (command_line.auxiliary_filters == NULL)
index 551509e..f50755f 100644 (file)
@@ -1,3 +1,16 @@
+2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/6766
+       * ld-undefined/dummy.s: New.
+       * ld-undefined/entry-1.d: Likewise.
+       * ld-undefined/entry-2.d: Likewise.
+       * ld-undefined/entry-3.d: Likewise.
+       * ld-undefined/entry-4.d: Likewise.
+       * ld-undefined/entry-5.d: Likewise.
+       * ld-undefined/entry-6.d: Likewise.
+       * ld-undefined/entry.exp: Likewise.
+       * ld-undefined/entry.s: Likewise.
+
 2009-03-17  Alan Modra  <amodra@bigpond.net.au>
 
        * ld-spu/icache1.d: Update for fixed set_id, new manager entry, and
diff --git a/ld/testsuite/ld-undefined/dummy.s b/ld/testsuite/ld-undefined/dummy.s
new file mode 100644 (file)
index 0000000..328ba74
--- /dev/null
@@ -0,0 +1,2 @@
+       .text
+       .byte 0
diff --git a/ld/testsuite/ld-undefined/entry-1.d b/ld/testsuite/ld-undefined/entry-1.d
new file mode 100644 (file)
index 0000000..551042e
--- /dev/null
@@ -0,0 +1,8 @@
+#name: --entry foo archive
+#source: dummy.s
+#ld: --entry foo tmpdir/libentry.a
+#nm: -n
+
+#...
+[0-9a-f]+ T +foo
+#...
diff --git a/ld/testsuite/ld-undefined/entry-2.d b/ld/testsuite/ld-undefined/entry-2.d
new file mode 100644 (file)
index 0000000..9122313
--- /dev/null
@@ -0,0 +1,8 @@
+#name: --entry foo -u foo archive
+#source: dummy.s
+#ld: --entry foo -u foo tmpdir/libentry.a
+#nm: -n
+
+#...
+[0-9a-f]+ T +foo
+#...
diff --git a/ld/testsuite/ld-undefined/entry-3.d b/ld/testsuite/ld-undefined/entry-3.d
new file mode 100644 (file)
index 0000000..184f478
--- /dev/null
@@ -0,0 +1,9 @@
+#name: -shared --entry foo archive
+#source: dummy.s
+#ld: -shared --entry foo tmpdir/libentry.a
+#nm: -n
+#target: *-*-linux*
+
+#...
+[0-9a-f]+ T +foo
+#...
diff --git a/ld/testsuite/ld-undefined/entry-4.d b/ld/testsuite/ld-undefined/entry-4.d
new file mode 100644 (file)
index 0000000..44006aa
--- /dev/null
@@ -0,0 +1,9 @@
+#name: -shared --entry foo -u foo archive
+#source: dummy.s
+#ld: -shared --entry foo -u foo tmpdir/libentry.a
+#nm: -n
+#target: *-*-linux*
+
+#...
+[0-9a-f]+ T +foo
+#...
diff --git a/ld/testsuite/ld-undefined/entry-5.d b/ld/testsuite/ld-undefined/entry-5.d
new file mode 100644 (file)
index 0000000..fc36e82
--- /dev/null
@@ -0,0 +1,8 @@
+#name: --entry foo
+#source: entry.s
+#ld: --entry foo
+#nm: -n
+
+#...
+[0-9a-f]+ T +foo
+#...
diff --git a/ld/testsuite/ld-undefined/entry-6.d b/ld/testsuite/ld-undefined/entry-6.d
new file mode 100644 (file)
index 0000000..c013a1a
--- /dev/null
@@ -0,0 +1,8 @@
+#name: --entry foo -u foo
+#source: entry.s
+#ld: --entry foo -u foo
+#nm: -n
+
+#...
+[0-9a-f]+ T +foo
+#...
diff --git a/ld/testsuite/ld-undefined/entry.exp b/ld/testsuite/ld-undefined/entry.exp
new file mode 100644 (file)
index 0000000..76e50f8
--- /dev/null
@@ -0,0 +1,35 @@
+# Expect script for ld --entry tests
+#   Copyright (C) 2009 Free Software Foundation
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+set build_tests {
+  {"Build libentry.a"
+   "" ""
+   {entry.s} {} "libentry.a"}
+}
+
+run_ld_link_tests $build_tests
+
+set test_list [lsort [glob -nocomplain $srcdir/$subdir/entry*.d]]
+foreach t $test_list {
+    # We need to strip the ".d", but can leave the dirname.
+    verbose [file rootname $t]
+    run_dump_test [file rootname $t]
+}
diff --git a/ld/testsuite/ld-undefined/entry.s b/ld/testsuite/ld-undefined/entry.s
new file mode 100644 (file)
index 0000000..4a70181
--- /dev/null
@@ -0,0 +1,4 @@
+       .text
+       .globl foo
+foo:
+       .byte 0