diff --git a/configure b/configure
index ac3e00afa2540553b7655d97cef7817d594308d0..6c42c5b445162ce4c71a99a1a21655055ee6e3f6 100755
--- a/configure
+++ b/configure
@@ -4637,7 +4637,32 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
   CFLAGS="$CFLAGS --coverage"
-  LDFLAGS="$CFLAGS --coverage"
+
+  save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS --coverage"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether LDFLAGS can contain --coverage" >&5
+$as_echo_n "checking whether LDFLAGS can contain --coverage... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }; LDFLAGS="$save_LDFLAGS"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
   STATIC_LIBS="$STATIC_LIBS --coverage"
 fi
 
diff --git a/configure.ac b/configure.ac
index 6abe4cfac115239aeacbe4895400fac5db7ecb56..309c1dd5dcde39a94b4412ba29f5d0e670cdc035 100644
--- a/configure.ac
+++ b/configure.ac
@@ -279,7 +279,7 @@ if test $gcov == true
 then
   PLUMED_CHECK_CXXFLAG([--coverage])
   CFLAGS="$CFLAGS --coverage"
-  LDFLAGS="$CFLAGS --coverage"
+  PLUMED_CHECK_LDFLAGS([--coverage])
   STATIC_LIBS="$STATIC_LIBS --coverage"
 fi