aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.asm
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2004-01-30 21:23:46 +0000
committerMark Kettenis <kettenis@gnu.org>2004-01-30 21:23:46 +0000
commit3a4b3aac5a4b01f9c1930b4b11bf17e6589a9def (patch)
treeb55a02e3ac837f298ba5e986b0e68adedb3e1c98 /gdb/testsuite/gdb.asm
parentea01195e3866838abe2363ea04a9627b757c22a5 (diff)
downloadgdb-3a4b3aac5a4b01f9c1930b4b11bf17e6589a9def.zip
gdb-3a4b3aac5a4b01f9c1930b4b11bf17e6589a9def.tar.gz
gdb-3a4b3aac5a4b01f9c1930b4b11bf17e6589a9def.tar.bz2
* 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.
Diffstat (limited to 'gdb/testsuite/gdb.asm')
-rw-r--r--gdb/testsuite/gdb.asm/asm-source.exp29
1 files changed, 8 insertions, 21 deletions
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
index 301b778..411d13d 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -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."
}