Question on gas difference between 2.19.1 and 2.20

Lluís Batlle viriketo@gmail.com
Tue Nov 3 21:33:00 GMT 2009


Here I attach the result of the assembly with binutils 2.19.1.

For the "objdump -S" of the related part:
Disassembly of section .reset_vector_sect:

00000000 <romBoot-0x3c>:
#endif

        /* Check if we booted from DRAM. If we did someone already      */
        /* initialize the DRAM controller                               */

        adr     r4, jumpStart           /* r4 <- current position of code   */
   0:   e24f4008        sub     r4, pc, #8      ; 0x8
        mov     r5, #~0xff
   4:   e3e050ff        mvn     r5, #255        ; 0xff
        and     r4, r4, r5
   8:   e0044005        and     r4, r4, r5
    nop
    nop
/* End of code load */
#endif /* MV78XX0 */

Moving the label below the '.section' solved my assembly problems in 2.20.

Regards,
Lluís.

2009/11/3 Phil Blundell <pb@reciva.com>:
> On Tue, 2009-11-03 at 20:24 +0100, Lluís Batlle wrote:
>> jumpStart:
>>
>> .section        ".reset_vector_sect",#alloc, #execinstr
>>
>>         /* Check if we booted from DRAM. If we did someone already      */
>>         /* initialize the DRAM controller                               */
>>
>>         adr     r4, jumpStart           /* r4 <- current position of
>> code   */ /* line 62 of the source file */
>>         mov     r5, #~0xff
>
>> Assembling with binutils 2.20 gas, I get:
>> jump.S:62: Error: symbol .text is in a different section
>>
>> Does anybody understand this behaviour? Maybe I am doing something
>> wrong? I don't understand the meaning of that message in this context.
>
> I am rather surprised that binutils 2.19.1 accepted this code.  What
> output did it produce?
>
> The "adr" pseudo-op is (approximately) an assembler shorthand for "add
> rN, pc, #(dest - .)", i.e. it assembles to an arithmetic operation with
> an immediate operand.  Using adr across sections is possible in theory,
> albeit with restrictions, but I don't think either GAS nor GNU ld
> understand the relocation types that you would need to make it work.
>
> p.
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jump.o
Type: application/octet-stream
Size: 5624 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20091103/f6ed05d4/attachment.o>


More information about the Binutils mailing list