Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <qiyaoltc@gmail.com>
To: Simon Marchi <simon.marchi@ericsson.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH v2 2/2]  Make ftrace tests work with remote targets
Date: Mon, 11 Apr 2016 13:12:00 -0000	[thread overview]
Message-ID: <8660vol272.fsf@gmail.com> (raw)
In-Reply-To: <1459794657-2087-2-git-send-email-simon.marchi@ericsson.com>	(Simon Marchi's message of "Mon, 4 Apr 2016 14:30:57 -0400")

Simon Marchi <simon.marchi@ericsson.com> writes:

> The executable and the library are then uploaded side-by-side on the
> remote system.  To allow the dynamic linker to find the shared library,
> we have to add the special RPATH value $ORIGIN, which tells it to search
> in the executable's directory:
>
>   $ readelf -a testsuite/gdb.python/py-shared | grep ORIGIN
>    0x000000000000000f (RPATH)              Library rpath: [$ORIGIN]
>
> The problem with the IPA library is that it doesn't have an SONAME,
> making it very difficult to do testing on a remote board.  When a
> test executable is linked with it, it contains an absolute reference to
> the library path.  Therefore, unless the paths on the target are the
> same as on the build system, it won't work.

Yes, that is how fast tracepoint works for me.  My build and target have
the same directory hierarchy.  In fact, target /scratch is mounted to
build /scratch through nfs.  That is quite convenient, and don't need to
copy binaries and libraries from host to target.  However, this commit
breaks my testing.  It also breaks the typical testing with
native-gdbserver.  See https://sourceware.org/ml/gdb-testers/2016-q2/msg00162.html

>
> To make it possible for tests using the IPA library to run test on
> remote boards, I suggest adding an SONAME to libinproctrace.so.  I don't
> think it should be a big problem for users.  All the libraries installed
> on my system have an SONAME, so it should be fine if libinproctrace.so
> does too.

That is fine to add SONAME...

>
> As a consequence, native testing does not work anymore, since
> executables do not contain the absolute path to the library anymore.  To
> keep them working, we can have gdb_load_shlibs copy the library to the
> test directory when testing natively.  That's done by modifying
> gdb_load_shlibs.  We also have to add RPATH=$ORIGIN to executables, even
> when testing natively.

However, setting "RPATH=$ORIGIN" only works for your testing env,
because executable and libraries can be downloaded to the different
places on the target.

-- 
Yao (齐尧)


  parent reply	other threads:[~2016-04-11 13:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-04 18:31 [PATCH v2 1/2] Improve gdb_remote_download, remove gdb_download Simon Marchi
2016-04-04 18:31 ` [PATCH v2 2/2] Make ftrace tests work with remote targets Simon Marchi
2016-04-05 17:49   ` Pedro Alves
2016-04-05 18:04     ` Simon Marchi
2016-04-11 13:12   ` Yao Qi [this message]
2016-04-11 14:18     ` Simon Marchi
2016-04-05 17:47 ` [PATCH v2 1/2] Improve gdb_remote_download, remove gdb_download Pedro Alves
2016-04-05 17:54   ` Simon Marchi
2016-04-05 17:57     ` Pedro Alves
2016-04-05 18:03       ` Simon Marchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8660vol272.fsf@gmail.com \
    --to=qiyaoltc@gmail.com \
    --cc=gdb-patches@sourceware.org \
    --cc=simon.marchi@ericsson.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox