mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-08-28 13:25:48 +00:00
maint.mk: sc_tight_scope: factor and support OS X
* top/maint.mk (_gl_tight_scope): Address three issues: - factor out four instances of code that wraps a string in "^...$" - allow nm-reported symbol names to have an optional leading "_" - add "main" to the list of ignored variable names, because on os x, "main" has nm-reported type "S" in the variable-checking section.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
2015-10-17 Jim Meyering <meyering@fb.com>
|
||||
|
||||
maint.mk: sc_tight_scope: factor and support OS X
|
||||
* top/maint.mk (_gl_tight_scope): Address three issues:
|
||||
- factor out four instances of code that wraps a string in "^...$"
|
||||
- allow nm-reported symbol names to have an optional leading "_"
|
||||
- add "main" to the list of ignored variable names, because on os x,
|
||||
"main" has nm-reported type "S" in the variable-checking section.
|
||||
|
||||
2015-10-16 Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
|
||||
safe-alloc-tests: fix typo in license header
|
||||
|
||||
+7
-6
@@ -1633,6 +1633,7 @@ _gl_TS_other_headers ?= *.h
|
||||
|
||||
.PHONY: _gl_tight_scope
|
||||
_gl_tight_scope: $(bin_PROGRAMS)
|
||||
sed_wrap='s/^/^_?/;s/$$/$$/'; \
|
||||
t=exceptions-$$$$; \
|
||||
trap 's=$$?; rm -f $$t; exit $$s' 0; \
|
||||
for sig in 1 2 3 13 15; do \
|
||||
@@ -1642,19 +1643,19 @@ _gl_tight_scope: $(bin_PROGRAMS)
|
||||
test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
|
||||
hdr=`for f in $(_gl_TS_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) and print "^$$1\$$"' $$hdr; \
|
||||
) | sort -u > $$t; \
|
||||
'$(_gl_TS_function_match) and print $$1' $$hdr; \
|
||||
) | sort -u | $(SED) "$$sed_wrap" > $$t; \
|
||||
nm -g $(_gl_TS_obj_files)|$(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); \
|
||||
perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' \
|
||||
( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars); \
|
||||
perl -lne '$(_gl_TS_var_match) and print $$1' \
|
||||
$$hdr $(_gl_TS_other_headers) \
|
||||
) | sort -u > $$t; \
|
||||
) | sort -u | $(SED) "$$sed_wrap" > $$t; \
|
||||
nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p' \
|
||||
| sort -u | grep -Ev -f $$t \
|
||||
&& { echo the above variables should have static scope >&2; \
|
||||
|
||||
Reference in New Issue
Block a user