Commit | Line | Data |
---|---|---|
3bd51c5a JP |
1 | #!/bin/sh |
2 | # SPDX-License-Identifier: GPL-2.0 | |
3 | ||
bb090fdb JT |
4 | if [ -z "$SRCARCH" ]; then |
5 | echo 'sync-check.sh: error: missing $SRCARCH environment variable' >&2 | |
6 | exit 1 | |
7 | fi | |
8 | ||
f7515d9f | 9 | FILES="include/linux/objtool_types.h" |
ee819aed | 10 | |
bb090fdb | 11 | if [ "$SRCARCH" = "x86" ]; then |
ee819aed | 12 | FILES="$FILES |
301cddc2 | 13 | arch/x86/include/asm/nops.h |
3bd51c5a JP |
14 | arch/x86/include/asm/inat_types.h |
15 | arch/x86/include/asm/orc_types.h | |
4d65adfc | 16 | arch/x86/include/asm/emulate_prefix.h |
d046b725 JP |
17 | arch/x86/lib/x86-opcode-map.txt |
18 | arch/x86/tools/gen-insn-attr-x86.awk | |
1e7e4788 | 19 | include/linux/static_call_types.h |
3890b8d9 | 20 | " |
d30c7b82 BP |
21 | |
22 | SYNC_CHECK_FILES=' | |
23 | arch/x86/include/asm/inat.h | |
24 | arch/x86/include/asm/insn.h | |
25 | arch/x86/lib/inat.c | |
26 | arch/x86/lib/insn.c | |
27 | ' | |
bb090fdb | 28 | fi |
3bd51c5a | 29 | |
2ffd84ae ACM |
30 | check_2 () { |
31 | file1=$1 | |
32 | file2=$2 | |
3bd51c5a | 33 | |
2ffd84ae ACM |
34 | shift |
35 | shift | |
36 | ||
37 | cmd="diff $* $file1 $file2 > /dev/null" | |
38 | ||
39 | test -f $file2 && { | |
40 | eval $cmd || { | |
41 | echo "Warning: Kernel ABI header at '$file1' differs from latest version at '$file2'" >&2 | |
42 | echo diff -u $file1 $file2 | |
43 | } | |
44 | } | |
45 | } | |
46 | ||
47 | check () { | |
48 | file=$1 | |
49 | ||
50 | shift | |
51 | ||
52 | check_2 tools/$file $file $* | |
3bd51c5a JP |
53 | } |
54 | ||
55 | if [ ! -d ../../kernel ] || [ ! -d ../../tools ] || [ ! -d ../objtool ]; then | |
56 | exit 0 | |
57 | fi | |
58 | ||
2ffd84ae ACM |
59 | cd ../.. |
60 | ||
3890b8d9 JT |
61 | while read -r file_entry; do |
62 | if [ -z "$file_entry" ]; then | |
63 | continue | |
64 | fi | |
2ffd84ae | 65 | |
3890b8d9 JT |
66 | check $file_entry |
67 | done <<EOF | |
68 | $FILES | |
69 | EOF | |
d30c7b82 BP |
70 | |
71 | if [ "$SRCARCH" = "x86" ]; then | |
72 | for i in $SYNC_CHECK_FILES; do | |
73 | check $i '-I "^.*\/\*.*__ignore_sync_check__.*\*\/.*$"' | |
74 | done | |
75 | fi |