[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] raisin: enable ovmf build for arm64



> On 13 okt. 2015, at 15:48, Stefano Stabellini 
> <stefano.stabellini@xxxxxxxxxxxxx> wrote:
> 
> On Tue, 13 Oct 2015, Ard Biesheuvel wrote:
>>> On 13 okt. 2015, at 15:31, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
>>> 
>>>>> On 13/10/15 14:18, Stefano Stabellini wrote:
>>>>>> On Tue, 13 Oct 2015, Ian Campbell wrote:
>>>>>> On Tue, 2015-10-13 at 13:49 +0100, Stefano Stabellini wrote:
>>>>>> I didn't git clean enough. You are right, only -t GCC48 is required.
>>>>> 
>>>>> What if only e.g. gcc-4.9 is available though?
>>>> 
>>>> It is just the no -t build that doesn't work. As far as I can tell
>>>> looking at BaseTools/Conf/tools_def.template there is no difference
>>>> between -t GCC49, -t GCC48 and -t GCC47 in terms of gcc flags.
>>> 
>>> The differences may be more subtle. I would be surprised if they
>>> duplicate code just for having the variable name GCCXX matching the
>>> version of the compiler.
>>> 
>> 
>> That was actually the case starting out, (i.e., lots of toolchain 
>> definitions resolving to the same set of options) simply because a few guys 
>> thought it makes sense, and those guys happen to be in charge :-)
>> 
>> But in the mean time, as Stefano found out, the tiny code model we prefer 
>> for AArch64 (which uses relative symbol references but without the 4k 
>> alignment requirement imposed by the small model) is only available under 
>> gcc 4.9 and up so everything below that uses the large model (absolute 
>> symbol references only)
> 
> Do you mean is only available for gcc <= 4.9 and gcc >= 4.7 ?
> 

The first gcc version to support the AArch64 tiny model is 4.9, but Linaro 
backported it so some variants of 4.8 support it as well.

> Do you think it is best to just force -t GCC48 independently from the
> actual gcc version? Or should we use some kind of logic like the one
> below:
> 

For now, just using GCC48 should work fine, but as I said, the tiny model is 
the recommended model so if you have 4.9, it is preferred imo. But other than 
that, the builds should be mostly identical.

> 
>>>   gcc_version=$(gcc -v 2>&1 | tail -1 | awk '{print $3}')
>>>   case $gcc_version in
>>>     4.5.*)
>>>       TARGET_TOOLS=GCC45
>>>       ;;
>>>     4.6.*)
>>>       TARGET_TOOLS=GCC46
>>>       ;;
>>>     4.7.*)
>>>       TARGET_TOOLS=GCC47
>>>       ;;
>>>     4.8.*)
>>>       TARGET_TOOLS=GCC48
>>>       ;;
>>>     4.9.*|4.1[0-9].*|5.*.*)
>>>       TARGET_TOOLS=GCC49
>>>       ;;
>>>     *)
>>>       TARGET_TOOLS=GCC44
>>>       ;;
>>>   esac
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.