Add a README and Makefile recipe for Gen_dummy_probes.pl
Discussion: https://postgr.es/m/20210506035602.3akutfvvojngj3nb@alap3.anarazel.de
This commit is contained in:
parent
9f989a8581
commit
8292c0675a
@ -88,6 +88,16 @@ $(top_builddir)/src/include/utils/probes.h: probes.h
|
||||
cd '$(dir $@)' && rm -f $(notdir $@) && \
|
||||
$(LN_S) "../../../$(subdir)/probes.h" .
|
||||
|
||||
# Recipe for rebuilding the Perl version of Gen_dummy_probes
|
||||
# Nothing depends on it, so it will never be called unless explicitly requested
|
||||
# The last two lines of the recipe format the script according to our
|
||||
# standard and put back some blank lines for improved readability.
|
||||
Gen_dummy_probes.pl: Gen_dummy_probes.sed
|
||||
perl -ni -e ' print; exit if /^\$$0/;' $@
|
||||
s2p -f $< | sed -e 1,4d -e '/# #/d' -e '$$d' >> $@
|
||||
perltidy --profile=../../tools/pgindent/perltidyrc $@
|
||||
perl -pi -e '!$$lb && ( /^\t+#/ || /^# prototypes/ ) && print qq{\n};'\
|
||||
-e '$$lb = m/^\n/; ' $@
|
||||
|
||||
.PHONY: install-data
|
||||
install-data: errcodes.txt installdirs
|
||||
|
25
src/backend/utils/README.Gen_dummy_probes
Normal file
25
src/backend/utils/README.Gen_dummy_probes
Normal file
@ -0,0 +1,25 @@
|
||||
# Generating dummy probes
|
||||
|
||||
If Postgres isn't configured with dtrace enabled, we need to generate
|
||||
dummy probes for the entries in probes.d, that do nothing.
|
||||
|
||||
This is accomplished in Unix via the sed script `Gen_dummy_probes.sed`. We
|
||||
used to use this in MSVC builds using the perl utility `psed`, which mimicked
|
||||
sed. However, that utility disappeared from Windows perl distributions and so
|
||||
we converted the sed script to a perl script to be used in MSVC builds.
|
||||
|
||||
We still keep the sed script as the authoritative source for generating
|
||||
these dummy probes because except on Windows perl is not a hard requirement
|
||||
when building from a tarball.
|
||||
|
||||
So, if you need to change the way dummy probes are generated, first change
|
||||
the sed script, and when it's working generate the perl script. This can
|
||||
be accomplished by using the perl utility s2p.
|
||||
|
||||
s2p is no longer part of the perl core, so it might not be on your system,
|
||||
but it is available on CPAN and also in many package systems. e.g.
|
||||
on Fedora it can be installed using `cpan App::s2p` or
|
||||
`dnf install perl-App-s2p`.
|
||||
|
||||
The Makefile contains a recipe for regenerating Gen_dummy_probes.pl, so all
|
||||
you need to do is once you have s2p installed is `make Gen_dummy_probes.pl`
|
Loading…
x
Reference in New Issue
Block a user