mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
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 $@) && \
|
cd '$(dir $@)' && rm -f $(notdir $@) && \
|
||||||
$(LN_S) "../../../$(subdir)/probes.h" .
|
$(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
|
.PHONY: install-data
|
||||||
install-data: errcodes.txt installdirs
|
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