merges r31262 and r31264 from trunk into ruby_1_9_2.

--
Evaluate truncate, ftruncate and ftello existence

This corrects mingw-w64 compilation.
--
* include/ruby/win32.h: VC doesn't have ftruncate() and others, but
  ruby needs HAVE_ macros to use our emulation functions.
  (fix the problem of 31262)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@31798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yugui 2011-05-29 22:49:27 +00:00
parent 7ffffab236
commit d4e840bf26
5 changed files with 34 additions and 10 deletions

View file

@ -1,3 +1,17 @@
Tue Apr 12 10:37:39 2011 NAKAMURA Usaku <usa@ruby-lang.org>
* include/ruby/win32.h: VC doesn't have ftruncate() and others, but
ruby needs HAVE_ macros to use our emulation functions.
(fix the problem of 31262)
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.
Fri Apr 8 16:01:56 2011 NARUSE, Yui <naruse@ruby-lang.org> Fri Apr 8 16:01:56 2011 NARUSE, Yui <naruse@ruby-lang.org>
* ext/stringio/stringio.c (strio_getline): check whether str is * ext/stringio/stringio.c (strio_getline): check whether str is

View file

@ -938,9 +938,7 @@ main()
ac_cv_func_isnan=yes ac_cv_func_isnan=yes
ac_cv_func_finite=yes ac_cv_func_finite=yes
ac_cv_func_link=yes ac_cv_func_link=yes
ac_cv_func_truncate=yes
ac_cv_func_fseeko=yes ac_cv_func_fseeko=yes
ac_cv_func_ftello=yes
ac_cv_lib_crypt_crypt=no ac_cv_lib_crypt_crypt=no
ac_cv_func_getpgrp_void=no ac_cv_func_getpgrp_void=no
ac_cv_func_setpgrp_void=yes ac_cv_func_setpgrp_void=yes
@ -1187,7 +1185,7 @@ else
AC_LIBOBJ([signbit]) AC_LIBOBJ([signbit])
fi fi
AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot getcwd eaccess\ 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\ link symlink readlink readdir_r fsync fdatasync fchown\
setitimer setruid seteuid setreuid setresuid setproctitle socketpair\ setitimer setruid seteuid setreuid setresuid setproctitle socketpair\
setrgid setegid setregid setresgid issetugid pause lchown lchmod\ setrgid setegid setregid setresgid issetugid pause lchown lchmod\

View file

@ -370,11 +370,23 @@ scalb(double a, long b)
// //
#define SUFFIX #define SUFFIX
#if !defined HAVE_FTRUNCATE || defined(_MSC_VER)
#define ftruncate rb_w32_ftruncate #define ftruncate rb_w32_ftruncate
extern int truncate(const char *path, off_t length); extern int rb_w32_ftruncate(int fd, off_t length);
extern int ftruncate(int fd, off_t length); #endif
#if !defined HAVE_TRUNCATE || defined(_MSC_VER)
#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 int fseeko(FILE *stream, off_t offset, int whence);
extern off_t ftello(FILE *stream);
#if !defined HAVE_FTELLO || defined(_MSC_VER)
#define ftello rb_w32_ftello
extern off_t rb_w32_ftello(FILE *stream);
#endif
// //
// stubs // stubs

View file

@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.2" #define RUBY_VERSION "1.9.2"
#define RUBY_PATCHLEVEL 225 #define RUBY_PATCHLEVEL 226
#define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1 #define RUBY_VERSION_TEENY 1

View file

@ -4332,7 +4332,7 @@ rb_chsize(HANDLE h, off_t size)
} }
int int
truncate(const char *path, off_t length) rb_w32_truncate(const char *path, off_t length)
{ {
HANDLE h; HANDLE h;
int ret; int ret;
@ -4358,7 +4358,7 @@ truncate(const char *path, off_t length)
} }
int int
ftruncate(int fd, off_t length) rb_w32_ftruncate(int fd, off_t length)
{ {
HANDLE h; HANDLE h;
@ -4431,7 +4431,7 @@ fseeko(FILE *stream, off_t offset, int whence)
} }
off_t off_t
ftello(FILE *stream) rb_w32_ftello(FILE *stream)
{ {
off_t pos; off_t pos;
if (fgetpos(stream, (fpos_t *)&pos)) return (off_t)-1; if (fgetpos(stream, (fpos_t *)&pos)) return (off_t)-1;