bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: syntax-check rule to silence -Winclude-next-absolute-path warning


From: Bruno Haible
Subject: Re: syntax-check rule to silence -Winclude-next-absolute-path warning
Date: Sun, 18 Feb 2024 21:33:47 +0100

Collin Funk wrote:
> I attached a patch that seems to work alright. I'm not the greatest with GNU 
> Make so it isn't very pretty. Feel free to modify it as much as you would 
> like.
> 
> Here is some sample output from Coreutils. One or two are real so I'll submit 
> a patch there.
> 
> [collin@debian coreutils]$ make sc_verify_absolute_include_headers
> verify_absolute_include_headers
> maint.mk: Use #include <sys/stat.h> instead of  #include "sys/stat.h" in 
> src/od.c
> maint.mk: Use #include <error.h> instead of  #include "error.h" in src/od.c
> maint.mk: Use #include <getopt.h> instead of  #include "getopt.h" in 
> src/shuf.c
> maint.mk: Use #include <getopt.h> instead of  #include "getopt.h" in 
> src/stat.c
> maint.mk: Use #include <error.h> instead of  #include "error.h" in 
> src/system.h

Very nice! I committed your patch, just at a different location in maint.mk 
(near
the handling of <config.h>).

Also, I added references to the Gnulib documentation:


2024-02-18  Bruno Haible  <bruno@clisp.org>

        maint.mk: Add more comments.
        * top/maint.mk: Reference the Gnulib documentation where suitable.

diff --git a/top/maint.mk b/top/maint.mk
index 9725976dae..5746b911dd 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -503,6 +503,7 @@ sc_prohibit_have_config_h:
 # Nearly all .c files must include <config.h>.  However, we also permit this
 # via inclusion of a package-specific header, if cfg.mk specified one.
 # config_h_header must be suitable for grep -E.
+# Rationale: The Gnulib documentation, node 'Include <config.h>'.
 config_h_header ?= <config\.h>
 sc_require_config_h:
        @require='^# *include $(config_h_header)'                       \
@@ -526,6 +527,7 @@ perl_config_h_first_ =                                      
                \
 
 # You must include <config.h> before including any other header file.
 # This can possibly be via a package-specific header, if given by cfg.mk.
+# Rationale: The Gnulib documentation, node 'Include <config.h>'.
 sc_require_config_h_first:
        @if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then       \
          files=$$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$') &&              \
@@ -607,7 +609,8 @@ gl_absolute_include_headers_ ?= \
   wctype.h
 
 # Suggest using '#include <header.h>' instead of '#include "header.h"' for
-# headers that substitute system headers.
+# headers that override system headers.
+# Rationale: The Gnulib documentation, node 'Style of #include statements'.
 sc_verify_absolute_include_headers:
        @if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then       \
          source_files=$$($(VC_LIST_EXCEPT) | $(GREP) '\.\(c\|h\)$$');  \






reply via email to

[Prev in Thread] Current Thread [Next in Thread]