From owner-freebsd-arm@freebsd.org Sun Apr 8 03:18:45 2018 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6999BF9E68F for ; Sun, 8 Apr 2018 03:18:45 +0000 (UTC) (envelope-from marklmi26-fbsd@yahoo.com) Received: from sonic303-21.consmr.mail.gq1.yahoo.com (sonic303-21.consmr.mail.gq1.yahoo.com [98.137.64.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E774781967 for ; Sun, 8 Apr 2018 03:18:44 +0000 (UTC) (envelope-from marklmi26-fbsd@yahoo.com) X-YMail-OSG: lI47._0VM1l9aCm2eW9wAT1K6ygcYf3iHTUZ4ghZKEJdjVqUK9sxZh3S4RPyE8o TnjSr3Ju46Poj6rT8gcgER_XbYqUtrQOJIGiR8MmXD8V1NdVa9Rpa.x5Bc9JCaWd0GYqxYlzxCat JdPRldHl_wbbGdF23z.qeDuoGu.qH6M1bUn8.kGlhgg9EmTcrQwe58QJMxvsBKL.WMS8.ib1iRt6 508pD.EbfxFOQtazPYEeIIXW69xiIo0jZbqD1Wej6AmZJXUsRcaLw9pQDiWthTBAJQom5i97LcCb OZII5PVF27E0GqXqnUbcVz_XLa77v1TosI13.cjbj4TRiGUZp2Y0HaalmvHoThMubhwA7FAB_cYV ULyZbKuDHqO0teaSBs579LqJa6.qAmgxXyCZv9c_bxIV_c9_h9FhlziEU9Qfyh079zkXt9Yp0JUa Aj7r0T9ADyHZ0J8p.I6BnOXJkBMwthIGzKhfpR2D0qRR3IXo10gUFIUW5infCjqgm5XlAwOgv3j4 7XGaa32oEhCs4mh3WgLMFeXtCofE- Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.gq1.yahoo.com with HTTP; Sun, 8 Apr 2018 03:18:38 +0000 Received: from c-76-115-7-162.hsd1.or.comcast.net (EHLO [192.168.1.25]) ([76.115.7.162]) by smtp418.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 6b9b933433cf6fb85371f537a6d717b8; Sun, 08 Apr 2018 03:18:35 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.3 \(3445.6.18\)) 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> Date: Sat, 7 Apr 2018 20:18:34 -0700 To: freebsd-toolchain@freebsd.org, freebsd-arm@freebsd.org X-Mailer: Apple Mail (2.3445.6.18) X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Apr 2018 03:18:45 -0000 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)