xref: /linux/tools/objtool/tests/generic/test-special-section-shared.sh (revision 5b6dca02b3e2254d2fd5706d76d7ab4610a67296)
1*229ad173SPuranjay Mohan#!/bin/bash
2*229ad173SPuranjay Mohan# SPDX-License-Identifier: GPL-2.0
3*229ad173SPuranjay Mohan#
4*229ad173SPuranjay Mohan# Only the patched function's special section entry may be extracted.
5*229ad173SPuranjay Mohan
6*229ad173SPuranjay Mohan. "$(dirname "$0")/../lib.sh"
7*229ad173SPuranjay Mohan
8*229ad173SPuranjay Mohansetup
9*229ad173SPuranjay Mohanbuild_pair special_section_shared.c
10*229ad173SPuranjay Mohan
11*229ad173SPuranjay Mohanhas_input_section orig.o .kcfi_traps ||
12*229ad173SPuranjay Mohan	probe_skip "fixture produced no .kcfi_traps on this arch"
13*229ad173SPuranjay Mohan
14*229ad173SPuranjay Mohanrun_diff
15*229ad173SPuranjay Mohan
16*229ad173SPuranjay Mohanassert_patched     target
17*229ad173SPuranjay Mohanassert_not_patched other
18*229ad173SPuranjay Mohanassert_section     ".kcfi_traps"
19*229ad173SPuranjay Mohan
20*229ad173SPuranjay Mohanentries="$(out_relocs | awk '/rela\.kcfi_traps/,/^$/' | grep -c 'target')"
21*229ad173SPuranjay Mohan[ "$entries" = 1 ] || fail "expected one .kcfi_traps entry, found $entries"
22*229ad173SPuranjay Mohan
23*229ad173SPuranjay Mohanout_relocs | awk '/rela\.kcfi_traps/,/^$/' | grep -q 'other' &&
24*229ad173SPuranjay Mohan	fail "the untouched function's entry was dragged in"
25*229ad173SPuranjay Mohan
26*229ad173SPuranjay Mohanpass "only the patched function's entry extracted"
27