This is the mail archive of the gdb-patches@sourceware.org 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: [testsuite] setting sysroot for target-board


On Friday 06 May 2011 03:24:08, Wei-cheng Wang wrote:
> Here is the update :-)
> 
> 2011-05-06  Wei-cheng Wang <cole945@gmail.com>
> 
>         * lib/gdbserver-support.exp: Add support for setting sysroot for
>         target system.
> 
> --- a/gdb/testsuite/lib/gdbserver-support.exp
> +++ b/gdb/testsuite/lib/gdbserver-support.exp
> @@ -36,6 +36,10 @@
>  #      Port id to use for socket connection.  If not set explicitly,
>  #      it will start at "2345" and increment for each use.
>  #
> +#   set_board_info gdb,sysroot
> +#       System root for the target to find shared libraries.
> +#       If target and host are different, this should be properly set.
> +#
> 
>  #
>  # gdb_target_cmd
> @@ -44,6 +48,11 @@
>  proc gdb_target_cmd { targetname serialport } {
>      global gdb_prompt

Doing this here assumes you'll only need the sysroot after connecting.
How have you tested this?  It seems you forgot the MI equivalent.
I think a better place would be right after spawning
gdb (default_gdb_start/default_mi_gdb_start).  If since you
already have a board file anyway, you could also override *gdb_start
and do it there instead of adding a new flag.

> 
> +    if [target_info exists gdb,sysroot] {
> +        set gdb_sysroot [target_info gdb,sysroot]
> +        send_gdb "set sysroot $gdb_sysroot\n"

This leaves a gdb prompt in the expect buffer, which is a recipe
for trouble.  I guess it doesn't cause trouble as it, because
the "target foo" command below doesn't happen to have
a '-re ".*$gdb_prompt"' match, but that's fragile.
(actually it may cause trouble afterwards if the -notransfer regex
matches)

> +    }
> 
> Wei-cheng
> 
> On Fri, May 6, 2011 at 1:36 AM, Tom Tromey <tromey@redhat.com> wrote:
> >>>>>> ">" == Wei-cheng Wang <cole945@gmail.com> writes:
> >
> >>> When testing remote cross-target, libc and other shared libraries
> >>> will not be compatible with the one on host.
> >
> >>> This patch adds support for setting sysroot in target-board files, e.g.,
> >>> set_board_info gdb,sysroot "/path/to/target/libc",
> >>> so that testsuite can be used for remote cross-target.
> >
> > I think this looks reasonable.
> >
> > There is a comment just above the definition of gdb_target_cmd that
> > needs an update for this new parameter.
> >
> > This patch also needs a ChangeLog entry.
> >
> > Tom
> >
> 

-- 
Pedro Alves


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