* gdb.asm/asm-source.exp: Strip -Wl, from link-flags. Don't
authorMark Kettenis <kettenis@gnu.org>
Fri, 30 Jan 2004 21:23:46 +0000 (21:23 +0000)
committerMark Kettenis <kettenis@gnu.org>
Fri, 30 Jan 2004 21:23:46 +0000 (21:23 +0000)
append -static to link-flags for *-*-freebsd*, *-*netbsd* and
*-*solaris2*.  Remove commented out default settings for
asm-flags.  Replace gdb_compile with target_link.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.asm/asm-source.exp

index 2ad7ac1aa0789a37ce013281c9ebc03b42afa790..3e4e39dfbe6bd542b6266b7299dbe2d45908d790 100644 (file)
@@ -1,3 +1,10 @@
+2004-01-30  Mark Kettenis  <kettenis@gnu.org>
+
+       * gdb.asm/asm-source.exp: Strip -Wl, from link-flags.  Don't
+       append -static to link-flags for *-*-freebsd*, *-*netbsd* and
+       *-*solaris2*.  Remove commented out default settings for
+       asm-flags.  Replace gdb_compile with target_link.
+
 2004-01-29  Michael Chastain  <mec.gnu@mindspring.com>
 
        * gdb.cp/inherit.exp: Rewrite.  Use gdb_test_multiple and gdb
index 301b778a0e975952d267a92d16ee0fd099a5ace3..411d13d06bc0371a3394e56f9a9063dc65ac6396 100644 (file)
@@ -70,7 +70,7 @@ switch -glob -- [istarget] {
     }
     "m32r*-*" {
         set asm-arch m32r
-        append link-flags " -Wl,--whole-archive -lgloss -Wl,--no-whole-archive"
+        append link-flags "--whole-archive -lgloss --no-whole-archive"
     }
     "m6811-*-*" {
         set asm-arch m68hc11
@@ -118,20 +118,6 @@ if { "${asm-arch}" == "" } {
     gdb_suppress_entire_file "Assembly source test -- not implemented for this target."
 }
 
-# On FreeBSD and NetBSD, the final link will fail because of
-# unresolved symbols.  It turns out that libc.so references symbols
-# that are normally provided by crt1.o, which isn't linked in since we
-# specify -nostartfiles.  Using -nostdlib doesn't help since
-# target_compile automatically adds -lm.  Linking statically avoids
-# this mess.
-#
-# On Solaris, linking dynamically results in a binary that dumps core.
-#
-if {[istarget "*-*-freebsd*"] || [istarget "*-*-netbsd*"]
-    || [istarget "*-*-solaris2*"]} then {
-    append link-flags " -static"
-}
-
 # On NetBSD/ELF we need a special NetBSD-identifying note section.
 if { [istarget "*-*-netbsdelf*"]
      || [istarget "x86_64-*-netbsd*"] } then {
@@ -164,7 +150,6 @@ remote_exec build "rm -f ${subdir}/note.inc"
 remote_download host ${srcdir}/${subdir}/${asm-note}.inc ${subdir}/note.inc
 
 if { "${asm-flags}" == "" } {
-    #set asm-flags "-Wa,-gstabs,-I${srcdir}/${subdir},-I${objdir}/${subdir}"
     set asm-flags "-gstabs -I${srcdir}/${subdir} -I${objdir}/${subdir}"
 }
 
@@ -175,11 +160,13 @@ if {[target_assemble ${srcdir}/${subdir}/${srcfile2} asmsrc2.o "${asm-flags}"] !
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 
-set opts "debug ldflags=-nostartfiles"
-foreach i ${link-flags} {
-    append opts " ldflags=$i"
-}
-if { [gdb_compile "asmsrc1.o asmsrc2.o" "${binfile}" executable $opts] != "" } {
+# We deliberately don't use gdb_compile here to link together the
+# assembled object files.  Using gdb_compile, and therefore the C
+# compiler, is conceptually wrong, since we're testing raw assembler
+# code here that provides its own startup code.  Using target_link
+# also avoids a lot of problems on many systems, most notably on
+# *-*-*bsd* and *-*-solaris2*.
+if {[target_link "asmsrc1.o asmsrc2.o" "${binfile}" ${link-flags}] != "" } then {
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }