Hi,
        I am hoping somebody can set me straight on this.  I haven't
been able to figure it out over the last few days.

        I have ported to 0.9.8E from 0.9.7E, and am having trouble getting the
CRYPTO shareable image to link.  Probably serves me right for waiting for so 
long to port. ;-)
I am trying to do this on OpenVMS V7.3-2, with DEC C V7.1.  The error that I am 
seeing
is shown below.  To me, it looks like there is no global declaration of 
V_CHECK, only
external declarations:

$ search crypto$res:[ossl.build_0300_alpha_64]makevms.log "-W-"
%LINK-W-NUDFSYMS, 9 undefined symbols:
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_UBSEC referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_CSWIFT referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_NURON referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_CHIL referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_ATALLA referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_AEP referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_SUREWARE referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_4758CCA referenced
        in symbol vector option
%LINK-W-USEUNDEFSYMV, undefined symbol ENGINE_LOAD_GMP referenced
        in symbol vector option
%LINK-W-SHRWRNERS, compilation warnings
        in shareable image file 
CRYPTO$RES:[OSSL.BUILD_0300_ALPHA_64.ALPHA.EXE.CRYPTO]SSL$LIBCRYPTO_SHR.EXE;11
$

I also found the following change in the CVS history for ENGINE.H.  To me this 
looks
like it is changing V_CHECK from a global declaration to an external reference:

--- engine.h    2005/07/16 11:13:06     1.57.2.1
+++ engine.h    2005/11/06 17:48:59     1.57.2.2
@@ -637,7 +637,7 @@
  * can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */
 typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
 #define IMPLEMENT_DYNAMIC_CHECK_FN() \
-       unsigned long v_check(unsigned long v) { \
+       OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \
                if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
                return 0; }

@@ -659,6 +659,7 @@
 typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id,
                                const dynamic_fns *fns);
 #define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
+       OPENSSL_EXPORT \
        int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
                if(ENGINE_get_static_state() == fns->static_state) goto 
skip_cbs; \
                if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \

Any comments or clarifications will be appreciated.

Thanks,
Kevin Greaney


Reply via email to