diff --git a/CMakeLists.txt b/CMakeLists.txt index 4124c0a..96e093c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,10 @@ if (WIN32 AND NOT MSVC) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-no-undefined") endif() +# Compilation options + +option(MINGW_DEFINE_OFF_T "Define off_t and off64_t ourselves before including io.h" OFF) + # Setup coveralls option(COVERALLS "Turn on coveralls support" OFF) diff --git a/src/compat/internal.h b/src/compat/internal.h index d1c342c..deb41bc 100644 --- a/src/compat/internal.h +++ b/src/compat/internal.h @@ -31,21 +31,18 @@ # define _WIN32_WINNT 0x0502 # include -# if defined(__MINGW32__) || defined(__MINGW64__) +# if defined(MINGW_DEFINE_OFF_T) && (defined(__MINGW32__) || defined(__MINGW64__)) +# include "off_t.h" -# if defined(__STRICT_ANSI__) || defined(MINGW_DEFINE_OFF_T) -# include "off_t.h" - -# if !defined(__MINGW64__) -# define off_t cr_off32 -# else -# define off_t cr_off64 -# endif -# define off64_t cr_off64 +# if !defined(__MINGW64__) +# define off_t cr_off32 +# else +# define off_t cr_off64 # endif +# define off64_t cr_off64 # endif # include -# if defined(__MINGW32__) || defined(__MINGW64__) +# if defined(MINGW_DEFINE_OFF_T) && (defined(__MINGW32__) || defined(__MINGW64__)) # undef off_t # undef off64_t # endif diff --git a/src/compat/posix.h b/src/compat/posix.h index 0a7bbda..1081942 100644 --- a/src/compat/posix.h +++ b/src/compat/posix.h @@ -40,22 +40,19 @@ # define _POSIX_SOURCE 1 # define TMP_POSIX # endif -# if defined(__MINGW32__) || defined(__MINGW64__) +# if defined(MINGW_DEFINE_OFF_T) && (defined(__MINGW32__) || defined(__MINGW64__)) +# include "off_t.h" -# if defined(__STRICT_ANSI__) || defined(MINGW_DEFINE_OFF_T) -# include "off_t.h" - -# if !defined(__MINGW64__) -# define off_t cr_off32 -# else -# define off_t cr_off64 -# endif -# define off64_t cr_off64 +# if !defined(__MINGW64__) +# define off_t cr_off32 +# else +# define off_t cr_off64 # endif +# define off64_t cr_off64 # endif # include # include -# if defined(__MINGW32__) || defined(__MINGW64__) +# if defined(MINGW_DEFINE_OFF_T) && defined(__MINGW32__) || defined(__MINGW64__) # undef off_t # undef off64_t # endif diff --git a/src/config.h.in b/src/config.h.in index 6455bff..43f7058 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -5,6 +5,7 @@ #cmakedefine HAVE_PCRE @HAVE_PCRE@ #cmakedefine ENABLE_VALGRIND_ERRORS @ENABLE_VALGRIND_ERRORS@ #cmakedefine01 HAVE_STRTOK_S +#cmakedefine01 MINGW_DEFINE_OFF_T # define LOCALEDIR "${LOCALEDIR}" # define PACKAGE "${PROJECT_NAME}"