This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC]: Use `gdb_compile' instead of `target_link' for linking asm-source testcase


Hi,

I would like to propose a change in the asm testcase in testsuite/gdb.asm.

The target_link should get substituted by a call to gdb_compile
using the `-nostartfiles' option for the following reason.

Some (many?) targets have to support several different variants
as, e.g., coff or elf exec format, simulated or real HW targets,
etc.

Each of these styles need a slightly different handling.  E.g. some
embedded boards need a special link flag while another board using
the same CPU need another link flag while the simulated target needs
again another flag (-Tfoo.ld, -Tfoo-bar.ld, -Tfoo-sim.ld, ...)

While the gcc flags for these variants are typically correctly setup
in the external board files, we can't rely on these flags correctly
set up for a direct call to the linker, resulting in an increasingly
messy target depended prologue in asm-source.exp as new targets support
that test.

Therefore I'm proposing to change the call to target_link in this
testcase as soon as possible to a call to gdb_compile with the
gcc flag `-nostartfiles' set, which result in the same testcase but
w/o the need to care for each single flag needed for our targets.

The patch itself is easy.  If it's really necessary, a target could
still add link-flags but e.g. for the XStormy16 target I could even
drop that setting.  It's superfluous now since the board description
files already care for the correct settings.

The below patch would do it (including dropping the XScale link-flags
setting.

Corinna


2001-12-18  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.asm/asm-source.exp: Drop setting link-flags for xstormy16.
	Substitute call to target_link by call to gdb_compile.


Index: gdb.asm/asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.14
diff -u -p -r1.14 asm-source.exp
--- asm-source.exp	2001/12/13 13:42:19	1.14
+++ asm-source.exp	2001/12/18 13:58:18
@@ -53,7 +53,6 @@ if [istarget "sparc-*-*"] then {
 if [istarget "xstormy16-*-*"] then {
     set asm-arch xstormy16
     set asm-flags "-gdwarf2 -I${srcdir}/${subdir} -I${objdir}/${subdir}"
-    set link-flags "-L${objdir}/../../gcc"
 }
 if { "${asm-arch}" == "" } {
     gdb_suppress_entire_file "Assembly source test -- not implemented for this target."
@@ -76,7 +75,11 @@ if {[target_assemble ${src2} asmsrc2.o "
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 
-if  { [target_link "asmsrc1.o asmsrc2.o" ${binfile} "${link-flags}"] != "" } {
+set opts "debug ldflags=-nostartfiles"
+foreach i ${link-flags} {
+    append opts " ldflags=$i"
+}
+if { [gdb_compile "asmsrc1.o asmsrc2.o" "${binfile}" executable $opts] != "" } {
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 
-- 
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.
mailto:vinschen@redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]