13bd51c5aSJosh Poimboeuf#!/bin/sh 23bd51c5aSJosh Poimboeuf# SPDX-License-Identifier: GPL-2.0 33bd51c5aSJosh Poimboeuf 4bb090fdbSJulien Thierryif [ -z "$SRCARCH" ]; then 5bb090fdbSJulien Thierry echo 'sync-check.sh: error: missing $SRCARCH environment variable' >&2 6bb090fdbSJulien Thierry exit 1 7bb090fdbSJulien Thierryfi 8bb090fdbSJulien Thierry 9ee819aedSJulien ThierryFILES="include/linux/objtool.h" 10ee819aedSJulien Thierry 11bb090fdbSJulien Thierryif [ "$SRCARCH" = "x86" ]; then 12ee819aedSJulien ThierryFILES="$FILES 133bd51c5aSJosh Poimboeufarch/x86/include/asm/inat_types.h 143bd51c5aSJosh Poimboeufarch/x86/include/asm/orc_types.h 154d65adfcSMasami Hiramatsuarch/x86/include/asm/emulate_prefix.h 16d046b725SJosh Poimboeufarch/x86/lib/x86-opcode-map.txt 17d046b725SJosh Poimboeufarch/x86/tools/gen-insn-attr-x86.awk 181e7e4788SJosh Poimboeufinclude/linux/static_call_types.h 193890b8d9SJulien Thierry" 20*d30c7b82SBorislav Petkov 21*d30c7b82SBorislav PetkovSYNC_CHECK_FILES=' 22*d30c7b82SBorislav Petkovarch/x86/include/asm/inat.h 23*d30c7b82SBorislav Petkovarch/x86/include/asm/insn.h 24*d30c7b82SBorislav Petkovarch/x86/lib/inat.c 25*d30c7b82SBorislav Petkovarch/x86/lib/insn.c 26*d30c7b82SBorislav Petkov' 27bb090fdbSJulien Thierryfi 283bd51c5aSJosh Poimboeuf 292ffd84aeSArnaldo Carvalho de Melocheck_2 () { 302ffd84aeSArnaldo Carvalho de Melo file1=$1 312ffd84aeSArnaldo Carvalho de Melo file2=$2 323bd51c5aSJosh Poimboeuf 332ffd84aeSArnaldo Carvalho de Melo shift 342ffd84aeSArnaldo Carvalho de Melo shift 352ffd84aeSArnaldo Carvalho de Melo 362ffd84aeSArnaldo Carvalho de Melo cmd="diff $* $file1 $file2 > /dev/null" 372ffd84aeSArnaldo Carvalho de Melo 382ffd84aeSArnaldo Carvalho de Melo test -f $file2 && { 392ffd84aeSArnaldo Carvalho de Melo eval $cmd || { 402ffd84aeSArnaldo Carvalho de Melo echo "Warning: Kernel ABI header at '$file1' differs from latest version at '$file2'" >&2 412ffd84aeSArnaldo Carvalho de Melo echo diff -u $file1 $file2 422ffd84aeSArnaldo Carvalho de Melo } 432ffd84aeSArnaldo Carvalho de Melo } 442ffd84aeSArnaldo Carvalho de Melo} 452ffd84aeSArnaldo Carvalho de Melo 462ffd84aeSArnaldo Carvalho de Melocheck () { 472ffd84aeSArnaldo Carvalho de Melo file=$1 482ffd84aeSArnaldo Carvalho de Melo 492ffd84aeSArnaldo Carvalho de Melo shift 502ffd84aeSArnaldo Carvalho de Melo 512ffd84aeSArnaldo Carvalho de Melo check_2 tools/$file $file $* 523bd51c5aSJosh Poimboeuf} 533bd51c5aSJosh Poimboeuf 543bd51c5aSJosh Poimboeufif [ ! -d ../../kernel ] || [ ! -d ../../tools ] || [ ! -d ../objtool ]; then 553bd51c5aSJosh Poimboeuf exit 0 563bd51c5aSJosh Poimboeuffi 573bd51c5aSJosh Poimboeuf 582ffd84aeSArnaldo Carvalho de Melocd ../.. 592ffd84aeSArnaldo Carvalho de Melo 603890b8d9SJulien Thierrywhile read -r file_entry; do 613890b8d9SJulien Thierry if [ -z "$file_entry" ]; then 623890b8d9SJulien Thierry continue 633890b8d9SJulien Thierry fi 642ffd84aeSArnaldo Carvalho de Melo 653890b8d9SJulien Thierry check $file_entry 663890b8d9SJulien Thierrydone <<EOF 673890b8d9SJulien Thierry$FILES 683890b8d9SJulien ThierryEOF 69*d30c7b82SBorislav Petkov 70*d30c7b82SBorislav Petkovif [ "$SRCARCH" = "x86" ]; then 71*d30c7b82SBorislav Petkov for i in $SYNC_CHECK_FILES; do 72*d30c7b82SBorislav Petkov check $i '-I "^.*\/\*.*__ignore_sync_check__.*\*\/.*$"' 73*d30c7b82SBorislav Petkov done 74*d30c7b82SBorislav Petkovfi 75