This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch,AVR]: Fix PR13697: Wrong symbols with --gc-sections


Alan Modra schrieb:
On Tue, May 29, 2012 at 03:37:45PM -0400, Hans-Peter Nilsson wrote:
On Tue, 29 May 2012, Georg-Johann Lay wrote:
At the start of .bss the location counter is moved backwards!
I still think this is a linker bug.
Well yes, but the point was that the bug is not the linker
script's lack of KEEP.

Whether or not this is a bug depends on how you think zero size discarded output sections should be treated.

However the treatment with --gc-sections is, if you read the map and observe that the location pointer is moved /backwards/ then it's clearly a bug.

.data           0x00800100        0x0 load address 0x0000009e
                0x00800100                PROVIDE (__data_start, .)
 *(.data)
 *(.data*)
 *(.rodata)
 *(.rodata*)
 *(.gnu.linkonce.d*)
                0x00800100                . = ALIGN (0x2)
                0x00800100                _edata = .
                0x00800100                PROVIDE (__data_end, .)

.bss            0x00800060        0x2
                0x00800060                PROVIDE (__bss_start, .)
 *(.bss)
 .bss           0x00800060        0x2 foo.o
                0x00800060                aaa


Johann seems to want this latter behaviour judging from his
comment about optimisation.

It's just plain wrong to move . backwards!


+FAIL: ld-scripts/empty-address-2a
+FAIL: ld-scripts/empty-address-2b

Seems someone wants this behaviour enough to write a testcase.

Moving location backwards???


Johann


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]