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

Re: [Xen-devel] [PATCH v3 5/5] x86: remove usage of .skip with non-absolute expressions

>>> On 29.01.18 at 14:05, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 29/01/18 13:02, Jan Beulich wrote:
>>>>> On 29.01.18 at 13:43, <wei.liu2@xxxxxxxxxx> wrote:
>>> On Mon, Jan 29, 2018 at 12:26:43PM +0000, Roger Pau Monne wrote:
>>>> Clang assembler doesn't support using .skip with non-absolute
>>>> expressions:
>>> But so is GNU as. From its manual for .skip:
>>> "This directive emits size bytes, each of value fill. Both size and fill
>>> are absolute expressions."
>>>> entry.S:109:15: error: expected absolute expression
>>>>         .skip .Lcr4_alt_end - .Lcr4_alt, 0x90
>>>>               ^
>>> OOI what makes .Lcr4_alt_end - .Lcr4_alt non-absolute?
>> I guess they expect to be able to calculate the value right at the
>> point they evaluate .skip's arguments. Whereas gas either records
>> a fragment with variable size, or (less likely, as that could end up
>> wrong) evaluates the expression right away (iirc the .skip sits after
>> the definition of both symbols, and iirc further gas [at least some
>> versions] has problems if that wasn't the case).
> One thing I've been experimenting with, along with trying to organise
> the alternatives into a mergeable section, is to first write the
> alternatives into .discard section, which allows calculations like this
> to be completed immediately, rather than being deferred.

How would such calculations be completed immediately? It doesn't
matter what section you put things in - final addresses can be
known only once all input has been consumed by the assembler.


Xen-devel mailing list



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