xref: /openbmc/linux/tools/objtool/sync-check.sh (revision 3890b8d92710af75baedf291832cf40193b33454)
13bd51c5aSJosh Poimboeuf#!/bin/sh
23bd51c5aSJosh Poimboeuf# SPDX-License-Identifier: GPL-2.0
33bd51c5aSJosh Poimboeuf
4*3890b8d9SJulien ThierryFILES="
53bd51c5aSJosh Poimboeufarch/x86/include/asm/inat_types.h
63bd51c5aSJosh Poimboeufarch/x86/include/asm/orc_types.h
74d65adfcSMasami Hiramatsuarch/x86/include/asm/emulate_prefix.h
8d046b725SJosh Poimboeufarch/x86/lib/x86-opcode-map.txt
9d046b725SJosh Poimboeufarch/x86/tools/gen-insn-attr-x86.awk
101e7e4788SJosh Poimboeufinclude/linux/static_call_types.h
11*3890b8d9SJulien Thierryarch/x86/include/asm/inat.h     -I '^#include [\"<]\(asm/\)*inat_types.h[\">]'
12*3890b8d9SJulien Thierryarch/x86/include/asm/insn.h     -I '^#include [\"<]\(asm/\)*inat.h[\">]'
13*3890b8d9SJulien Thierryarch/x86/lib/inat.c             -I '^#include [\"<]\(../include/\)*asm/insn.h[\">]'
14*3890b8d9SJulien Thierryarch/x86/lib/insn.c             -I '^#include [\"<]\(../include/\)*asm/in\(at\|sn\).h[\">]' -I '^#include [\"<]\(../include/\)*asm/emulate_prefix.h[\">]'
15*3890b8d9SJulien Thierry"
163bd51c5aSJosh Poimboeuf
172ffd84aeSArnaldo Carvalho de Melocheck_2 () {
182ffd84aeSArnaldo Carvalho de Melo  file1=$1
192ffd84aeSArnaldo Carvalho de Melo  file2=$2
203bd51c5aSJosh Poimboeuf
212ffd84aeSArnaldo Carvalho de Melo  shift
222ffd84aeSArnaldo Carvalho de Melo  shift
232ffd84aeSArnaldo Carvalho de Melo
242ffd84aeSArnaldo Carvalho de Melo  cmd="diff $* $file1 $file2 > /dev/null"
252ffd84aeSArnaldo Carvalho de Melo
262ffd84aeSArnaldo Carvalho de Melo  test -f $file2 && {
272ffd84aeSArnaldo Carvalho de Melo    eval $cmd || {
282ffd84aeSArnaldo Carvalho de Melo      echo "Warning: Kernel ABI header at '$file1' differs from latest version at '$file2'" >&2
292ffd84aeSArnaldo Carvalho de Melo      echo diff -u $file1 $file2
302ffd84aeSArnaldo Carvalho de Melo    }
312ffd84aeSArnaldo Carvalho de Melo  }
322ffd84aeSArnaldo Carvalho de Melo}
332ffd84aeSArnaldo Carvalho de Melo
342ffd84aeSArnaldo Carvalho de Melocheck () {
352ffd84aeSArnaldo Carvalho de Melo  file=$1
362ffd84aeSArnaldo Carvalho de Melo
372ffd84aeSArnaldo Carvalho de Melo  shift
382ffd84aeSArnaldo Carvalho de Melo
392ffd84aeSArnaldo Carvalho de Melo  check_2 tools/$file $file $*
403bd51c5aSJosh Poimboeuf}
413bd51c5aSJosh Poimboeuf
423bd51c5aSJosh Poimboeufif [ ! -d ../../kernel ] || [ ! -d ../../tools ] || [ ! -d ../objtool ]; then
433bd51c5aSJosh Poimboeuf	exit 0
443bd51c5aSJosh Poimboeuffi
453bd51c5aSJosh Poimboeuf
462ffd84aeSArnaldo Carvalho de Melocd ../..
472ffd84aeSArnaldo Carvalho de Melo
48*3890b8d9SJulien Thierrywhile read -r file_entry; do
49*3890b8d9SJulien Thierry    if [ -z "$file_entry" ]; then
50*3890b8d9SJulien Thierry	continue
51*3890b8d9SJulien Thierry    fi
522ffd84aeSArnaldo Carvalho de Melo
53*3890b8d9SJulien Thierry    check $file_entry
54*3890b8d9SJulien Thierrydone <<EOF
55*3890b8d9SJulien Thierry$FILES
56*3890b8d9SJulien ThierryEOF
57