[RFC] .fill does not accept forward labels

Andreas Krebbel krebbel@linux.vnet.ibm.com
Fri Oct 6 11:50:00 GMT 2017


On 10/06/2017 01:43 PM, Jan Beulich wrote:
>>>> On 06.10.17 at 13:25, <krebbel@linux.vnet.ibm.com> wrote:
>> Hi,
>>
>> running gas on: (x86-64)
>>
>> .global _start
>> .text
>> .fill (2f-1f), 1, 0x90
>> 1:
>>         nop
>> 2:
>>
>> produces:
>>
>> t.s: Assembler messages:
>> t.s:3: Warning: symbol ".L21" undefined; zero assumed
>>
>> ... while it works fine with backward references. Other pseudo commands like 
>> .skip work for both.
>>
>> A quick hack fixes this for me without causing testsuite regressions on 
>> x86-64. However, the current
>> code looks intentional to me. Does anybody know what the reason is for 
>> erroring out if the symbol
>> isn't known yet?
> 
> If the label changes position during later processing (e.g. relaxation),
> your fill range would end up being wrong.

But wouldn't this apply to e.g. .skip as well? With .skip a forward reference is accepted.

-Andreas-



More information about the Binutils mailing list