diff --git a/elf/Makefile b/elf/Makefile
index 828daaa0be..b54ebf8a98 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -849,7 +849,7 @@ $(objpfx)tst-pathopt: $(libdl)
 $(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
 			  $(objpfx)pathoptobj.so
 	$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' \
-		 '$(run-program-env)'; \
+		 '$(run-program-env)' > $@; \
 	$(evaluate-test)
 
 $(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so
diff --git a/grp/Makefile b/grp/Makefile
index 7828e778d9..342da4f649 100644
--- a/grp/Makefile
+++ b/grp/Makefile
@@ -59,7 +59,7 @@ ifeq ($(run-built-tests),yes)
 # tst_fgetgrent currently only works with shared libraries
 ifeq (yes,$(build-shared))
 $(objpfx)tst_fgetgrent.out: tst_fgetgrent.sh $(objpfx)tst_fgetgrent
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' > $@; \
 	$(evaluate-test)
 
 endif
diff --git a/intl/Makefile b/intl/Makefile
index 60d5d24fa1..c8bec9b138 100644
--- a/intl/Makefile
+++ b/intl/Makefile
@@ -83,22 +83,22 @@ $(objpfx)mtrace-tst-gettext.out: $(objpfx)tst-gettext.out
 $(objpfx)tst-gettext.out: tst-gettext.sh $(objpfx)tst-gettext
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
 	  '$(run-program-env)' '$(test-program-prefix-after-env)' \
-	  $(common-objpfx)intl/ $(objpfx)tst-gettext.mtrace; \
+	  $(common-objpfx)intl/ $(objpfx)tst-gettext.mtrace > $@; \
 	$(evaluate-test)
 $(objpfx)tst-translit.out: tst-translit.sh $(objpfx)tst-translit
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' \
-	  $(common-objpfx)intl/; \
+	  $(common-objpfx)intl/ > $@; \
 	$(evaluate-test)
 $(objpfx)tst-gettext2.out: tst-gettext2.sh $(objpfx)tst-gettext2
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
 	  '$(run-program-env)' '$(test-program-prefix-after-env)' \
-	  $(common-objpfx)intl/; \
+	  $(common-objpfx)intl/ > $@; \
 	$(evaluate-test)
 $(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/; \
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/ > $@; \
 	$(evaluate-test)
 $(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/; \
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/ > $@; \
 	$(evaluate-test)
 
 $(objpfx)tst-codeset.out: $(codeset_mo)
diff --git a/libio/Makefile b/libio/Makefile
index ee3bb45101..c2ee9539e2 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -203,7 +203,7 @@ endif
 
 $(objpfx)test-freopen.out: test-freopen.sh $(objpfx)test-freopen
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'	\
-	$(common-objpfx)libio/; \
+	$(common-objpfx)libio/ > $@; \
 	$(evaluate-test)
 
 $(objpfx)tst-fopenloc-cmp.out: ../iconvdata/testdata/ISO-8859-1..UTF8 \
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 7894965a59..602526e3ed 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,8 @@
+2017-08-07  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile ($(objpfx)tst-trans.out)
+	($(objpfx)tst-ctype.out): Redirect output to target.
+
 2017-08-03  Mike FABIAN  <mfabian@redhat.com>
 
 	For the locales doi_IN,  kok_IN, and sat_IN, the words for
diff --git a/localedata/Makefile b/localedata/Makefile
index 2ceeb7bc16..a7db5ef9ae 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -164,13 +164,13 @@ $(objpfx)tst-trans.out: tst-trans.sh $(objpfx)tst-trans \
 	$(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \
 		 '$(run-program-env)' '$(run-program-prefix-after-env)' \
 		 '$(test-program-prefix-before-env)' \
-		 '$(test-program-prefix-after-env)'; \
+		 '$(test-program-prefix-after-env)' > $@; \
 	$(evaluate-test)
 $(objpfx)tst-ctype.out: tst-ctype.sh $(objpfx)tst-ctype \
 			$(objpfx)sort-test.out \
 			$(addprefix $(objpfx),$(CTYPE_FILES))
 	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(test-program-cmd-after-env)'; \
+		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
 	$(evaluate-test)
 $(objpfx)tst-langinfo.out: tst-langinfo.sh $(objpfx)tst-langinfo \
 			$(objpfx)sort-test.out \
diff --git a/malloc/Makefile b/malloc/Makefile
index 3fa395b949..50b487eeb5 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -177,7 +177,7 @@ ifeq (yes,$(build-shared))
 ifneq ($(PERL),no)
 $(objpfx)tst-mtrace.out: tst-mtrace.sh $(objpfx)tst-mtrace
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
-		 '$(run-program-env)' '$(test-program-prefix-after-env)' ; \
+		 '$(run-program-env)' '$(test-program-prefix-after-env)' > $@; \
 	$(evaluate-test)
 endif
 endif
diff --git a/nptl/Makefile b/nptl/Makefile
index 5cb1bb2c3d..128a52eadc 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -592,7 +592,7 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
 		       $(objpfx)tst-tls5modc.so $(objpfx)tst-tls5modd.so \
 		       $(objpfx)tst-tls5mode.so $(objpfx)tst-tls5modf.so
 	$(BASH) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
-	  '$(test-wrapper-env)' '$(run-program-env)'; \
+	  '$(test-wrapper-env)' '$(run-program-env)' > $@; \
 	$(evaluate-test)
 endif
 
diff --git a/posix/Makefile b/posix/Makefile
index 17974743d9..4021e4f19e 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -153,11 +153,11 @@ ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 $(objpfx)globtest.out: globtest.sh $(objpfx)globtest
 	$(SHELL) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
-		'$(test-program-prefix)' '$(test-wrapper-env)'; \
+		'$(test-program-prefix)' '$(test-wrapper-env)' > $@; \
 	$(evaluate-test)
 $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
-		 '$(run-program-env)' '$(test-program-prefix-after-env)'; \
+		 '$(run-program-env)' '$(test-program-prefix-after-env)' > $@; \
 	$(evaluate-test)
 endif
 
@@ -336,7 +336,7 @@ $(objpfx)tst-boost-mem.out: $(objpfx)tst-boost.out
 	$(evaluate-test)
 
 $(objpfx)tst-getconf.out: tst-getconf.sh $(objpfx)getconf
-	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)'; \
+	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)' > $@; \
 	$(evaluate-test)
 
 $(objpfx)bug-ga2-mem.out: $(objpfx)bug-ga2.out
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 622a85f329..397e0c2579 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -95,11 +95,11 @@ tst-vfprintf-width-prec-ENV = \
   MALLOC_TRACE=$(objpfx)tst-vfprintf-width-prec.mtrace
 
 $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' > $@; \
 	$(evaluate-test)
 
 $(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' > $@; \
 	$(evaluate-test)
 
 # We generate this source because it requires a printf invocation with
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 0314d5926b..4d90e14fd8 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -177,7 +177,7 @@ bug-fmtmsg1-ENV = SEV_LEVEL=foo,11,newsev
 
 $(objpfx)isomac.out: $(objpfx)isomac
 	$(dir $<)$(notdir $<) '$(CC)'  \
-	'-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out; \
+	'-I../include $(+sysdep-includes) $(sysincludes) -I..' > $@; \
 	$(evaluate-test)
 
 isomac-CFLAGS = -O
@@ -187,7 +187,7 @@ $(objpfx)isomac: isomac.c
 $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
 		 '$(run-program-env)' '$(test-program-prefix-after-env)' \
-		 $(common-objpfx)stdlib/; \
+		 $(common-objpfx)stdlib/ > $@; \
 	$(evaluate-test)
 
 $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
@@ -216,7 +216,7 @@ $(objpfx)tst-tls-atexit-nodelete.out: $(objpfx)tst-tls-atexit-lib.so
 $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
 		 '$(run-program-env)' '$(test-program-prefix-after-env)' \
-		 $(common-objpfx)stdlib/; \
+		 $(common-objpfx)stdlib/ > $@; \
 	$(evaluate-test)
 
 $(objpfx)tst-makecontext: $(libdl)
