Compilation issue with 1.1.1k version

Matt Caswell matt at openssl.org
Wed Apr 7 19:04:54 UTC 2021



On 07/04/2021 20:02, Boris Shpoungin wrote:
> In my sources there is no definition for that macro, this is the problem:
> 
> user at ubuntu_dev_vm:~/tools/openssl/1.1.1k$ grep -HRn 'set_sys_error' .
> ./crypto/err/err.c:259:    set_sys_error(saveerrno);
> ./crypto/err/err.c:750:    set_sys_error(saveerrno);
> ./crypto/err/err.c:784:    set_sys_error(saveerrno);
> ./crypto/dso/dso_dlfcn.c:126:    set_sys_error(saveerrno);

Seems you have corrupt sources. For me:

$ grep -HRn 'set_sys_error'
crypto/err/err.c:259:    set_sys_error(saveerrno);
crypto/err/err.c:750:    set_sys_error(saveerrno);
crypto/err/err.c:784:    set_sys_error(saveerrno);
crypto/dso/dso_dlfcn.c:126:    set_sys_error(saveerrno);
e_os.h:77:# define set_sys_error(e)        errno=(e)
e_os.h:95:#  undef set_sys_error
e_os.h:98:#  define set_sys_error(e)        SetLastError(e)

Matt

> 
> Any idea why?
> Thanks
> 
> On Wednesday, April 7, 2021, 02:39:46 PM EDT, Matt Caswell 
> <matt at openssl.org> wrote:
> 
> 
> 
> 
> On 07/04/2021 19:31, Boris Shpoungin via openssl-users wrote:
>  > Hello,
>  >
>  > I am using cross compiler toolchain (arm-hisiv200-linux-gnueabi) to
>  > compile openssl library for arm based custom board.
>  > I had no problems to compile version 1.1.1a, however I am having
>  > troubles to compile versions 1.1.1i and 1.1.1k:
>  >
>  > ${LDCMD:-arm-hisiv200-linux-gnueabi-gcc} -pthread -Wa,--noexecstack
>  > -Wall -O3 -L.   \
>  > -o apps/openssl apps/asn1pars.o apps/ca.o apps/ciphers.o apps/cms.o
>  > apps/crl.o apps/crl2p7.o apps/dgst.o apps/dhparam.o apps/dsa.o
>  > apps/dsaparam.o apps/ec.o apps/ecparam.o apps/enc.o apps/engine.o
>  > apps/errstr.o apps/gendsa.o apps/genpkey.o apps/genrsa.o apps/nseq.o
>  > apps/ocsp.o apps/openssl.o apps/passwd.o apps/pkcs12.o apps/pkcs7.o
>  > apps/pkcs8.o apps/pkey.o apps/pkeyparam.o apps/pkeyutl.o apps/prime.o
>  > apps/rand.o apps/rehash.o apps/req.o apps/rsa.o apps/rsautl.o
>  > apps/s_client.o apps/s_server.o apps/s_time.o apps/sess_id.o
>  > apps/smime.o apps/speed.o apps/spkac.o apps/srp.o apps/storeutl.o
>  > apps/ts.o apps/verify.o apps/version.o apps/x509.o \
>  > apps/libapps.a -lssl -lcrypto -ldl -pthread
>  > ./libcrypto.so: undefined reference to `set_sys_error'
>  > collect2: ld returned 1 exit status
>  > Makefile:6271: recipe for target 'apps/openssl' failed
>  > make[1]: *** [apps/openssl] Error 1
>  > make[1]: Leaving directory '/home/bshpungin/tools/openssl/1.1.1k'
>  > Makefile:174: recipe for target 'all' failed
>  > make: *** [all] Error 2
>  >
>  > Can anyone advise what could be the problem and where set_sys_error
>  > function/macro is defined?
> 
> It's a macro defined in the file e_os.h:
> 
> # define set_sys_error(e)        errno=(e)
> 
> It's only used in 2 files(crypto/dso/dso_dlfcn.c and crypto/err/err.c),
> both of which directly include e_os.h. It's quite strange that the
> definition of the macro is not being picked up.
> 
> Matt
> 
> 
>  >
>  > Thanks
>  > Robert


More information about the openssl-users mailing list