openssl-1.1.1b: Compilation errors when use async and ct

Matt Caswell matt at openssl.org
Thu Jun 20 08:30:46 UTC 2019



On 19/06/2019 19:07, Samiya Khanum via openssl-users wrote:
> Hi,
> 
> While compiling async I see below errors with UCLIBC.
> 
> /libcrypto.so: undefined reference to `getcontext'
> libcrypto.so: undefined reference to `setcontext'
> libcrypto.so: undefined reference to `makecontext'/
> 
> As UCLIBC doesn't have support to these APIs, i have added no-async in
> configure. With no-async below errors are seen.
> /
> /
> /libcrypto.so: undefined reference to `ERR_load_ASYNC_strings'
> libcrypto.so: undefined reference to `async_init'
> libcrypto.so: undefined reference to `async_delete_thread_state'
> libcrypto.so: undefined reference to `async_deinit'/

no-async actually still compiles the high level async code, but you get the
"null" implementation which doesn't do anything.

The only thing I can suggest is to try "make clean" and start again.

Matt


> /
> /
> Do we need to have macro check" #ifndef OPENSSL_NO_ASYNC" before these api calls?
> 
> Similarly for CT, we are seeing below errors. With no-ct options, compilation is OK.
> 
> We would like to know what would be the impact if we disable async and ct
> features. Could you please help us in understanding these features.
> 
> In file included from ../../../../vendor/openssl/crypto/ct/ct_b64.c:17:0:
> ../../../../vendor/openssl/crypto/ct/ct_locl.h:58:5: error: unknown type name
> 'sct_version_t'
>      sct_version_t version;
>      ^
> ../../../../vendor/openssl/crypto/ct/ct_locl.h:78:5: error: unknown type name
> 'ct_log_entry_type_t'
>      ct_log_entry_type_t entry_type;
>      ^
> ../../../../vendor/openssl/crypto/ct/ct_locl.h:80:5: error: unknown type name
> 'sct_source_t'
>      sct_source_t source;
>      ^
> ../../../../vendor/openssl/crypto/ct/ct_locl.h:82:5: error: unknown type name
> 'sct_validation_status_t'
>      sct_validation_status_t validation_status;
>      ^
> In file included from ../../../../vendor/openssl/crypto/ct/ct_b64.c:14:0:
> ../../../../vendor/openssl/crypto/ct/ct_b64.c: In function 'ct_base64_decode':
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:38:15: error:
> 'CT_F_CT_BASE64_DECODE' undeclared (first use in this function)
>          CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
>                ^
> ../../../../vendor/openssl/include/openssl/err.h:29:59: note: in definition of
> macro 'ERR_PUT_error'
>  #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
>                                                            ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:38:9: note: in expansion of macro
> 'CTerr'
>          CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
>          ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:38:15: note: each undeclared
> identifier is reported only once for each function it appears in
>          CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
>                ^
> ../../../../vendor/openssl/include/openssl/err.h:29:59: note: in definition of
> macro 'ERR_PUT_error'
>  #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
>                                                            ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:38:9: note: in expansion of macro
> 'CTerr'
>          CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
>          ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:44:38: error:
> 'CT_R_BASE64_DECODE_ERROR' undeclared (first use in this function)
>          CTerr(CT_F_CT_BASE64_DECODE, CT_R_BASE64_DECODE_ERROR);
>                                       ^
> ../../../../vendor/openssl/include/openssl/err.h:29:61: note: in definition of
> macro 'ERR_PUT_error'
>  #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
>                                                              ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:44:9: note: in expansion of macro
> 'CTerr'
>          CTerr(CT_F_CT_BASE64_DECODE, CT_R_BASE64_DECODE_ERROR);
>          ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c: At top level:
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:64:26: error: unknown type name
> 'ct_log_entry_type_t'
>                           ct_log_entry_type_t entry_type, uint64_t timestamp,
>                           ^
> In file included from ../../../../vendor/openssl/crypto/ct/ct_b64.c:14:0:
> ../../../../vendor/openssl/crypto/ct/ct_b64.c: In function 'CTLOG_new_from_base64':
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:143:15: error:
> 'CT_F_CTLOG_NEW_FROM_BASE64' undeclared (first use in this function)
>          CTerr(CT_F_CTLOG_NEW_FROM_BASE64, ERR_R_PASSED_INVALID_ARGUMENT);
>                ^
> ../../../../vendor/openssl/include/openssl/err.h:29:59: note: in definition of
> macro 'ERR_PUT_error'
>  #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
>                                                            ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:143:9: note: in expansion of macro
> 'CTerr'
>          CTerr(CT_F_CTLOG_NEW_FROM_BASE64, ERR_R_PASSED_INVALID_ARGUMENT);
>          ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:149:43: error:
> 'CT_R_LOG_CONF_INVALID_KEY' undeclared (first use in this function)
>          CTerr(CT_F_CTLOG_NEW_FROM_BASE64, CT_R_LOG_CONF_INVALID_KEY);
>                                            ^
> ../../../../vendor/openssl/include/openssl/err.h:29:61: note: in definition of
> macro 'ERR_PUT_error'
>  #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
>                                                              ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:149:9: note: in expansion of macro
> 'CTerr'
>          CTerr(CT_F_CTLOG_NEW_FROM_BASE64, CT_R_LOG_CONF_INVALID_KEY);
>          ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:161:15: warning: implicit
> declaration of function 'CTLOG_new' [-Wimplicit-function-declaration]
>      *ct_log = CTLOG_new(pkey, name);
>                ^
> ../../../../vendor/openssl/crypto/ct/ct_b64.c:161:13: warning: assignment makes
> pointer from integer without a cast [-Wint-conversion]
>      *ct_log = CTLOG_new(pkey, name);
>              ^
> 
> 
> Thanks & Regards,
> Samiya khanum


More information about the openssl-users mailing list