about gcc-3.4.6

Bernd Petrovitsch bernd at petrovitsch.priv.at
Fri Aug 12 06:14:43 EDT 2011


On Fri, 2011-08-12 at 02:49 +0200, Javier Martinez Canillas wrote:
> On Fri, Jul 29, 2011 at 4:22 PM, esmaeil mirzaee
> <esmaeil.debian at gmail.com> wrote:
> > On Fri, Jul 29, 2011 at 8:16 AM, Bernd Petrovitsch
> > <bernd at petrovitsch.priv.at> wrote:
> >> On Fre, 2011-07-29 at 08:01 -0400, esmaeil mirzaee wrote:
> >>> On Fri, Jul 29, 2011 at 7:46 AM, Pravin Shedage
> >>> <pravinshedage2008 at gmail.com> wrote:
> >>>         Hi Samuel,
> >>>
> >>>         check the FTP link
> >>>         ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/
> >>> Actually I have gcc-3.4.6.tar.bz2 for process of installation I did:
> 
> Why do you want to use such an old compiler?

Sometimes there "environmental" restrictions as in "you have to use this
release because of support blabla ...".

> >> For the most simplest case - a compiler for the current host+OS -, `make
> >> bootstrap` is the way to go.
> > could you explain more? I'm new.

Well, it's not particularly on-topic here.
And there is lot of documentation on the net about building gcc so
reproducing it here in my own words doesn't make any sense and only a
lot of work.
Any specific questions/problems/bugs?

> I think he means that you should use the standard GCC package that can
> be installed using whatever package manager your Linux distribution
> has (i.e: apt/yum/yast)

For the "I just want a gcc" people, this is the simple way to go (and
should be in general the preferred one).

But if you need to have a special version - a specific old version,
specific patches e.g. the bounds-checking patch, a really plain gcc from
gcc.gnu.org because at least RedHat's gccs have lots of patches (which
are almost all bug fixes) in as one can see in the .spec file, a
cross-compiler - you can build your own.

For a compiler for the current system, the simple way is - out of the
top of my head - "download and unpack the .tar.gz, cd into it and 'make
bootstrap` and `make install`" and it should be in /usr/local/{bin,lib}
and God knows where else;-)
I install them always somewhere else (with "PREFIX=" IIRC) because I can
remove it with a simple `rm -rf`.

If you want to build a cross-compiler, google for "crosstool-ng" and/or
"crosstool". They probably assume that you basically know what the
complexity in a cross-compiler is.
For starters, you also need an assembler and linker for the target
platform (which are in the GNU bin-utils). And in case of gcc, also
the/a libc IIRC.

> Building a compiler from source code is not an easy task, it has
> dependencies with at least a C library, such as glibc. And I don't
> know if you need binutils source code also to compile (I have never
> compile GCC from scratch).

Depends on what exactly you want to build. If you don't know that, find
someone who knows;-)

The glibc (oder other libc) is not the big issue, but more recent gccs
need other quite recent libs (gmp and mpfr IIRC). You will see if you
want to build the most recent gcc on an Fedora[-1] or Fedora[-2]
system;-)

> Why an standard GCC installation doesn't fit your needs? Even if you
> need a cross tool-chain for a not so common arch, you have projects
> like Ptxdist and Crosstool that automates the tool-chain compilation.

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd at petrovitsch.priv.at
                     LUGA : http://www.luga.at




More information about the Kernelnewbies mailing list