This is the mail archive of the gcc@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]

Successful profiledbootstrap with some hiccups of GCC 4.6.0 (SVN rev. 168186) and GCC 4.5.2 (release) on Mac OS X 10.6.5 (x86_64-apple-darwin10)


This is to report that GCC 4.6.0 (SVN revision 168186) and GCC 4.5.2
(release) profiledbootstrap 's successfully on a Macbook6,1 with Intel
Core 2 Duo Penryn P7550 2.26GHz and 4GB 1067MHz DDR3 RAM running Mac
OS X 10.6.5 in 387 minutes, 28 seconds and 392 minutes, 14 seconds.
There were some minor problems that might qualify as bugs.

***

The bootstrap of GCC 4.6.0 (SVN revision 168186) itself was performed
by GNU GCC 4.5.1 (not the GCC with which Xcode comes bundled), using
the configure flags

        ../gcc-svn-168186/configure --prefix=$GCCLOC/MacOSX-instable
--with-pkgversion="GNU GCC (4.6.0 - SVN revision 168186) Codename
MÃspellsheimr GCC built Dec 25, 2010 with GMP 5.0.1, MPFR 3.0.0, MPC
0.8.2 and Libelf 0.8.13, bootstrap by GNU GCC 4.5.1 Codename Uppsala
III GCC" --with-libelf=$DEPEND/libelf --enable-lto
--with-mpc=$DEPEND/mpc --with-mpfr=$DEPEND/mpfr --with-gmp=$DEPEND/gmp
--enable-shared --enable-static --target=x86_64-apple-darwin10
--build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10
--enable-threads --enable-languages=c,c++,java,fortran,objc,obj-c++
--enable-libgcj --enable-libjava --enable-java-net --enable-jvmpi
--enable-libgcj-bc --with-libffi --enable-werror --enable-checking
--enable-stage1-checking --disable-nls --disable-build-with-cxx
--enable-gather-detailed-mem-stats --enable-decimal-float
--with-tune=core2 CC="gcc -O3" CPPFLAGS="-O3"

with $GCCLOC indicating the install location and $DEPEND the location
of the dependencies, and was bootstrapped with

        make profiledbootstrap

There is, however, a small hiccup, and I hesitate to post this in
bugs, because I am not sure if I myself am mistaken. In the source
tree, at gcc/ggc-common.c, line 949, in the function
ggc-record-overhead, I had to make a small change:

        gcc_assert (slot!=NULL); /* Switched from gcc_assert (!*slot);
because this is possibly an error */

I understand the intent here was to compare the pointer to NULL before
dereferencing it, possibly basing oneself on the most common
representation of NULL (the integer 0 cast to void *), but the
(!*slot) comparison broke the build on my system. After some digging,
I settled on (slot!=NULL) and GCC bootstrapped itself just fine. I
also understand that this code only ought to execute if
--enable-gather-detailed-mem-stats is selected (Which it is in my
configure-time flags), but this is still worth correcting. From what I
remember, this mistake has been present since at least revision
166644, and it probably goes back a long time further back than that.

***

The bootstrap of GCC 4.5.2 was performed by the same GNU GCC 4.5.1 as
above, using the configure flags

        ../gcc-4.5.2/configure --prefix=$GCCLOC/MacOSX-stable
--with-pkgversion="GNU GCC 4.5.2 Codename Aesir GCC built Dec. 26,
2010 with GMP 5.0.1, MPFR 3.0.0, MPC 0.8.2 and Libelf 0.8.13,
bootstrap by GNU GCC 4.5.1 Codename Uppsala III GCC"
--with-libelf=$DEPEND/libelf --enable-lto --with-mpc=$DEPEND/mpc
--with-mpfr=$DEPEND/mpfr --with-gmp=$DEPEND/gmp --enable-shared
--enable-static --target=x86_64-apple-darwin10
--build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10
--enable-threads --enable-languages=c,c++,java,fortran,objc,obj-c++
--enable-libgcj --enable-libjava --enable-java-net --enable-jvmpi
--enable-libgcj-bc --with-libffi --enable-werror --enable-checking
--enable-stage1-checking --disable-nls --disable-build-with-cxx
--enable-gather-detailed-mem-stats --enable-decimal-float
--with-tune=core2 CC="gcc -O3" CPPFLAGS="-O3"

with $GCCLOC indicating the install location and $DEPEND the location
of the dependencies, and was bootstrapped with

        make profiledbootstrap

The issue with ggc-record-overhead discussed above is also present in
GCC 4.5.2, but not in GCC 4.5.1 (which I successfully bootstrapped
with the same configure-time flags) and I have
gcc-4.5.2/gcc/ggc-common.c corrected too. Nevertheless, I was faced
with this printout:

    cc1: warnings being treated as errors
    ../../gcc-4.5.2/gcc/tree-vect-stmts.c: In function 'vectorizable_operation':
    ../../gcc-4.5.2/gcc/tree-vect-stmts.c:2253:8: error: unused
variable 'scalar_shift_arg'
    ../../gcc-4.5.2/gcc/tree-vect-stmts.c:2252:16: error: unused variable 'k'
    ../../gcc-4.5.2/gcc/tree-vect-stmts.c:2239:21: error: unused
variable 'optab_op2_mode'

So I acted on them and commented out their declaration. The bootstrap
then finished normally.

***

In conclusion, this is the first time in my memory that GCJ compiled
cleanly on Mac OS X - previously it would fail for a number of
reasons. Congratulations, and keep up the good work!

Thank you for reading this report.


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