From owner-freebsd-arm@freebsd.org Mon Jun 19 07:55:04 2017 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DE2ED97EC0 for ; Mon, 19 Jun 2017 07:55:04 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-16.reflexion.net [208.70.210.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 006FF68188 for ; Mon, 19 Jun 2017 07:55:03 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 24642 invoked from network); 19 Jun 2017 07:55:02 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 19 Jun 2017 07:55:02 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v8.40.1) with SMTP; Mon, 19 Jun 2017 03:55:02 -0400 (EDT) Received: (qmail 15928 invoked from network); 19 Jun 2017 07:55:01 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 19 Jun 2017 07:55:01 -0000 Received: from [192.168.1.114] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 2B5A9EC8029; Mon, 19 Jun 2017 00:55:01 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: arm64 on head -r320059 (e.g.) fails buildkernel with only kernel-toolchain first (not buildworld) [Bugzilla 220125] From: Mark Millard In-Reply-To: Date: Mon, 19 Jun 2017 00:55:00 -0700 Cc: freebsd-arm , FreeBSD Toolchain Content-Transfer-Encoding: quoted-printable Message-Id: <1AF272E5-5715-45F2-955B-B2D85B7F08B0@dsl-only.net> References: <9B6857F6-FD8E-43B7-B142-050E51EE68AB@dsl-only.net> To: Dimitry Andric X-Mailer: Apple Mail (2.3273) X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2017 07:55:04 -0000 On 2017-Jun-18, at 11:57 PM, Dimitry Andric wrote: > On 19 Jun 2017, at 08:46, Mark Millard wrote: >>=20 >> This is a variant of the wording in bugzilla 220125: >>=20 >> Unless buildworld (not just kernel-toolchain) is used before >> buildkernel the result for arm64 is: >>=20 >> --- armv8_crypto_wrap.o --- >> In file included from = /usr/src/sys/crypto/armv8/armv8_crypto_wrap.c:46: >> = /usr/obj/cortexA53dbg_clang/arm64.aarch64/usr/src/tmp/usr/bin/../lib/clang= /4.0.0/include/arm_neon.h:31:10: >> fatal error: 'stdint.h' file not found > ... >> A) kernel-toolchain needs to establish a stdint.h >> that would be found >> vs. >> B) arm_neon.h needs to avoid needing stdint.h >> (presumes armv8_crypto_wrap.c is correct to >> include arm_neon.h ) (B) variant: Possibly finding a distinct stdint.h when there is no $(WORLDTMP} tied one to be found? (Avoiding needing the specific stdint.h that is used when buildworld is used first.) Look in some new place as a last resort (extended search path list)? >> at least if the kernel-toolchain then buildkernel >> sequence is to be supported for arm64. >=20 > Solution A is problematic because it then would require to install > headers into ${WORLDTMP}. This is what buildworld does. Is there anyplace outside of $(WORLDTMP} where an alternate stdint.h could be made to be found if the ${WORLDTMP} places do not have one to find? (The include notation is currently .) Might some place related to (using my example full path just for illustration, showing post-subsitutions): = /usr/obj/cortexA53dbg_clang/arm64.aarch64/usr/src/tmp/usr/bin/../lib/clang= /4.0.0/include/ be allowed have its own "failover" stdint.h to find as a last resort? (I do not claim this is well thought out.) > Solution B is problematic because arm_neon.h uses stdint.h types > extensively. The instance of the file name need not be from the usual place when there is no $(WORLDTMP} tied stdint.h to find? So a different stdint.h instead of no stdint.h ? > Maybe the solution with the least amount of work is to provide a > kernel-specific wrapper header with the stdint.h types. With also avoiding the #include that would otherwise fail? > Otherwise, just use buildworld before buildkernel. For now buildworld first is what I'd do for arm64. =3D=3D=3D Mark Millard markmi at dsl-only.net