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


Hans-Peter Nilsson schrieb:
On Thu, 31 May 2012, Georg-Johann Lay wrote:
PR13697 appeared to be the easiest to fix so I proposed a patch.

I am aware that the proposition is not optimal but it *works*.

Did you understand the point that you're marking an input section when you should be marking the whole output section and that your solution will break if the whole code is compiled with -fdata-sections? (Assuming no assembly code adding anything to .data.)

I don't understand. If .data and .data.* are empty, and the code compiled with -fdata-sections, the object is in .bss.varname instead of in .bss. ar-nm still shows the right position with the patch that adds PROVIDE(*(.data))

Also the code is as expected if .data and .bss* are empty but with
an object in .data.varname

And as long as there is so much resistance to restore reasonable
behavior (not move . backwards)

What you see as resistance is really attempts at a resolution to help getting this fixed *without breaking expected behavior elsewhere*.

Ok. As I understood and from what Alan was saying, this PR is not supposed to be a bug and just a self inflicted (gcc inflicted) problem and that the test suite fails if the PR is fixed outside the avr part.

Alan pointed at two test-cases asserting the current behavior.
As I already said it's a bug to move the location counter backwards.

The "backwards" view is apparently "just" an artefact of the map-file being done before the section being GC:ed away, which is admittedly also surprising.

Are you saying that there is even more bugs? I.e. the mapfile is wrong or just plain misleading and the addresses there are just some maybe correct or maybe incorrect addresses?

More confusing, the mapfile reports what was discarded so it's
aware of gc-ed sections:

Discarded input sections

 .text          0x00000000        0x0 foo.o
 .bss           0x00000000        0x0 foo.o
 .data.saa      0x00000000        0x2 foo.o


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