From a7d225ecf8799085a37ac5da254375f925b69d5f Mon Sep 17 00:00:00 2001 From: Steve Hay Date: Tue, 28 Nov 2006 16:01:55 +0000 Subject: [PATCH] Building with Visual C++ 2005 now works except for one test failure p4raw-id: //depot/perl@29409 --- README.win32 | 18 +++++++++++------- win32/Makefile | 4 ++-- win32/makefile.mk | 8 ++++---- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/README.win32 b/README.win32 index 4d7e2c9..25ebadd 100644 --- a/README.win32 +++ b/README.win32 @@ -42,7 +42,7 @@ system). Currently, this port is capable of using one of the following compilers on the Intel x86 architecture: Borland C++ version 5.02 or later - Microsoft Visual C++ version 2.0 through 7.0 (and possibly later) + Microsoft Visual C++ version 2.0 or later MinGW with gcc gcc version 2.95.2 or later The last of these is a high quality freeware compiler. Use version @@ -55,8 +55,7 @@ Command Line Tools" and is the same compiler that ships with the full "Visual C++ Toolkit 2003" or "Visual C++ 2005 Express Edition" (and also as part of the ".NET Framework SDK") and is the same compiler that ships with "Visual C++ .NET 2003 Professional" or "Visual C++ 2005 Professional" -respectively. Currently, Perl cannot be compiled with Visual C++ 2005 (aka -Visual C++ 8.x). +respectively. This port can also be built on the Intel IA64 using: @@ -138,9 +137,6 @@ make for building extensions using MakeMaker. =item Microsoft Visual C++ 2005 Express Edition -B - This free version of Visual C++ 2005 Professional contains the same compiler and linker that ship with the full version, but doesn't contain everything necessary to build Perl. @@ -370,6 +366,9 @@ You may also need to comment out the C line in the Makefile if you're using VC++ 6.0 without the latest service pack and the linker reports an internal error. +If you are using VC++ 4.2 or earlier then you'll have to change the /EHsc +option in the CXX_FLAG macro to the equivalent /GX option. + If you have either the source or a library that contains des_fcrypt(), enable the appropriate option in the makefile. A ready-to-use version of fcrypt.c, based on the version originally written by Eric Young at @@ -411,6 +410,11 @@ spaces. So don't do that. If you are running the tests from a emacs shell window, you may see failures in op/stat.t. Run "dmake test-notty" in that case. +If you're using the Microsoft Visual C++ 2005 compiler (VC++ 8) then you'll +find that F currently produces some warnings and then +hangs. You will need to kill the hung perl.exe process to allow the +remainder of the test suite to complete. + If you're using the Borland compiler, you may see a failure in op/taint.t arising from the inability to find the Borland Runtime DLLs on the system default path. You will need to copy the DLLs reported by the messages @@ -956,6 +960,6 @@ Win9x support was added in 5.6 (Benjamin Stuhl). Support for 64-bit Windows added in 5.8 (ActiveState Corp). -Last updated: 30 September 2005 +Last updated: 28 November 2006 =cut diff --git a/win32/Makefile b/win32/Makefile index 5c6209a..6399b57 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1,7 +1,7 @@ # # Makefile to build perl on Windows NT using Microsoft NMAKE. # Supported compilers: -# Visual C++ 2.0 through 7.0 (and possibly newer versions) +# Visual C++ 2.0 or later # MS Platform SDK 64-bit compiler and tools # # This is set up to build a perl.exe that runs off a shared library @@ -413,7 +413,7 @@ INCLUDES = -I$(COREDIR) -I.\include -I. -I.. DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) LOCDEFS = -DPERLDLL -DPERL_CORE SUBSYS = console -CXX_FLAG = -TP -GX +CXX_FLAG = -TP -EHsc !IF "$(USE_PERLCRT)" != "define" LIBC = msvcrt.lib diff --git a/win32/makefile.mk b/win32/makefile.mk index 1600398..75975a0 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1,9 +1,9 @@ # # Makefile to build perl on Windows NT using DMAKE. # Supported compilers: -# Visual C++ 2.0 through 7.0 (and possibly newer versions) -# Borland C++ 5.02 or better -# MinGW with gcc-2.95.2 or better +# Visual C++ 2.0 or later +# Borland C++ 5.02 or later +# MinGW with gcc-2.95.2 or later # MS Platform SDK 64-bit compiler and tools **experimental** # # This is set up to build a perl.exe that runs off a shared library @@ -524,7 +524,7 @@ INCLUDES = -I$(COREDIR) -I.\include -I. -I.. DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) LOCDEFS = -DPERLDLL -DPERL_CORE SUBSYS = console -CXX_FLAG = -TP -GX +CXX_FLAG = -TP -EHsc .IF "$(USE_PERLCRT)" != "define" LIBC = msvcrt.lib -- 2.7.4