#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

set -e

# To debug, uncomment the following line
# set -x

# Output from -fpatchable-function-entry can only vary on ppc64 elfv2, so this
# should not be invoked for other targets. Therefore we can pass in -m64 and
# -mabi explicitly, to take care of toolchains defaulting to other targets.

# Test whether the compile option -fpatchable-function-entry exists and
# generates appropriate code
echo "int func() { return 0; }" | \
    $* -m64 -mabi=elfv2 -S -x c -O2 -fpatchable-function-entry=2 - -o - 2> /dev/null | \
    grep -q "__patchable_function_entries"

# Test whether nops are generated after the local entry point
echo "int x; int func() { return x; }" | \
    $* -m64 -mabi=elfv2 -S -x c -O2 -fpatchable-function-entry=2 - -o - 2> /dev/null | \
    awk 'BEGIN { RS = ";" } /\.localentry.*nop.*\n[[:space:]]*nop/ { print $0 }' | \
    grep -q "func:"

exit 0
