Commit cd46ea5a authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

tools check_headers.sh: Add check variant that excludes some hunks



With 6d74e1e3 ("tools/lib/list_sort: remove redundant code for
cond_resched handling") we end up with a multi-line variation in the
merge_final() implementation, one that the simple line based exceptions
we had so far can't cope.

Thus this check has been failing:

  Warning: Kernel ABI header differences:
    diff -u tools/lib/list_sort.c lib/list_sort.c

So add a new check routine that uses grep -vf to exclude some hunks that
we store in the tools/perf/check-header_ignore_hunks/ directory.

This first patch is just the new check routine, the next one will use it
to check lib/list_sort.c.

Acked-by: default avatarKuan-Wei Chiu <visitorckw@gmail.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Link: https://lore.kernel.org/lkml/20240930202136.16904-2-acme@kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent d1648688
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -136,6 +136,30 @@ beauty_check () {
  check_2 "tools/perf/trace/beauty/$file" "$file" "$@"
}

check_ignore_some_hunks () {
  orig_file="$1"
  tools_file="tools/$orig_file"
  hunks_to_ignore="tools/perf/check-header_ignore_hunks/$orig_file"

  if [ ! -f "$hunks_to_ignore" ]; then
    echo "$hunks_to_ignore not found. Skipping $orig_file check."
    FAILURES+=(
      "$tools_file $orig_file"
    )
    return
  fi

  cmd="diff -u \"$tools_file\" \"$orig_file\" | grep -vf \"$hunks_to_ignore\" | wc -l | grep -qw 0"

  if [ -f "$orig_file" ] && ! eval "$cmd"
  then
    FAILURES+=(
      "$tools_file $orig_file"
    )
  fi
}


# 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.