I am trying to build a recent OpenSSL release (0.9.8j) on OpenVMS (both Integrity Server and Alpha Server hardware platforms). I am having undefined symbol problems.

The issue occurs both linking applications and also linking the CRYPTO shared image library. The link symbol warnings are:

%ILINK-W-USEUNDEF, AES_UNWRAP_KEY referenced
%ILINK-W-USEUNDEF, AES_WRAP_KEY referenced
%ILINK-W-USEUNDEF, BN_X931_DERIVE_PRIME_EX referenced
%ILINK-W-USEUNDEF, BN_X931_GENERATE_PRIME_EX referenced
%ILINK-W-USEUNDEF, BN_X931_GENERATE_XPQ referenced
%ILINK-W-USEUNDEF, DES_OPTIONS referenced
%ILINK-W-USEUNDEF, INT_SMIME_WRITE_ASN1 referenced
%ILINK-W-USEUNDEF, OSSL_LIBDES_VERSION referenced                ***
%ILINK-W-USEUNDEF, SMIME_CRLF_COPY referenced
%ILINK-W-USEUNDEF, SMIME_READ_ASN1 referenced
%ILINK-W-USEUNDEF, SMIME_TEXT referenced

The vector references for LIBCRYPTOSHR.EXE are:

%ILINK-W-USEUNDEFSYMV, AES_UNWRAP_KEY referenced
%ILINK-W-USEUNDEFSYMV, AES_WRAP_KEY referenced
%ILINK-W-USEUNDEFSYMV, BN_OPTIONS referenced                     ***
%ILINK-W-USEUNDEFSYMV, BN_X931_DERIVE_PRIME_EX
%ILINK-W-USEUNDEFSYMV, BN_X931_GENERATE_PRIME_EX
%ILINK-W-USEUNDEFSYMV, BN_X931_GENERATE_XPQ referenced
%ILINK-W-USEUNDEFSYMV, DES_OPTIONS referenced
%ILINK-W-USEUNDEFSYMV, INT_CRYPTO_SET_DO_DYNLOCK_CALLBACK refer  ***
%ILINK-W-USEUNDEFSYMV, INT_SMIME_WRITE_ASN1 referenced
%ILINK-W-USEUNDEFSYMV, SMIME_CRLF_COPY referenced
%ILINK-W-USEUNDEFSYMV, SMIME_READ_ASN1 referenced
%ILINK-W-USEUNDEFSYMV, SMIME_TEXT referenced

These two lists are not identical, but closely overlap. Asterisks in these lists indicate symbols which appear in only one of the lists.

I have looked at the header files, and which C source (and header) files include them and in what order. I don't see a problem with the specification of external symbols.

I am a bit confused by some of what I see in the header files. For example, there [.crypto.des]des_verh. starts with these definitions:
   #define DES_version OSSL_DES_version
   #define libdes_version OSSL_libdes_version
which define the short names as the long names. I am much more accustomed (particularly on VMS) to #define statements which define long symbol names to be replaced by shorter symbol names. in the case of these two version functions, the ones actually in the C code are the longer versions. And the long version of the second one, OSSL_libdes_version, is one of the undefined symbols.

I would be most grateful for any guidance anyone can offer on this problem.

Thanks in advance!
Sue Abercrombie
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to