linux/tools/objtool/sync-check.sh
<<
>>
Prefs
   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
  76