installation path for cross compiler

Erwin Rol mailinglists at erwinrol.com
Thu Jun 22 08:47:27 UTC 2006


On Thu, 2006-06-22 at 09:47 +0200, Ralf Corsepius wrote:
> On Thu, 2006-06-22 at 08:57 +0200, Erwin Rol wrote:

> > And where are you trying to install things :-) just /usr/include
> > and /usr/lib are not really usable,

> Depends on what you mean. With the exception of some bugs in
> binutils/GCC/gdb bogusly installing files to /usr/include and /usr/lib,
> the GNU cross toolchains fold smoothly into the /usr hierarchy and do
> not install files into /usr/{lib|include}.
> 
> >  and where do the binaries go ?
> Host or target binaries.
> 
> Host binaries: /usr/bin
> 
> Target binaries are an open issue. 
> 
> Theoretically into /usr/$target/bin, but this directory is being used by
> binutils and GCC. IMO, this is a bug, because all other dirs
> below /usr/$target contain target files, and AFAICT is occasionally
> being worked at, but so far has not been resolved.
> 
> However, this isn't an actual issue because a cross GNU cross toolchain
> does't contain any target binaries.
> 
> > For example /usr/bin/arm-unknown-linux-gnu-ld is maybe acceptable,
> Right, this is the right place and the right name for a cross ld.
> 
> >  but
> > that will also give a /usr/arm-unknown-linux-gnu/bin/ld,
> Exactly, this is the troublesome spot I was referring to above. However
> note: even these are host binaries.
> 
> >  and also
> > a /usr/info/ld.info (collision with every other binutils package).
> Yes, this is an other issue. Unlike the manpages, which are
> canonicalized, the infos have not been canonicalized.
> 
> I am aware about some people having tried to resolve this, but AFAIK, so
> far without success. I.e. the remedy is not to install a cross compilers
> info files.
> 
> Similar issues exist wrt. i18n, the files conflict with a native cross
> toolchain's i18n files (My work-around --disable-nls), and with some
> languages' support files (esp. C++ headers - My work-around:
> --enable-version-specific-runtime-libs, this folds the target
> libs/headers etc. into gcc's internal directories).
> 
> And then is gnat/ada ;) ...
> IMNSHO, forget about it wrt. cross compilers.
> 
> Installing to /opt, doesn't have all these issues.

So the correct but not working solution is to use a --prefix=/usr and
the incorrect but working solution is to use
--prefix=/opt/crosstools/<target>/ ? :-)

So i guess I first get things as an RPM working in /opt and later worry
about putting it in the "correct" place .

- Erwin





More information about the fedora-devel-list mailing list