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]

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


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


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