From 3a4b3aac5a4b01f9c1930b4b11bf17e6589a9def Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Fri, 30 Jan 2004 21:23:46 +0000 Subject: [PATCH] * 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. --- gdb/testsuite/ChangeLog | 7 +++++++ gdb/testsuite/gdb.asm/asm-source.exp | 29 ++++++++-------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2ad7ac1aa0..3e4e39dfbe 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2004-01-30 Mark Kettenis + + * 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 * gdb.cp/inherit.exp: Rewrite. Use gdb_test_multiple and gdb diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp index 301b778a0e..411d13d06b 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." }