Re: ATMega 2560 + RAMPZ + 128Kplus and the realproblem on GCC

Jan Waclawek <[email protected]>
Newsgroups gmane.comp.hardware.avr.gcc
Message-ID <[email protected]>
> > >Starting with gcc 4.7.x, code
> > >beyond 128 KB works right away provided you link with relaxation turned
> > >on
> > 
> > Why would relaxation needed to be turned on?
> > 
> 
> That was because of PR 14058, which, I just realized, is already fixed

Ah, so.

I put up this question already twice, once on avrfreaks.net, once here, and never received any answer, not even from Georg-Johann who put that remark into the official gcc documentation; so I am assuming that at least he is still uncertain that that was the only issue and that the fix solved it. 

I always deliberately avoided the situations which would result in trampolines in my ATMega256x project (and am still using a 2007-vintage WinAVR as my main tool), so, as a matter of fact, I don't have personal experience with this issue.

Also, purely technically, it's not the compiler version which is pertinent to the trampolines/stubs-related bugs fixes, as they were fixed in the linker (unless there were other related bug fixes in the compiler itself I am not aware of).

> So I guess relaxation in this case only serves to reduce the size of the
> trampoline table then, by not generating stubs for code that is
> reachable directly?

That is the intention at least (although, again purely technically, I would speak of the relaxation process removing the unneeded stubs after they have been created by the "regular" linking process).

JW
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.