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