linux/scripts
David Daney 9d3f99878b recordmcount: Fix handling of elf64 big-endian objects.
commit 2e885057b7 upstream.

In ELF64, the sh_flags field is 64-bits wide.  recordmcount was
erroneously treating it as a 32-bit wide field.  For little endian
objects this works because the flags of interest (SHF_EXECINSTR)
reside in the lower 32 bits of the word, and you get the same result
with either a 32-bit or 64-bit read.  Big endian objects on the
other hand do not work at all with this error.

The fix:  Correctly treat sh_flags as 64-bits wide in elf64 objects.

The symptom I observed was that my
__start_mcount_loc..__stop_mcount_loc was empty even though ftrace
function tracing was enabled.

Link: http://lkml.kernel.org/r/1324345362-12230-1-git-send-email-ddaney.cavm@gmail.com

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25 17:24:50 -08:00
..
basic
coccinelle
dtc
genksyms
kconfig kconfig/streamline-config.pl: Fix parsing Makefile with variables 2012-01-25 17:24:47 -08:00
ksymoops
mod
package
rt-tester
selinux
tracing
.gitignore
bin2c.c
bloat-o-meter
bootgraph.pl
checkincludes.pl
checkkconfigsymbols.sh
checkpatch.pl
checkstack.pl
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck
config
conmakehash.c
decodecode
depmod.sh
diffconfig
docproc.c
export_report.pl
extract-ikconfig
gcc-goto.sh
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh
get_maintainer.pl
gfp-translate
headerdep.pl
headers_check.pl
headers_install.pl
headers.sh
kallsyms.c
Kbuild.include
kernel-doc
Lindent
Makefile
Makefile.asm-generic
Makefile.build
Makefile.clean
Makefile.fwinst
Makefile.headersinst
Makefile.help
Makefile.host
Makefile.lib
Makefile.modbuiltin
Makefile.modinst
Makefile.modpost
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds
namespace.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
recordmcount.c
recordmcount.h recordmcount: Fix handling of elf64 big-endian objects. 2012-01-25 17:24:50 -08:00
recordmcount.pl
setlocalversion
show_delta
tags.sh
unifdef.c
ver_linux
xz_wrap.sh