Mercurial > hg > octave-nkf > gnulib-hg
changeset 8878:a8cf4cce248b
When not cross-compiling, perform a real runtime test.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 28 May 2007 12:56:52 +0000 |
parents | 30d389dd4713 |
children | d4d8703bfaae |
files | ChangeLog m4/lseek.m4 |
diffstat | 2 files changed, 30 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-05-28 Bruno Haible <bruno@clisp.org> + + * m4/lseek.m4 (gl_FUNC_LSEEK): When not cross-compiling, perform a real + runtime test. + 2007-05-28 Eric Blake <ebb9@byu.net> Improve lseek module.
--- a/m4/lseek.m4 +++ b/m4/lseek.m4 @@ -1,4 +1,4 @@ -# lseek.m4 serial 1 +# lseek.m4 serial 2 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -9,12 +9,32 @@ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], -[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + [if test $cross_compiling = no; then + AC_LINK_IFELSE([ +#include <sys/types.h> /* for off_t */ +#include <stdio.h> /* for SEEK_CUR */ +#include <unistd.h> +int main () +{ + /* Exit with success only if stdin is seekable. */ + return lseek (0, (off_t)0, SEEK_CUR) < 0; +}], + [if test -s conftest$ac_exeext \ + && ./conftest$ac_exeext < conftest.$ac_ext \ + && { echo hi | ./conftest$ac_exeext; test $? = 1; }; then + gl_cv_func_lseek_pipe=yes + else + gl_cv_func_lseek_pipe=no + fi], + [gl_cv_func_lseek_pipe=no]) + else + AC_LINK_IFELSE([ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* mingw mistakenly returns 0 when trying to seek on pipes. */ Choke me. -#endif])], - [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no])]) +#endif], + [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) + fi]) if test $gl_cv_func_lseek_pipe = no; then gl_REPLACE_LSEEK fi