On Thu, Nov 19, 2009 at 08:54:56PM +0100, Kai Tietz wrote: > 2009/11/19 Frederic Weisbecker <fweis...@gmail.com>: > > I would really like this. So that we can forget about other possible > > further suprises due to sophisticated function prologues beeing before > > the mcount call. > > > > And I guess that would fix it in every archs. > > My 5 cent for this, too. > > > That said, Linus had a good point about the fact there might other uses > > of mcount even more tricky than what does the function graph tracer, > > outside the kernel, and those may depend on the strict ABI assumption > > that 4(ebp) is always the _real_ return address, and that through all > > the previous stack call. This is even a concern that extrapolates the > > single mcount case. > > > > So I wonder that actually the real problem is the lack of something that > > could provide this guarantee. We may need a -real-ra-before-fp (yeah > > I suck in naming). > > There are, especially in windows world. We noticed that for example > the Sun's JDK (which is compiled by VC) can be used in gcc compiled > code only by -fno-omit-frame-pointer, as otherwise it fails badly > reasoned by wrong ebp accesses.
Yeah but what we need is not only to ensure ebp is used as the frame pointer but also that ebp + 4 is really the address that will be used to return to the caller, and not a copy of the return value.