Add a testase for BZ #14602
[glibc.git] / scripts / check-local-headers.sh
blob7fafcbf4d7e2407d11d4b23ac1d4f0e07c0621ab
1 #! /bin/bash
2 # Copyright (C) 2005-2012 Free Software Foundation, Inc.
3 # This file is part of the GNU C Library.
5 # The GNU C Library is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU Lesser General Public
7 # License as published by the Free Software Foundation; either
8 # version 2.1 of the License, or (at your option) any later version.
10 # The GNU C Library is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # Lesser General Public License for more details.
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with the GNU C Library; if not, see
17 # <http://www.gnu.org/licenses/>.
19 includedir="$1"
20 objpfx="$2"
22 # To avoid long paths.
23 cd "$objpfx"
25 # OK if *.os is missing.
26 shopt -s nullglob
28 # Search all dependency files for file names in the include directory.
29 # There are a few system headers we are known to use.
30 exec ${AWK} -v includedir="$includedir" '
31 BEGIN {
32 status = 0
33 exclude = "^" includedir \
34 "/(.*-.*-.*/|)(asm[-/]|linux/|selinux/|gd|nss3/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
36 /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
38 for (i = 1; i <= NF; ++i) {
39 if ($i ~ ("^" includedir) && $i !~ exclude) {
40 print "***", obj, "uses", $i
41 status = 1
45 END { exit status }' */*.{o,os,oS}.d