diff --git a/configure b/configure
index 33bb2144e3de8422bdc1c4a87e56665f4b49c109..18f57ae5b61e6dda871caa9112911210363544cc 100755
--- a/configure
+++ b/configure
@@ -763,11 +763,8 @@ check_ld(){
     log check_ld "$@"
     type=$1
     shift 1
-    flags=''
-    libs=''
-    for f; do
-        test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f"
-    done
+    flags=$(filter_out '-l*' "$@")
+    libs=$(filter '-l*' "$@")
     check_$type $($cflags_filter $flags) || return
     flags=$($ldflags_filter $flags)
     libs=$($ldflags_filter $libs)