gcc

OpenSSL in MobaXterm

Written by  on November 8, 2017

Neue OpenSSL Version kompilieren in MobaXterm bricht einfach ab mit Fehlermeldung

./config && make
...
...
...
gcc  -I. -Iinclude -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC-DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/local/ssl"" -DENGINESDIR=""/usr/local/lib/engines-1.1"" -D TERMIOS -DL_ENDIAN -Wall -O3 -fomit-frame-pointer  -D_WINDLL -MMD -MF ssl/tls_srp.d.tmp -MT ssl/tls_srp.o -c -o ssl/tls_srp.o ssl/tls_srp.c
ar  r libssl.a ssl/bio_ssl.o ssl/d1_lib.o ssl/d1_msg.o ssl/d1_srtp.o ssl/methods.o ssl/pqueue.o ssl/record/dtls1_bitmap.o ssl/record/rec_layer_d1.o ssl/record/rec_layer_s3.o ssl/record/ssl3_buffer.o ssl/record/ssl3_record.o ssl/s3_cbc.o ssl/s3_enc.o ssl/s3_lib.o ssl/s3_msg.o ssl/ssl_asn1.o ssl/ssl_cert.o ssl/ssl_ciph.o ssl/ssl_conf.o ssl/ssl_err.o ssl/ssl_init.o ssl/ssl_lib.o ssl/ssl_mcnf.o ssl/ssl_rsa.o ssl/ssl_sess.o ssl/ssl_stat.o ssl/ssl_txt.o ssl/ssl_utst.o ssl/statem/statem.o ssl/statem/statem_clnt.o ssl/statem/statem_dtls.o ssl/statem/statem_lib.o ssl/statem/statem_srvr.o ssl/t1_enc.o ssl/t1_ext.o ssl/t1_lib.o ssl/t1_reneg.o ssl/t1_trce.o ssl/tls_srp.o
ar: creating libssl.a
ranlib libssl.a || echo Never mind.
/bin/make -f ./Makefile.shared -e \
        PLATFORM=Cygwin-x86 \
        PERL="/usr/bin/perl" SRCDIR='.' DSTDIR="." \
        INSTALLTOP='/usr/local' LIBDIR='lib' \
        LIBDEPS=' '""' ' \
        LIBNAME=crypto SHLIBVERSION=1.1 \
        STLIBNAME=libcrypto.a \
        SHLIBNAME=libcrypto.dll.a SHLIBNAME_FULL=cygcrypto-1.1.dll \
        CC='gcc' CFLAGS='-DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/local/ssl"" -DENGINESDIR=""/usr/local/lib/engines-1.1"" -DTERMIOS -DL_ENDIAN -Wall -O3 -fomit-frame-pointer  -D_WINDLL' \
        LDFLAGS='' SHARED_LDFLAGS='-shared ' \
        RC='windres' SHARED_RCFLAGS='' \
        link_shlib.cygwin-shared
make[2]: Entering directory '/drives/c/temp/openssl-1.1.0g'
/usr/bin/perl ./util/mkrc.pl cygcrypto-1.1.dll | windres  -o rc.o
LD_LIBRARY_PATH=:/bin gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="/usr/local/ssl" -DENGINESDIR="/usr/local/lib/engines-1.1" -DTERMIOS -DL_ENDIAN -Wall -O3 -fomit-frame-pointer -D_WINDLL -shared -shared -Wl,--enable-auto-image-base -Wl,-Bsymbolic -Wl,--out-implib,libcrypto.dll.a rc.o -o cygcrypto-1.1.dll -Wl,--whole-archive libcrypto.a -Wl,--no-whole-archive
libcrypto.a(async_posix.o):async_posix.c:(.text+0xe): undefined reference to `getcontext'
libcrypto.a(async_posix.o):async_posix.c:(.text+0x56): undefined reference to `getcontext'
libcrypto.a(async_posix.o):async_posix.c:(.text+0xd4): undefined reference to `makecontext'
libcrypto.a(async.o):async.c:(.text+0x34): undefined reference to `setcontext'
collect2: error: ld returned 1 exit status
Makefile.shared:243: recipe for target 'link_shlib.cygwin' failed
make[2]: *** [link_shlib.cygwin] Error 1
make[2]: Leaving directory '/drives/c/temp/openssl-1.1.0g'
Makefile:639: recipe for target 'libcrypto.dll.a' failed
make[1]: *** [libcrypto.dll.a] Error 2
make[1]: Leaving directory '/drives/c/temp/openssl-1.1.0g'
Makefile:130: recipe for target 'all' failed
make: *** [all] Error 2

Lösung:

./config no-async && make

Der Build läuft durch und baut eine funktionierende exe

$ apps/openssl.exe version
OpenSSL 1.1.0g  2 Nov 2017