Re: how do i cross build world/kernel with clang?

From: David Chisnall <theraven_at_FreeBSD.org>
Date: Mon, 2 Sep 2013 08:47:26 +0100
On 2 Sep 2013, at 03:01, John-Mark Gurney <jmg_at_funkthat.com> wrote:

> b/crtn.o: warning: linking PIC files with non-PIC files

I think that this is an issue in our import of clang.  I'll have to check whether I upstreamed the code, but it's basically just not setting the e_flags field in the ELF header correctly (this required a little bit of tweaking in LLVM, because MIPS is the only platform that uses e_flags in quite this way - for everything else you know what the value should be from the target triple).

> exect.So: In function `exect':
> (.text+0x18): relocation truncated to fit: R_MIPS_PC16 against `__cerror'

I believe that this is a limitation of our ld.  The PC16 relocation ought to be made to point to a PLT entry if it's too close, but it is just being truncated instead.  This is fixed in upstream ld-bfd, and hopefully will be easy to fix with MCLinker if it doesn't already work.  I'll see if we can make clang default to using larger relocation types for things not in the same compilation unit.

David
Received on Mon Sep 02 2013 - 05:47:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC