From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 27 20:33:47 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 48A01BA for ; Thu, 27 Jun 2013 20:33:47 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) by mx1.freebsd.org (Postfix) with ESMTP id 0FF5C1DAD for ; Thu, 27 Jun 2013 20:33:47 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::4de1:c0cf:265b:ec55] (unknown [IPv6:2001:7b8:3a7:0:4de1:c0cf:265b:ec55]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id E52005C43; Thu, 27 Jun 2013 22:33:43 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: Can't use gcc in a clang built world From: Dimitry Andric In-Reply-To: <20130627194835.4b1a7408@bender.Home> Date: Thu, 27 Jun 2013 22:33:35 +0200 Content-Transfer-Encoding: 7bit Message-Id: References: <51CC1C9F.7080403@andric.com> <20130627194835.4b1a7408@bender.Home> To: Andrew Turner X-Mailer: Apple Mail (2.1508) Cc: "freebsd-hackers@freebsd.org Hackers" , Kevin Day X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jun 2013 20:33:47 -0000 On Jun 27, 2013, at 20:48, Andrew Turner wrote: > On Thu, 27 Jun 2013 13:06:07 +0200 > Dimitry Andric wrote: > >> On 2013-06-27 02:02, Kevin Day wrote: >>> Are you supposed to be able to use gcc to build userland binaries >>> if you built world with clang? >>> >>> I'm on -CURRENT as of a few days ago (using armv6 but i'm not sure >>> if that matters). >> >> Yes, the arch matters a lot. For arm, adding __clear_cache() to >> libgcc was explicitly disabled by Andrew here: >> >> http://svnweb.freebsd.org/base?view=revision&revision=244382 >> >> "Don't provide clear_cache or the __sync_* functions on ARM with clang >> as they are provided by clang as builtin functions." >> >> Maybe those functions should be in libgcc after all, if other programs >> depend on this. > > The reason to disable __clear_cache is incorrect in r244382 as it is a > builtin in clang, but calls into an external copy of __clear_cache. The > reason __clear_cache was disabled was because of a bug in clang where > it is unable to compile a builtin function, however I only found this > out recently. > > The issue with clang has been fixed, and, as of r251791 __clear_cache > is enabled in compiler-rt. Okay, but apparently compilers such as gcc do not use compiler-rt at all, but expect the function to be available in libgcc instead. So since clang can compile the definition on arm now, shall we re-enable it for libgcc too? -Dimitry