From: Hin-Tak L. <hin...@ya...> - 2008-10-02 02:18:14
|
I have some uses for gcc-cross, so I am porting x86-mingw32-build.sh to the new mingwrt-{version}-mingw32 and w32api-{version}-mingw32 naming and versions. For most part, the "-mingw32" extra ending get stuffed into the version-part so the cross script just cope, and some "mingw-runtime" needs to be replaced with "mingwrt" which is also obvious. I'll post the diff when I have it working. But I found a rather curious issue: gcc 4.2.1-2 itself needs -D__USE_MINGW_ANSI_STDIO=0 to cross-build (and possibly native-build also?). This is surprising, because I would have expected it is either irrelevant (=1 and =0 should both work), or gcc prefers standard-compliant (=1). I guess gcc 4.2.1-2 predates the ANSI_STDIO change, so it just means it prefers the older mingw-runtime behavior, but nonetheless, this is surprising. Anybody wants to comment on this? The actual error is this (neither specified - failing during libgfortran): ------------- In file included from ../../../gcc-4.2.1-2-src/libgfortran/io/read.c:36: /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/stdio.h: In function 'fprintf': /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/stdio.h:245: error: conflicting types for '__p___argv' /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/stdlib.h:78: error: previous declaration of '__p___argv' was here make[3]: *** [read.lo] Error 1 make[3]: Leaving directory `/var/tmp/mingw/build-gcc/i386-mingw32/libgfortran' ------------- if -D__USE_MINGW_ANSI_STDIO=1 is specified, it fails earlier during core: ---------------- In file included from ../../../gcc-4.2.1-2-src/libssp/gets-chk.c:49: /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/stdio.h: In function 'fprintf': /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/stdio.h:245: error: conflicting types for '__p___argv' /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/stdlib.h:78: error: previous declaration of '__p___argv' was here ---------------- |
From: Keith M. <kei...@us...> - 2008-10-04 22:09:01
|
On Thursday 02 October 2008 03:18:07 Hin-Tak Leung wrote: > But I found a rather curious issue: gcc 4.2.1-2 itself needs > -D__USE_MINGW_ANSI_STDIO=0 to cross-build (and possibly > native-build also?). This is surprising, because I would have > expected it is either irrelevant (=1 and =0 should both work), or > gcc prefers standard-compliant (=1). > > I guess gcc 4.2.1-2 predates the ANSI_STDIO change, so it just > means it prefers the older mingw-runtime behavior, but nonetheless, > this is surprising. Anybody wants to comment on this? Yes, see below... > The actual error is this (neither specified - failing during > libgfortran): ------------- > In file included from > ../../../gcc-4.2.1-2-src/libgfortran/io/read.c:36: > /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/s >tdio.h: In function 'fprintf': > /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/s >tdio.h:245: error: conflicting types for '__p___argv' > /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/s >tdlib.h:78: error: previous declaration of '__p___argv' was here This is MinGW-bug 2117379, already reported, and already fixed in CVS; (it comes to light when stdlib.h is #included before stdio.h, but not if stdio.h is #included before stdlib.h). Released source will be available with the upcoming mingwrt-3.15.1 bug fix release. Regards, Keith. |
From: Hin-Tak L. <hin...@ya...> - 2008-10-05 00:41:58
|
--- On Sat, 4/10/08, Keith Marshall <kei...@us...> wrote: <snipped> > > The actual error is this (neither specified - failing > during > > libgfortran): ------------- > > In file included from > > ../../../gcc-4.2.1-2-src/libgfortran/io/read.c:36: > > > /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/s > >tdio.h: In function 'fprintf': > > > /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/s > >tdio.h:245: error: conflicting types for > '__p___argv' > > > /var/tmp/mingw-1.5-1.fc9-root-Hin-Tak/opt/mingw/usr/local/include/s > >tdlib.h:78: error: previous declaration of > '__p___argv' was here > > This is MinGW-bug 2117379, already reported, and already > fixed in CVS; > (it comes to light when stdlib.h is #included before > stdio.h, but not > if stdio.h is #included before stdlib.h). Released source > will be > available with the upcoming mingwrt-3.15.1 bug fix release. Thanks - just rebuilt my mingw cross compiler without any __USE_MINGW_ANSI_STDIO specified, against mingwrt-3.15.1. |
From: Keith M. <kei...@us...> - 2008-10-05 08:17:57
|
On Sunday 05 October 2008 01:40:51 Hin-Tak Leung wrote: > Thanks - just rebuilt my mingw cross compiler without any > __USE_MINGW_ANSI_STDIO specified, against mingwrt-3.15.1. Good to know. Thanks, Keith. |