Компиляция 32-битного OpenSSL
От: VitKoff  
Дата: 05.04.16 07:50
Оценка:
Здравствуйте, возникла проблема с компиляцией 32-битной версии OpenSSL. После "make" выдает ошибку
make[2]: Entering directory '/home/tester/libs/openssl-1.0.2g/apps'
( :; LIBDEPS="${LIBDEPS:--L.. -lssl  -L.. -lcrypto -ldl}"; LDCMD="${LDCMD:-gcc}"; LDFLAGS="${LDFLAGS:--DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m32 -fPIC -DL_ENDIAN -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM}"; LIBPATH=`for x in $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=openssl} openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o ${LIBDEPS} )
make[2]: Leaving directory '/home/tester/libs/openssl-1.0.2g/apps'
make[2]: Entering directory '/home/tester/libs/openssl-1.0.2g'
Doing certs/demo
Segmentation fault
Segmentation fault
WARNING: Skipping duplicate certificate pca-cert.pem
Segmentation fault
WARNING: Skipping duplicate certificate dsa-pca.pem
Segmentation fault
WARNING: Skipping duplicate certificate ca-cert.pem
make[2]: Leaving directory '/home/tester/libs/openssl-1.0.2g'
make[1]: Leaving directory '/home/tester/libs/openssl-1.0.2g/apps'
making all in test...


...затем дальше продолжается компиляция. А уже после команды "make test"
testing blowfish in ofb64
../util/shlib_wrap.sh ./casttest
Makefile:201: recipe for target 'test_cast' failed
make[1]: *** [test_cast] Segmentation fault
make[1]: Leaving directory '/home/tester/libs/openssl-1.0.2g/test'
Makefile:460: recipe for target 'tests' failed
make: *** [tests] Error 2


На Ubuntu 14.04 x64, и 32 и 64 битные версии OpenSSL компилируются без проблем, при чем для построения 64 битной версии использую
./config --prefix=/home/tester/openssl-1.0.2g/install-x64

а для 32
./Configure linux-elf -m32 --prefix=/home/tester/openssl-1.0.2g/install-x32


Мне же необходимо собрать на Alpine Linux (для совместимости на любом ядре линукса), пробовал и на 32 битной версии Alpine собирать и на 64 битной и именно 32 битный OpenSSL не компилируется(так же пробовал разные версии OpenSSL). Не советуйте пожалуйста использовать другой дистрибутив линукса для компиляции. Заранее спасибо за дельные советы!
Re: Компиляция 32-битного OpenSSL
От: lpd Черногория  
Дата: 05.04.16 09:07
Оценка:
Здравствуйте, VitKoff, Вы писали:
VK>Doing certs/demo
VK>Segmentation fault
VK>Segmentation fault

VK>Мне же необходимо собрать на Alpine Linux (для совместимости на любом ядре линукса), пробовал и на 32 битной версии Alpine собирать и на 64 битной и именно 32 битный OpenSSL не компилируется(так же пробовал разные версии OpenSSL). Не советуйте пожалуйста использовать другой дистрибутив линукса для компиляции. Заранее спасибо за дельные советы!


Нужно запустить make с ключом '-d' и посмотреть, выполнение какой именно команды вызывает Segmentation fault. Скорее всего, дело в плохо установленной программе, или в версии с багами. Соответствующую программу нужно переустановить, обновить, либо использовать более новую версию.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.