[Qt-wince-interest] OpenSSL failing to build for a Qt 4.6/WinCE 5.0 target
Andreas Unger
andi.unger05 at gmail.com
Sat Jan 23 14:04:44 CET 2010
I got to the point where I was able to compile both wcecompat and
subsequently, OpenSSL. The last OpenSSL test did fail as you mentioned but
the libs were built alright. Now, when I configure Qt adding the flags -I
C:\Qt\openssl-0.9.8l\inc32 -L C:\Qt\openssl-0.9.8l\out32_MIPSII -openssl ,
the configure part goes well, but when I run nmake, I get an error saying
the 'errno.h' cannot be found.
Line 87 of err.h in the OpenSSL include folder contains this
statement #include <errno.h>. The issue is that errno.h is contained in the
wcecompat include folder. Since I can't include wcecompat when I'm building
Qt libraries because of the conflicts between the files in wcecompat and the
Qt source, errno.h cannot be found.
Any idea how I should go about fixing this?
Thanks,
Andreas
On Fri, Jan 22, 2010 at 11:58 AM, Maurice Kalinowski <
maurice.kalinowski at nokia.com> wrote:
> Hi,
>
> you're lucky that Friday has not ended yet :)
>
> Attached you can find some patches to both wcecompat and openssl to get at
> least the libraries compiling. The build process stops when compiling one of
> its tests, but I hope that the libraries are ok.
>
> Steps which need to be done after patching and compilation of wcecompat:
> 1. set WCECOMPAT=<path to wcecompat>
> 2. set PLATFORM=STANDARDSDK // you can basically use anything, it is
> getting ignored
> 3. ensure that ActiveState Perl is being used, not any perl used by mingw
> or such
> 4. perl Configure VC-CE
> 5. ms\do_ms.bat
> 6. nmake -f ms\cedll.mak
>
> This compiles the libraries dynamically. Might work for static version as
> well, haven't tried.
>
> In addition I would like to emphasize, that this is a spare time hack, not
> supported at all. Also it has only been tested for the MIPS II platform from
> Standard SDK for Windows CE 5.0. In case it works for you, I hope that
> someone is willing to provide a proper patch after cleanup :)
>
> Generally I think that we should remove the winsock stuff from wcecompat as
> basically all Windows CE 5 SDKs seem to have it. So my guess is, that this
> is some legacy code for Windows CE 4.2, which I guess nobody is using
> anymore these days.
>
> Hope it works for you and have fun with the patch.
>
> Best Regards,
> Maurice
>
> Andreas Unger wrote:
>
>>
>>
>> On Fri, Jan 22, 2010 at 9:51 AM, Maurice Kalinowski <
>> maurice.kalinowski at nokia.com <mailto:maurice.kalinowski at nokia.com>>
>> wrote:
>>
>> Could you please point me to the OpenSSL version you are using, so
>> that
>> I can have a look at it?
>> Download link would be perfect.
>>
>> Best Regards,
>> Maurice
>>
>>
>> Here it is: http://www.openssl.org/source/openssl-0.9.8l.tar.gz
>>
>> It's basically the latest release from this page:
>> http://www.openssl.org/source/
>>
>> >
>> > C:\Program Files (x86)\Windows CE
>> > Tools\wce500\STANDARDSDK_500\include\MIPSII\winsock2.h(233) : error
>> > C2011: 'servent' : 'struct' type redefinition
>> >
>> > C:\Qt\mauricek-wcecompat/include\winsock_extras.h(30) : see
>> > declaration of 'servent'
>> >
>> > C:\Program Files (x86)\Windows CE
>> > Tools\wce500\STANDARDSDK_500\include\MIPSII\winsock2.h(2186) : error
>> > C2375: 'getservbyname' : redefinition; different linkage
>> >
>> > C:\Qt\mauricek-wcecompat/include\winsock_extras.h(37) : see
>> > declaration of 'getservbyname' NMAKE : fatal error U1077:
>> '"C:\Program
>> > Files (x86)\Microsoft Visual Studio
>> 9.0\VC\ce\bin\x86_mips\cl.EXE"' :
>> > return code '0x2'
>> > Stop.
>> >
>> > On Fri, Jan 22, 2010 at 9:27 AM, Pablo Rogina <pablojr at gmail.com
>> <mailto:pablojr at gmail.com>
>> > <mailto:pablojr at gmail.com <mailto:pablojr at gmail.com>>> wrote:
>> >
>> > > Maurice, I can't thank you enough! It works :-)
>> >
>> > Kudos for Maurice, and the one who approved the Creative
>> Fridays!
>> >
>> > Andreas, I understand that you are now able to build Qt with
>> OpenSSL
>> > support for WinCE, aren't you?
>> >
>> > If so, could it be possibel that you document all the steps done
>> > so far?
>> >
>> > Thanks.
>> >
>> > Pablo Rogina
>> > _______________________________________________
>> > Qt-wince-interest mailing list
>> > Qt-wince-interest at trolltech.com
>> <mailto:Qt-wince-interest at trolltech.com>
>> > <mailto:Qt-wince-interest at trolltech.com
>> <mailto:Qt-wince-interest at trolltech.com>>
>> > http://lists.trolltech.com/mailman/listinfo/qt-wince-interest
>> >
>> >
>> >
>>
>> ------------------------------------------------------------------------
>> >
>> > _______________________________________________
>> > Qt-wince-interest mailing list
>> > Qt-wince-interest at trolltech.com
>> <mailto:Qt-wince-interest at trolltech.com>
>> > http://lists.trolltech.com/mailman/listinfo/qt-wince-interest
>> >
>>
>>
>> --
>> Maurice Kalinowski
>> Nokia, Qt Development Frameworks
>> Rudower Chaussee 13, 12489 Berlin, Germany
>> Email : maurice.kalinowski at nokia.com
>> <mailto:maurice.kalinowski at nokia.com>
>>
>> Phone : (+49) 30 6392 3255
>> Fax : (+49) 30 6392 3256
>> http://qt.nokia.com/
>>
>> Nokia gate5 GmbH
>> Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
>> Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
>> Umsatzsteueridentifikationsnummer: DE 812 845 193
>> Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori
>>
>> _______________________________________________
>> Qt-wince-interest mailing list
>> Qt-wince-interest at trolltech.com
>> <mailto:Qt-wince-interest at trolltech.com>
>> http://lists.trolltech.com/mailman/listinfo/qt-wince-interest
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Qt-wince-interest mailing list
>> Qt-wince-interest at trolltech.com
>> http://lists.trolltech.com/mailman/listinfo/qt-wince-interest
>>
>>
>
>
> --
> Maurice Kalinowski
> Nokia, Qt Development Frameworks
> Rudower Chaussee 13, 12489 Berlin, Germany
> Email : maurice.kalinowski at nokia.com
> Phone : (+49) 30 6392 3255
> Fax : (+49) 30 6392 3256
> http://qt.nokia.com/
>
> Nokia gate5 GmbH
> Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
> Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
> Umsatzsteueridentifikationsnummer: DE 812 845 193
> Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori
>
>
> diff --git a/include/errno.h b/include/errno.h
> index 5ec05ff..41158df 100644
> --- a/include/errno.h
> +++ b/include/errno.h
> @@ -124,18 +124,18 @@ extern int errno;
> #define EDEADLK 36
> #define EDEADLOCK EDEADLK
> #endif
> -#ifndef ENAMETOOLONG
> -#define ENAMETOOLONG 38
> -#endif
> +//#ifndef ENAMETOOLONG
> +//#define ENAMETOOLONG 38
> +//#endif
> #ifndef ENOLCK
> #define ENOLCK 39
> #endif
> #ifndef ENOSYS
> #define ENOSYS 40
> #endif
> -#ifndef ENOTEMPTY
> -#define ENOTEMPTY 41
> -#endif
> +//#ifndef ENOTEMPTY
> +//#define ENOTEMPTY 41
> +//#endif
>
> #ifndef EINVAL
> #define EINVAL 22
> diff --git a/include/io.h b/include/io.h
> index 27faeb4..7691856 100644
> --- a/include/io.h
> +++ b/include/io.h
> @@ -43,7 +43,9 @@ FILE* _wcefdopen( int handle, const char *mode );
> #define _open _wceopen
> #define close _wceclose
> #define read _wceread
> +#define _read _wceread
> #define write _wcewrite
> +#define _write _wcewrite
> #define lseek _wcelseek
> #define _lseek _wcelseek
> #define unlink _wceunlink
> diff --git a/include/winsock_extras.h b/include/winsock_extras.h
> index 62f0f5b..9bb4a00 100644
> --- a/include/winsock_extras.h
> +++ b/include/winsock_extras.h
> @@ -22,25 +22,16 @@
> #ifndef __wcecompat__WINSOCK_EXTRAS_H__
> #define __wcecompat__WINSOCK_EXTRAS_H__
>
> -
> #ifdef __cplusplus
> extern "C" {
> #endif
>
> -struct servent {
> - char* s_name;
> - char** s_aliases;
> - short int s_port;
> - char* s_proto;
> -} servent;
> -
> -struct servent* getservbyname(const char* name, const char* proto);
> -
> +#include <winsock2.h>
>
> +//struct servent* getservbyname(const char* name, const char* proto);
>
> #ifdef __cplusplus
> }
> #endif
>
> -
> #endif // __wcecompat__WINSOCK_EXTRAS_H__
> diff --git a/src/winsock_extras.cpp b/src/winsock_extras.cpp
> index c7ff990..16affdb 100644
> --- a/src/winsock_extras.cpp
> +++ b/src/winsock_extras.cpp
> @@ -173,6 +173,7 @@ static struct sserv _serv_table[142]={
> 10012, "udp", "qmaster",
> };
>
> +#if 0
> struct servent* getservbyname(const char* name,
> const char* proto)
> {
> @@ -204,3 +205,4 @@ struct servent* getservbyname(const char* name,
>
> return &se;
> }
> +#endif
>
> diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c
> index d108353..35da0c3 100644
> --- a/crypto/rand/randfile.c
> +++ b/crypto/rand/randfile.c
> @@ -72,6 +72,9 @@
> #ifdef OPENSSL_SYS_VMS
> #include <unixio.h>
> #endif
> +#ifdef OPENSSL_SYS_WINCE
> +#include <io.h>
> +#endif
> #ifndef NO_SYS_TYPES_H
> # include <sys/types.h>
> #endif
> @@ -81,7 +84,7 @@
> # include <sys/stat.h>
> #endif
>
> -#ifdef _WIN32
> +#if defined(_WIN32) && !defined(OPENSSL_SYS_WINCE)
> #define stat _stat
> #define chmod _chmod
> #define open _open
> diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c
> index 341e0ba..ef0201f 100644
> --- a/crypto/x509/by_dir.c
> +++ b/crypto/x509/by_dir.c
> @@ -74,7 +74,7 @@
> #include <openssl/lhash.h>
> #include <openssl/x509.h>
>
> -#ifdef _WIN32
> +#if defined(_WIN32) && !defined(OPENSSL_SYS_WINCE)
> #define stat _stat
> #endif
>
> diff --git a/e_os.h b/e_os.h
> index 9c5c6fd..f4cab37 100644
> --- a/e_os.h
> +++ b/e_os.h
> @@ -322,6 +322,8 @@ static unsigned int _strlen31(const char *str)
> # include <fcntl.h>
>
> # ifdef OPENSSL_SYS_WINCE
> +# include <winsock2.h>
> +# include <errno.h>
> # include <winsock_extras.h>
> # endif
>
> @@ -480,7 +482,11 @@ static unsigned int _strlen31(const char *str)
> # define SHUTDOWN(fd) close(fd)
> # define SHUTDOWN2(fd) close(fd)
> # elif !defined(__DJGPP__)
> +# if !defined(_WIN32_WCE)
> # include <winsock.h>
> +# else
> +# include <winsock2.h>
> +# endif
> extern HINSTANCE _hInstance;
> # ifdef _WIN64
> /*
> diff --git a/ssl/ssltest.c b/ssl/ssltest.c
> index b09c542..4dd96a3 100644
> --- a/ssl/ssltest.c
> +++ b/ssl/ssltest.c
> @@ -161,8 +161,12 @@
> */
>
> #ifdef OPENSSL_SYS_WINDOWS
> +# ifndef OPENSSL_SYS_WINCE
> #include <winsock.h>
> #else
> +# include <winsock2.h>
> +# endif
> +#else
> #include OPENSSL_UNISTD
> #endif
>
> diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl
> index 85121c8..06e6cf6 100644
> --- a/util/pl/VC-32.pl
> +++ b/util/pl/VC-32.pl
> @@ -65,6 +65,7 @@ elsif ($FLAVOR =~ /CE/)
> die '%OSVERSION% value is insane' if ($wcevers !~
> /^WCE([1-9])([0-9]{2})$/);
> $wcecdefs = "-D_WIN32_WCE=$1$2 -DUNDER_CE=$1$2"; # -D_WIN32_WCE=NNN
> $wcelflag = "/subsystem:windowsce,$1.$2"; # ...,N.NN
> + $wcelflag .= " /NODEFAULTLIB:OLDNAMES.LIB coredll.lib ws2.lib
> corelibc.lib";
>
> $wceplatf = $ENV{'PLATFORM'};
> $wceplatf =~ tr/a-z0-9 /A-Z0-9_/d;
>
> _______________________________________________
> Qt-wince-interest mailing list
> Qt-wince-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-wince-interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt-wince-interest/attachments/20100123/15772e40/attachment.html
More information about the Qt-wince-interest
mailing list