configure.ac: Add AC_SYS_LARGEFILE
authorMichel Dänzer <michel.daenzer@amd.com>
Fri, 29 Aug 2014 01:27:43 +0000 (10:27 +0900)
committerMichel Dänzer <michel@daenzer.net>
Fri, 5 Sep 2014 09:08:59 +0000 (18:08 +0900)
Making sure large file support is enabled across the tree even on 32-bit
systems.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
configure.ac
src/gallium/auxiliary/os/os_mman.h
src/gallium/winsys/radeon/drm/radeon_drm_bo.c
src/gallium/winsys/svga/drm/Makefile.am

index aa7d1f27da03d3ee8174e9cc58a58e5bee29e099..9d2ddb4ab00164282ba6ed7b8b3bfc6d95c714bd 100644 (file)
@@ -57,6 +57,8 @@ AC_CHECK_PROGS([PYTHON2], [python2 python])
 AC_PROG_SED
 AC_PROG_MKDIR_P
 
+AC_SYS_LARGEFILE
+
 LT_PREREQ([2.2])
 LT_INIT([disable-static])
 
index b48eb053023f69630a435fa58b47d373078ea343..19478d24e449ee4bd735ecfbfc036d11eb58ac31 100644 (file)
@@ -40,9 +40,6 @@
 #include "pipe/p_compiler.h"
 
 #if defined(PIPE_OS_UNIX)
-#  ifndef _FILE_OFFSET_BITS
-#    error _FILE_OFFSET_BITS must be defined to 64
-#  endif
 #  include <sys/mman.h>
 #else
 #  error Unsupported OS
@@ -77,7 +74,15 @@ static INLINE void *os_mmap(void *addr, size_t length, int prot, int flags, int
 #  define os_mmap(addr, length, prot, flags, fd, offset) mmap(addr, length, prot, flags, fd, offset)
 #endif
 
-#define os_munmap(addr, length) munmap(addr, length)
+static INLINE int os_munmap(void *addr, size_t length)
+{
+   /* Copied from configure code generated by AC_SYS_LARGEFILE */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+   STATIC_ASSERT(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1);
+#undef LARGE_OFF_T
+
+   return munmap(addr, length);
+}
 
 
 #ifdef __cplusplus
index 03b9b1d075b27629a5c22b046221e6be1b885417..5a5a2f195f10304322e97b575f102b4a8b2d21db 100644 (file)
@@ -24,7 +24,6 @@
  * of the Software.
  */
 
-#define _FILE_OFFSET_BITS 64
 #include "radeon_drm_cs.h"
 
 #include "util/u_hash_table.h"
index 953e16600bb7af8fbd315738ec8554773f1048af..3b95b47efca1a2ae38b474613b963aebf904b6f2 100644 (file)
@@ -30,7 +30,7 @@ AM_CFLAGS = \
        $(LIBDRM_CFLAGS)
 
 #On some systems -std= must be added to CFLAGS to be the last -std=
-CFLAGS += -std=gnu99 -D_FILE_OFFSET_BITS=64
+CFLAGS += -std=gnu99
 
 noinst_LTLIBRARIES = libsvgadrm.la