bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/20221] New: [avr] Wrong code generated with linker relaxation fo


From: senthil.thecoder at gmail dot com
Subject: [Bug ld/20221] New: [avr] Wrong code generated with linker relaxation for source with alignment directives
Date: Wed, 08 Jun 2016 08:46:11 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=20221

            Bug ID: 20221
           Summary: [avr] Wrong code generated with linker relaxation for
                    source with alignment directives
           Product: binutils
           Version: 2.27 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: senthil.thecoder at gmail dot com
  Target Milestone: ---

$ cat avr-prop-5.s
        .text
        .global _start, dest
_start:
        CALL    dest
        .align  1
dest:
        NOP

when assembled with -mlink-relax and linked with --relax

$ avr-gcc -mrelax -mmcu=atmega1280 -Os avr-prop-5.s -nostartfiles
$ avr-objdump -S a.out


a.out:     file format elf32-avr


Disassembly of section .text:

00000000 <__ctors_end>:
   0:   ff df           rcall   .-2             ; 0x0 <__ctors_end>

00000002 <dest>:
        ...

Note that the rcall offset is wrong - it's calling 0x0 rather than calling dest
(0x2). Disabling relaxation results in correct code

$ avr-gcc -mno-relax -mmcu=atmega1280 -Os avr-prop-5.s -nostartfiles
$ avr-objdump -S a.out

a.out:     file format elf32-avr


Disassembly of section .text:

00000000 <__ctors_end>:
   0:   0e 94 02 00     call    0x4     ; 0x4 <dest>

00000004 <dest>:
        ...

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]