Обсуждение: [PATCH] Compare linker/compiler output with their default output

Поиск
Список
Период
Сортировка

[PATCH] Compare linker/compiler output with their default output

От
Max Filippov
Дата:
linker and compiler may have noisy output by default, making
acx_pthread.m4 believe that pthread options that it tries are ignored
as invalid.

Record default compiler and linker output and see if adding pthread
option changes that, instead of assuming that linker and compiler are
silent by default.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---config/acx_pthread.m4 | 18 +++++++++++++++++-1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/config/acx_pthread.m4 b/config/acx_pthread.m4
index 581164b..028fdb1 100644
--- a/config/acx_pthread.m4
+++ b/config/acx_pthread.m4
@@ -79,6 +79,22 @@ case "${host_cpu}-${host_os}" inesacif test x"$acx_pthread_ok" = xno; then
+
+cat >conftest.$ac_ext <<_ACEOF
+int
+main (int argc, char **argv)
+{
+  (void) argc;
+  (void) argv;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+
+# Record the default linker and compiler output
+ld_default_output="`(eval $ac_link 2>&1 1>&5)`"
+cc_default_output="`(eval $ac_compile 2>&1 1>&5)`"
+for flag in $acx_pthread_flags; do        tryPTHREAD_CFLAGS=""
@@ -142,7 +158,7 @@ main (int argc, char **argv)_ACEOF            rm -f conftest.$ac_objext conftest$ac_exeext
 # Check both linking and compiling, because they might tolerate different options.
 
-            if test "`(eval $ac_link 2>&1 1>&5)`" = "" && test "`(eval $ac_compile 2>&1 1>&5)`" = ""; then
+            if test "`(eval $ac_link 2>&1 1>&5)`" = "$ld_default_output" && test "`(eval $ac_compile 2>&1 1>&5)`" =
"$cc_default_output";then                # The original macro breaks out of the loop at this point,                #
butwe continue trying flags because Linux needs -lpthread                # too to build libpq successfully.  The test
aboveonly
 
-- 
1.8.1.4