Visual Studio C++ 2005 Express Edition (VS 8.0)
Platform SDK 2003 SP1 (cl 14.00.50727.42)

When compiling with this, I get hundreds of the following warnings:

cl : Command line warning D9035 : option 'Og-' has been deprecated and
     will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-G6'
... : warning C4996: 'chdir' was declared deprecated
      C:\Program Files\Microsoft Visual Studio
      8\VC\INCLUDE\direct.h(127) : see declaration of 'chdir' Message:
      'The POSIX name for this item is deprecated. Instead, use the ISO
      C++ conformant name: _chdir. See online help for details.'
... : warning C4996: 'sprintf' was declared deprecated
      C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\stdio.h(345)
      : see declaration of 'sprintf' Message: 'This function or variable
      may be unsafe. Consider using sprintf_s instead. To disable
      deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for
      details.'

The following modifications (1) remove the g- from the optimization
flags. It replaces it with t ("favor code speed") and y- ("disable frame
pointer omission"). This may need to be parameterized. I have not
changed the -G6, because it appears that the free edition is not a
platform optimizing compiler, and -G6 is platform selection. The
modifications also (2) suppress the deprecation warnings (it may also be
possible to suppress with "#pragma warning (disable : 4996)", but these
values may need to be cleaned up otherwise. I also found, as I was
trying to figure out the proper response to this, the pyconfig.h file
for Win32, which seemed pretty reasonable for possible shifts in the way
that Ruby handles some of the definitions (SIZEOF_LONG_LONG should be
set to a meaningful value, but is currently set to '0' under Win32) that
may improve the ability to run a 64-bit Ruby on Win64.

Unfortunately, my process died with:

  .\miniruby.exe ./../win32/mkexports.rb -output=msvcr80-ruby18.def
      msvcr80-ruby18-static.lib
    This application has requested the Runtime to terminate it in an
    unusual way. Please contact the application's support team for more
    information.

    ./../win32/mkexports.rb:6: [BUG] Segmentation fault
    ruby 1.8.4 (2005-12-24) [i386-mswin32]

    NMAKE : fatal error U1077: '.\miniruby.exe' : return code '0x3'
    Stop.

I'm trying to compile 1.8.4 and do not know what to do with this.

###### Makefile modification
--- Makefile.sub~       2005-10-25 14:00:02.000000000 -0400
+++ Makefile.sub        2005-12-26 20:56:19.121876800 -0500
@@ -67,7 +67,7 @@
 DEBUGFLAGS = -Zi
 !endif
 !if !defined(OPTFLAGS)
-OPTFLAGS = -O2b2xg-
+OPTFLAGS = -O2b2xty-
 !endif
 !if !defined(OS)
 OS = mswin32
@@ -184,6 +184,10 @@
 $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub
        @echo Creating config.h
        @$(srcdir:/=\)\win32\ifchange.bat config.h <<
+       /* Prevents a VC++ 2005 (cl ver 14) warning */
+#define _CRT_SECURE_NO_DEPRECATE 1
+       /* Prevents a VC++ 2005 (cl ver 14) warning */
+#define _CRT_NONSTDC_NO_DEPRECATE 1
 #define STDC_HEADERS 1
 #define HAVE_SYS_TYPES_H 1
 #define HAVE_SYS_STAT_H 1

###### End Makefile Modification

###### Crash Information

Exception Information
Code:   0x40000015          Flags:      0x00000000
Record: 0x0000000000000000  Address:    0x0000000000420c26

<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
  <EXE NAME="miniruby.exe" FILTER="GRABMI_FILTER_PRIVACY">
    <MATCHING_FILE NAME="miniruby.exe" SIZE="749568"
      CHECKSUM="0x8EF2569C" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0"
      LINKER_VERSION="0x0" LINK_DATE="12/27/2005 01:51:39"
      UPTO_LINK_DATE="12/27/2005 01:51:39" />
  </EXE>
  <EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="983552"
      CHECKSUM="0x4CE79457" BIN_FILE_VERSION="5.1.2600.2180"
      BIN_PRODUCT_VERSION="5.1.2600.2180"
      PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="Windows NT BASE
      API Client DLL" COMPANY_NAME="Microsoft Corporation"
      PRODUCT_NAME="Microsoft(r) Windows(r) Operating System"
      FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)"
      ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32"
      LEGAL_COPYRIGHT="(c) Microsoft Corporation. All rights reserved."
      VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004"
      VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xFF848"
      LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180"
      UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/04/2004
      07:56:36" UPTO_LINK_DATE="08/04/2004 07:56:36"
      VER_LANGUAGE="English (United States) [0x409]" />
  </EXE>
</DATABASE>
###### End Crash Information

-austin
--
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca