diff options
author | Roland McGrath <roland@hack.frob.com> | 2011-07-02 15:52:51 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2011-07-02 15:52:51 -0700 |
commit | ea5ee9f73d7b9d143d04e6b91020fe9dc7b18a40 (patch) | |
tree | 7f734582fe608af5316458e08258bb5ad9d2304b /scripts/check-local-headers.sh | |
parent | 1b74661a6b93a892ecb1c717dedeedba5c2a976c (diff) | |
download | glibc-ea5ee9f73d7b9d143d04e6b91020fe9dc7b18a40.tar.gz glibc-ea5ee9f73d7b9d143d04e6b91020fe9dc7b18a40.tar.xz glibc-ea5ee9f73d7b9d143d04e6b91020fe9dc7b18a40.zip |
Rewrite local headers check to be more robust and informative.
Diffstat (limited to 'scripts/check-local-headers.sh')
-rwxr-xr-x | scripts/check-local-headers.sh | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh index d15e9a4416..b73078d364 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 |