The gcc -Wmissing-prototype / -Wmissing-declaration option is not something I would universally turn on, because sometimes functions are not defined for explicit invocation, but only for backward compatibility.
But sometimes it can highlight maintainability problems. In particular, this warning seemed worth fixing: gettext-tools/gnulib-lib/omp-init.c:73:1: warning: no previous prototype for 'openmp_init' [-Wmissing-prototypes] 2023-06-02 Bruno Haible <br...@clisp.org> openmp-init: Silence "no previous prototype for 'openmp_init'" warning. * lib/omp.in.h: Test _OPENMP. * lib/omp-init.c: Include <omp.h> always. * modules/openmp-init (Include): Allow <omp.h> to be included always. diff --git a/lib/omp-init.c b/lib/omp-init.c index 705200c80b..70adaa6e34 100644 --- a/lib/omp-init.c +++ b/lib/omp-init.c @@ -17,12 +17,8 @@ #include <config.h> -#ifdef _OPENMP - /* Specification. */ -# include <omp.h> - -#endif +#include <omp.h> #include <stdlib.h> diff --git a/lib/omp.in.h b/lib/omp.in.h index 3b63d09577..57d5865fee 100644 --- a/lib/omp.in.h +++ b/lib/omp.in.h @@ -23,7 +23,9 @@ #ifndef _@GUARD_PREFIX@_OMP_H /* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_OMP_H@ +#ifdef _OPENMP +# @INCLUDE_NEXT@ @NEXT_OMP_H@ +#endif #ifndef _@GUARD_PREFIX@_OMP_H #define _@GUARD_PREFIX@_OMP_H diff --git a/modules/openmp-init b/modules/openmp-init index 321da3559b..ad5ccc0d78 100644 --- a/modules/openmp-init +++ b/modules/openmp-init @@ -37,9 +37,7 @@ MOSTLYCLEANFILES += omp.h omp.h-t lib_SOURCES += omp-init.c Include: -#ifdef _OPENMP -# include <omp.h> -#endif +#include <omp.h> License: LGPL