Compilation issue with 1.1.1k version

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Compilation issue with 1.1.1k version

OpenSSL - User mailing list
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?

Thanks
Robert
Reply | Threaded
Open this post in threaded view
|

Re: Compilation issue with 1.1.1k version

Matt Caswell-2


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
Reply | Threaded
Open this post in threaded view
|

Re: Compilation issue with 1.1.1k version

Matt Caswell-2


On 07/04/2021 20:02, Boris Shpoungin wrote:
> In my sources there is no definition for that macro, this is the problem:
>
> user@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
> <[hidden email]> 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