[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[coreutils] [PATCH 1/4] tests: improve the always_defined_macros check
From: |
Jim Meyering |
Subject: |
[coreutils] [PATCH 1/4] tests: improve the always_defined_macros check |
Date: |
Sun, 09 May 2010 19:28:06 +0200 |
FYI,
>From cab21195422804046a7f2b18de2282a46a2e8f39 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 9 May 2010 12:08:21 +0200
Subject: [PATCH 1/4] tests: improve the always_defined_macros check
* cfg.mk (sc_always_defined_macros): Adjust its helpers not to depend
on the existence of ./lib. Instead, extract symbols directly from
gnulib/lib/*.in.h files.
---
cfg.mk | 30 ++++++++++++++----------------
1 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index 9eb1c9e..6153f53 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -106,32 +106,29 @@ sc_x_sc_dist_check:
) | sort | uniq -u)" \
&& { echo 'Makefile.am: $(sce) mismatch' >&2; exit 1; } || :;
-gl_generated_headers_ = \
- $$(cd $(gnulib_dir)/lib && echo *.in.h|sed 's,sys_,sys/,g;s/\.in\.h/.h/g')
-
-headers_with_interesting_macro_defs = \
- exit.h \
+# ==================================================================
+gl_other_headers_ ?= \
intprops.h \
- lchown.h \
openat.h \
stat-macros.h
+# Perl -lne code to extract "significant" cpp-defined symbols from a
+# gnulib header file, eliminating a few common false-positives.
gl_extract_significant_defines_ = \
- /^\# *define ([^_ (][^ (]*)\s*(\(|\w+)/ && $$2 !~ /(?:rpl_|_used_without_)/ \
+ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/ && $$2 !~
/(?:rpl_|_used_without_)/\
and print $$1
# Create a list of regular expressions matching the names
-# of macros that are guaranteed by parts of gnulib to be defined.
+# of macros that are guaranteed to be defined by parts of gnulib.
.re-defmac:
@gen_h=$(gl_generated_headers_); \
- (cd $(srcdir)/lib; \
- for f in $(headers_with_interesting_macro_defs) $$gen_h; do \
- test -f $$f && \
- perl -lne '$(gl_extract_significant_defines_)' $$f; \
- done; \
- ) | sort -u \
- | grep -Ev 'ATTRIBUTE_NORETURN|SIZE_MAX' \
- | sed 's/^/^# *define /' \
+ (cd $(gnulib_dir)/lib; \
+ for f in *.in.h $(gl_other_headers_); do \
+ perl -lne '$(gl_extract_significant_defines_)' $$f; \
+ done; \
+ ) | sort -u \
+ | grep -Ev '^ATTRIBUTE_NORETURN' \
+ | sed 's/^/^# *define /' \
> $@-t
@mv $@-t $@
@@ -151,6 +148,7 @@ sc_always_defined_macros: .re-defmac
&& { echo '$(ME): define the above via some gnulib .h file' \
1>&2; exit 1; } || :; \
fi
+# ==================================================================
# Create a list of regular expressions matching the names
# of files included from system.h. Exclude a couple.
--
1.7.1.189.g07419
>From 6ac165922c9874246034352ee87b1e40ccfec11c Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 9 May 2010 18:29:22 +0200
Subject: [PATCH 2/4] tests: loosen/tighten the always_defined_macros check
* cfg.mk (.re-defmac): Generate better regexps: allow white space
before the '#', and append a word-boundary requirement.
Without the latter, #define NULL_DEV ... would evoke a false-positive.
---
cfg.mk | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index 6153f53..d417461 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -128,7 +128,7 @@ gl_extract_significant_defines_ = \
done; \
) | sort -u \
| grep -Ev '^ATTRIBUTE_NORETURN' \
- | sed 's/^/^# *define /' \
+ | sed 's/^/^ *# *define /;s/$$/\\>/' \
> $@-t
@mv $@-t $@
--
1.7.1.189.g07419
>From 0f741381c4fbfdbee88885fc06de4add5089153d Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 9 May 2010 18:47:34 +0200
Subject: [PATCH 3/4] tests: rename a syntax-check
* cfg.mk (sc_prohibit_always-defined_macros): Rename from
sc_always_defined_macros.
* .x-sc_prohibit_always-defined_macros: New file, renamed from...
* .x-sc_always_defined_macros: ...removed.
* Makefile.am (syntax_check_exceptions): Rename here, too.
---
..._macros => .x-sc_prohibit_always-defined_macros | 0
Makefile.am | 2 +-
cfg.mk | 2 +-
3 files changed, 2 insertions(+), 2 deletions(-)
rename .x-sc_always_defined_macros => .x-sc_prohibit_always-defined_macros
(100%)
diff --git a/.x-sc_always_defined_macros b/.x-sc_prohibit_always-defined_macros
similarity index 100%
rename from .x-sc_always_defined_macros
rename to .x-sc_prohibit_always-defined_macros
diff --git a/Makefile.am b/Makefile.am
index f1417a4..9fd5361 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,12 +41,12 @@ changelog_etc = \
syntax_check_exceptions = \
.x-sc_GPL_version \
- .x-sc_always_defined_macros \
.x-sc_error_message_uppercase \
.x-sc_file_system \
.x-sc_obsolete_symbols \
.x-sc_po_check \
.x-sc_program_name \
+ .x-sc_prohibit_always-defined_macros \
.x-sc_prohibit_atoi_atof \
.x-sc_prohibit_empty_lines_at_EOF \
.x-sc_prohibit_fail_0 \
diff --git a/cfg.mk b/cfg.mk
index d417461..47919df 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -140,7 +140,7 @@ define gl_trap_
endef
# Don't define macros that we already get from gnulib header files.
-sc_always_defined_macros: .re-defmac
+sc_prohibit_always-defined_macros: .re-defmac
@if test -d $(gnulib_dir); then \
trap 'rc=$$?; rm -f .re-defmac; exit $$rc' 0; \
$(gl_trap_); \
--
1.7.1.189.g07419
>From 74f07c98d4aa5a9dc4e98f4accb6e4af68d70cc6 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 9 May 2010 18:52:36 +0200
Subject: [PATCH 4/4] tests: move sc_prohibit_always-defined_macros to gnulib's
maint.mk
* cfg.mk (sc_prohibit_always-defined_macros): Remove it from here.
* gnulib: Update to latest, for a maint.mk that includes that rule.
---
cfg.mk | 44 --------------------------------------------
gnulib | 2 +-
2 files changed, 1 insertions(+), 45 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index 47919df..5a71a12 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -106,50 +106,6 @@ sc_x_sc_dist_check:
) | sort | uniq -u)" \
&& { echo 'Makefile.am: $(sce) mismatch' >&2; exit 1; } || :;
-# ==================================================================
-gl_other_headers_ ?= \
- intprops.h \
- openat.h \
- stat-macros.h
-
-# Perl -lne code to extract "significant" cpp-defined symbols from a
-# gnulib header file, eliminating a few common false-positives.
-gl_extract_significant_defines_ = \
- /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/ && $$2 !~
/(?:rpl_|_used_without_)/\
- and print $$1
-
-# Create a list of regular expressions matching the names
-# of macros that are guaranteed to be defined by parts of gnulib.
-.re-defmac:
- @gen_h=$(gl_generated_headers_); \
- (cd $(gnulib_dir)/lib; \
- for f in *.in.h $(gl_other_headers_); do \
- perl -lne '$(gl_extract_significant_defines_)' $$f; \
- done; \
- ) | sort -u \
- | grep -Ev '^ATTRIBUTE_NORETURN' \
- | sed 's/^/^ *# *define /;s/$$/\\>/' \
- > $@-t
- @mv $@-t $@
-
-define gl_trap_
- Exit () { set +e; (exit $$1); exit $$1; }; \
- for sig in 1 2 3 13 15; do \
- eval "trap 'Exit $$(expr $$sig + 128)' $$sig"; \
- done
-endef
-
-# Don't define macros that we already get from gnulib header files.
-sc_prohibit_always-defined_macros: .re-defmac
- @if test -d $(gnulib_dir); then \
- trap 'rc=$$?; rm -f .re-defmac; exit $$rc' 0; \
- $(gl_trap_); \
- grep -f .re-defmac $$($(VC_LIST_EXCEPT)) \
- && { echo '$(ME): define the above via some gnulib .h file' \
- 1>&2; exit 1; } || :; \
- fi
-# ==================================================================
-
# Create a list of regular expressions matching the names
# of files included from system.h. Exclude a couple.
.re-list:
diff --git a/gnulib b/gnulib
index e6addf8..880f2b6 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit e6addf84d6331d634b5d76db03f59851f3de8894
+Subproject commit 880f2b69df57af506439d6aaf1fe185a6f960e43
--
1.7.1.189.g07419
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [coreutils] [PATCH 1/4] tests: improve the always_defined_macros check,
Jim Meyering <=