This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: path to find libcc1.so?
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Doug Evans <dje at google dot com>
- Cc: Eli Zaretskii <eliz at gnu dot org>, gdb-patches <gdb-patches at sourceware dot org>
- Date: Sun, 14 Dec 2014 21:46:20 +0100
- Subject: Re: path to find libcc1.so?
- Authentication-results: sourceware.org; auth=none
- References: <83mw6sq941 dot fsf at gnu dot org> <CADPb22SpZAozZmtq+QMwndmi2mZpD2QF221ZpLSszr0cS0+gEw at mail dot gmail dot com> <20141213185647 dot GA14208 at host2 dot jankratochvil dot net> <CADPb22Sjb+mgnp3fm06VPZLE_1u-iOStA-VcuHZAhPyBJB0R_w at mail dot gmail dot com> <20141213201600 dot GA15686 at host2 dot jankratochvil dot net> <CADPb22QdkAO+rR8UfkL+_-dRKmF2U9XDp+Raod4axd=jd4oOwg at mail dot gmail dot com>
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