We are forcibly use the LFS (64-bit) calls in the source now. Add a new
check to the configure script and use compatibility defines when those
calls are not available for a reason.
Fixes: https://github.com/alsa-project/alsa-lib/pull/223
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ALSA_DEPLIBS="-lm"
fi
+dnl Check for scandir64
+AC_MSG_CHECKING(for LFS calls)
+lfs=
+AC_ARG_WITH(lfs,
+ AS_HELP_STRING([--with-lfs], [Use LFS calls (default = yes)]),
+ [ have_lfs="$withval" ], [ have_lfs="yes" ])
+HAVE_LIBDL=
+if test "$have_lfs" = "yes"; then
+ AC_TRY_LINK([#include <dirent.h>],
+ [struct dirent64 a; ],
+ [have_lfs=yes],
+ [have_lfs=no])
+fi
+if test "$have_lfs" = "yes"; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_LFS], 1, [Have LFS])
+else
+ AC_MSG_RESULT(no)
+fi
+
dnl Check for libdl
AC_MSG_CHECKING(for libdl)
AC_ARG_WITH(libdl,
#error "Unsupported endian..."
#endif
+#ifndef HAVE_LFS
+#define stat64 stat
+#define lstat64 lstat
+#define dirent64 dirent
+#define readdir64 readdir
+#define scandir64 scandir
+#define versionsort64 versionsort
+#define alphasort64 alphasort
+#endif
+
#define _snd_config_iterator list_head
#define _snd_interval snd_interval
#define _snd_pcm_info snd_pcm_info