Date: Thu, 14 Apr 2011 09:13:55 +0200 From: Damjan Marion <damjan.marion@gmail.com> To: Mark Tinguely <marktinguely@gmail.com> Cc: "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org> Subject: Re: LLVM/Clang cross-compiling for ARM Message-ID: <714C855E-0EC8-4129-A1A4-C9C978D1B349@gmail.com> In-Reply-To: <4DA65B0F.1040807@gmail.com> References: <794721.93419.qm@web112111.mail.gq1.yahoo.com> <574B5BB8-3BD6-4C87-9FC7-9549C02A2FCD@gmail.com> <4DA65B0F.1040807@gmail.com>
index | next in thread | previous in thread | raw e-mail
Hi Mark,
Seems that clang from current (made by i386 buildworld) is able to build ARM code:
# clang -v FreeBSD clang version 2.9 (trunk 126547) 20110226
Target: i386-undermydesk-freebsd9.0
Thread model: posix
# clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm-elf -integrated-as hello.c -o hello.o -c
# file hello.o
hello.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
# clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm-elf hello.c -o hello.S -S
# cat hello.S
.syntax unified
.cpu cortex-a8
.eabi_attribute 6, 10
.eabi_attribute 7, 65
.eabi_attribute 8, 1
.eabi_attribute 9, 2
.eabi_attribute 10, 2
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.file "hello.c"
.text
.globl main
.align 2
.type main,%function
main:
push {r11, lr}
mov r11, sp
sub sp, sp, #12
mov r0, #0
str r0, [r11, #-4]
str r0, [sp, #4]
movw r0, :lower16:.L.str
movt r0, :upper16:.L.str
bl printf
str r0, [sp]
ldr r0, [sp, #4]
mov sp, r11
ldmia sp!, {r11, pc}
.Ltmp0:
.size main, .Ltmp0-main
.type .L.str,%object
.section .rodata.str1.1,"aMS",%progbits,1
.L.str:
.asciz "Hello World!\n"
.size .L.str, 14
Regards,
Damjan
On Apr 14, 2011, at 4:25 AM, Mark Tinguely wrote:
> From distant memory, Clang was looking up the current processor and compiled in the assembly options for that architecture (i386). I can't remember if it was still kicking out i386 assembly as well. One idea I had was short-circuit the answer to those architecture queries and return "arm".
>
> Has anyone tried to compile Clang on an ARM arch and then build world with that? I suppose that would be a slow development environment.
>
> --Mark.
>
> On 4/13/2011 5:35 PM, Damjan Marion wrote:
>> Hi Vassilis,
>>
>> On Apr 14, 2011, at 12:02 AM, Vassilis Laganakos wrote:
>>
>>> Hello Damjan,
>>>
>>> ----- Original Message -----
>>>> From:Damjan Marion<damjan.marion@gmail.com>
>>>> To:freebsd-arm@freebsd.org
>>>> Cc:
>>>> Sent:Sunday, April 10, 2011 5:10 PM
>>>> Subject:Re: LLVM/Clang cross-compiling for ARM
>>>>
>>>>
>>>> Hi,
>>>>
>>>> What is the current status of LLVM/Clang cross-compiling for ARM targets?
>>>> Is anybody working actively on this?
>>>>
>>> I started taking a look into building llvm as cross-compiler
>>> for ARM and trying to build -CURRENT for an existing port,
>>> so see how far we get :)
>>>
>>> I'm currently stuck a bit in the first step :) As Mark T. pointed
>>> out in a recent email, llvm in -CURRENT does not cross-build,
>>> so we have to use an external compiler for now.
>> What exactly is missing in current version of llvm in -CURRENT?
>>
>> After reading some high level overview of llvm i was under impression
>> that llvm natively supports multiple targets, but seems that I was wrong.
>>
>>> I'll hopefully get back soon with some useful info about this...
>> Cool, please keep us updated.
>>
>> Thanks,
>>
>> Damjan
>> _______________________________________________
>> freebsd-arm@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
>>
>
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?714C855E-0EC8-4129-A1A4-C9C978D1B349>
