Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gprof SEGV issue for GCC-4.5.X toolchain.



On Jun 27, 2011, at 2:56 AM, amol pise wrote:

> Dear All,
> 
> I have build the NetBSD-5.1 library by compiling it for ARMv7a (Cortex
> architecture)
> using the GNU GCC-4.5 toolchain.
> 
> Now when I tried to build a sample scenario "hello.c" with profiling
> options "-pg" for gprof analysis.
> Now the new implementation uses "__gnu_mcount_nc".
> So the solution to resolve this issue is to add this new profiling
> hook "__gnu_mcount_nc" into NetBSD library.

Well, first of all, NetBSD doesn't use EABI.  That ABI derives from bpabi.h 
which isn't used by arm*-*-netbsdelf*.  So you've built the wrong compiler to 
use with NetBSD.

The profile ABI changed significantly for bpabi.  In fact, NetBSD has its own 
version of the profil call:

/* NetBSD does its profiling differently to the Acorn compiler. We
   don't need a word following the mcount call; and to skip it
   requires either an assembly stub or use of fomit-frame-pointer when
   compiling the profiling functions.  Since we break Acorn CC
   compatibility below a little more won't hurt.  */

#undef  ARM_FUNCTION_PROFILER
#define ARM_FUNCTION_PROFILER(STREAM,LABELNO)                               \
{                                                                           \
  fprintf(STREAM, "\tmov\t%sip, %slr\n", REGISTER_PREFIX, REGISTER_PREFIX); \
  fprintf(STREAM, "\tbl\tmcount\n");                                        \
}




Home | Main Index | Thread Index | Old Index