]> granicus.if.org Git - postgresql/commitdiff
Suppress compiler warnings when building with --enable-dtrace.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 7 May 2018 17:44:09 +0000 (13:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 7 May 2018 17:44:09 +0000 (13:44 -0400)
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

src/backend/utils/Makefile

index 966e3bc2ed321924bd71a423e946d73a2e396794..e797539d09ce8f72127e721d82235a5aba234843 100644 (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 $< >$@