(new) Failure building GFortran (Cygwin)

Angelo Graziosi angelo.graziosi@alice.it
Sun Jul 6 07:28:00 GMT 2008


For the sake of completeness I want to flag that the current snapshot
4.4-20080704 has new failures:

/work/build/./prev-gcc/xgcc -B/work/build/./prev-gcc/
-B/usr/local/gfortran/i686-pc-cygwin/bin/ -c  -g -O2 -DIN_GCC   -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual
-Wc++-compat -Wold-style-definition -Wmissing-format-attribute -pedantic
-Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Werror   -DHAVE_CONFIG_H -I. -I.
-I/work/gcc/gcc -I/work/gcc/gcc/. -I/work/gcc/gcc/../include
-I/work/gcc/gcc/../libcpp/include  -I/work/gcc/gcc/../libdecnumber
-I/work/gcc/gcc/../libdecnumber/bid -I../libdecnumber
/work/gcc/gcc/ggc-page.c -o ggc-page.o
cc1: warnings being treated as errors
/work/gcc/gcc/ggc-page.c: In function 'alloc_page':
/work/gcc/gcc/ggc-page.c:802: error: request for implicit conversion
from 'void *' to 'char *' not permitted in C++
/work/gcc/gcc/ggc-page.c:845: error: request for implicit conversion
from 'void *' to 'struct page_entry *' not permitted in C++
make[3]: *** [ggc-page.o] Error 1
make[3]: *** Waiting for unfinished jobs....
rm cpp.pod gfdl.pod gfortran.pod fsf-funding.pod gcc.pod gcov.pod
make[3]: Leaving directory `/work/build/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/work/build'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/work/build'
make: *** [all] Error 2

It seems that this patch solves the problem

--- ggc-page.c.orig     2008-06-29 06:39:16.000000000 +0200
+++ ggc-page.c  2008-07-05 12:00:20.906250000 +0200
@@ -799,7 +799,7 @@
         alloc_size = GGC_QUIRE_SIZE * G.pagesize;
        else
         alloc_size = entry_size + G.pagesize - 1;
-      allocation = xmalloc (alloc_size);
+      allocation = (char *)xmalloc (alloc_size);

        page = (char *) (((size_t) allocation + G.pagesize - 1) &
-G.pagesize);
        head_slop = page - allocation;
@@ -842,7 +842,7 @@
           struct page_entry *e, *f = G.free_pages;
           for (a = enda - G.pagesize; a != page; a -= G.pagesize)
             {
-             e = xcalloc (1, page_entry_size);
+              e = (struct page_entry *)xcalloc (1, page_entry_size);
               e->order = order;
               e->bytes = G.pagesize;
               e->page = a;


But I am confused in any case: Why 'not permitted in C++'?
Isn't xgcc a C compiler?

I am enabling only C,Fortran!


Cheers,
    Angelo.


Paul Richard Thomas ha scritto:
> Angelo,
> 
> I have seen this too - I thought that it was due to the VERY strange
> way in which I was doing the build:-)
> 
> Andd 'const' to strsignal.c:408 and the build will go through.
> 
> Paul
> 
> On Sat, Jun 28, 2008 at 2:09 PM, Angelo Graziosi
> <angelo.graziosi@alice.it> wrote:
>> Last week I flagged some problems with 4.4-20080620 snapshot [1], now the
>> current snapshot fails in a different manner:
>>
>> [...]
>> make[2]: Entering directory `/work/build'
>> make[3]: Entering directory `/work/build'
>> rm -f stage_current
>> make[3]: Leaving directory `/work/build'
>> Comparing stages 2 and 3
>> warning: ./cc1-checksum.o differs
>> Comparison successful.
>> if false; then \
>>          rm -rf stage2-*; \
>>          echo timestamp >  stage2-lean; \
>>        fi
>> [...]
>> make[4]: Leaving directory `/work/build/i686-pc-cygwin/libgfortran'
>> make[3]: Leaving directory `/work/build/i686-pc-cygwin/libgfortran'
>> make[2]: Leaving directory `/work/build/i686-pc-cygwin/libgfortran'
>> Checking multilib configuration for libiberty...
>> mkdir -p -- i686-pc-cygwin/libiberty
>> Configuring in i686-pc-cygwin/libiberty
>> [...]
>> /work/build/./gcc/xgcc -B/work/build/./gcc/
>> -B/usr/local/gfortran/i686-pc-cygwin/bin/
>> -B/usr/local/gfortran/i686-pc-cygwin/lib/ -isystem
>> /usr/local/gfortran/i686-pc-cygwin/include -isystem
>> /usr/local/gfortran/i686-pc-cygwin/sys-include -c -DHAVE_CONFIG_H -g -O2
>>  -I. -I/work/gcc/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat
>> -Wstrict-prototypes -pedantic /work/gcc/libiberty/strerror.c -o strerror.o
>> if [ x"" != x ]; then \
>>          /work/build/./gcc/xgcc -B/work/build/./gcc/
>> -B/usr/local/gfortran/i686-pc-cygwin/bin/
>> -B/usr/local/gfortran/i686-pc-cygwin/lib/ -isystem
>> /usr/local/gfortran/i686-pc-cygwin/include -isystem
>> /usr/local/gfortran/i686-pc-cygwin/sys-include -c -DHAVE_CONFIG_H -g -O2
>>  -I. -I/work/gcc/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat
>> -Wstrict-prototypes -pedantic /work/gcc/libiberty/strsignal.c -o
>> pic/strsignal.o; \
>>        else true; fi
>> /work/build/./gcc/xgcc -B/work/build/./gcc/
>> -B/usr/local/gfortran/i686-pc-cygwin/bin/
>> -B/usr/local/gfortran/i686-pc-cygwin/lib/ -isystem
>> /usr/local/gfortran/i686-pc-cygwin/include -isystem
>> /usr/local/gfortran/i686-pc-cygwin/sys-include -c -DHAVE_CONFIG_H -g -O2
>>  -I. -I/work/gcc/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat
>> -Wstrict-prototypes -pedantic /work/gcc/libiberty/strsignal.c -o strsignal.o
>> /work/gcc/libiberty/strsignal.c:408: error: conflicting types for
>> 'strsignal'
>> /usr/include/string.h:78: error: previous declaration of 'strsignal' was
>> here
>> make[2]: *** [strsignal.o] Error 1
>> make[2]: Leaving directory `/work/build/i686-pc-cygwin/libiberty'
>> make[1]: *** [all-target-libiberty] Error 2
>> make[1]: Leaving directory `/work/build'
>> make: *** [all] Error 2
>>
>> The above happens on Cygwin, using gcc-core, gcc-fortran tarballs and
>> configuring
>>
>> ${gcc_dir}/configure --prefix="${prefix_dir}" \
>>                         --exec-prefix="${eprefix_dir}" \
>>                         --sysconfdir="${sysconf_dir}" \
>>                         --libdir="${lib_dir}" \
>>                         --libexecdir="${libexec_dir}" \
>>                         --mandir="${man_dir}" \
>>                         --infodir="${info_dir}" \
>>                         --enable-languages=c,fortran \
>>                         --enable-bootstrap \
>>                         --enable-decimal-float=bid \
>>                         --enable-libgomp \
>>                         --enable-threads \
>>                         --enable-sjlj-exceptions \
>>                         --enable-version-specific-runtime-libs \
>>                         --enable-nls \
>>                         --enable-checking=release \
>>                         --disable-fixed-point \
>>                         --disable-libmudflap \
>>                         --disable-shared \
>>                         --disable-win32-registry \
>>                         --with-system-zlib \
>>                         --without-included-gettext \
>>                         --without-x
>>
>>
>>
>> Cheers,
>>   Angelo.
>>
>> ---
>> [1] http://gcc.gnu.org/ml/fortran/2008-06/msg00250.html
>>
> 
> 
> 




More information about the Gcc mailing list