Suppress compiler warnings when building with --enable-dtrace.

Most versions of "dtrace -h" drop const qualifiers from the declarations
of probe functions (though macOS gets it right).  This causes compiler
warnings when we pass in pointers to const.  Repair by extending our
existing post-processing of the probes.h file.  To do so, assume that all
"char *" arguments should be "const char *"; that seems reasonably safe.

Thomas Munro

Discussion: https://postgr.es/m/CAEepm=2j1pWSruQJqJ91ZDzD8w9ZZDsM4j2C6x75C-VryWg-_w@mail.gmail.com
This commit is contained in:
Tom Lane 2018-05-07 13:44:09 -04:00
parent f34f0e4c58
commit 513ff52e81
1 changed files with 6 additions and 1 deletions

View File

@ -49,10 +49,15 @@ ifneq ($(enable_dtrace), yes)
probes.h: Gen_dummy_probes.sed
endif
# We editorialize on dtrace's output to the extent of changing the macro
# names (from POSTGRESQL_foo to TRACE_POSTGRESQL_foo) and changing any
# "char *" arguments to "const char *".
probes.h: probes.d
ifeq ($(enable_dtrace), yes)
$(DTRACE) -C -h -s $< -o $@.tmp
sed -e 's/POSTGRESQL_/TRACE_POSTGRESQL_/g' $@.tmp >$@
sed -e 's/POSTGRESQL_/TRACE_POSTGRESQL_/g' \
-e 's/( *char \*/(const char */g' \
-e 's/, *char \*/, const char */g' $@.tmp >$@
rm $@.tmp
else
sed -f $(srcdir)/Gen_dummy_probes.sed $< >$@