Blame view

tools/perf/check-headers.sh 4.02 KB
aeafd623f   Jiri Olsa   perf tools: Move ...
1
  #!/bin/sh
b24413180   Greg Kroah-Hartman   License cleanup: ...
2
  # SPDX-License-Identifier: GPL-2.0
aeafd623f   Jiri Olsa   perf tools: Move ...
3

00a263902   Josh Poimboeuf   perf intel-pt: Us...
4
  FILES='
aaa6ef8aa   Arnaldo Carvalho de Melo   tools headers: Gr...
5
  include/uapi/linux/const.h
c1737f2b7   Arnaldo Carvalho de Melo   tools include uap...
6
7
  include/uapi/drm/drm.h
  include/uapi/drm/i915_drm.h
f9cdd63e7   Arnaldo Carvalho de Melo   tools headers uap...
8
  include/uapi/linux/fadvise.h
67ef28794   Arnaldo Carvalho de Melo   tools include uap...
9
  include/uapi/linux/fcntl.h
f443f38c5   Arnaldo Carvalho de Melo   tools include uap...
10
  include/uapi/linux/fs.h
0ae406122   Arnaldo Carvalho de Melo   tools headers uap...
11
  include/uapi/linux/fscrypt.h
735e215e9   Arnaldo Carvalho de Melo   tools include uap...
12
  include/uapi/linux/kcmp.h
3ce97513f   Arnaldo Carvalho de Melo   tools include uap...
13
  include/uapi/linux/kvm.h
a4b206124   Arnaldo Carvalho de Melo   tools include uap...
14
  include/uapi/linux/in.h
250bfc87d   Arnaldo Carvalho de Melo   tools include uap...
15
  include/uapi/linux/mount.h
c45283338   Arnaldo Carvalho de Melo   tools include UAP...
16
  include/uapi/linux/openat2.h
aeafd623f   Jiri Olsa   perf tools: Move ...
17
  include/uapi/linux/perf_event.h
433727948   Arnaldo Carvalho de Melo   tools include uap...
18
  include/uapi/linux/prctl.h
450c86c9a   Arnaldo Carvalho de Melo   tools include uap...
19
  include/uapi/linux/sched.h
67ef28794   Arnaldo Carvalho de Melo   tools include uap...
20
  include/uapi/linux/stat.h
2bd71d11a   Arnaldo Carvalho de Melo   tools headers uap...
21
  include/uapi/linux/usbdevice_fs.h
d02b395e1   Arnaldo Carvalho de Melo   tools include uap...
22
  include/uapi/linux/vhost.h
a215684e1   Arnaldo Carvalho de Melo   tools include uap...
23
  include/uapi/sound/asound.h
ba4aa02b4   Arnaldo Carvalho de Melo   tools include: Ad...
24
  include/linux/bits.h
aaa6ef8aa   Arnaldo Carvalho de Melo   tools headers: Gr...
25
  include/linux/const.h
aeafd623f   Jiri Olsa   perf tools: Move ...
26
27
28
29
30
  include/linux/hash.h
  include/uapi/linux/hw_breakpoint.h
  arch/x86/include/asm/disabled-features.h
  arch/x86/include/asm/required-features.h
  arch/x86/include/asm/cpufeatures.h
00a263902   Josh Poimboeuf   perf intel-pt: Us...
31
  arch/x86/include/asm/inat_types.h
4d65adfcd   Masami Hiramatsu   x86: xen: insn: D...
32
  arch/x86/include/asm/emulate_prefix.h
d2b72b728   Arnaldo Carvalho de Melo   tools arch x86: G...
33
  arch/x86/include/asm/irq_vectors.h
444e2ff34   Arnaldo Carvalho de Melo   tools arch x86: G...
34
  arch/x86/include/asm/msr-index.h
c22e2683c   Arnaldo Carvalho de Melo   tools include arc...
35
  arch/x86/include/uapi/asm/prctl.h
00a263902   Josh Poimboeuf   perf intel-pt: Us...
36
37
  arch/x86/lib/x86-opcode-map.txt
  arch/x86/tools/gen-insn-attr-x86.awk
aeafd623f   Jiri Olsa   perf tools: Move ...
38
39
40
  arch/arm/include/uapi/asm/perf_regs.h
  arch/arm64/include/uapi/asm/perf_regs.h
  arch/powerpc/include/uapi/asm/perf_regs.h
10b9baa70   Arnaldo Carvalho de Melo   tools arch s390: ...
41
  arch/s390/include/uapi/asm/perf_regs.h
aeafd623f   Jiri Olsa   perf tools: Move ...
42
43
44
45
  arch/x86/include/uapi/asm/perf_regs.h
  arch/x86/include/uapi/asm/kvm.h
  arch/x86/include/uapi/asm/kvm_perf.h
  arch/x86/include/uapi/asm/svm.h
047726d1f   Arnaldo Carvalho de Melo   tools include uap...
46
  arch/x86/include/uapi/asm/unistd.h
aeafd623f   Jiri Olsa   perf tools: Move ...
47
48
49
50
  arch/x86/include/uapi/asm/vmx.h
  arch/powerpc/include/uapi/asm/kvm.h
  arch/s390/include/uapi/asm/kvm.h
  arch/s390/include/uapi/asm/kvm_perf.h
a81c42136   Hendrik Brueckner   perf s390: add re...
51
  arch/s390/include/uapi/asm/ptrace.h
aeafd623f   Jiri Olsa   perf tools: Move ...
52
53
54
  arch/s390/include/uapi/asm/sie.h
  arch/arm/include/uapi/asm/kvm.h
  arch/arm64/include/uapi/asm/kvm.h
34b009cfd   Kim Phillips   tools include: Gr...
55
  arch/arm64/include/uapi/asm/unistd.h
95f28190a   Hendrik Brueckner   tools include arc...
56
57
58
59
60
61
62
  arch/alpha/include/uapi/asm/errno.h
  arch/mips/include/asm/errno.h
  arch/mips/include/uapi/asm/errno.h
  arch/parisc/include/uapi/asm/errno.h
  arch/powerpc/include/uapi/asm/errno.h
  arch/sparc/include/uapi/asm/errno.h
  arch/x86/include/uapi/asm/errno.h
aeafd623f   Jiri Olsa   perf tools: Move ...
63
64
65
66
67
68
  include/asm-generic/bitops/arch_hweight.h
  include/asm-generic/bitops/const_hweight.h
  include/asm-generic/bitops/__fls.h
  include/asm-generic/bitops/fls.h
  include/asm-generic/bitops/fls64.h
  include/linux/coresight-pmu.h
28b8f9540   Hendrik Brueckner   tools include asm...
69
70
  include/uapi/asm-generic/errno.h
  include/uapi/asm-generic/errno-base.h
6375f0abe   Arnaldo Carvalho de Melo   tools include uap...
71
  include/uapi/asm-generic/ioctls.h
aeafd623f   Jiri Olsa   perf tools: Move ...
72
  include/uapi/asm-generic/mman-common.h
34b009cfd   Kim Phillips   tools include: Gr...
73
  include/uapi/asm-generic/unistd.h
aeafd623f   Jiri Olsa   perf tools: Move ...
74
  '
582472973   Jiri Olsa   perf check-header...
75
76
77
  check_2 () {
    file1=$1
    file2=$2
aeafd623f   Jiri Olsa   perf tools: Move ...
78
79
  
    shift
582472973   Jiri Olsa   perf check-header...
80
    shift
aeafd623f   Jiri Olsa   perf tools: Move ...
81

582472973   Jiri Olsa   perf check-header...
82
    cmd="diff $* $file1 $file2 > /dev/null"
aeafd623f   Jiri Olsa   perf tools: Move ...
83

51d8aac23   Alexander Kapshuk   perf tools: Fix c...
84
85
    test -f $file2 && {
      eval $cmd || {
7ea6e983b   Jiri Olsa   perf tools: Make ...
86
87
        echo "Warning: Kernel ABI header at '$file1' differs from latest version at '$file2'" >&2
        echo diff -u $file1 $file2
51d8aac23   Alexander Kapshuk   perf tools: Fix c...
88
89
      }
    }
aeafd623f   Jiri Olsa   perf tools: Move ...
90
  }
582472973   Jiri Olsa   perf check-header...
91
92
93
94
  check () {
    file=$1
  
    shift
7ea6e983b   Jiri Olsa   perf tools: Make ...
95
    check_2 tools/$file $file $*
582472973   Jiri Olsa   perf check-header...
96
  }
aeafd623f   Jiri Olsa   perf tools: Move ...
97

d7e05ceaa   Arnaldo Carvalho de Melo   perf tools: Do no...
98
99
100
101
  # Check if we have the kernel headers (tools/perf/../../include), else
  # we're probably on a detached tarball, so no point in trying to check
  # differences.
  test -d ../../include || exit 0
7ea6e983b   Jiri Olsa   perf tools: Make ...
102
  cd ../..
aeafd623f   Jiri Olsa   perf tools: Move ...
103
  # simple diff check
00a263902   Josh Poimboeuf   perf intel-pt: Us...
104
  for i in $FILES; do
aeafd623f   Jiri Olsa   perf tools: Move ...
105
106
107
108
    check $i -B
  done
  
  # diff with extra ignore lines
bd5c6b81d   Arnaldo Carvalho de Melo   perf bench: Updat...
109
110
  check arch/x86/lib/memcpy_64.S        '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memcpy_\(erms\|orig\))"'
  check arch/x86/lib/memset_64.S        '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memset_\(erms\|orig\))"'
be709d483   Arnaldo Carvalho de Melo   tools headers uap...
111
  check include/uapi/asm-generic/mman.h '-I "^#include <\(uapi/\)*asm-generic/mman-common\(-tools\)*.h>"'
15019e981   Jiri Olsa   perf check-header...
112
  check include/uapi/linux/mman.h       '-I "^#include <\(uapi/\)*asm/mman.h>"'
3052ba56b   Arnaldo Carvalho de Melo   tools perf: Move ...
113
114
  check include/linux/ctype.h	      '-I "isdigit("'
  check lib/ctype.c		      '-I "^EXPORT_SYMBOL" -I "^#include <linux/export.h>" -B'
87a682a7c   Arnaldo Carvalho de Melo   perf build: Ignor...
115
116
117
  check arch/x86/include/asm/inat.h     '-I "^#include [\"<]\(asm/\)*inat_types.h[\">]"'
  check arch/x86/include/asm/insn.h     '-I "^#include [\"<]\(asm/\)*inat.h[\">]"'
  check arch/x86/lib/inat.c	      '-I "^#include [\"<]\(../include/\)*asm/insn.h[\">]"'
4d65adfcd   Masami Hiramatsu   x86: xen: insn: D...
118
  check arch/x86/lib/insn.c             '-I "^#include [\"<]\(../include/\)*asm/in\(at\|sn\).h[\">]" -I "^#include [\"<]\(../include/\)*asm/emulate_prefix.h[\">]"'
7ea6e983b   Jiri Olsa   perf tools: Make ...
119

c9b51a017   Jiri Olsa   perf tools: Move ...
120
121
  # diff non-symmetric files
  check_2 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
7ea6e983b   Jiri Olsa   perf tools: Make ...
122
  cd tools/perf