Josh Poimboeuf | 3bd51c5 | 2017-11-06 07:21:51 -0600 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # SPDX-License-Identifier: GPL-2.0 |
| 3 | |
Julien Thierry | bb090fd | 2020-09-04 16:30:20 +0100 | [diff] [blame] | 4 | if [ -z "$SRCARCH" ]; then |
| 5 | echo 'sync-check.sh: error: missing $SRCARCH environment variable' >&2 |
| 6 | exit 1 |
| 7 | fi |
| 8 | |
Julien Thierry | ee819ae | 2020-09-04 16:30:27 +0100 | [diff] [blame] | 9 | FILES="include/linux/objtool.h" |
| 10 | |
Julien Thierry | bb090fd | 2020-09-04 16:30:20 +0100 | [diff] [blame] | 11 | if [ "$SRCARCH" = "x86" ]; then |
Julien Thierry | ee819ae | 2020-09-04 16:30:27 +0100 | [diff] [blame] | 12 | FILES="$FILES |
Josh Poimboeuf | 3bd51c5 | 2017-11-06 07:21:51 -0600 | [diff] [blame] | 13 | arch/x86/include/asm/inat_types.h |
| 14 | arch/x86/include/asm/orc_types.h |
Masami Hiramatsu | 4d65adf | 2019-09-06 22:14:10 +0900 | [diff] [blame] | 15 | arch/x86/include/asm/emulate_prefix.h |
Josh Poimboeuf | d046b72 | 2019-08-29 17:41:18 -0500 | [diff] [blame] | 16 | arch/x86/lib/x86-opcode-map.txt |
| 17 | arch/x86/tools/gen-insn-attr-x86.awk |
Josh Poimboeuf | 1e7e478 | 2020-08-18 15:57:45 +0200 | [diff] [blame] | 18 | include/linux/static_call_types.h |
Julien Thierry | 3890b8d | 2020-09-04 16:30:19 +0100 | [diff] [blame] | 19 | " |
Borislav Petkov | d30c7b8 | 2021-02-22 13:34:40 +0100 | [diff] [blame^] | 20 | |
| 21 | SYNC_CHECK_FILES=' |
| 22 | arch/x86/include/asm/inat.h |
| 23 | arch/x86/include/asm/insn.h |
| 24 | arch/x86/lib/inat.c |
| 25 | arch/x86/lib/insn.c |
| 26 | ' |
Julien Thierry | bb090fd | 2020-09-04 16:30:20 +0100 | [diff] [blame] | 27 | fi |
Josh Poimboeuf | 3bd51c5 | 2017-11-06 07:21:51 -0600 | [diff] [blame] | 28 | |
Arnaldo Carvalho de Melo | 2ffd84a | 2019-08-31 17:29:47 -0300 | [diff] [blame] | 29 | check_2 () { |
| 30 | file1=$1 |
| 31 | file2=$2 |
Josh Poimboeuf | 3bd51c5 | 2017-11-06 07:21:51 -0600 | [diff] [blame] | 32 | |
Arnaldo Carvalho de Melo | 2ffd84a | 2019-08-31 17:29:47 -0300 | [diff] [blame] | 33 | shift |
| 34 | shift |
| 35 | |
| 36 | cmd="diff $* $file1 $file2 > /dev/null" |
| 37 | |
| 38 | test -f $file2 && { |
| 39 | eval $cmd || { |
| 40 | echo "Warning: Kernel ABI header at '$file1' differs from latest version at '$file2'" >&2 |
| 41 | echo diff -u $file1 $file2 |
| 42 | } |
| 43 | } |
| 44 | } |
| 45 | |
| 46 | check () { |
| 47 | file=$1 |
| 48 | |
| 49 | shift |
| 50 | |
| 51 | check_2 tools/$file $file $* |
Josh Poimboeuf | 3bd51c5 | 2017-11-06 07:21:51 -0600 | [diff] [blame] | 52 | } |
| 53 | |
| 54 | if [ ! -d ../../kernel ] || [ ! -d ../../tools ] || [ ! -d ../objtool ]; then |
| 55 | exit 0 |
| 56 | fi |
| 57 | |
Arnaldo Carvalho de Melo | 2ffd84a | 2019-08-31 17:29:47 -0300 | [diff] [blame] | 58 | cd ../.. |
| 59 | |
Julien Thierry | 3890b8d | 2020-09-04 16:30:19 +0100 | [diff] [blame] | 60 | while read -r file_entry; do |
| 61 | if [ -z "$file_entry" ]; then |
| 62 | continue |
| 63 | fi |
Arnaldo Carvalho de Melo | 2ffd84a | 2019-08-31 17:29:47 -0300 | [diff] [blame] | 64 | |
Julien Thierry | 3890b8d | 2020-09-04 16:30:19 +0100 | [diff] [blame] | 65 | check $file_entry |
| 66 | done <<EOF |
| 67 | $FILES |
| 68 | EOF |
Borislav Petkov | d30c7b8 | 2021-02-22 13:34:40 +0100 | [diff] [blame^] | 69 | |
| 70 | if [ "$SRCARCH" = "x86" ]; then |
| 71 | for i in $SYNC_CHECK_FILES; do |
| 72 | check $i '-I "^.*\/\*.*__ignore_sync_check__.*\*\/.*$"' |
| 73 | done |
| 74 | fi |