From 00667b211fb2ea8f53cf5af2c0231e67257f0d86 Mon Sep 17 00:00:00 2001
From: =?utf8?q?P=C3=A1draig=20Brady?=
Date: Tue, 17 May 2011 19:08:14 +0100
Subject: [PATCH] maint.mk: exclude compiler symbols from sc_tight_scope
---
ChangeLog | 5 +++++
top/maint.mk | 9 ++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 982b868937..b723c7314b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-17 Pádraig Brady
+
+ * top/maint.mk (_gl_tight_scope:): Automatically exclude compiler
+ reserved symbols starting with double underscore from the check.
+
2011-05-17 Paul Eggert
intprops: add doc
diff --git a/top/maint.mk b/top/maint.mk
index 0f097d1235..d0d33e4dad 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -1362,13 +1362,16 @@ ifeq (a,b)
# Most functions should have static scope.
# Any that don't must be marked with `extern', but `main'
# and `usage' are exceptions: they're always extern, but
-# do not need to be marked.
+# do not need to be marked. Symbols matching `__.*' are
+# reserved by the compiler, so are automatically excluded below.
_gl_TS_unmarked_extern_functions ?= main usage
_gl_TS_function_match ?= \
/^(?:extern|XTERN) +(?:void|(?:struct |const |enum )?\S+) +\**(\S+) +\(/
# The second nm|grep checks for file-scope variables with `extern' scope.
# Without gnulib's progname module, you might put program_name here.
+# Symbols matching `__.*' are reserved by the compiler,
+# so are automatically excluded below.
_gl_TS_unmarked_extern_vars ?=
# NOTE: the _match variables are perl expressions -- not mere regular
@@ -1391,7 +1394,7 @@ _gl_tight_scope: $(bin_PROGRAMS)
test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
hdr=`for f in $(noinst_HEADERS); do \
test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
- ( printf '^%s$$\n' $(_gl_TS_unmarked_extern_functions); \
+ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \
grep -h -A1 '^extern .*[^;]$$' $$src \
| grep -vE '^(extern |--)' | sed 's/ .*//'; \
perl -lne '$(_gl_TS_function_match)' \
@@ -1400,7 +1403,7 @@ _gl_tight_scope: $(bin_PROGRAMS)
nm -e *.$(OBJEXT) | sed -n 's/.* T //p' | grep -Ev -f $$t \
&& { echo the above functions should have static scope >&2; \
exit 1; } || : ; \
- ( printf '^%s$$\n' $(_gl_TS_unmarked_extern_vars); \
+ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \
perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' \
$$hdr *.h ) | sort -u > $$t; \
nm -e *.$(OBJEXT) | sed -n 's/.* [BCDGRS] //p' \
--
2.30.2