Re: set env affects host?

Graeme Peterson
2002-11-13T22:44:12Z

Well, I think I have answered my own question by checking in the
source. I found a comment in solib.c for solib_open that says that solib
symbols are found in the inferior's LD_LIBRARY_PATH, and never in the
host's. So I guess that is that. :-)

Search order:
* If path is absolute, look in SOLIB_ABSOLUTE_PREFIX.
* If path is absolute or relative, look for it literally (unmodified).
* Look in SOLIB_SEARCH_PATH.
* Look in inferior's $PATH.
* Look in inferior's $LD_LIBRARY_PATH.

Anyone care to comment on the rationale behind the behavior? Clearly it
seemed reasonable to me to find the solibs for symbols in the host's
LD_LIBRARY_PATH, but that is wrong.

Thanks.
GP

On Wed, 13 Nov 2002, Graeme Peterson wrote:

>
> Hi, all.
>
> In gdb, according to the help, typing "set env LD_LIBRARY_PATH=<some_path>"
> should set the env var LD_LIBRARY_PATH for the inferior.
>
> In gdb-5.2.1 (on QNX6), it seems that it also affects the host, in that
> symbol information for shared objects is now searched for in that new
> LD_LIBRARY_PATH.
>
> So, on my host I have the libs in "/<target_cpu>/lib/test/". On my target
> they live in "/lib/test".
>
> In order for GDB to both load the symbols and allow the inferior to run, I
> have to have both "/lib/test" and "/<target_cpu>/lib/test" in the set env
> LD_LIBRARY_PATH command.
>
> I do not have the ability to check this with "target remote" on a non-QNX
> setup.
>
> Can anyone verify if this is expected behavior? It seems to me that the
> new LD_LIBRARY_PATH should be passed to the inferior only, and that GDB's
> environment (if solib-search-path is not set) should be used for loading
> shared object symbols.
>
> Thanks in advance.
> GP
>
>