This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: [RFC]: Use `gdb_compile' instead of `target_link' for linking asm-source testcase
- From: Fernando Nasser <fnasser at redhat dot com>
- To: Corinna Vinschen <vinschen at redhat dot com>
- Cc: gdb <gdb at sources dot redhat dot com>, gdb-patches <gdb-patches at sources dot redhat dot com>, Michael Snyder <msnyder at cygnus dot com>
- Date: Tue, 18 Dec 2001 13:38:20 -0500
- Subject: Re: [RFC]: Use `gdb_compile' instead of `target_link' for linking asm-source testcase
- Organization: Red Hat , Inc. - Toronto
- References: <20011218145813.Y21898@cygbert.vinschen.de>
This looks reasonable to me.
Fernando
Corinna Vinschen wrote:
>
> 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
--
Fernando Nasser
Red Hat - Toronto E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9