c++opensslc++builderborland-c++

Building OpenSSL under Borland C++ Builder, Win 8.1


I'm following the instructions from INSTALL.W32 (various OpenSSL versions), in general it's:

 * Configure for building with Borland Builder:
   > perl Configure BC-32

 * Create the appropriate makefile
   > ms\do_nasm

 * Build
   > make -f ms\bcb.mak

Now, I do get two kind of errors when trying to build:

For OpenSSL < 1.0.0

nasmw -f obj -d__omf__ -ocrypto\md5\asm\m5_win32.obj .\crypto\md5\asm\m5_win32.asm
'nasmw' is not recognized as an internal or external command,
operable program or batch file.

Otherwise

Warning W8017 C:\CBuilder5\Include\sys/stat.h 34: Redefinition of 'S_IFMT' is not identical
Warning W8017 C:\CBuilder5\Include\sys/stat.h 35: Redefinition of 'S_IFDIR' is not identical
Error E2227 .\crypto\rand\randfile.c 226: Extra parameter in call to _open in function RAND_write_file
Warning W8053 .\crypto\rand\randfile.c 262: '_chmod(const signed char *,int,...)' is obsolete in function RAND_write_file
*** 1 errors in Compile ***

Yes, I feel bad for using Borland C++ Builder 5 but I can't do anything about it, and yes, I consider the Shining Light option if everything else fails.


Solution

  • The solution for the newest version (1.0.2d) was to:

    1. remove the extra parameter from randfile (which, as comment stated, was unnecessary),
    2. edit ms\bcb.mak, search for -DMD5_ASM -DSHA1_ASM -DRMD160_ASM and change to -DMD5_NO_ASM -DSHA1_NO_ASM -DRMD160_NO_ASM . (there was an unresolved external error with SHA, MD5 and RMD160, they basically couldn't be compiled in asm).

    There were some other steps included as well, but they're just specific to my environment.