This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


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: Is configure (with bootstrap) same as configuring in three build directories (without bootstrap)


On 9 June 2015 at 00:17, Jonathan Wakely wrote:
> On 8 June 2015 at 23:36, james harvey <jamespharvey20@gmail.com> wrote:
>> Is this:
>>
>> git clone git://gcc.gnu.org/git/gcc.git gcc.git
>> mkdir gcc.git.build
>> cd gcc.git.build
>> ../gcc.git/configure --disable-multilib && make -j8 && sudo make install
>>
>> The same as: (Ignoring this creates three build directories and takes
>> up more space.)
>>
>> git clone git://gcc.gnu.org/git/gcc.git gcc.git
>> mkdir gcc.git.build.oldgcc
>> cd gcc.git.build.oldgcc
>> ../gcc.git/configure --disable-multilib --disable-bootstrap && make
>> -j8 && sudo make install
>> mkdir ../gcc.git.build.currentgcc
>> cd ../gcc.git.build.currentgcc
>> ../gcc.git/configure --disable-multilib --disable-bootstrap && make
>> -j8 && sudo make install
>> mkdir ../gcc.git.build.currentgcc.redo
>> cd ../gcc.git.build.currentgcc.redo
>> ../gcc.git/configure --disable-multilib --disable-bootstrap && make
>> -j8 && sudo make install
>> cd ..
>> diff --brief --recursive gcc.git.build.currentgcc gcc.git.build.currentgcc.redo
>>
>> I'm running into a bug using the overlay filesystem in kernel 4 that
>> is being difficult to track down.  The first set of instructions I
>> listed (making gcc using bootstrapping) fails, but the second set
>> (making gcc in three separate build directories) succeeds.
>>
>> Wondering if the second set gets me around the bug, or if that process
>> is different than the first.
>
> It's completely different.
>
> Doing exactly the same thing three times is not what bootstrapping does.

Both processes will install GCC to /usr/local/

If /usr/local/bin is earlier in your $PATH than the compiler you
already have installed before starting, then the second process will
use the newly-installed GCC to build itself on the second
non-bootstrap build, but the third non-bootstrap build just does that
again which is completely redundant.

And it's still not the same.

A bootstrap builds the compiler three times and compares the results
of the 2nd and 3rd stages to check that building the new GCC with
itself actually works as expected, but your process doesn't do that.
If you're not going to do that comparison then the 3rd stage is
useless.


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