编译适用于arm64或arm7s的OpenSSL FIPS Capable库时,cpu类型未知

编程入门 行业动态 更新时间:2024-10-27 08:38:19
本文介绍了编译适用于arm64或arm7s的OpenSSL FIPS Capable库时,cpu类型未知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我可以为arm7,x86_64和i386成功编译(至少没有警告并且没有生成的.a文件).

I can successfully (at least without warnings and with resulting .a files) compile for arm7, x86_64, and i386.

当我为arm64编译时,得到Unknown cpu type 100000c, no adjustments made.当我为arm7s编译时,得到Unknown cpu type 100000c, no adjustments made.这两种体系结构的脚本已从 github修改并使用了环境脚本/noloader/openssl-1.0.1i-ios 如下,其中包括有效的arm7和arm7s和arm64,其后是log64的日志尾.脚本在修改之前成功构建了非fips库. incore_macho和fips容器是预先生成的,并已从此脚本引用.我通过修改《 OpenSSL FIPS 2.0用户指南》 iOS附录中的说明类似地创建了fips容器,该附录过时了,不能单独使用.如何为这两个平台编译具有FIPS功能的库?

When I compile for arm64, I get Unknown cpu type 100000c, no adjustments made. When I compile for arm7s, I get Unknown cpu type 100000c, no adjustments made. The script for those two architectures, which is modified from and uses environment scripts from github/noloader/openssl-1.0.1i-ios is below including arm7, which works and arm7s and arm64, followed by a log tail for arm64. The scripts build non-fips libraries successfully before modification. incore_macho and fips canisters are pre-generated and referenced from this script. I created the fips canisters similarly by modifying instructions from the OpenSSL FIPS 2.0 User Guide iOS appendix, which is incredibly dated and does not work on its own. How can one compile a FIPS capable library for these two platforms?

我看到libssl.a和libcrypto.a实际上已经创建并且具有正确的体系结构,但是incore_macho返回相同的Unknown cpu type错误.

I see that libssl.a and libcrypto.a have actually been created and have the correct architectures, but incore_macho returns an identical Unknown cpu type error.

更新:

使用incore_macho的副本从@jww在 github/noloader/中为armv7更新的副本incore_macho ,它现在可以为arm7s编译而没有错误,因此我现在假设core_macho可能需要为arm64更新.能做到吗?

Using a copy of incore_macho that is updated for armv7 from @jww at github/noloader/incore_macho, it now compiles without error for arm7s, so I'm now under the assumption that core_macho may need to be updated for arm64. Can this be done?

sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:-O3|\"iphoneos-cross\"\,\"clang\:-Os|g' Configure sed -i "" 's/CC= cc/CC= clang/g' Makefile sed -i "" 's/CFLAG= -O/CFLAG= -Os/g' Makefile sed -i "" 's/MAKEDEPPROG=makedepend/MAKEDEPPROG=$(CC) -M/g' Makefile export LANG=$OLD_LANG export CC=clang export IOS_INSTALLDIR="/usr/local/ssl/ios" unset OPENSSLDIR ################################################################ # Third, build ARMv7 echo "****************************************" THIS_ARCH=armv7 unset CROSS_ARCH . ./setenv-ios-$THIS_ARCH.sh export HOSTCC=/usr/bin/cc export HOSTCFLAGS="-arch i386" export FIPS_SIG="/tmp/incore_macho" ./config fips -no-ssl2 -no-ssl3 -no-asm -no-shared -no-hw -no-engine --with-fipsdir="/tmp/openssl fips-2.0.1-iOS-${THIS_ARCH}" --openssldir=$IOS_INSTALLDIR sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.1 !" "Makefile" make clean 2>&1>/dev/null && make all mkdir $THIS_ARCH \cp ./libcrypto.a $THIS_ARCH/libcrypto.a \cp ./libssl.a $THIS_ARCH/libssl.a ################################################################ # Fourth, build ARMv7s echo "****************************************" THIS_ARCH=armv7s unset CROSS_ARCH . ./setenv-ios-$THIS_ARCH.sh export HOSTCC=/usr/bin/cc export HOSTCFLAGS="-arch i386" export FIPS_SIG="/tmp/incore_macho" ./config fips -no-ssl2 -no-ssl3 -no-asm -no-shared -no-hw -no-engine --with-fipsdir="/tmp/openssl-fips-2.0.1-iOS-${THIS_ARCH}" --openssldir=$IOS_INSTALLDIR sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.1 !" "Makefile" make clean 2>&1>/dev/null && make all mkdir $THIS_ARCH \cp ./libcrypto.a $THIS_ARCH/libcrypto.a \cp ./libssl.a $THIS_ARCH/libssl.a ################################################################ # Fifth, build ARM64 #echo "****************************************" THIS_ARCH=arm64 unset CROSS_ARCH . ./setenv-ios-$THIS_ARCH.sh export HOSTCC=/usr/bin/cc export HOSTCFLAGS="-arch i386" export FIPS_SIG="/tmp/incore_macho" ./config fips -no-ssl2 -no-ssl3 -no-asm -no-shared -no-hw -no-engine --with-fipsdir="/tmp/openssl-fips-2.0.1-iOS-${THIS_ARCH}" --openssldir=$IOS_INSTALLDIR sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.1 !" "Makefile" make clean 2>&1>/dev/null && make all mkdir $THIS_ARCH \cp ./libcrypto.a $THIS_ARCH/libcrypto.a \cp ./libssl.a $THIS_ARCH/libssl.a

arm64输出的尾巴:

tail of output for arm64:

shlib_target=; if [ -n "" ]; then \ shlib_target="darwin-shared"; \ elif [ -n "libcrypto" ]; then \ FIPSLD_CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"; CC=/tmp/openssl-fips-2.0.1-iOS-arm64/bin/fipsld; export CC FIPSLD_CC; \ fi; \ LIBRARIES="-L.. -lssl -L.. -lcrypto" ; \ make -f ../Makefile.shared -e \ APPNAME=openssl OBJECTS="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="-Wl,-search_paths_first $LIBRARIES " \ link_app.${shlib_target} ( :; LIBDEPS="${LIBDEPS:--Wl,-search_paths_first -L.. -lssl -L.. -lcrypto }"; LDCMD="${LDCMD:-/tmp/openssl-fips-2.0.1-iOS-arm64/bin/fipsld}"; LDFLAGS="${LDFLAGS:--isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=7.1 -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch arm64 -Os -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -fomit-frame-pointer -fno-common -I/tmp/openssl-fips-2.0.1-iOS-arm64/include}"; 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} ) Unknown cpu type 100000c, no adjustments made

推荐答案

如果将其添加到cpu_adjustment []

It will work if you add this to cpu_adjustment[]

CPU_TYPE_ARM64, CPU_SUBTYPE_ARM64_ALL, 12, 12 ,

供参考:

#define CPU_ARCH_ABI64 0x01000000 /* 64 bit ABI */ #define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64) /* * ARM64 subtypes */ #define CPU_SUBTYPE_ARM64_ALL ((cpu_subtype_t) 0)

找到调整很有趣. ;-)

Finding the adjustment was fun. ;-)

更多推荐

编译适用于arm64或arm7s的OpenSSL FIPS Capable库时,cpu类型未知

本文发布于:2023-11-15 15:06:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1595525.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:适用于   类型   arm7s   FIPS   OpenSSL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!