Apologies in advance if these have already been fixed in beta6!

I compiled openssl 0.9.8 beta4 in Windows 2000, with Borland C++ 5.5.1
(static library version, not DLL).
Here's a list of problems I encountered on the way: (sorry, I'm not sure
how to make proper Patch format things, and didn't have time to fully
investigate all the problems).

1) There were 9 duplicate entries in Makefile starting at line 559:

$(INCL_D)\e_4758cca_err.h: $(SRC_D)\engines\e_4758cca_err.h
$(CP) $(SRC_D)\engines\e_4758cca_err.h $(INCL_D)\e_4758cca_err.h

etc. This caused 'make' to complain that 2 rules existed for one
target. I fixed it by deleting those entries.

I think this is a problem with the template that generates the Makefiles.

2) Some source files bail out with 'Too many warnings or errors'. The
warnings in question are not important.
This can be fixed by adding these C flags in the Makefile:
-w-ccc -w-rch -w-pia
Alternatively, add
which will disable the 'Too many warnings or errors' bailou.

3) When building libeay32.lib there were the following warnings. However
it still seemed to build correctly, so I don't know if they are serious
or not:

Warning: public '_d2i_ECPKParameters' in module 'ec_asn1' clashes with
prior module 'ec_asn1'
Warning: public '_i2d_ECPKParameters' in module 'ec_asn1' clashes with
prior module 'ec_asn1'
Warning: public '_ERR_load_crypto_strings' in module 'err_all' clashes
with prior module 'cpt_err'
Warning: public '_OCSP_crlID_new' in module 'ocsp_ext' clashes with
prior module 'ocsp_asn'

4) In the Makefile line 2710, it (remarkably) creates the .lib files by
calling the librarian program once for each object file. This means it
chews the hard disk and takes 20 minutes to build the .lib once it's
finished building all the object files!
Better is to only call the librarian once, using the following syntax
(which I got from the Borland 'make' documentation):

-$(RM) $(O_SSL)
$(MKLIB) $(O_SSL) @&&!
+$(**: = &^

-$(RM) $(O_CRYPTO)
$(MKLIB) $(O_CRYPTO) @&&!
+$(**: = &^

5) Applications which include openssl/ssl.h fail to compile, because of
inc32/openssl/bn.h line 170:
# define BN_ULLONG unsigned _int64

I think this is a typo for __int64 (which works correctly).

6) The linker fails with:

ilink32 -ap -Tpe -x -Gn tmp32\md2test.obj c0x32.obj,
out32\md2test.exe,, out32\ssleay32.lib out32\libeay32.lib cw32mt.lib
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unsupported 16-bit segment(s) in module .\crypto\sha\asm\s1_win32.asm

I researched and found the problem is that NASM defaults to 16 bit text
so a fix is to modify crypto/perlasm/x86nasm.pl line 266 to read:
push(@out,"section\t.text use32\n");
instead of
I don't know if this will impact on any other builds; but I think NASM
is not borland-specific, so this fix might even improve them by using
32-bit segments.
I incidentally noted that nasmw.exe 0.98.38 has an optimisation switch
-- would it be worthwhile using that?

7) When using DES in an application, I got a linker error:
[Linker Error] Unresolved external '_DES_SPtrans' referenced from
but destest.exe compiled and ran correctly.
This error went away after a while, so I suspect it might have just been
an IDE bug at my end (but I'll mention it anyway in case anyone else had
the same problem).

Finally, thanks to everyone who gives up their time to make such a great
product for the rest of us to use !!

__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org