Hello,
I tried to compile OpenSSL 0.9.8-dev, as taken from
the snapshot dated 20021031 on a windows system. This
works, but only after some tweaks.
System information:
OS: Windows XP Pro
Compiler: MS Visual studio .NET
---
Notes on documentation files:
- The FAQ ("Why does the OpenSSL compilation fail on
Win32 with VC++?")refers to using VCVARS32.BAT. That
is the correct name for VC++6. For VS.NET (think of it
as 'VC++7'), the name is VSVARS32.BAT instead.
- Install.w32 refers to MASM and how it was included
in old versions of MSVC. It should be remarked that
the latest version of MSVC (VS.NET), includes MASM
again.
---
Errors during build (based on snapshot dated
20021031).
- a bunch of signed/unsigned mismatches. The code
compiles after adding some (int) casts. I have no clue
whether those are valid though. The affected lines
are:
"warning C4018: '<=' : signed/unsigned mismatch" in:
crypto\ec\ec2_smpl.c lines 173 174 198 203
crypto\bn\bn_gf2m.c lines 877 897
"warning C4018: '<' : signed/unsigned mismatch"
crypto\ec\ec2_mult.c line 349
- There is something wrong with the macros that
disable hardware support. Some parts of the build
procedure think it is not necessary to build the
hardware support engines, other parts still want to
use them. During the first link trial, I got a bunch
of 'unresolved external symbol' messages for these
exported functions:
ENGINE_load_4758cca
ENGINE_load_aep
ENGINE_load_atalla
ENGINE_load_chil
ENGINE_load_cswift
ENGINE_load_nuron
ENGINE_load_sureware
ENGINE_load_ubsec
Manually editing LIBEAY32.def to exclude those
exports fixes this, but I guess the scripts that
generate it should be adapted.
- By the way, I also got the following message:
ms/LIBEAY32.def(7) : warning LNK4017: DESCRIPTION
statement not supported for the target platform;
ignored
IIRC the 'DESCRIPTION' line in a .def file is a
remainder of the 16 bit era. It should not be there in
the 32 bit .def files.
- During the next link run 'unresolved external
symbol' messages related to the previous ones show up.
This time not from the exports (.def), but all of them
from 'eng_all.obj'. The missing symbols are exactly
the same as above.
Adding adding '-DOPENSSL_NO_HW' to CFLAG in the
makefile and recompiling fixes this, but once again, I
guess the scripts should be updated. (no change in
eng_all.c is needed).
After these changes, the libraries compile.
During compilation of the apps the following error
shows up:
apps\ca.c(97) : fatal error C1083: Cannot open
include file: 'sys/file.h': No such file or directory
A snapshot I used last week (20021022) did not have
this error. Without it, I would not have been able to
solve it... The error can be 'fixed' by putting the
include of "apps.h" back in its old position, after
<sys/stat.h> and before <openssl/conf.h>.
If the include was moved down for aesthetical
reasons, this fix should be OK (except for the
decreased aesthetics :-) ). If there was a different
reason then some deeper research is needed.
After this change everything compiles and the tests
run correctly.
__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]