diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile
index e9944c6485935b80fb8e2b5a29a08b596139089b..4bb9525840a382688eef98228dec819225b1ac79 100644
--- a/src/interfaces/ecpg/test/Makefile
+++ b/src/interfaces/ecpg/test/Makefile
@@ -47,10 +47,10 @@ clean distclean maintainer-clean:
 
 all: pg_regress$(X)
 
-pg_regress$(X): pg_regress_ecpg.o $(top_builddir)/src/test/regress/pg_regress.o
+pg_regress$(X): pg_regress_ecpg.o $(top_builddir)/src/test/regress/pg_regress.o $(top_builddir)/src/test/regress/pqsignal.o
 	$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $^ $(LIBS) -o $@
 
-$(top_builddir)/src/test/regress/pg_regress.o:
+$(top_builddir)/src/test/regress/pg_regress.o $(top_builddir)/src/test/regress/pqsignal.o:
 	$(MAKE) -C $(dir $@) $(notdir $@)
 
 # dependencies ensure that path changes propagate
diff --git a/src/test/isolation/Makefile b/src/test/isolation/Makefile
index 46ea6f080328205257e9aaca9ea4b4ce7746f31e..e20ba48687053612cee4ed32511e50117f45d2ea 100644
--- a/src/test/isolation/Makefile
+++ b/src/test/isolation/Makefile
@@ -15,13 +15,15 @@ OBJS =  specparse.o isolationtester.o
 
 all: isolationtester$(X) pg_isolation_regress$(X)
 
-submake-regress:
+pg_regress.o:
 	$(MAKE) -C $(top_builddir)/src/test/regress pg_regress.o
-
-pg_regress.o: | submake-regress
 	rm -f $@ && $(LN_S) $(top_builddir)/src/test/regress/pg_regress.o .
 
-pg_isolation_regress$(X): isolation_main.o pg_regress.o
+pqsignal.o:
+	$(MAKE) -C $(top_builddir)/src/test/regress pqsignal.o
+	rm -f $@ && $(LN_S) $(top_builddir)/src/test/regress/pqsignal.o .
+
+pg_isolation_regress$(X): isolation_main.o pg_regress.o pqsignal.o
 	$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
 
 isolationtester$(X): $(OBJS) | submake-libpq submake-libpgport
@@ -59,7 +61,7 @@ endif
 # so do not clean them here
 clean distclean:
 	rm -f isolationtester$(X) pg_isolation_regress$(X) $(OBJS) isolation_main.o
-	rm -f pg_regress.o
+	rm -f pg_regress.o pqsignal.o
 	rm -rf $(pg_regress_clean_files)
 
 maintainer-clean: distclean