summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--m4/openssh.m433
1 files changed, 27 insertions, 6 deletions
diff --git a/m4/openssh.m4 b/m4/openssh.m4
index 386a616f2..80254a302 100644
--- a/m4/openssh.m4
+++ b/m4/openssh.m4
@@ -53,8 +53,15 @@ then
AC_MSG_RESULT([no])
CFLAGS="$saved_CFLAGS"
else
- AC_MSG_RESULT([yes])
- CFLAGS="$saved_CFLAGS $_define_flag"
+ dnl If we are compiling natively, try running the program.
+ AC_RUN_IFELSE([OSSH_COMPILER_FLAG_TEST_PROGRAM],
+ [ AC_MSG_RESULT([yes])
+ CFLAGS="$saved_CFLAGS $_define_flag" ],
+ [ AC_MSG_RESULT([no, fails at run time])
+ CFLAGS="$saved_CFLAGS" ],
+ [ AC_MSG_RESULT([yes])
+ CFLAGS="$saved_CFLAGS $_define_flag" ],
+ )
fi],
[ AC_MSG_RESULT([no])
CFLAGS="$saved_CFLAGS" ]
@@ -78,8 +85,15 @@ then
AC_MSG_RESULT([no])
CFLAGS="$saved_CFLAGS"
else
- AC_MSG_RESULT([yes])
- CFLAGS="$saved_CFLAGS $_define_flag"
+ dnl If we are compiling natively, try running the program.
+ AC_RUN_IFELSE([OSSH_COMPILER_FLAG_TEST_PROGRAM],
+ [ AC_MSG_RESULT([yes])
+ CFLAGS="$saved_CFLAGS $_define_flag" ],
+ [ AC_MSG_RESULT([no, fails at run time])
+ CFLAGS="$saved_CFLAGS" ],
+ [ AC_MSG_RESULT([yes])
+ CFLAGS="$saved_CFLAGS $_define_flag" ],
+ )
fi],
[ AC_MSG_RESULT([no])
CFLAGS="$saved_CFLAGS" ]
@@ -103,8 +117,15 @@ then
AC_MSG_RESULT([no])
LDFLAGS="$saved_LDFLAGS"
else
- AC_MSG_RESULT([yes])
- LDFLAGS="$saved_LDFLAGS $_define_flag"
+ dnl If we are compiling natively, try running the program.
+ AC_RUN_IFELSE([OSSH_COMPILER_FLAG_TEST_PROGRAM],
+ [ AC_MSG_RESULT([yes])
+ LDFLAGS="$saved_LDFLAGS $_define_flag" ],
+ [ AC_MSG_RESULT([no, fails at run time])
+ LDFLAGS="$saved_LDFLAGS" ],
+ [ AC_MSG_RESULT([yes])
+ LDFLAGS="$saved_LDFLAGS $_define_flag" ]
+ )
fi ],
[ AC_MSG_RESULT([no])
LDFLAGS="$saved_LDFLAGS" ]