diff options
author | luislavena <luislavena@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-04-11 16:38:10 +0000 |
---|---|---|
committer | luislavena <luislavena@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-04-11 16:38:10 +0000 |
commit | c2bfeaa2449671a4dcea16e09c6bc3e7c7095456 (patch) | |
tree | b6395864ca824527dbb7b196b7ca48f310cc7735 | |
parent | 0f771e33e2c3be4bc6316d6f4a930ba67ed0a9a3 (diff) |
Evaluate truncate, ftruncate and ftello existence
This corrects mingw-w64 compilation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | include/ruby/win32.h | 18 | ||||
-rw-r--r-- | win32/win32.c | 6 |
4 files changed, 27 insertions, 9 deletions
@@ -1,3 +1,11 @@ +Tue Apr 12 01:33:00 2011 Luis Lavena <luislavena@gmail.com> + + * configure.in: properly evaluate existence of truncate, ftruncate + and ftello for MinGW. [ruby-core:35678] + * win32/win32.c: rename truncate, ftruncate and ftello to avoid + redefinitions. + * win32/win32.h: ditto. + Mon Apr 11 21:51:52 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com> * io.c: revert r31230. diff --git a/configure.in b/configure.in index 8a4e97e339..69862e8cfd 100644 --- a/configure.in +++ b/configure.in @@ -1048,9 +1048,7 @@ main() ac_cv_func_isnan=yes ac_cv_func_finite=yes ac_cv_func_link=yes - ac_cv_func_truncate=yes ac_cv_func_fseeko=yes - ac_cv_func_ftello=yes ac_cv_lib_crypt_crypt=no ac_cv_func_getpgrp_void=no ac_cv_func_memcmp_working=yes @@ -1302,7 +1300,7 @@ else AC_LIBOBJ([signbit]) fi AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot getcwd eaccess\ - truncate ftruncate chsize times utimes utimensat fcntl lockf lstat\ + truncate ftruncate ftello chsize times utimes utimensat fcntl lockf lstat\ link symlink readlink readdir_r fsync fdatasync fchown posix_fadvise\ setitimer setruid seteuid setreuid setresuid setproctitle socketpair\ setrgid setegid setregid setresgid issetugid pause lchown lchmod\ diff --git a/include/ruby/win32.h b/include/ruby/win32.h index 791085fa6c..d822a016dc 100644 --- a/include/ruby/win32.h +++ b/include/ruby/win32.h @@ -381,11 +381,23 @@ scalb(double a, long b) // #define SUFFIX + +#if !defined HAVE_FTRUNCATE #define ftruncate rb_w32_ftruncate -extern int truncate(const char *path, off_t length); -extern int ftruncate(int fd, off_t length); +extern int rb_w32_ftruncate(int fd, off_t length); +#endif + +#if !defined HAVE_TRUNCATE +#define truncate rb_w32_truncate +extern int rb_w32_truncate(const char *path, off_t length); +#endif + extern int fseeko(FILE *stream, off_t offset, int whence); -extern off_t ftello(FILE *stream); + +#if !defined HAVE_FTELLO +#define ftello rb_w32_ftello +extern off_t rb_w32_ftello(FILE *stream); +#endif // // stubs diff --git a/win32/win32.c b/win32/win32.c index 2e92665275..f87cf8b696 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -4318,7 +4318,7 @@ rb_chsize(HANDLE h, off_t size) } int -truncate(const char *path, off_t length) +rb_w32_truncate(const char *path, off_t length) { HANDLE h; int ret; @@ -4344,7 +4344,7 @@ truncate(const char *path, off_t length) } int -ftruncate(int fd, off_t length) +rb_w32_ftruncate(int fd, off_t length) { HANDLE h; @@ -4417,7 +4417,7 @@ fseeko(FILE *stream, off_t offset, int whence) } off_t -ftello(FILE *stream) +rb_w32_ftello(FILE *stream) { off_t pos; if (fgetpos(stream, (fpos_t *)&pos)) return (off_t)-1; |