Updates to --with-sysroot support
Daniel Jacobowitz
drow@mvista.com
Wed Nov 6 12:59:00 GMT 2002
On Wed, Nov 06, 2002 at 06:49:05PM -0200, Alexandre Oliva wrote:
> On Nov 6, 2002, Daniel Jacobowitz <drow@mvista.com> wrote:
>
> > On Wed, Nov 06, 2002 at 04:04:04PM -0200, Alexandre Oliva wrote:
> >> On Nov 6, 2002, Daniel Jacobowitz <drow@mvista.com> wrote:
> >>
> >> > It can't affect compiles within the build tree; this is only applied to
> >> > the list of include directories in cpp_include_defaults. None of those
> >> > are originally pointing into the build tree.
> >>
> >> Point is, when we run ./xgcc -B./, gcc takes ./ as bindir, and
> >> tries to relocate everything else from that.
>
> > But the only things it will relocate in this code are the in the
> > installed copy of $(gcc_tooldir). Should we be searching that from
> > inside the build directory? My hunch says no.
>
> Point is it will relocate ${prefix}/include into say ../include.
Nope. ${prefix}/include isn't affected at all by my change. There's
three sets of relocation going on right now and I'm not entirely sure
what one of them (the oldest I think) does, so I left it alone...
- Sysrooting.
- The -iprefix code, which I did change. This only affects things
starting in $(gcc_tooldir).
- The call to update_path() in prefix.c, which honors Windows registry
keys and then does black magic with other cases.
>
> >> > Blech, I knew I forgot something. Yes, here's the install.texi patch;
> >> > it deletes the unpleasant bit that got me started on this in the first
> >> > place, and documents the relocation.
> >>
> >> Err... So is it going to be relocated even if it's outside
> >> exec_prefix or prefix. I don't like this.
>
> > That's not changed by my patch: it will be relocated if the call to
> > make_relative_prefix you added succeeds. If that's not what you wanted
> > in the first place then you should probably control it at that call
> > site...
>
> I think make_relative_prefix used to prevent such relocations, and I
> believe you've now made it more lax in what it accepts and tries to
> relocate. But then, I may be entirely wrong in this assumption. If
> so, I apologize.
I didn't change the behavior of make_relative_prefix at all, except for
fixing the number of ".."'s it inserted in one case. Does just what it
used to. Which does mean that if you had:
--prefix=/opt/a/b/c/d/e
--with-sysroot=/opt/f
and you run:
/baz/a/b/c/d/e/bin/gcc
It'll look in:
/baz/f/usr/include
Of course, if you run:
/baz/bin/gcc
It'll probably end up looking in /usr/include. Ugh ugh ugh ugh ugh. I
didn't introduce this but I suppose we should fix it! Suggested
behavior? Constrain relocation to if the sysroot starts with $prefix?
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
More information about the Gcc-patches
mailing list