Commit 8616f0a2 by Pascal Obry Committed by Arnaud Charlet

cstreams.c: Only enable large file support on know supported platforms.

2014-08-01  Pascal Obry  <obry@adacore.com>                           
                                                                      
        * cstreams.c: Only enable large file support on know supported
        platforms. Add missing defines/includes.

From-SVN: r213420
parent a6282852
2014-08-01 Pascal Obry <obry@adacore.com>
* cstreams.c: Only enable large file support on know supported
platforms. Add missing defines/includes.
2014-08-01 Ed Schonberg <schonberg@adacore.com>
* einfo.ads, einfo.adb New flags No_Predicate_On_Actual and
......
......@@ -31,12 +31,19 @@
/* Routines required for implementing routines in Interfaces.C.Streams. */
#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64
/* the define above will make off_t a 64bit type on GNU/Linux */
#include <stdio.h>
#include <sys/types.h>
#ifdef _AIX
/* needed to avoid conflicting declarations */
#include <unistd.h>
#include <sys/mman.h>
#endif
#ifdef __vxworks
#include "vxWorks.h"
#endif
......@@ -268,7 +275,10 @@ __gnat_fseek64 (FILE *stream, __int64 offset, int origin)
return _fseeki64 (stream, offset, origin);
}
#else
#elif defined(linux) || defined(sun) \
|| defined (__FreeBSD__) || defined(__APPLE__)
/* section for platforms having ftello/fseeko */
__int64
__gnat_ftell64 (FILE *stream)
{
......@@ -286,6 +296,26 @@ __gnat_fseek64 (FILE *stream, __int64 offset, int origin)
else
return -1;
}
#else
__int64
__gnat_ftell64 (FILE *stream)
{
return (__int64)ftell (stream);
}
int
__gnat_fseek64 (FILE *stream, __int64 offset, int origin)
{
/* make sure that the offset is not bigger than the OS off_t, if so return
with error as this mean that we are trying to handle files larger than
2Gb on a patform not supporting it. */
if ((off_t)offset == offset)
return fseek (stream, (off_t) offset, origin);
else
return -1;
}
#endif
#ifdef __cplusplus
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment