diff options
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/base/System/Posix/Internals.hs | 7 | ||||
-rw-r--r-- | libraries/base/include/HsBase.h | 14 |
2 files changed, 5 insertions, 16 deletions
diff --git a/libraries/base/System/Posix/Internals.hs b/libraries/base/System/Posix/Internals.hs index de02e726b0..d2bd0e62a7 100644 --- a/libraries/base/System/Posix/Internals.hs +++ b/libraries/base/System/Posix/Internals.hs @@ -416,10 +416,13 @@ foreign import ccall unsafe "HsBase.h isatty" c_isatty :: CInt -> IO CInt #if defined(mingw32_HOST_OS) || defined(__MINGW32__) -foreign import ccall unsafe "HsBase.h __hscore_lseek" +foreign import ccall unsafe "io.h _lseeki64" c_lseek :: CInt -> Int64 -> CInt -> IO Int64 #else -foreign import ccall unsafe "HsBase.h __hscore_lseek" +-- We use CAPI as on some OSs (eg. Linux) this is wrapped by a macro +-- which redirects to the 64-bit-off_t versions when large file +-- support is enabled. +foreign import capi unsafe "unistd.h lseek" c_lseek :: CInt -> COff -> CInt -> IO COff #endif diff --git a/libraries/base/include/HsBase.h b/libraries/base/include/HsBase.h index 1d669fde3a..ed99692f49 100644 --- a/libraries/base/include/HsBase.h +++ b/libraries/base/include/HsBase.h @@ -534,20 +534,6 @@ INLINE int __hscore_open(char *file, int how, mode_t mode) { } #endif -// These are wrapped because on some OSs (eg. Linux) they are -// macros which redirect to the 64-bit-off_t versions when large file -// support is enabled. -// -#if defined(__MINGW32__) -INLINE off64_t __hscore_lseek(int fd, off64_t off, int whence) { - return (_lseeki64(fd,off,whence)); -} -#else -INLINE off_t __hscore_lseek(int fd, off_t off, int whence) { - return (lseek(fd,off,whence)); -} -#endif - #if darwin_HOST_OS // You should not access _environ directly on Darwin in a bundle/shared library. // See #2458 and http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man7/environ.7.html |