diff options
-rw-r--r-- | m4/openssh.m4 | 33 |
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" ] |