[poppler] [PATCH] Use fseeko64/ftello64 for MinGW32

Peter Breitenlohner peb at mppmu.mpg.de
Mon Jun 3 04:26:51 PDT 2013


Hi,

In MinGW32 (3.20) the prototypes for _fseeki64/_ftelli64 are available when
__MSVCRT_VERSION__ >= 0x800 but this then requires to link with
libmsvcr80.a, i.e., msvcr80.dll or better.

Since MinGW32 provides fseeko64/ftello64 why not use those as per this
patch:

>From 9c79bf3c47be1120c50744f4ba03b058e3b73b3c Mon Sep 17 00:00:00 2001
From: Peter Breitenlohner <peb at mppmu.mpg.de>
Date: Mon, 3 Jun 2013 13:05:51 +0200
Subject: [PATCH] Use fseeko64/ftello64 for MinGW32
To: Albert Astals Cid <aacid at kemper.freedesktop.org>
Cc: poppler at lists.freedesktop.org

Signed-off-by: Peter Breitenlohner <peb at mppmu.mpg.de>
---
  goo/gfile.cc | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/goo/gfile.cc b/goo/gfile.cc
index 9d0699a..aaf62ee 100644
--- a/goo/gfile.cc
+++ b/goo/gfile.cc
@@ -555,6 +555,8 @@ int Gfseek(FILE *f, Goffset offset, int whence) {
    return fseeko(f, offset, whence);
  #elif HAVE_FSEEK64
    return fseek64(f, offset, whence);
+#elif defined(__MINGW32__)
+  return fseeko64(f, offset, whence);
  #elif _WIN32
    return _fseeki64(f, offset, whence);
  #else
@@ -567,6 +569,8 @@ Goffset Gftell(FILE *f) {
    return ftello(f);
  #elif HAVE_FSEEK64
    return ftell64(f);
+#elif defined(__MINGW32__)
+  return ftello64(f);
  #elif _WIN32
    return _ftelli64(f);
  #else
@@ -577,7 +581,7 @@ Goffset Gftell(FILE *f) {
  Goffset GoffsetMax() {
  #if HAVE_FSEEKO
    return (std::numeric_limits<off_t>::max)();
-#elif HAVE_FSEEK64
+#elif HAVE_FSEEK64 || defined(__MINGW32__)
    return (std::numeric_limits<off64_t>::max)();
  #elif _WIN32
    return (std::numeric_limits<__int64>::max)();
-- 
1.8.2.2



Regards
Peter Breitenlohner <peb at mppmu.mpg.de>


More information about the poppler mailing list