From: nobuyoshi nakada Date: 2005-12-27T12:26:23+09:00 Subject: Re: Problems building 1.8.4 with VS8 C++ Express Edition (cl 14.00) Hi, At Tue, 27 Dec 2005 11:09:27 +0900, Austin Ziegler wrote in [ruby-core:06996]: > 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 If we can get rid of wrong optimization by -Oy- with former versions too, it would be nice to replace it. > 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 Checking the version might be needed. > 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. __int64 is used now. > 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. __pioinfo structure may have been changed. Index: win32/Makefile.sub =================================================================== RCS file: /cvs/ruby/src/ruby/win32/Makefile.sub,v retrieving revision 1.105 diff -U2 -p -r1.105 Makefile.sub --- win32/Makefile.sub 25 Oct 2005 16:59:17 -0000 1.105 +++ win32/Makefile.sub 27 Dec 2005 03:10:46 -0000 @@ -75,5 +75,5 @@ DEBUGFLAGS = -Zi !endif !if !defined(OPTFLAGS) -OPTFLAGS = -O2b2xg- +OPTFLAGS = -O2b2xty- !endif !if !defined(OS) @@ -202,4 +202,12 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/ !endif @$(srcdir:/=\)\win32\ifchange.bat config.h << +#if _MSC_VER != $(MSC_VER) +#error MSC version unmatch +#endif +!if $(MSC_VER) >= 1400 +/* Prevents VC++ 2005 (cl ver 14) warnings */ +#define _CRT_SECURE_NO_DEPRECATE 1 +#define _CRT_NONSTDC_NO_DEPRECATE 1 +!endif #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 -- Nobu Nakada