diff --git a/gprofng/configure b/gprofng/configure
index 005f9cbaf7d..90f869829f6 100755
--- a/gprofng/configure
+++ b/gprofng/configure
@@ -6113,9 +6113,6 @@ $as_echo "$ac_prog_version" >&6; }
   fi
 
 
-if test x$BISON = "x:"; then
-  as_fn_error $? "Building gprofng requires bison 3.0.4 or later." "$LINENO" 5
-fi
 
 # Check whether --enable-shared was given.
 if test "${enable_shared+set}" = set; then :
@@ -12252,7 +12249,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12255 "configure"
+#line 12252 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12358,7 +12355,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12361 "configure"
+#line 12358 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16609,14 +16606,14 @@ else
 $as_echo "#define GPROFNG_JAVA_PROFILING 1" >>confdefs.h
 
     if test "x$JAVAC" != x; then
-      cat > configtest.java << EOF
+      cat > Simple.java << EOF
 class Simple{
   public static void main(String args){
     System.out.println("Hello Java");
   }
 }
 EOF
-      if { ac_try='$JAVAC configtest.java >&5 2>&5'
+      if { ac_try='$JAVAC Simple.java >&5 2>&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16626,7 +16623,7 @@ EOF
       else
 	GPROFNG_BROKEN_JAVAC=yes
       fi
-      rm -f configtest.*
+      rm -f Simple.*
     fi
 fi
 
@@ -16677,7 +16674,7 @@ if test "$LIBC" = musl; then
 $as_echo "#define __MUSL_LIBC 1" >>confdefs.h
 
 fi
-
+rm -f dummy.c
 
 # Check if linker supports --as-needed and --no-as-needed options.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
diff --git a/gprofng/configure.ac b/gprofng/configure.ac
index cfca82e3651..7938d7b2cb0 100644
--- a/gprofng/configure.ac
+++ b/gprofng/configure.ac
@@ -30,9 +30,6 @@ AC_PROG_INSTALL
 AC_PROG_RANLIB
 AM_PROG_AR
 gl_PROG_BISON([BISON],[3.0.4])
-if test x$BISON = "x:"; then
-  AC_MSG_ERROR([Building gprofng requires bison 3.0.4 or later.])
-fi
 
 AC_DISABLE_SHARED
 LT_INIT
@@ -130,19 +127,19 @@ if test "x$enable_gprofng_jp" = x; then
 else
     AC_DEFINE(GPROFNG_JAVA_PROFILING, 1, [Enable java profiling])
     if test "x$JAVAC" != x; then
-      cat > configtest.java << EOF
+      cat > Simple.java << EOF
 class Simple{
   public static void main(String args[]){
     System.out.println("Hello Java");
   }
 }
 EOF
-      if AC_TRY_COMMAND($JAVAC configtest.java >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD); then
+      if AC_TRY_COMMAND($JAVAC Simple.java >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD); then
 	GPROFNG_BROKEN_JAVAC=no
       else
 	GPROFNG_BROKEN_JAVAC=yes
       fi
-      rm -f configtest.*
+      rm -f Simple.*
     fi
 fi
 AC_SUBST(GPROFNG_BROKEN_JAVAC)
@@ -177,7 +174,7 @@ eval "$cc_set_libc"
 if test "$LIBC" = musl; then
   AC_DEFINE(__MUSL_LIBC, 1, [Build with musl-libc.])
 fi
-
+rm -f dummy.c
 
 # Check if linker supports --as-needed and --no-as-needed options.
 AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
diff --git a/gprofng/src/Makefile.am b/gprofng/src/Makefile.am
index 219367fb9ce..adc3c581df3 100644
--- a/gprofng/src/Makefile.am
+++ b/gprofng/src/Makefile.am
@@ -117,12 +117,25 @@ AM_CFLAGS = $(GPROFNG_CFLAGS) $(PTHREAD_CFLAGS) \
 	$(GPROFNG_NO_SWITCH_CFLAGS)
 AM_CXXFLAGS = $(AM_CFLAGS)
 
-QLParser.tab.cc QLParser.tab.hh: QLParser.yy
+# bison generates two files QLParser.tab.cc, QLParser.tab.hh.
+# we don't know which file will be newer.
+# Make QLParser.tab.cc always newer than QLParser.tab.hh.
+QLParser.tab.hh: QLParser.yy
+	if test "$(BISON)" == ":"; then \
+	  echo "fatal: Building gprofng requires bison 3.0.4 or later."; \
+	  exit 1; \
+	fi; \
 	$(BISON) $^
 
-BUILT_SOURCES = QLParser.tab.hh
-EXTRA_DIST = QLParser.yy
+QLParser.tab.cc: QLParser.tab.hh
+	touch $@
 
+BUILT_SOURCES = QLParser.tab.cc QLParser.tab.hh
+EXTRA_DIST = QLParser.tab.cc QLParser.tab.hh QLParser.yy
+
+# info and diststuff are needed for src-release.sh:
+info: $(BUILT_SOURCES)
+diststuff: info
 
 lib_LTLIBRARIES = $(LIBGPROFNG)
 libgprofng_la_SOURCES = $(CCSOURCES) $(CSOURCES)
diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
index b881268b0d9..76a0c950079 100644
--- a/gprofng/src/Makefile.in
+++ b/gprofng/src/Makefile.in
@@ -543,8 +543,8 @@ AM_CFLAGS = $(GPROFNG_CFLAGS) $(PTHREAD_CFLAGS) \
 	$(GPROFNG_NO_SWITCH_CFLAGS)
 
 AM_CXXFLAGS = $(AM_CFLAGS)
-BUILT_SOURCES = QLParser.tab.hh
-EXTRA_DIST = QLParser.yy
+BUILT_SOURCES = QLParser.tab.cc QLParser.tab.hh
+EXTRA_DIST = QLParser.tab.cc QLParser.tab.hh QLParser.yy
 lib_LTLIBRARIES = $(LIBGPROFNG)
 libgprofng_la_SOURCES = $(CCSOURCES) $(CSOURCES)
 libgprofng_la_LDFLAGS = -version-info 0:0:0
@@ -1021,8 +1021,6 @@ html: html-am
 
 html-am:
 
-info: info-am
-
 info-am:
 
 install-data-am: install-dbeDATA
@@ -1096,9 +1094,23 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dbeDATA \
 .PRECIOUS: Makefile
 
 
-QLParser.tab.cc QLParser.tab.hh: QLParser.yy
+# bison generates two files QLParser.tab.cc, QLParser.tab.hh.
+# we don't know which file will be newer.
+# Make QLParser.tab.cc always newer than QLParser.tab.hh.
+QLParser.tab.hh: QLParser.yy
+	if test "$(BISON)" == ":"; then \
+	  echo "fatal: Building gprofng requires bison 3.0.4 or later."; \
+	  exit 1; \
+	fi; \
 	$(BISON) $^
 
+QLParser.tab.cc: QLParser.tab.hh
+	touch $@
+
+# info and diststuff are needed for src-release.sh:
+info: $(BUILT_SOURCES)
+diststuff: info
+
 # Distribution involves building the binaries to generate the manpage,
 # so ensure that the necessary libraries are built at dist time.
 dist-hook: $(LIBGPROFNG)
