From owner-svn-src-all@freebsd.org Thu Dec 24 20:18:57 2015 Return-Path: Delivered-To: svn-src-all@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 2237AA50E59 for ; Thu, 24 Dec 2015 20:18:57 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (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 EB3BE17A9 for ; Thu, 24 Dec 2015 20:18:56 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound2.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Thu, 24 Dec 2015 20:19:14 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tBOKIrwm006314; Thu, 24 Dec 2015 13:18:53 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1450988333.25138.261.camel@freebsd.org> Subject: Re: svn commit: r291937 - in head: lib/libc/aarch64/sys lib/libc/arm/sys sys/arm/arm sys/arm/include sys/arm64/arm64 sys/arm64/include sys/conf sys/kern From: Ian Lepore To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Thu, 24 Dec 2015 13:18:53 -0700 In-Reply-To: <20151224180053.GY3625@kib.kiev.ua> References: <201512071220.tB7CKRw0027858@repo.freebsd.org> <1450971642.25138.247.camel@freebsd.org> <20151224180053.GY3625@kib.kiev.ua> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Dec 2015 20:18:57 -0000 On Thu, 2015-12-24 at 20:00 +0200, Konstantin Belousov wrote: > On Thu, Dec 24, 2015 at 08:40:42AM -0700, Ian Lepore wrote: > > On Mon, 2015-12-07 at 12:20 +0000, Konstantin Belousov wrote: > > > Author: kib > > > Date: Mon Dec 7 12:20:26 2015 > > > New Revision: 291937 > > > URL: https://svnweb.freebsd.org/changeset/base/291937 > > > > > > Log: > > > Add support for usermode (vdso-like) gettimeofday(2) and > > > clock_gettime(2) on ARMv7 and ARMv8 systems which have > > > architectural > > > generic timer hardware. It is similar how the RDTSC timer is > > > used in > > > userspace on x86. > > > > > > Fix a permission problem where generic timer access from EL0 > > > (or > > > userspace on v7) was not properly initialized on APs. > > > > > > For ARMv7, mark the stack non-executable. The shared page is > > > added for > > > all arms (including ARMv8 64bit), and the signal trampoline > > > code is > > > moved to the page. > > > > > > Reviewed by:> > andrew > > > Discussed with:> > emaste, mmel > > > Sponsored by:> > The FreeBSD Foundation > > > Differential revision:> > > > https://reviews.freebsd.org/D4209 > > > > I've just discovered this change breaks buildworld on armv4/5 > > systems. > > Those systems don't have the counter hardware that can be read > > from > > userland (they don't have any common timer hardware at all, every > > system is different). Also, they don't support the 'mrrc' > > instruction, > > so the buildworld fails to compile libc. > > I tested the change with make universe. Is the armv5 world included > into the make ? If yes, there is something even more broken. > > That said, the code in __vdso_gettime.c is unused om armv4/v5 since > kernel > never directs libc to use a fast timecounter. The routines could be > left > undefined since they are declared weak, or the bodies could be > stubbed out. > Anyway, to test, I should be able to compile libc for the target. > > And, BTW, what is exactly your error message ? > Oh, I know what's likely at the heart of this... I'm using gcc 4.2.1 for arm v4/v5, because clang 3.7 is broken (works to crossbuild, but fails to run native). The mrrc instruction was introduced at arm arch 5E, I'll bet clang is defaulting to 5E and gcc defaults to 4. This is what's in my make.conf for the build that failed: WITH_GCC=yes WITH_GNUCXX=yes WITH_GCC_BOOTSTRAP=yes WITHOUT_CLANG=yes WITHOUT_CLANG_IS_CC=yes WITHOUT_CLANG_BOOTSTRAP=yes Yep, just confirmed it, switched back to clang 3.7 for crossbuild and no errors. -- Ian