Re: More questions on sysroots

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"NightStrike" <nightstrike@xxxxxxxxx> wrote:
When you say "the root of the target filesystem", do you mean that
it's the root of a directory structure containing target files that
will be used while creating the toolchain, or that it's the root of a
directory structure where the final toolchain, once built, will look
for target files?  I'm guessing the answer is "both".....

The asnwer is both. For instance, suppose you're making a cross-compiled LInux system, and building a final user-space GCC which is integrated with the GNU C library.

You would already have glibc built into the sysroot (as well, you'd of course spin it into a package to install on the target system).

If we made that the sysroot, these would get mixed into the root.

Is it absolutely *required* that the sysroot be a subdirectory of
prefix to make the final toolchain relocatable, or is this where
with-build-sysroot comes into play?

More precisely, from http://gcc.gnu.org/install/configure.html:

`` If the specified directory is a subdirectory of ${exec_prefix}, then it will be found relative to the GCC binaries if the installation tree is moved. ''

I think where --with-build-sysroot comes into play is that it allows these target system materials (like glibc) to be pulled from somewhere other than the sysroot location during the building of the cross compiler.

This provides some flexibility as to how to structure the cross compiler build process, in certain situations.

I've built an entire Linux distro, including a cross toolchain that runs on a build systems /and/ a native toolchain that runs on the target, without ever needing to use --with-build-sysroot. It wouldn't be that helpful because as soon as the compiler is built with the glibc materials, I want to run it. And at that point, those materials must be in the sysroot location. But I can imagine some situations where you don't want to run the compiler that is built, but perhaps package it for someone else to run somewhere else.

Also, is there an option that's just plain "--sysroot"?  Does that
have any meaning?  Should it ever be used?

That's not a build configuration option, but a run-time switch supported by the gcc front end to override the sysroot location. There is probably a situation in which this comes in handy, just not the normal case. I'm only guessing, but it's probably useful during the staging of gcc. If you have a partially built gcc which doesn't know anything about any sysroot, then --sysroot can tell it where to look.


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux