RE: gprof's broken in 7-CURRENT



Luoqi Chen wrote:
Has anyone else noticed that gprof no longer works with gcc 4.2

It's a known bug (very irritating!), but I think noone is working on it
so it won't be fixed in 7.0.

In that case, I'll fix it.

I've looked at glibc's code, it claims that mcount cannot clobber any register.
I don't know if there is a standard for mcount interface, but I guess the gcc
team would use the glibc implementation as the reference. I'll change our code
to do the same.

/* We need a special version of the `mcount' function since for ix86 it
must not clobber any register. This has several reasons:
- there is a bug in gcc as of version 2.7.2.2 which prohibits the
use of profiling together with nested functions
- the ELF `fixup' function uses GCC's regparm feature
- some (future) systems might want to pass parameters in registers. */

ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
.align ALIGNARG(4)
C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
pushl %eax
pushl %ecx
pushl %edx

movl 12(%esp), %edx
movl 4(%ebp), %eax

/* No need to access the PLT or GOT, __mcount_internal is an
internal function and we can make a relative call. */
call C_SYMBOL_NAME(__mcount_internal)

/* Pop the saved registers. Please note that `mcount' has no
return value. */
popl %edx
popl %ecx
popl %eax
ret
ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))

Thanks
-lq
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Eclipse bug?
    ... Would updating manually rather than automatically risk my data? ... For example, they track who the bug is assigned to, what dependencies on ... giving feedback to developers, not how the developers internally keep ... expecting ALL users to register for ALL software, separately, is just ...
    (comp.lang.java.programmer)
  • Re: Eclipse bug?
    ... Maybe it's a bug that was fixed, and there's a second bug in the ... All I'm saying is that for someone in your specific situation, fearing receiving spam from the Eclipse develop team is nonsensical. ... wants users to jump through extra hoops for *their* software. ... register WinAmp because I didn't find a need to. ...
    (comp.lang.java.programmer)
  • [RFC PATCH 00/30 v3] mcount and latency tracing utility -v3
    ... Made mcount be able to register more than one function to call. ... Add schedule context switch tracing. ... placed it into the scheduling trace, ...
    (Linux-Kernel)
  • Re: Eclipse bug?
    ... Dev: ... For example, they track who the bug is assigned to, what dependencies on ... So best to expect them to register ... I'm saying that software vendors cannot reasonably expect me ...
    (comp.lang.java.programmer)
  • Re: Eclipse bug?
    ... Dev: ... For example, they track who the bug is assigned to, what dependencies on ... So best to expect them to register ... I'm saying that software vendors cannot reasonably expect me ...
    (comp.lang.java.programmer)