gnulib: import getline

We use getline in sim today which breaks on older systems that are
not compliant with the latest POSIX standard.  For example, mingw64
for Windows omits getline so we fail to build there.
This commit is contained in:
Mike Frysinger
2021-05-01 18:00:27 -04:00
parent 858c8f2c1b
commit c17253b974
14 changed files with 1012 additions and 225 deletions

756
gnulib/configure vendored
View File

@@ -773,114 +773,6 @@ GNULIB_SIGPROCMASK
GNULIB_SIGNAL_H_SIGPIPE
GNULIB_RAISE
GNULIB_PTHREAD_SIGMASK
REPLACE_VSPRINTF
REPLACE_VSNPRINTF
REPLACE_VPRINTF
REPLACE_VFPRINTF
REPLACE_VDPRINTF
REPLACE_VASPRINTF
REPLACE_TMPFILE
REPLACE_STDIO_WRITE_FUNCS
REPLACE_STDIO_READ_FUNCS
REPLACE_SPRINTF
REPLACE_SNPRINTF
REPLACE_RENAMEAT
REPLACE_RENAME
REPLACE_REMOVE
REPLACE_PRINTF
REPLACE_POPEN
REPLACE_PERROR
REPLACE_OBSTACK_PRINTF
REPLACE_GETLINE
REPLACE_GETDELIM
REPLACE_FTELLO
REPLACE_FTELL
REPLACE_FSEEKO
REPLACE_FSEEK
REPLACE_FREOPEN
REPLACE_FPURGE
REPLACE_FPRINTF
REPLACE_FOPEN
REPLACE_FFLUSH
REPLACE_FDOPEN
REPLACE_FCLOSE
REPLACE_DPRINTF
HAVE_VDPRINTF
HAVE_VASPRINTF
HAVE_RENAMEAT
HAVE_POPEN
HAVE_PCLOSE
HAVE_FTELLO
HAVE_FSEEKO
HAVE_DPRINTF
HAVE_DECL_VSNPRINTF
HAVE_DECL_SNPRINTF
HAVE_DECL_OBSTACK_PRINTF
HAVE_DECL_GETLINE
HAVE_DECL_GETDELIM
HAVE_DECL_FTELLO
HAVE_DECL_FSEEKO
HAVE_DECL_FPURGE
HAVE_DECL_FCLOSEALL
GNULIB_MDA_TEMPNAM
GNULIB_MDA_PUTW
GNULIB_MDA_GETW
GNULIB_MDA_FILENO
GNULIB_MDA_FDOPEN
GNULIB_MDA_FCLOSEALL
GNULIB_VSPRINTF_POSIX
GNULIB_VSNPRINTF
GNULIB_VPRINTF_POSIX
GNULIB_VPRINTF
GNULIB_VFPRINTF_POSIX
GNULIB_VFPRINTF
GNULIB_VDPRINTF
GNULIB_VSCANF
GNULIB_VFSCANF
GNULIB_VASPRINTF
GNULIB_TMPFILE
GNULIB_STDIO_H_SIGPIPE
GNULIB_STDIO_H_NONBLOCKING
GNULIB_SPRINTF_POSIX
GNULIB_SNPRINTF
GNULIB_SCANF
GNULIB_RENAMEAT
GNULIB_RENAME
GNULIB_REMOVE
GNULIB_PUTS
GNULIB_PUTCHAR
GNULIB_PUTC
GNULIB_PRINTF_POSIX
GNULIB_PRINTF
GNULIB_POPEN
GNULIB_PERROR
GNULIB_PCLOSE
GNULIB_OBSTACK_PRINTF_POSIX
GNULIB_OBSTACK_PRINTF
GNULIB_GETLINE
GNULIB_GETDELIM
GNULIB_GETCHAR
GNULIB_GETC
GNULIB_FWRITE
GNULIB_FTELLO
GNULIB_FTELL
GNULIB_FSEEKO
GNULIB_FSEEK
GNULIB_FSCANF
GNULIB_FREOPEN
GNULIB_FREAD
GNULIB_FPUTS
GNULIB_FPUTC
GNULIB_FPURGE
GNULIB_FPRINTF_POSIX
GNULIB_FPRINTF
GNULIB_FOPEN
GNULIB_FGETS
GNULIB_FGETC
GNULIB_FFLUSH
GNULIB_FDOPEN
GNULIB_FCLOSE
GNULIB_DPRINTF
GL_GENERATE_NETINET_IN_H_FALSE
GL_GENERATE_NETINET_IN_H_TRUE
NETINET_IN_H
@@ -1114,6 +1006,114 @@ REPLACE_GETRANDOM
HAVE_GETRANDOM
GNULIB_GETRANDOM
LIB_GETLOGIN
REPLACE_VSPRINTF
REPLACE_VSNPRINTF
REPLACE_VPRINTF
REPLACE_VFPRINTF
REPLACE_VDPRINTF
REPLACE_VASPRINTF
REPLACE_TMPFILE
REPLACE_STDIO_WRITE_FUNCS
REPLACE_STDIO_READ_FUNCS
REPLACE_SPRINTF
REPLACE_SNPRINTF
REPLACE_RENAMEAT
REPLACE_RENAME
REPLACE_REMOVE
REPLACE_PRINTF
REPLACE_POPEN
REPLACE_PERROR
REPLACE_OBSTACK_PRINTF
REPLACE_GETLINE
REPLACE_GETDELIM
REPLACE_FTELLO
REPLACE_FTELL
REPLACE_FSEEKO
REPLACE_FSEEK
REPLACE_FREOPEN
REPLACE_FPURGE
REPLACE_FPRINTF
REPLACE_FOPEN
REPLACE_FFLUSH
REPLACE_FDOPEN
REPLACE_FCLOSE
REPLACE_DPRINTF
HAVE_VDPRINTF
HAVE_VASPRINTF
HAVE_RENAMEAT
HAVE_POPEN
HAVE_PCLOSE
HAVE_FTELLO
HAVE_FSEEKO
HAVE_DPRINTF
HAVE_DECL_VSNPRINTF
HAVE_DECL_SNPRINTF
HAVE_DECL_OBSTACK_PRINTF
HAVE_DECL_GETLINE
HAVE_DECL_GETDELIM
HAVE_DECL_FTELLO
HAVE_DECL_FSEEKO
HAVE_DECL_FPURGE
HAVE_DECL_FCLOSEALL
GNULIB_MDA_TEMPNAM
GNULIB_MDA_PUTW
GNULIB_MDA_GETW
GNULIB_MDA_FILENO
GNULIB_MDA_FDOPEN
GNULIB_MDA_FCLOSEALL
GNULIB_VSPRINTF_POSIX
GNULIB_VSNPRINTF
GNULIB_VPRINTF_POSIX
GNULIB_VPRINTF
GNULIB_VFPRINTF_POSIX
GNULIB_VFPRINTF
GNULIB_VDPRINTF
GNULIB_VSCANF
GNULIB_VFSCANF
GNULIB_VASPRINTF
GNULIB_TMPFILE
GNULIB_STDIO_H_SIGPIPE
GNULIB_STDIO_H_NONBLOCKING
GNULIB_SPRINTF_POSIX
GNULIB_SNPRINTF
GNULIB_SCANF
GNULIB_RENAMEAT
GNULIB_RENAME
GNULIB_REMOVE
GNULIB_PUTS
GNULIB_PUTCHAR
GNULIB_PUTC
GNULIB_PRINTF_POSIX
GNULIB_PRINTF
GNULIB_POPEN
GNULIB_PERROR
GNULIB_PCLOSE
GNULIB_OBSTACK_PRINTF_POSIX
GNULIB_OBSTACK_PRINTF
GNULIB_GETLINE
GNULIB_GETDELIM
GNULIB_GETCHAR
GNULIB_GETC
GNULIB_FWRITE
GNULIB_FTELLO
GNULIB_FTELL
GNULIB_FSEEKO
GNULIB_FSEEK
GNULIB_FSCANF
GNULIB_FREOPEN
GNULIB_FREAD
GNULIB_FPUTS
GNULIB_FPUTC
GNULIB_FPURGE
GNULIB_FPRINTF_POSIX
GNULIB_FPRINTF
GNULIB_FOPEN
GNULIB_FGETS
GNULIB_FGETC
GNULIB_FFLUSH
GNULIB_FDOPEN
GNULIB_FCLOSE
GNULIB_DPRINTF
WINDOWS_64_BIT_ST_SIZE
WINDOWS_STAT_TIMESPEC
NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
@@ -3731,6 +3731,7 @@ as_fn_append ac_func_list " mbsrtowcs"
gl_fnmatch_required=GNU
as_fn_append ac_header_list " sys/stat.h"
as_fn_append ac_func_list " fstatat"
as_fn_append ac_func_list " getdelim"
as_fn_append ac_func_list " getdtablesize"
as_fn_append ac_func_list " getlogin_r"
as_fn_append ac_func_list " getprogname"
@@ -6720,7 +6721,9 @@ fi
# Code from module fstatat:
# Code from module getcwd:
# Code from module getcwd-lgpl:
# Code from module getdelim:
# Code from module getdtablesize:
# Code from module getline:
# Code from module getlogin_r:
# Code from module getprogname:
# Code from module getrandom:
@@ -10548,6 +10551,129 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
GNULIB_DPRINTF=0;
GNULIB_FCLOSE=0;
GNULIB_FDOPEN=0;
GNULIB_FFLUSH=0;
GNULIB_FGETC=0;
GNULIB_FGETS=0;
GNULIB_FOPEN=0;
GNULIB_FPRINTF=0;
GNULIB_FPRINTF_POSIX=0;
GNULIB_FPURGE=0;
GNULIB_FPUTC=0;
GNULIB_FPUTS=0;
GNULIB_FREAD=0;
GNULIB_FREOPEN=0;
GNULIB_FSCANF=0;
GNULIB_FSEEK=0;
GNULIB_FSEEKO=0;
GNULIB_FTELL=0;
GNULIB_FTELLO=0;
GNULIB_FWRITE=0;
GNULIB_GETC=0;
GNULIB_GETCHAR=0;
GNULIB_GETDELIM=0;
GNULIB_GETLINE=0;
GNULIB_OBSTACK_PRINTF=0;
GNULIB_OBSTACK_PRINTF_POSIX=0;
GNULIB_PCLOSE=0;
GNULIB_PERROR=0;
GNULIB_POPEN=0;
GNULIB_PRINTF=0;
GNULIB_PRINTF_POSIX=0;
GNULIB_PUTC=0;
GNULIB_PUTCHAR=0;
GNULIB_PUTS=0;
GNULIB_REMOVE=0;
GNULIB_RENAME=0;
GNULIB_RENAMEAT=0;
GNULIB_SCANF=0;
GNULIB_SNPRINTF=0;
GNULIB_SPRINTF_POSIX=0;
GNULIB_STDIO_H_NONBLOCKING=0;
GNULIB_STDIO_H_SIGPIPE=0;
GNULIB_TMPFILE=0;
GNULIB_VASPRINTF=0;
GNULIB_VFSCANF=0;
GNULIB_VSCANF=0;
GNULIB_VDPRINTF=0;
GNULIB_VFPRINTF=0;
GNULIB_VFPRINTF_POSIX=0;
GNULIB_VPRINTF=0;
GNULIB_VPRINTF_POSIX=0;
GNULIB_VSNPRINTF=0;
GNULIB_VSPRINTF_POSIX=0;
GNULIB_MDA_FCLOSEALL=1;
GNULIB_MDA_FDOPEN=1;
GNULIB_MDA_FILENO=1;
GNULIB_MDA_GETW=1;
GNULIB_MDA_PUTW=1;
GNULIB_MDA_TEMPNAM=1;
HAVE_DECL_FCLOSEALL=1;
HAVE_DECL_FPURGE=1;
HAVE_DECL_FSEEKO=1;
HAVE_DECL_FTELLO=1;
HAVE_DECL_GETDELIM=1;
HAVE_DECL_GETLINE=1;
HAVE_DECL_OBSTACK_PRINTF=1;
HAVE_DECL_SNPRINTF=1;
HAVE_DECL_VSNPRINTF=1;
HAVE_DPRINTF=1;
HAVE_FSEEKO=1;
HAVE_FTELLO=1;
HAVE_PCLOSE=1;
HAVE_POPEN=1;
HAVE_RENAMEAT=1;
HAVE_VASPRINTF=1;
HAVE_VDPRINTF=1;
REPLACE_DPRINTF=0;
REPLACE_FCLOSE=0;
REPLACE_FDOPEN=0;
REPLACE_FFLUSH=0;
REPLACE_FOPEN=0;
REPLACE_FPRINTF=0;
REPLACE_FPURGE=0;
REPLACE_FREOPEN=0;
REPLACE_FSEEK=0;
REPLACE_FSEEKO=0;
REPLACE_FTELL=0;
REPLACE_FTELLO=0;
REPLACE_GETDELIM=0;
REPLACE_GETLINE=0;
REPLACE_OBSTACK_PRINTF=0;
REPLACE_PERROR=0;
REPLACE_POPEN=0;
REPLACE_PRINTF=0;
REPLACE_REMOVE=0;
REPLACE_RENAME=0;
REPLACE_RENAMEAT=0;
REPLACE_SNPRINTF=0;
REPLACE_SPRINTF=0;
REPLACE_STDIO_READ_FUNCS=0;
REPLACE_STDIO_WRITE_FUNCS=0;
REPLACE_TMPFILE=0;
REPLACE_VASPRINTF=0;
REPLACE_VDPRINTF=0;
REPLACE_VFPRINTF=0;
REPLACE_VPRINTF=0;
REPLACE_VSNPRINTF=0;
REPLACE_VSPRINTF=0;
ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default"
if test "x$ac_cv_have_decl_getdelim" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_GETDELIM $ac_have_decl
_ACEOF
ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default"
if test "x$ac_cv_have_decl_getdtablesize" = xyes; then :
@@ -10560,6 +10686,17 @@ cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_GETDTABLESIZE $ac_have_decl
_ACEOF
ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default"
if test "x$ac_cv_have_decl_getline" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_GETLINE $ac_have_decl
_ACEOF
ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "$ac_includes_default"
if test "x$ac_cv_have_decl_getlogin_r" = xyes; then :
ac_have_decl=1
@@ -15962,116 +16099,6 @@ _ACEOF
GNULIB_DPRINTF=0;
GNULIB_FCLOSE=0;
GNULIB_FDOPEN=0;
GNULIB_FFLUSH=0;
GNULIB_FGETC=0;
GNULIB_FGETS=0;
GNULIB_FOPEN=0;
GNULIB_FPRINTF=0;
GNULIB_FPRINTF_POSIX=0;
GNULIB_FPURGE=0;
GNULIB_FPUTC=0;
GNULIB_FPUTS=0;
GNULIB_FREAD=0;
GNULIB_FREOPEN=0;
GNULIB_FSCANF=0;
GNULIB_FSEEK=0;
GNULIB_FSEEKO=0;
GNULIB_FTELL=0;
GNULIB_FTELLO=0;
GNULIB_FWRITE=0;
GNULIB_GETC=0;
GNULIB_GETCHAR=0;
GNULIB_GETDELIM=0;
GNULIB_GETLINE=0;
GNULIB_OBSTACK_PRINTF=0;
GNULIB_OBSTACK_PRINTF_POSIX=0;
GNULIB_PCLOSE=0;
GNULIB_PERROR=0;
GNULIB_POPEN=0;
GNULIB_PRINTF=0;
GNULIB_PRINTF_POSIX=0;
GNULIB_PUTC=0;
GNULIB_PUTCHAR=0;
GNULIB_PUTS=0;
GNULIB_REMOVE=0;
GNULIB_RENAME=0;
GNULIB_RENAMEAT=0;
GNULIB_SCANF=0;
GNULIB_SNPRINTF=0;
GNULIB_SPRINTF_POSIX=0;
GNULIB_STDIO_H_NONBLOCKING=0;
GNULIB_STDIO_H_SIGPIPE=0;
GNULIB_TMPFILE=0;
GNULIB_VASPRINTF=0;
GNULIB_VFSCANF=0;
GNULIB_VSCANF=0;
GNULIB_VDPRINTF=0;
GNULIB_VFPRINTF=0;
GNULIB_VFPRINTF_POSIX=0;
GNULIB_VPRINTF=0;
GNULIB_VPRINTF_POSIX=0;
GNULIB_VSNPRINTF=0;
GNULIB_VSPRINTF_POSIX=0;
GNULIB_MDA_FCLOSEALL=1;
GNULIB_MDA_FDOPEN=1;
GNULIB_MDA_FILENO=1;
GNULIB_MDA_GETW=1;
GNULIB_MDA_PUTW=1;
GNULIB_MDA_TEMPNAM=1;
HAVE_DECL_FCLOSEALL=1;
HAVE_DECL_FPURGE=1;
HAVE_DECL_FSEEKO=1;
HAVE_DECL_FTELLO=1;
HAVE_DECL_GETDELIM=1;
HAVE_DECL_GETLINE=1;
HAVE_DECL_OBSTACK_PRINTF=1;
HAVE_DECL_SNPRINTF=1;
HAVE_DECL_VSNPRINTF=1;
HAVE_DPRINTF=1;
HAVE_FSEEKO=1;
HAVE_FTELLO=1;
HAVE_PCLOSE=1;
HAVE_POPEN=1;
HAVE_RENAMEAT=1;
HAVE_VASPRINTF=1;
HAVE_VDPRINTF=1;
REPLACE_DPRINTF=0;
REPLACE_FCLOSE=0;
REPLACE_FDOPEN=0;
REPLACE_FFLUSH=0;
REPLACE_FOPEN=0;
REPLACE_FPRINTF=0;
REPLACE_FPURGE=0;
REPLACE_FREOPEN=0;
REPLACE_FSEEK=0;
REPLACE_FSEEKO=0;
REPLACE_FTELL=0;
REPLACE_FTELLO=0;
REPLACE_GETDELIM=0;
REPLACE_GETLINE=0;
REPLACE_OBSTACK_PRINTF=0;
REPLACE_PERROR=0;
REPLACE_POPEN=0;
REPLACE_PRINTF=0;
REPLACE_REMOVE=0;
REPLACE_RENAME=0;
REPLACE_RENAMEAT=0;
REPLACE_SNPRINTF=0;
REPLACE_SPRINTF=0;
REPLACE_STDIO_READ_FUNCS=0;
REPLACE_STDIO_WRITE_FUNCS=0;
REPLACE_TMPFILE=0;
REPLACE_VASPRINTF=0;
REPLACE_VDPRINTF=0;
REPLACE_VFPRINTF=0;
REPLACE_VPRINTF=0;
REPLACE_VSNPRINTF=0;
REPLACE_VSPRINTF=0;
ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
if test "x$ac_cv_have_decl_setenv" = xyes; then :
@@ -20705,6 +20732,160 @@ $as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
if test $ac_cv_func_getdelim = yes; then
HAVE_GETDELIM=1
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5
$as_echo_n "checking for working getdelim function... " >&6; }
if ${gl_cv_func_working_getdelim+:} false; then :
$as_echo_n "(cached) " >&6
else
echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
if test "$cross_compiling" = yes; then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <features.h>
#ifdef __GNU_LIBRARY__
#if (__GLIBC__ >= 2) && !defined __UCLIBC__
Lucky GNU user
#endif
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "Lucky GNU user" >/dev/null 2>&1; then :
gl_cv_func_working_getdelim="guessing yes"
else
case "$host_os" in
*-musl*) gl_cv_func_working_getdelim="guessing yes" ;;
*) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;;
esac
fi
rm -f conftest*
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int main ()
{
FILE *in = fopen ("./conftest.data", "r");
if (!in)
return 1;
{
/* Test result for a NULL buffer and a zero size.
Based on a test program from Karl Heuer. */
char *line = NULL;
size_t siz = 0;
int len = getdelim (&line, &siz, '\n', in);
if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
{ free (line); fclose (in); return 2; }
free (line);
}
{
/* Test result for a NULL buffer and a non-zero size.
This crashes on FreeBSD 8.0. */
char *line = NULL;
size_t siz = (size_t)(~0) / 4;
if (getdelim (&line, &siz, '\n', in) == -1)
{ fclose (in); return 3; }
free (line);
}
fclose (in);
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
gl_cv_func_working_getdelim=yes
else
gl_cv_func_working_getdelim=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5
$as_echo "$gl_cv_func_working_getdelim" >&6; }
case "$gl_cv_func_working_getdelim" in
*yes) ;;
*) REPLACE_GETDELIM=1 ;;
esac
else
HAVE_GETDELIM=0
fi
if test $ac_cv_have_decl_getdelim = no; then
HAVE_DECL_GETDELIM=0
fi
if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
for ac_func in flockfile funlockfile
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
fi
done
ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
_ACEOF
fi
GNULIB_GETDELIM=1
$as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h
if test $ac_cv_func_getdtablesize = yes &&
test $ac_cv_have_decl_getdtablesize = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5
@@ -20802,6 +20983,145 @@ $as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
gl_getline_needs_run_time_check=no
ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline"
if test "x$ac_cv_func_getline" = xyes; then :
gl_getline_needs_run_time_check=yes
else
am_cv_func_working_getline=no
fi
if test $gl_getline_needs_run_time_check = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5
$as_echo_n "checking for working getline function... " >&6; }
if ${am_cv_func_working_getline+:} false; then :
$as_echo_n "(cached) " >&6
else
echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
if test "$cross_compiling" = yes; then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <features.h>
#ifdef __GNU_LIBRARY__
#if (__GLIBC__ >= 2) && !defined __UCLIBC__
Lucky GNU user
#endif
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "Lucky GNU user" >/dev/null 2>&1; then :
am_cv_func_working_getline="guessing yes"
else
case "$host_os" in
*-musl*) am_cv_func_working_getline="guessing yes" ;;
*) am_cv_func_working_getline="$gl_cross_guess_normal" ;;
esac
fi
rm -f conftest*
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int main ()
{
FILE *in = fopen ("./conftest.data", "r");
if (!in)
return 1;
{
/* Test result for a NULL buffer and a zero size.
Based on a test program from Karl Heuer. */
char *line = NULL;
size_t siz = 0;
int len = getline (&line, &siz, in);
if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
{ free (line); fclose (in); return 2; }
free (line);
}
{
/* Test result for a NULL buffer and a non-zero size.
This crashes on FreeBSD 8.0. */
char *line = NULL;
size_t siz = (size_t)(~0) / 4;
if (getline (&line, &siz, in) == -1)
{ fclose (in); return 3; }
free (line);
}
fclose (in);
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
am_cv_func_working_getline=yes
else
am_cv_func_working_getline=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5
$as_echo "$am_cv_func_working_getline" >&6; }
fi
if test $ac_cv_have_decl_getline = no; then
HAVE_DECL_GETLINE=0
fi
case "$am_cv_func_working_getline" in
*yes) ;;
*)
REPLACE_GETLINE=1
;;
esac
if test $REPLACE_GETLINE = 1; then
gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext"
:
fi
GNULIB_GETLINE=1
$as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h
if test $ac_cv_have_decl_getlogin_r = no; then
HAVE_DECL_GETLOGIN_R=0
fi