Date: Sat, 7 Apr 2018 20:18:34 -0700 From: Mark Millard <marklmi26-fbsd@yahoo.com> To: freebsd-toolchain@freebsd.org, freebsd-arm@freebsd.org Subject: Attempt to xtoolchain-gcc buildworld for head with -mcpu=cortex-a53: arm64cpuid.S:23: Error: selected processor does not support . . . Message-ID: <27FB6AC2-1E38-4974-A72F-AAE4B72070AB@yahoo.com>
next in thread | raw e-mail | index | archive | help
It appears that the devel/aarch64-gcc toolchain refuses to assemble instructions that are not available to what was listed for -mcpu, even when a -march was also listed that allows such. For -mcpu=3Dcortex-a53 and a -march=3Darmv8-a+crypto : --- secure/lib/libcrypto__L --- /usr/src/crypto/openssl/crypto/arm64cpuid.S: Assembler messages: /usr/src/crypto/openssl/crypto/arm64cpuid.S:23: Error: selected = processor does not support `aese v0.16b,v0.16b' /usr/src/crypto/openssl/crypto/arm64cpuid.S:30: Error: selected = processor does not support `sha1h s0,s0' /usr/src/crypto/openssl/crypto/arm64cpuid.S:37: Error: selected = processor does not support `sha256su0 v0.4s,v0.4s' /usr/src/crypto/openssl/crypto/arm64cpuid.S:43: Error: selected = processor does not support `pmull v0.1q,v0.1d,v0.1d' See later for the command details and such for the error. This makes _armv8_aese_probe and the like unable to be assembled for -mcpu=3Dcortex-a53 . (There are 2 more source files with such potential issues.) Encoding the instructions as byte sequence values would be more likely to survive various tool chains and specifications but is likely otherwise messy. Another option might be to strip -mcpu=3D<?> from CFLAGS, but only for processing the specific source involved. Adding "+crypto" to form -mcpu=3D<?>+crypto might be an option (for gcc anyway). My hack to get past this was to add the +'s to form the +=3D's in: ACFLAGS.arm64cpuid.S+=3D -march=3Darmv8-a+crypto . . . ACFLAGS.aesv8-armx.S+=3D -march=3Darmv8-a+crypto . . . ACFLAGS.ghashv8-armx.S+=3D -march=3Darmv8-a+crypto for the Makefile and then to in my src.conf files also add: ACFLAGS.arm64cpuid.S+=3D -mcpu=3Dcortex-a53+crypto ACFLAGS.aesv8-armx.S+=3D -mcpu=3Dcortex-a53+crypto ACFLAGS.ghashv8-armx.S+=3D -mcpu=3Dcortex-a53+crypto (This avoided +crypto being involved elsewhere.) Supporting error details: --- secure/lib/libcrypto__L --- *** [arm64cpuid.o] Error code 1 make[4]: stopped in /usr/src/secure/lib/libcrypto .ERROR_TARGET=3D'arm64cpuid.o' = .ERROR_META_FILE=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/sr= c/arm64.aarch64/secure/lib/libcrypto/arm64cpuid.o.meta' .MAKE.LEVEL=3D'4' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'/usr/local/bin/aarch64-unknown-freebsd12.0-gcc = -mcpu=3Dcortex-a53 -isystem = /usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tmp/= usr/include = -L/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tm= p/usr/lib = -B/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tm= p/usr/lib = --sysroot=3D/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.= aarch64/tmp -B/usr/local/aarch64-unknown-freebsd12.0/bin/ -O2 -pipe = -I/usr/src/crypto/openssl -DTERMIOS -DANSI_SOURCE -DOPENSSL_THREADS = -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DSHA1_ASM -DSHA256_ASM = -DSHA512_ASM = -I/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/se= cure/lib/libcrypto -I/usr/src/crypto/openssl/crypto = -I/usr/src/crypto/openssl/crypto/asn1 = -I/usr/src/crypto/openssl/crypto/evp = -I/usr/src/crypto/openssl/crypto/modes -g -std=3Dgnu89 = -fstack-protector-strong -Wno-pointer-sign -Wno-error=3Daddress = -Wno-error=3Darray-bounds -Wno-error=3Dattributes = -Wno-error=3Dbool-compare -Wno-error=3Dcast-align -Wno-error=3Dclobbered = -Wno-error=3Denum-compare -Wno-error=3Dextra -Wno-error=3Dinline = -Wno-error=3Dlogical-not-parentheses -Wno-error=3Dstrict-aliasing = -Wno-error=3Duninitialized -Wno-error=3Dunused-but-set-variable = -Wno-error=3Dunused-function -Wno-error=3Dunused-value = -Wno-error=3Dmisleading-indentation -Wno-error=3Dnonnull-compare = -Wno-error=3Dshift-negative-value -Wno-error=3Dtautological-compare = -Wno-error=3Dunused-const-variable -v -Wa,--noexecstack = -march=3Darmv8-a+crypto -c /usr/src/crypto/openssl/crypto/arm64cpuid.S = -o arm64cpuid.o; ;' .CURDIR=3D'/usr/src/secure/lib/libcrypto' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.a= arch64/secure/lib/libcrypto' .TARGETS=3D'all' = DESTDIR=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.a= arch64/tmp' LD_LIBRARY_PATH=3D'' MACHINE=3D'arm64' MACHINE_ARCH=3D'aarch64' MAKEOBJDIRPREFIX=3D'' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20180222' = PATH=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarc= h64/tmp/legacy/usr/sbin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/us= r/src/arm64.aarch64/tmp/legacy/usr/bin:/usr/obj/cortexA53_xtoolchain-gcc/a= rm64.aarch64/usr/src/arm64.aarch64/tmp/legacy/bin:/usr/obj/cortexA53_xtool= chain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tmp/usr/sbin:/usr/obj/cortex= A53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tmp/usr/bin:/sbin:/= bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aa= rch64' .MAKE.MAKEFILES=3D'/usr/src/share/mk/sys.mk = /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk = /root/src.configs/src.conf.cortexA53-xtoolchain-gcc.amd64-host = /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/src.sys.obj.mk = /usr/src/share/mk/auto.obj.mk /usr/src/share/mk/bsd.suffixes.mk = /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk = /usr/src/share/mk/src.sys.mk /dev/null = /usr/src/secure/lib/libcrypto/Makefile /usr/src/share/mk/bsd.own.mk = /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/secure/lib/libcrypto/Makefile.man = /usr/src/secure/lib/libcrypto/Makefile.inc = /usr/src/share/mk/bsd.endian.mk /usr/src/share/mk/bsd.lib.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk = /usr/src/secure/lib/libcrypto/../Makefile.inc = /usr/src/secure/lib/libcrypto/../../Makefile.inc = /usr/src/share/mk/src.opts.mk /usr/src/lib/Makefile.inc = /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk = /usr/src/share/mk/bsd.symver.mk /usr/src/share/mk/bsd.nls.mk = /usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk = /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.links.mk = /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk = /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk = /usr/src/share/mk/bsd.sys.mk' .PATH=3D'. /usr/src/secure/lib/libcrypto = /usr/src/secure/lib/libcrypto/aarch64 /usr/src/crypto/openssl/crypto = /usr/src/crypto/openssl/crypto/aes /usr/src/crypto/openssl/crypto/asn1 = /usr/src/crypto/openssl/crypto/bf /usr/src/crypto/openssl/crypto/bio = /usr/src/crypto/openssl/crypto/bn /usr/src/crypto/openssl/crypto/buffer = /usr/src/crypto/openssl/crypto/camellia = /usr/src/crypto/openssl/crypto/cast /usr/src/crypto/openssl/crypto/cmac = /usr/src/crypto/openssl/crypto/cms /usr/src/crypto/openssl/crypto/comp = /usr/src/crypto/openssl/crypto/conf /usr/src/crypto/openssl/crypto/des = /usr/src/crypto/openssl/crypto/dh /usr/src/crypto/openssl/crypto/dsa = /usr/src/crypto/openssl/crypto/dso /usr/src/crypto/openssl/crypto/ec = /usr/src/crypto/openssl/crypto/ecdh /usr/src/crypto/openssl/crypto/ecdsa = /usr/src/crypto/openssl/crypto/engine /usr/src/crypto/openssl/crypto/err = /usr/src/crypto/openssl/crypto/evp /usr/src/crypto/openssl/crypto/hmac = /usr/src/crypto/openssl/crypto/idea /usr/src/crypto/openssl/crypto/krb5 = /usr/src/crypto/openssl/crypto/lhash /usr/src/crypto/openssl/crypto/md4 = /usr/src/crypto/openssl/crypto/md5 /usr/src/crypto/openssl/crypto/mdc2 = /usr/src/crypto/openssl/crypto/modes = /usr/src/crypto/openssl/crypto/objects = /usr/src/crypto/openssl/crypto/ocsp /usr/src/crypto/openssl/crypto/pem = /usr/src/crypto/openssl/crypto/pkcs12 = /usr/src/crypto/openssl/crypto/pkcs7 = /usr/src/crypto/openssl/crypto/pqueue = /usr/src/crypto/openssl/crypto/rand /usr/src/crypto/openssl/crypto/rc2 = /usr/src/crypto/openssl/crypto/rc4 /usr/src/crypto/openssl/crypto/rc5 = /usr/src/crypto/openssl/crypto/ripemd /usr/src/crypto/openssl/crypto/rsa = /usr/src/crypto/openssl/crypto/seed /usr/src/crypto/openssl/crypto/sha = /usr/src/crypto/openssl/crypto/srp /usr/src/crypto/openssl/crypto/stack = /usr/src/crypto/openssl/crypto/ts /usr/src/crypto/openssl/crypto/txt_db = /usr/src/crypto/openssl/crypto/ui = /usr/src/crypto/openssl/crypto/whrlpool = /usr/src/crypto/openssl/crypto/x509 = /usr/src/crypto/openssl/crypto/x509v3 /usr/src/secure/lib/libcrypto/man' 1 error =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?27FB6AC2-1E38-4974-A72F-AAE4B72070AB>