Re: path to find libcc1.so?

Jan Kratochvil
2014-12-14T20:46:29Z

On Sat, 13 Dec 2014 22:49:50 +0100, Doug Evans wrote:
> On Sat, Dec 13, 2014 at 12:16 PM, Jan Kratochvil
> <jan.kratochvil@redhat.com> wrote:
> > On Sat, 13 Dec 2014 20:57:35 +0100, Doug Evans wrote:
> >> Early adopters and those who want to contribute may find it preferable
> >> to use, e.g., ~/.gdbinit.
> >>
> >> If this is something we eventually want to do, doing it now will help
> >> people we want/need.
> >>
> >> Plus it's, what, 10 lines of (real) code?
> >
> > It is then questionable whether there should also be a GDB option where to
> > find the GCC driver. Currently gcc/libcc1/findcomp.cc searches it in $PATH.
>
> That is a good question.
>
> If I configure gcc with a certain --prefix,
> and link libcc1.so, with, say, --rpath,
> do/should I need to do anything more?
>
> [for a normal installation (libcc1.so has not been copied out of $prefix and
> into some random directory) should libcc1.so be able to find its gcc
> on its own?]

Currently that libcc1.so will just look at $PATH and find (probably - unless
you modify your $PATH) rather your /usr/bin/x86_64-redhat-linux-gcc instead.

In some way it is correct. libcc1.so is independent from the GCC driver.
libcc1.so just translates API into RPC calls and those RPC calls are
received/processed by libcc1plugin.so (loaded due to -fplugin=libcc1plugin
passed by libcc1.so to its found gcc driver):
/home/jkratoch/redhat/gcchead-root/lib/gcc/x86_64-unknown-linux-gnu/5.0.0/plugin/libcc1plugin.so

libcc1.so (the RPC calls interface) could be even implemented by GDB itself
but for some reason Tom put it at the same source location as the other half
(RPC receiver/peer libcc1plugin.so).

This is why I proposed think if there should be a GDB option where to locate
libcc1.so there could be also a GDB option where to locate the GCC driver,
those are technically two mostly independent binaries.

One could also have a single GDB option to specify where to locate the GCC
driver only. And 'thatpath/gcc -print-file-name=libcc1.so' would really
provide the libcc1.so location.

Jan