packaging a GCC binary distribution so it can be installed at arbitrary locations?

Daniel Kegel dank@kegel.com
Thu May 12 21:04:00 GMT 2005


Daniel Jacobowitz wrote:

> On Thu, May 12, 2005 at 08:41:58AM -0700, Gary Funck wrote:
>> > Yes, with recent versions of gcc you can move the entire tree around
>> > and the gcc driver will still be able to find the various internal
>> > executables and header files. [...]
>> 
>> Ian, thanks.
>> 
>> Which versions qualify as "recent" above?  GCC 3.4, or 4.0, or both?
> 
> Since at least 3.3.

I think binutils and gdb acquired this talent around Jan 2003
(see http://sources.redhat.com/ml/binutils/2003-01/msg00065.html,
http://sources.redhat.com/ml/gdb-patches/2003-01/msg00380.html)
so you might need newish versions of them, too.

>> Is there any documentation on how the new packaging mechanism works?
> 
> It's not a new packaging mechanism and it doesn't require any
> adjustment; the entire thing should Just Work.

If you happen to need to be able to do this with old tools,
you can try http://kegel.com/crosstool/current/fix-embedded-paths.c

Excerpt:
  Program to fix embedded paths in files.
  Useful especially for gcc < 3.0 and binutils < 2.14, which
  do not work if you move them after installation;
  running this program fixes the paths and lets the programs work again.

I use this to be able to build crosstool rpms of old tools
without having write access to the final install location, and it seems to work.
(Actually, I use it for new tools, too, 'cause it doesn't seem to hurt,
and it's nice to have all the embedded paths right just in case.)
- Dan



More information about the Gcc mailing list