From 76b906c9f6ebe1626e9ace5ea8336167aa210876 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michel=20D=C3=A4nzer?= Date: Fri, 29 Aug 2014 10:27:43 +0900 Subject: [PATCH] configure.ac: Add AC_SYS_LARGEFILE Making sure large file support is enabled across the tree even on 32-bit systems. Reviewed-by: Emil Velikov --- configure.ac | 2 ++ src/gallium/auxiliary/os/os_mman.h | 13 +++++++++---- src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 1 - src/gallium/winsys/svga/drm/Makefile.am | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index aa7d1f27da0..9d2ddb4ab00 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/src/gallium/auxiliary/os/os_mman.h b/src/gallium/auxiliary/os/os_mman.h index b48eb053023..19478d24e44 100644 --- a/src/gallium/auxiliary/os/os_mman.h +++ b/src/gallium/auxiliary/os/os_mman.h @@ -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 #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 diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c index 03b9b1d075b..5a5a2f195f1 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c @@ -24,7 +24,6 @@ * of the Software. */ -#define _FILE_OFFSET_BITS 64 #include "radeon_drm_cs.h" #include "util/u_hash_table.h" diff --git a/src/gallium/winsys/svga/drm/Makefile.am b/src/gallium/winsys/svga/drm/Makefile.am index 953e16600bb..3b95b47efca 100644 --- a/src/gallium/winsys/svga/drm/Makefile.am +++ b/src/gallium/winsys/svga/drm/Makefile.am @@ -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 -- 2.30.2