1
0
mirror of https://github.com/postgres/postgres.git synced 2026-10-23 13:29:09 +03:00

Fix lcov duplicate directory specification in non-VPATH builds.

In an in-tree build, "make coverage-html" invoked lcov with two
"-d ." options, because $(srcdir) is just ".".  With lcov 2.0
(and perhaps earlier versions?) that results in scanning every
foo.gcda file twice and producing counts twice what they should
be.  With later lcov versions (at least 2.3), it results in
"duplicate file" errors.

In VPATH builds we do need two -d options to cover both regular
and generated .c files.  But in in-tree builds it suffices to
specify "-d .", so suppress the second switch.

Author: Narek Galstyan <narek.galstyan@enterprisedb.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAHsn6_xCDQWe8_vVFhtFk27_xTdyVV+Dr0yWzaooBZ6+-VH-5w@mail.gmail.com
Backpatch-through: 14
This commit is contained in:
Tom Lane
2026-10-03 14:44:39 -04:00
parent 3693e2bc00
commit e299fc2b30

View File

@@ -1052,12 +1052,12 @@ LCOVFLAGS = -q --no-external
all_gcno_files = $(shell find . -name '*.gcno' -print)
lcov_base.info: $(all_gcno_files)
$(LCOV) $(LCOVFLAGS) -c -i -d . -d $(srcdir) -o $@
$(LCOV) $(LCOVFLAGS) -c -i -d . $(if $(filter yes,$(vpath_build)),-d $(srcdir)) -o $@
all_gcda_files = $(shell find . -name '*.gcda' -print)
lcov_test.info: $(all_gcda_files)
$(LCOV) $(LCOVFLAGS) -c -d . -d $(srcdir) -o $@
$(LCOV) $(LCOVFLAGS) -c -d . $(if $(filter yes,$(vpath_build)),-d $(srcdir)) -o $@
# hook for clean-up