[PATCH] fix winsock2.h include order in ada/gsocket.h

Ozkan Sezer sezeroz@gmail.com
Sat Apr 10 17:18:00 GMT 2010


On Sat, Apr 10, 2010 at 7:40 PM, Arnaud Charlet <charlet@adacore.com> wrote:
>> PING.
>
> Can you clarify what kind of build failure you got? We didn't get any build
> failure building mingw-w64 at AdaCore with the current gsocket.h.
>
> Also, which version of mingw are you using?
>
> Arno
>

Several definitions in winsock2.h, such as fd_set, clash with the
ones from winsock.h. excerpts from the bug report by Rainer Emrich:

gmake[3]: Entering directory `/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/gcc'
mkdir -p ada/bldtools/oscons
rm -f ada/bldtools/oscons/s-oscons-tmplt.c
ada/bldtools/oscons/gsocket.h ada/bldtools/oscons/xoscons.adb
ada/bldtools/oscons/xutil.ads ada/bldtools/oscons/xutil.adb
cp -p /opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/gcc/ada/s-oscons-tmplt.c
/opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/gcc/ada/gsocket.h
/opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/gcc/ada/xoscons.adb
/opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/gcc/ada/xutil.ads
/opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/gcc/ada/xutil.adb
ada/bldtools/oscons
(cd ada/bldtools/oscons ; gnatmake -q xoscons ; \
		rm -f s-oscons-tmplt.i s-oscons-tmplt.s ; \
		`echo "/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/./gcc/xgcc
-B/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/./gcc/
-L/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/i686-w64-mingw32/winsup/mingw
-L/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/i686-w64-mingw32/winsup/w32api/lib
-isystem /opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/winsup/mingw/include
-isystem /opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/winsup/w32api/include
-B/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/bin/
-B/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/lib/
-isystem /opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include
-isystem /opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/sys-include"
| sed -e 's^\./xgcc^../../../xgcc^' -e 's^-B./^-B../../../^'`  -E -C
-DTARGET=\"i686-w64-mingw32\" s-oscons-tmplt.c > s-oscons-tmplt.i ; \
		`echo "/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/./gcc/xgcc
-B/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/./gcc/
-L/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/i686-w64-mingw32/winsup/mingw
-L/SCRATCH/tmp.qyxCWqTlSR/gcc-4.4.3/gcc-4.4.3/i686-w64-mingw32/winsup/w32api/lib
-isystem /opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/winsup/mingw/include
-isystem /opt/devel/gnu/src/gcc-mingw-w64/gcc-4.4.3/winsup/w32api/include
-B/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/bin/
-B/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/lib/
-isystem /opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include
-isystem /opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/sys-include"
| sed -e 's^\./xgcc^../../../xgcc^' -e 's^-B./^-B../../../^'`  -S
s-oscons-tmplt.i ; \
		./xoscons ; \
		rm -f ../../s-oscons.ads ; \
		cp -p s-oscons.ads ../../s-oscons.ads)
In file included from gsocket.h:79,
                 from s-oscons-tmplt.c:94:
/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include/winsock2.h:50:
error: redefinition of ‘struct fd_set’
/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include/winsock2.h:53:
error: conflicting types for ‘fd_set’
/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include/winsock.h:27:
note: previous declaration of ‘fd_set’ was here
/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include/winsock2.h:55:
error: conflicting types for ‘__WSAFDIsSet’
/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_11.2/cross/MINGW32_NT-5.2/i686-w64-mingw32/mingw-w64-runtime-1.0-svn/gcc-4.4.3/i686-w64-mingw32/include/winsock.h:33:
note: previous declaration of ‘__WSAFDIsSet’ was here

The problem surfaces with mingw-w64-headers svn revision
2078 or later (trunk), or with svn revision 2133 or later
(v1.0 release branch). The headers you are using are probably
from an older revision.

--
Ozkan



More information about the Gcc-patches mailing list