Unable to compile GCC-4.4.3, Pass 1

John Stephens jstephens at jkstephens.net
Fri Mar 26 06:54:05 PDT 2010

Chris and Phillippe,

Thanks for the insights.  Like I stated before, I was either missing
something conceptually or misinterpreting something.

I took the instructions "The GCC documentation recommends building GCC
outside of the source directory in a dedicated build directory." to
mean outside of /mnt/lfs/source (i.e. at the /mnt/lfs level) instead
of outside  /mnt/lfs/source/gcc-4.4.3 (i.e. at the /mnt/lfs/source
level).  Subtle, but important difference.

This being the case, should the instructions on 5.5.1 (assuming I am
sitting in /mnt/lfs/source/gcc-4.4.3 as instructed):
tar -jxf ../mpfr-2.4.2.tar.bz2
mv -v mpfr-2.4.2 mpfr
tar -jxf ../gmp-5.0.0.tar.bz2
mv -v gmp-5.0.0 gmp

really be:
tar -jxf ../mpfr-2.4.2.tar.bz2
mv -v ../mpfr-2.4.2 ../mpfr
tar -jxf ../gmp-5.0.0.tar.bz2
mv -v ../gmp-5.0.0 ../gmp

Seriously, I am not attempting to be argumentative and again I might
be missing something here.  However this and the issue with "source
directory" has caused me a little grief.

On Fri, Mar 26, 2010 at 7:18 AM, Chris Staub <chris at beaker67.com> wrote:
> On 03/26/2010 07:04 AM, John Stephens wrote:
>> Chris,
>> Thanks for the reply.  I've spent a lot of time in chapters 4 and 5.
>> I'm finding the book (6.6) a little unclear in certain areas which is
>> probably what is throwing me off to some degree.
>> For example, look at 5.5.1, first box.  It says:
>> tar -jxf ../mpfr-2.4.2.tar.bz2
>> mv -v mpfr-2.4.2 mpfr
>> tar -jxf ../gmp-5.0.0.tar.bz2
>> mv -v ../gmp-5.0.0 gmp
>> What is the point of reference for "../pkg-name"?  If I am in my
>> /mnt/lfs/sources dir, then the ../ takes me up to /mnt/lfs and the
>> source tarball is not there.
>> I haven't found any reference as to where I should be sitting
>> (directory wise...) when I issue the commands.
> It is very clear, and not only did I say where it's stated in the book,
> I explicitly spelled it out...
>> On Fri, Mar 26, 2010 at 12:29 AM, Chris Staub<chris at beaker67.com>  wrote:
>>> On 03/25/2010 10:45 PM, John Stephens wrote:
>>>> At this point, I believe all is OK.  GCC is then unpacked in
>>>> $LFS/gcc-build, mpfr-3.4.3 and gmp-5.0.0 are unpacked into
>>>> $LFS/gcc-build/gcc-4.4.3 as mpfr and gmp respectively.
>>>> GCC is then configured using:
>>>> lfs at Carina:/mnt/lfs/gcc-build/gcc-4.4.3$ ../gcc-4.4.3/configure
>>>> --target=$LFS_TGT --disable-nls --disable-shared --disable-multilib
>>>> --disable-decimal-float --disable-threads --disable-libmudflap
>>>> --disable-libssp --disable-libgomp --enable-languages=c
>>>> ...snip...
>>>> configure: creating ./config.status
>>>> config.status: creating Makefile
>>> I see 3 problems here...
>>> 1. The LFS book does not say to create gcc-build before unpacking the
>>> source tarball. Seems you need to take a close look at page 5.3, in
>>> particular the very last "Note" there - it says that you are to unpack
>>> the source tarball, cd into the created directory, *then* follow the
>>> instructions on the page.
>> Page 5.5.1 *DOES* say exactly that:
>> "The GCC documentation recommends building GCC outside of the source
>> directory in a dedicated build directory."
>> Then in the next box:
>> mkdir -v ../gcc-build
>> cd ../gcc-build
>> The line above the first box states that GCC requires GMP and MPFR.
>> Now, if mpfr and gmp are unpacked in /mnt/lfs/sources, GCC has no
>> access to them. The only way I could get GCC to do anything was to
>> move both pkgs into /mnt/lfs/gcc-build/gcc-4.4.3/.  But I am concerned
>> about that.
> I know exactly what the book says. I will repeat what I just said
> above...if you look at the last note on page 5.3, it says that before
> you follow any of the instructions on a package installation page, you
> are to unpack that package's source and cd into the source directory.
> So, for GCC, you unpack the gcc-4.4.3 tarball, cd gcc-4.4.3, *then* do
> what the GCC page says. Again, this is in page 5.3 - however it is not
> the *only* important piece of info on that page, so be sure to go there
> and read it carefully - in fact, you might just want to keep page 5.3
> open and re-read it before every package.
>>> 2. The gcc-build directory is not in $LFS/sources, so that means that
>> Correct, but that is contrary to the instructions.
> Following what I just said above, if you are following the instructions
> given on page 5.3, which means you are starting from the GCC source
> directory (gcc-4.4.3) then gcc-build *will* be in $LFS/sources.
> Similarly, since the GCC page says to unpack GMP and MPFR *before*
> gcc-build is created, that means you are in the GCC source dir when you
> do so.
> So, to recap, unpack the GCC tarball, cd gcc-4.4.3, then do as stated on
> the GCC installation page, starting with unpacking GMP and MPFR and
> renaming their source dirs, then create and cd ../gcc-build. It is the
> exact same procedure for every package - you unpack the tarball, cd into
> the created source directory, then do as stated on the package's page,
> followed by removing the source and (and build, if created) dirs (which
> is explained in another note on page 5.3). For the same reason,
> binutils-build should also be located in $LFS/sources.

More information about the lfs-support mailing list