Merry Christmas to all !

Yukihiro Matsumoto wrote:
> Can you re-fetch the 1.8.2 distribution?
> 
> 1.8.2 2004-12-25 version is the right one.
> 
>   8ffc79d96f336b80f2690a17601dea9b  ruby-1.8.2.tar.gz

I tried compiling this on WinXP (Home) using the free MS VC++ Toolkit 2003.

While excecuting the following command:

   cl -nologo main.obj dmyext.obj array.obj  bignum.obj  class.obj 
compar.obj  dir.obj  dln.obj  enum.obj  error.obj  eval.obj  file.obj 
gc.obj  hash.obj  inits.obj  io.obj  marshal.obj  math.obj  numeric.obj 
  object.obj  pack.obj  parse.obj  prec.obj  process.obj  random.obj 
range.obj  re.obj  regex.obj  ruby.obj  signal.obj  sprintf.obj  st.obj 
  string.obj  struct.obj  time.obj  util.obj  variable.obj  version.obj 
  acosh.obj crypt.obj erf.obj win32.obj oldnames.lib user32.lib 
advapi32.lib wsock32.lib  -Feminiruby.exe -link -incremental:no -debug 
-opt:ref -opt:icf

I get these errors:

   numeric.obj : error LNK2001: unresolved external symbol __ftol2
   random.obj : error LNK2001: unresolved external symbol __ftol2
   time.obj : error LNK2019: unresolved external symbol __ftol2 
referenced in function _time_arg
   bignum.obj : error LNK2019: unresolved external symbol __ftol2 
referenced in function _dbl2big
   eval.obj : error LNK2001: unresolved external symbol __ftol2
   gc.obj : error LNK2019: unresolved external symbol __ftol2 referenced 
in function _garbage_collect
   marshal.obj : error LNK2019: unresolved external symbol __ftol2 
referenced in function _Init_marshal
   miniruby.exe : fatal error LNK1120: 1 unresolved externals
   NMAKE : fatal error U1077: 'cl' : return code '0x2'
   Stop.

   C:\extract\_ruby\ruby-1.8.2>nmake -v

   Microsoft (R) Program Maintenance Utility Version 7.10.3077
   Copyright (C) Microsoft Corporation.  All rights reserved.


I could get rid of them by adding this script to win32\win32.c:


   #if (_MSC_VER >= 1300) && (WINVER < 0x0500)
   //VC7 or later, building with pre-VC7 runtime libraries
    extern long _ftol( double ); //defined by VC6 C libs
    extern long _ftol2( double dblSource ) { return _ftol( dblSource ); }
   #endif


Is this the correct way?
Thanks,
-- shanko