summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure38
-rw-r--r--ffi.c4
2 files changed, 42 insertions, 0 deletions
diff --git a/configure b/configure
index a59cdaf9..c9b26f23 100755
--- a/configure
+++ b/configure
@@ -2825,6 +2825,44 @@ else
printf "no\n"
fi
+printf "Checking for clockid_t ... "
+cat > conftest.c <<!
+#include <sys/types.h>
+
+int main(void)
+{
+ clockid_t cid = CLOCK_REALTIME;
+ return 0;
+}
+!
+
+if conftest ; then
+ printf "yes\n"
+ printf "#define HAVE_CLOCKID_T 1\n" >> config.h
+ have_sys_types=y
+else
+ printf "no\n"
+fi
+
+printf "Checking for loff_t ... "
+cat > conftest.c <<!
+#include <sys/types.h>
+
+int main(void)
+{
+ loff_t lo = 0;
+ return 0;
+}
+!
+
+if conftest ; then
+ printf "yes\n"
+ printf "#define HAVE_LOFF_T 1\n" >> config.h
+ have_sys_types=y
+else
+ printf "no\n"
+fi
+
#
# Dependent variables
#
diff --git a/ffi.c b/ffi.c
index ab640591..d34a1bb6 100644
--- a/ffi.c
+++ b/ffi.c
@@ -1779,8 +1779,10 @@ static void ffi_init_extra_types(void)
type_by_size[(blkcnt_t) -1 > 0][sizeof (blkcnt_t)]);
ffi_typedef(intern(lit("blksize-t"), user_package),
type_by_size[(blksize_t) -1 > 0][sizeof (blksize_t)]);
+#if HAVE_CLOCKID_T
ffi_typedef(intern(lit("clockid-t"), user_package),
type_by_size[(clockid_t) -1 > 0][sizeof (clockid_t)]);
+#endif
ffi_typedef(intern(lit("dev-t"), user_package),
type_by_size[(dev_t) -1 > 0][sizeof (dev_t)]);
ffi_typedef(intern(lit("fsblkcnt-t"), user_package),
@@ -1795,8 +1797,10 @@ static void ffi_init_extra_types(void)
type_by_size[(ino_t) -1 > 0][sizeof (ino_t)]);
ffi_typedef(intern(lit("key-t"), user_package),
type_by_size[(key_t) -1 > 0][sizeof (key_t)]);
+#if HAVE_LOFF_T
ffi_typedef(intern(lit("loff-t"), user_package),
type_by_size[(loff_t) -1 > 0][sizeof (loff_t)]);
+#endif
ffi_typedef(intern(lit("mode-t"), user_package),
type_by_size[(mode_t) -1 > 0][sizeof (mode_t)]);
ffi_typedef(intern(lit("nlink-t"), user_package),