On Mon, 10 Nov 2008, Richard W.M. Jones wrote:
These five patches enable libssh2 to be cross-compiled from a Fedora Linux system to Windows using Fedora's new MinGW cross-compiler:
Unfortunately I can't say the same about doing the build with the Debian mingw compiler.
I proceeded like I build several other packages cross-compiled on linux for windows. This script ran:
mkdir win32-build rm -rf win32-build/* cd win32-build # to find 3rd party libs: LDFLAGS=-L/home/dast/src/win32 CFLAGS="-I/home/dast/src/win32/include -Os" export LDFLAGS export CFLAGS../configure --host=i586-mingw32msvc --target=i586-mingw32msvc --disable-shared --with-random=notused --with-zlib #--enable-ares
make The first 400 lines of output is shown in the attachment.It seems to be something about sys/select.h and windows.h both being included, but I didn't spend a lot of time on this analysis.
-- / daniel.haxx.se
make: *** No rule to make target `distclean'. Stop. configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking whether to enable maintainer-specific portions of Makefiles... no checking for sed... /bin/sed checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking for i586-mingw32msvc-strip... i586-mingw32msvc-strip checking libssh2 version... 0.19.0_CVS checking build system type... x86_64-unknown-linux-gnu checking host system type... i586-pc-mingw32msvc configure: autobuild project... libssh2 configure: autobuild revision... 0.19.0_CVS configure: autobuild hostname... labb configure: autobuild timestamp... 20081110-223629 checking host system type... (cached) i586-pc-mingw32msvc checking for style of include used by make... GNU checking for i586-mingw32msvc-gcc... i586-mingw32msvc-gcc checking for C compiler default output file name... a.exe checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... .exe checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether i586-mingw32msvc-gcc accepts -g... yes checking for i586-mingw32msvc-gcc option to accept ISO C89... none needed checking dependency style of i586-mingw32msvc-gcc... gcc3 checking how to run the C preprocessor... i586-mingw32msvc-gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for long long... yes checking for library containing socket... no checking for library containing inet_addr... no checking for i586-mingw32msvc-gcc... (cached) i586-mingw32msvc-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether i586-mingw32msvc-gcc accepts -g... (cached) yes checking for i586-mingw32msvc-gcc option to accept ISO C89... (cached) none needed checking dependency style of i586-mingw32msvc-gcc... (cached) gcc3 checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for a sed that does not truncate output... /bin/sed checking for ld used by i586-mingw32msvc-gcc... /usr/i586-mingw32msvc/bin/ld checking if the linker (/usr/i586-mingw32msvc/bin/ld) is GNU ld... yes checking for /usr/i586-mingw32msvc/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/i586-mingw32msvc-nm -B checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL checking for i586-mingw32msvc-dlltool... i586-mingw32msvc-dlltool checking for i586-mingw32msvc-as... i586-mingw32msvc-as checking for i586-mingw32msvc-objdump... i586-mingw32msvc-objdump checking dlfcn.h usability... no checking dlfcn.h presence... no checking for dlfcn.h... no checking for i586-mingw32msvc-g++... i586-mingw32msvc-g++ checking whether we are using the GNU C++ compiler... yes checking whether i586-mingw32msvc-g++ accepts -g... yes checking dependency style of i586-mingw32msvc-g++... gcc3 checking how to run the C++ preprocessor... i586-mingw32msvc-g++ -E checking for i586-mingw32msvc-g77... no checking for i586-mingw32msvc-xlf... no checking for i586-mingw32msvc-f77... no checking for i586-mingw32msvc-frt... no checking for i586-mingw32msvc-pgf77... no checking for i586-mingw32msvc-cf77... no checking for i586-mingw32msvc-fort77... no checking for i586-mingw32msvc-fl32... no checking for i586-mingw32msvc-af77... no checking for i586-mingw32msvc-xlf90... no checking for i586-mingw32msvc-f90... no checking for i586-mingw32msvc-pgf90... no checking for i586-mingw32msvc-pghpf... no checking for i586-mingw32msvc-epcf90... no checking for i586-mingw32msvc-gfortran... no checking for i586-mingw32msvc-g95... no checking for i586-mingw32msvc-xlf95... no checking for i586-mingw32msvc-f95... no checking for i586-mingw32msvc-fort... no checking for i586-mingw32msvc-ifort... no checking for i586-mingw32msvc-ifc... no checking for i586-mingw32msvc-efc... no checking for i586-mingw32msvc-pgf95... no checking for i586-mingw32msvc-lf95... no checking for i586-mingw32msvc-ftn... no checking for g77... no checking for xlf... no checking for f77... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for xlf90... no checking for f90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for xlf95... no checking for f95... no checking for fort... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 98304 checking command to parse /usr/bin/i586-mingw32msvc-nm -B output from i586-mingw32msvc-gcc object... ok checking for objdir... .libs checking for i586-mingw32msvc-ar... i586-mingw32msvc-ar checking for i586-mingw32msvc-ranlib... i586-mingw32msvc-ranlib checking for i586-mingw32msvc-strip... (cached) i586-mingw32msvc-strip checking if i586-mingw32msvc-gcc supports -fno-rtti -fno-exceptions... no checking for i586-mingw32msvc-gcc option to produce PIC... -DDLL_EXPORT checking if i586-mingw32msvc-gcc PIC flag -DDLL_EXPORT works... yes checking if i586-mingw32msvc-gcc static flag -static works... yes checking if i586-mingw32msvc-gcc supports -c -o file.o... yes checking whether the i586-mingw32msvc-gcc linker (/usr/i586-mingw32msvc/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by i586-mingw32msvc-g++... /usr/i586-mingw32msvc/bin/ld checking if the linker (/usr/i586-mingw32msvc/bin/ld) is GNU ld... yes checking whether the i586-mingw32msvc-g++ linker (/usr/i586-mingw32msvc/bin/ld) supports shared libraries... yes checking for i586-mingw32msvc-g++ option to produce PIC... -DDLL_EXPORT checking if i586-mingw32msvc-g++ PIC flag -DDLL_EXPORT works... yes checking if i586-mingw32msvc-g++ static flag -static works... yes checking if i586-mingw32msvc-g++ supports -c -o file.o... yes checking whether the i586-mingw32msvc-g++ linker (/usr/i586-mingw32msvc/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... Win32 ld.exe (cached) (cached) checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking whether byte ordering is bigendian... no checking for pkg-config... /usr/bin/pkg-config checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... unknown checking for _LARGE_FILES value needed for large files... unknown checking for OpenSSL... Using paths from pkg-config checking for libz... Found in /usr/include /usr/lib checking whether to enable pedantic and debug compiler options... no checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking stdio.h usability... yes checking stdio.h presence... yes checking for stdio.h... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking sys/uio.h usability... yes checking sys/uio.h presence... no configure: WARNING: sys/uio.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/uio.h: proceeding with the compiler's result checking for sys/uio.h... yes checking sys/select.h usability... yes checking sys/select.h presence... no configure: WARNING: sys/select.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/select.h: proceeding with the compiler's result checking for sys/select.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... no configure: WARNING: sys/socket.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/socket.h: proceeding with the compiler's result checking for sys/socket.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... no configure: WARNING: sys/ioctl.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/ioctl.h: proceeding with the compiler's result checking for sys/ioctl.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... no configure: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: arpa/inet.h: proceeding with the compiler's result checking for arpa/inet.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... no configure: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: netinet/in.h: proceeding with the compiler's result checking for netinet/in.h... yes checking windows.h usability... no checking windows.h presence... yes configure: WARNING: windows.h: present but cannot be compiled configure: WARNING: windows.h: check for missing prerequisite headers? configure: WARNING: windows.h: see the Autoconf documentation configure: WARNING: windows.h: section "Present But Cannot Be Compiled" configure: WARNING: windows.h: proceeding with the preprocessor's result configure: WARNING: windows.h: in the future, the compiler will take precedence configure: WARNING: ## -------------------------------------------------- ## configure: WARNING: ## Report this to libssh2-devel@lists.sourceforge.net ## configure: WARNING: ## -------------------------------------------------- ## checking for windows.h... yes checking ws2tcpip.h usability... no checking ws2tcpip.h presence... yes configure: WARNING: ws2tcpip.h: present but cannot be compiled configure: WARNING: ws2tcpip.h: check for missing prerequisite headers? configure: WARNING: ws2tcpip.h: see the Autoconf documentation configure: WARNING: ws2tcpip.h: section "Present But Cannot Be Compiled" configure: WARNING: ws2tcpip.h: proceeding with the preprocessor's result configure: WARNING: ws2tcpip.h: in the future, the compiler will take precedence configure: WARNING: ## -------------------------------------------------- ## configure: WARNING: ## Report this to libssh2-devel@lists.sourceforge.net ## configure: WARNING: ## -------------------------------------------------- ## checking for ws2tcpip.h... yes checking winsock2.h usability... no checking winsock2.h presence... yes configure: WARNING: winsock2.h: present but cannot be compiled configure: WARNING: winsock2.h: check for missing prerequisite headers? configure: WARNING: winsock2.h: see the Autoconf documentation configure: WARNING: winsock2.h: section "Present But Cannot Be Compiled" configure: WARNING: winsock2.h: proceeding with the preprocessor's result configure: WARNING: winsock2.h: in the future, the compiler will take precedence configure: WARNING: ## -------------------------------------------------- ## configure: WARNING: ## Report this to libssh2-devel@lists.sourceforge.net ## configure: WARNING: ## -------------------------------------------------- ## checking for winsock2.h... yes checking for poll... no checking for gettimeofday... yes checking for select... no checking for strtoll... yes checking for windows.h... (cached) yes checking for winsock2.h... (cached) yes checking for ws2tcpip.h... (cached) yes checking for select in ws2_32... yes checking for working alloca.h... yes checking for alloca... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking non-blocking sockets style... O_NONBLOCK configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating example/Makefile config.status: creating example/simple/Makefile config.status: creating docs/Makefile config.status: creating src/libssh2_config.h config.status: executing depfiles commands Making all in src make[1]: Entering directory `/home/dast/src/libssh2/win32-build/src' make all-am make[2]: Entering directory `/home/dast/src/libssh2/win32-build/src' if /bin/sh ../libtool --tag=CC --mode=compile i586-mingw32msvc-gcc -DHAVE_CONFIG_H -I../../include -I../src -I/home/dast/src/win32/include -Os -DLIBSSH2_WIN32 -DWINSOCK_VERSION=0x0200 -I/usr/include -MT channel.lo -MD -MP -MF ".deps/channel.Tpo" -c -o channel.lo ../../src/channel.c; \ then mv -f ".deps/channel.Tpo" ".deps/channel.Plo"; else rm -f ".deps/channel.Tpo"; exit 1; fi i586-mingw32msvc-gcc -DHAVE_CONFIG_H -I../../include -I../src -I/home/dast/src/win32/include -Os -DLIBSSH2_WIN32 -DWINSOCK_VERSION=0x0200 -I/usr/include -MT channel.lo -MD -MP -MF .deps/channel.Tpo -c ../../src/channel.c -o channel.o In file included from /usr/include/sys/select.h:46, from /usr/include/sys/types.h:220, from /usr/include/stdlib.h:320, from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/objbase.h:12, from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/ole2.h:9, from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:114, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/include/bits/time.h:70: error: redefinition of 'struct timeval' In file included from /usr/include/sys/types.h:220, from /usr/include/stdlib.h:320, from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/objbase.h:12, from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/ole2.h:9, from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:114, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/include/sys/select.h:78: error: conflicting types for 'fd_set' /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:64: error: previous declaration of 'fd_set' was here /usr/include/sys/select.h:112: error: conflicting types for 'select' /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:632: error: previous declaration of 'select' was here In file included from /usr/include/sys/uio.h:29, from ../../src/libssh2_priv.h:105, from ../../src/channel.c:38: /usr/include/bits/uio.h:45: error: redefinition of 'struct iovec' In file included from ../../src/libssh2_priv.h:105, from ../../src/channel.c:38: /usr/include/sys/uio.h:50: error: conflicting types for 'writev' ../../src/libssh2_priv.h:93: error: previous definition of 'writev' was here In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:37: error: conflicting types for 'socklen_t' /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/ws2tcpip.h:272: error: previous declaration of 'socklen_t' was here /usr/include/bits/socket.h:44: error: expected identifier before numeric constant In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:46:1: warning: "SOCK_STREAM" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:298:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:49:1: warning: "SOCK_DGRAM" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:299:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:51:1: warning: "SOCK_RAW" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:300:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:53:1: warning: "SOCK_RDM" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:301:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:56:1: warning: "SOCK_SEQPACKET" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:302:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:64:1: warning: "PF_UNSPEC" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:368:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:66:1: warning: "PF_UNIX" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:369:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:68:1: warning: "PF_INET" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:370:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:70:1: warning: "PF_IPX" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:375:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:71:1: warning: "PF_APPLETALK" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:386:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:76:1: warning: "PF_INET6" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38: /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/winsock2.h:392:1: warning: this is the location of the previous definition In file included from /usr/include/sys/socket.h:36, from ../../src/libssh2_priv.h:109, from ../../src/channel.c:38: /usr/include/bits/socket.h:78:1: warning: "PF_DECnet" redefined In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/windows.h:98, from ../../src/libssh2_priv.h:45, from ../../src/channel.c:38:
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________ libssh2-devel mailing list libssh2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libssh2-devel