Path: blob/master/arch/powerpc/tools/ftrace-gen-ool-stubs.sh
26451 views
#!/bin/sh1# SPDX-License-Identifier: GPL-2.0-or-later23# Error out on error4set -e56num_ool_stubs_text_builtin="$1"7is_64bit="$2"8objdump="$3"9vmlinux_o="$4"10arch_vmlinux_S="$5"1112RELOCATION=R_PPC64_ADDR6413if [ -z "$is_64bit" ]; then14RELOCATION=R_PPC_ADDR3215fi1617num_ool_stubs_total=$($objdump -r -j __patchable_function_entries "$vmlinux_o" |18grep -c "$RELOCATION")19num_ool_stubs_inittext=$($objdump -r -j __patchable_function_entries "$vmlinux_o" |20grep -e ".init.text" -e ".text.startup" | grep -c "$RELOCATION")21num_ool_stubs_text=$((num_ool_stubs_total - num_ool_stubs_inittext))2223if [ "$num_ool_stubs_text" -gt "$num_ool_stubs_text_builtin" ]; then24num_ool_stubs_text_end=$((num_ool_stubs_text - num_ool_stubs_text_builtin))25else26num_ool_stubs_text_end=027fi2829cat > "$arch_vmlinux_S" <<EOF30#include <asm/asm-offsets.h>31#include <asm/ppc_asm.h>32#include <linux/linkage.h>3334.pushsection .tramp.ftrace.text,"aw"35SYM_DATA(ftrace_ool_stub_text_end_count, .long $num_ool_stubs_text_end)3637SYM_START(ftrace_ool_stub_text_end, SYM_L_GLOBAL, .balign SZL)38#if $num_ool_stubs_text_end39.space $num_ool_stubs_text_end * FTRACE_OOL_STUB_SIZE40#endif41SYM_CODE_END(ftrace_ool_stub_text_end)42.popsection4344.pushsection .tramp.ftrace.init,"aw"45SYM_DATA(ftrace_ool_stub_inittext_count, .long $num_ool_stubs_inittext)4647SYM_START(ftrace_ool_stub_inittext, SYM_L_GLOBAL, .balign SZL)48.space $num_ool_stubs_inittext * FTRACE_OOL_STUB_SIZE49SYM_CODE_END(ftrace_ool_stub_inittext)50.popsection51EOF525354