This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports 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] Fix the glibc profiling issue on arm-unknown-linux-gnueabi.


On Mon, 31 Jan 2011, Manjunath Matti wrote:

> This time I have created the patch with the following sources
> glibc-2.12.2 and glibc-ports 2.12.2
> 
> I have even tested it on ARMv7a (Beagle Board) and hope this would be
> fine to be main lined.

Thanks, this patch is a lot closer to being ready to go in.

>  /* If compiled for profiling, call `mcount' at the start of each function.  */
>  #ifdef PROF
> +/* Call __gnu_mcount_nc if GCC > 4.4 and abi = EABI */
> +#if __GNUC_PREREQ(4,4) && defined(__ARM_EABI__)
> +#define CALL_MCOUNT \
> +  str  lr,[sp, #-4]!; \
> +  cfi_adjust_cfa_offset (4); \
> +  cfi_rel_offset (lr, 0); \
> +  bl PLTJMP(mcount);

I think you need

  cfi_adjust_cfa_offset (-4)
  cfi_restore (lr)

here, since from the caller's perspective the "bl PLTJMP(mcount)" 
instruction (calling __gnu_mcount_nc via the mcount macro you define 
later) acts by popping lr.

-- 
Joseph S. Myers
joseph@codesourcery.com


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