diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index a7e40090e2f3fef5cb51187f163d0eb9a727abcc..02c81a7fc4e4016e1a822f3a9512a679079a7948 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/pg_upgrade/file.c
@@ -287,7 +287,7 @@ pg_scandir_internal(const char *dirname,
 	size_t		entrysize;
 
 	if ((dirdesc = opendir(dirname)) == NULL)
-		pg_log(PG_FATAL, "could not open directory \"%s\": %m\n", dirname);
+		pg_log(PG_FATAL, "could not open directory \"%s\": %s\n", dirname, getErrorText(errno));
 
 	*namelist = NULL;