[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 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.


Xen-devel mailing list



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