Re: dynamic ftrace/recordmcount.c problem on ARMv5

From: Steven Rostedt
Date: Wed Jan 13 2016 - 11:09:06 EST


On Wed, 13 Jan 2016 09:51:28 +0100
Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> wrote:

> There are 5 calls to __gnu_mcount_nc in the object file:
> > $ objdump -x arch/arm/kernel/stacktrace.o | grep R_ARM_CALL | grep __gnu_mcount_nc
> > 00000054 R_ARM_CALL __gnu_mcount_nc
> > 0000016c R_ARM_CALL __gnu_mcount_nc
> > 00000234 R_ARM_CALL __gnu_mcount_nc
> > 0000026c R_ARM_CALL __gnu_mcount_nc
> > 000002f4 R_ARM_CALL __gnu_mcount_nc
>
> However there are 6 references in the __mcount_loc section:
> > $ readelf -R __mcount_loc arch/arm/kernel/stacktrace.o
> >
> > Hex dump of section '__mcount_loc':
> > 0x00000000 24000000 54000000 6c010000 34020000 $...T...l...4...
> > 0x00000010 6c020000 f4020000 l.......
>
> Note: The first and wrong offset is 0x24, which is a "bx r6" (see above
> objdump of stacktrace.o):
> > 24: e12fff16 bx r6

Interesting. Have you tried a make mrproper and tried again? Also, do
you use hardlinks with ccache?

>
> I hacked scripts/Makefile.build to use the perl version of recordmcount,
> that works without problems.

Note, you could also just removed CONFIG_HAVE_C_RECORDMCOUNT from
arch/arm/Kconfig.

-- Steve