ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM
authorRabin Vincent <rabin@rab.in>
Wed, 11 May 2011 17:23:51 +0000 (22:23 +0530)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 25 May 2011 23:56:33 +0000 (19:56 -0400)
commit9905ce8ad7b79dddd23c7b4753d0b2cdb65bde3c
tree72f06d11cf99b20d7e91a1bb65be8a7f20756c65
parent4d7a2fa876d1a615649761dc465708d0a062249a
ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM

While find_secsym_ndx often finds the unamed local STT_SECTION, if a
section has only one function in it, the ARM toolchain generates the
STT_FUNC symbol before the STT_SECTION, and recordmcount finds this
instead.

This is problematic on ARM because in ARM ELFs, "if a [STT_FUNC] symbol
addresses a Thumb instruction, its value is the address of the
instruction with bit zero set (in a relocatable object, the section
offset with bit zero set)".  This leads to incorrect mcount addresses
being recorded.

Fix this by not using STT_FUNC symbols as the base on ARM.

Signed-off-by: Rabin Vincent <rabin@rab.in>
Link: http://lkml.kernel.org/r/1305134631-31617-1-git-send-email-rabin@rab.in
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
scripts/recordmcount.h