This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
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