From ea5ee9f73d7b9d143d04e6b91020fe9dc7b18a40 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 2 Jul 2011 15:52:51 -0700 Subject: Rewrite local headers check to be more robust and informative. --- scripts/check-local-headers.sh | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'scripts') diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh index d15e9a4..b73078d 100755 --- a/scripts/check-local-headers.sh +++ b/scripts/check-local-headers.sh @@ -1,5 +1,5 @@ #! /bin/bash -# Copyright (C) 2005, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2005,2007,2009,2011 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -23,18 +23,21 @@ objpfx="$2" # To avoid long paths. cd "$objpfx" - # Search all dependency files for file names in the include directory. # There are a few system headers we are known to use. -if fgrep "$includedir" */*.{o,os,oS}.d | -fgrep -v "$includedir/asm" | -fgrep -v "$includedir/linux" | -fgrep -v "$includedir/selinux" | -fgrep -v "$includedir/sys/capability.h" | -fgrep -v "$includedir/gd" | -fgrep -v "$includedir/nss3"; then - # If we found a match something is wrong. - exit 1 -fi - -exit 0 +exec ${AWK} -v includedir="$includedir" ' +BEGIN { + status = 0 + exclude = "^" includedir \ + "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h)" +} +/^[^ ]/ && $1 ~ /.*:/ { obj = $1 } +{ + for (i = 1; i <= NF; ++i) { + if ($i ~ ("^" includedir) && $i !~ exclude) { + print "***", obj, "uses", $i + status = 1 + } + } +} +END { exit status }' */*.{o,os,oS}.d -- cgit v1.1