This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: implications and importance of --prefix?? what about -static in GCC_EXTRA_CONFIG?


>> --static

Not sure, don't use it.

>>   What is the implication/importance of using --prefix for configure? 

Very important.

Sure you can install things in /usr/local/bin....

Or take another aproach, install them in:

   /opt/gnu/gcc-REVISION-PATCH/

We prefer the REVISION-PATCH approach. Why? we keep multiple GCC's
around :-> We do that, it's simpler. (IE: Resurect an old project and
use the old compiler - less danger that way)

The other problem is - GCC hardcodes/compiles in various directories
into GCC, the best example is the "SPECS" file contents (which GCC
uses to figure out where the include files are, the linker, and all
that sort of stuff.

Try this command:

    strings - `which gcc`

If you *COPY* the things from 

   /usr/local/lib/gcc-lib to /opt/gcc/whatever

GCC will still go look in the old place. 

GRRR... GRRR... GCC does *NOT* use argv[0] to find it self.  I believe
this is a GNU standard - they don't seem to like to do that.

In contrast, Tcl/Tk (used for example in 'wish' and Insight (aka: GDB
with Tcl/Tk) - is even naster... with even more hard coded stuff and
things with out any startup options... GRRR.. GRRR...

Do this test: 

   ./configure & install like you normally would.

   COPY the files to /opt/gcc/whatever.
   
   DO NOT DELETE the stuff under /usr/local

   TEST - Try to compile something, hello world.

   NOW - REMOVE or RENAME the old stuff under /usr/local/whatever

   TEST - Try to compile things again.

GCC has a "-B" option that lets you tell it to look in other places
for these files, but it does not always help - there is always some
other program further down the food chain that has mental problems
(Best example is: "collect2" with C++ code, it wants things in your
PATH, GRR, GRR, solution - Modify you PATH in your MAKEFILE and export
the new path environment - requires GNUmake to do this)

--------------------------------------------------

In our case, we also must use --exec-prefix.

Why? We have a large automount file system that is shared between
Linux, SunOS, Solaris, and other systems

In our case, you find:

   /some/path/bin - Shell Scripts only.
   /some/path/${ARCH}/bin - Arch specific directories.

We set ARCH to "uname -m"

${ARCH} is common or not common - depends on your view.  
See: "man 5 autofs" for examples of its use.

-Duane.

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]