From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH 19/34] xen/arm: Provide eabi wrapper for __aeabi_mem* functions Date: Wed, 26 Mar 2014 10:39:24 +0000 Message-ID: <1395830364.22808.43.camel@kazak.uk.xensource.com> References: <1395766541-23979-1-git-send-email-julien.grall@linaro.org> <1395766541-23979-20-git-send-email-julien.grall@linaro.org> <1395768302.22808.5.camel@kazak.uk.xensource.com> <5331C725.10003@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WSlF4-0007GJ-5x for xen-devel@lists.xenproject.org; Wed, 26 Mar 2014 10:39:30 +0000 In-Reply-To: <5331C725.10003@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Julien Grall Cc: xen-devel@lists.xenproject.org, tim@xen.org, stefano.stabellini@citrix.com List-Id: xen-devel@lists.xenproject.org On Tue, 2014-03-25 at 18:12 +0000, Julien Grall wrote: > Hi Ian, > > On 03/25/2014 05:25 PM, Ian Campbell wrote: > > On Tue, 2014-03-25 at 16:55 +0000, Julien Grall wrote: > >> Clang doesn't provide function __aebai_mem*, implement generically as a wrapper > >> for mem* function provided by Xen. > > > > Where are the references to these functions coming from if not from the > > compiler? > > Theses functions are called by the code generated by the compiler. And who normally provides them when building with clang? Some sort of libclang I guess? > Removing this file will result to the following errors: > > /local/home/julien/works/arndale/xen/xen/common/symbols-dummy.o -o /local/home/julien/works/arndale/xen/xen/.xen-syms.0 > prelink.o: In function `dump_node': > /local/home/julien/works/arndale/xen/xen/common/device_tree.c:259: undefined reference to `__aeabi_memset' > prelink.o: In function `get_cpu_idle_time': > /local/home/julien/works/arndale/xen/xen/common/schedule.c:178: undefined reference to `__aeabi_memset' > prelink.o: In function `construct_dom0': > /local/home/julien/works/arndale/xen/xen/arch/arm/domain_build.c:1055: undefined reference to `__aeabi_memset' > prelink.o: In function `wallclock_time': > /local/home/julien/works/arndale/xen/xen/arch/arm/time.c:267: undefined reference to `__aeabi_memset' > prelink.o: In function `scheduler_init': > /local/home/julien/works/arndale/xen/xen/common/schedule.c:1368: undefined reference to `__aeabi_memcpy' > /local/home/julien/works/arndale/xen/xen/common/schedule.c:1377: undefined reference to `__aeabi_memcpy' > > > > Are you sure this isn't something usually provided by some clang > > equivalent of libgcc? > > Yes. Linux on LLVM has the same issue. Kernels often use -nostdlib and other options which intentionally disable the default linkage of libgcc/libclang type libraries. > See page 22: > https://events.linuxfoundation.org/images/stories/pdf/lcjp2012_charlebois.pdf?a > > Regards, >