summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2015-10-18 22:09:19 +0100
committerPádraig Brady <P@draigBrady.com>2015-10-19 10:25:14 +0100
commitb6757e83c401d38e747f99314e45840907a4f60a (patch)
tree7bfbabe8d3759846d188ed1fa743a154bbc3b0db
parent66504d41aa849746ec0f4f7f2dfa88f098c45f48 (diff)
downloadcoreutils-b6757e83c401d38e747f99314e45840907a4f60a.tar.xz
maint: fixes to support improved sc_tight_scope
The gnulib provided sc_tight_scope target was ineffective, as it was checking against an invalid blank regular expression, and thus ignoring any extern function issues. This is now fixed up in gnulib, and so we need to fix our scoping issues before the next gnulib update. * cfg.mk: Setup and document the tight_scope config variables appropriately. * src/selinux.h: Since declared in *_SOURCES, use the two line form for the extern function declarations. * src/set-fields.h: Add the extern declarations, and since declared in noinst_HEADERS use the single line form.
-rw-r--r--cfg.mk14
-rw-r--r--src/selinux.h6
-rw-r--r--src/set-fields.h6
3 files changed, 16 insertions, 10 deletions
diff --git a/cfg.mk b/cfg.mk
index bc5a1e857..010a903e1 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -766,12 +766,18 @@ gnulib-tests_CFLAGS = $(GNULIB_TEST_WARN_CFLAGS)
# Configuration to make the tight-scope syntax-check rule work with
# non-recursive make.
-export _gl_TS_headers = $(srcdir)/cfg.mk
-_gl_TS_dir = .
-_gl_TS_obj_files = src/*.$(OBJEXT)
+# Note _gl_TS_headers use _single line_ extern function declarations,
+# while *_SOURCES use the _two line_ form.
+export _gl_TS_headers = $(noinst_HEADERS)
+# Add exceptions for --enable-single-binary renamed functions.
+_gl_TS_unmarked_extern_functions = main usage
+_gl_TS_unmarked_extern_functions += single_binary_main_.* _usage_.*
+# Headers to search for single line extern _data_ declarations.
_gl_TS_other_headers = $(srcdir)/src/*.h src/*.h
-
# Tell the tight_scope rule about an exceptional "extern" variable.
# Normally, the rule would detect its declaration, but that uses a
# different name, __clz_tab.
_gl_TS_unmarked_extern_vars = factor_clz_tab
+# Other tight_scope settings
+_gl_TS_dir = .
+_gl_TS_obj_files = src/*.$(OBJEXT)
diff --git a/src/selinux.h b/src/selinux.h
index f9b327682..ed060f9de 100644
--- a/src/selinux.h
+++ b/src/selinux.h
@@ -29,8 +29,10 @@ ignorable_ctx_err (int err)
# if HAVE_SELINUX_SELINUX_H
-extern bool restorecon (char const *path, bool recurse, bool preserve);
-extern int defaultcon (char const *path, mode_t mode);
+extern bool
+restorecon (char const *path, bool recurse, bool preserve);
+extern int
+defaultcon (char const *path, mode_t mode);
# else
diff --git a/src/set-fields.h b/src/set-fields.h
index 2c55c2984..216cdc456 100644
--- a/src/set-fields.h
+++ b/src/set-fields.h
@@ -39,11 +39,9 @@ enum
};
/* allocates and initializes the FRP array and N_FRP count */
-void
-set_fields (const char *fieldstr, unsigned int options);
+extern void set_fields (const char *fieldstr, unsigned int options);
/* frees memory allocated by set_fields() */
-void
-reset_fields (void);
+extern void reset_fields (void);
#endif