summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorJan Dubois <jand@activestate.com>2010-07-21 17:46:00 -0700
committerJan Dubois <jand@activestate.com>2010-07-21 17:46:00 -0700
commit02e200fccc6abfac054810724450c50d9b2d96cb (patch)
tree18b543da59017ce3817693072acf74849a582023 /win32
parentf33a21d84a9428cd5c501b39e3eea520b4f28643 (diff)
downloadperl-02e200fccc6abfac054810724450c50d9b2d96cb.tar.gz
Add CCTYPE value for Windows Server 2003 SP1 compilers
The SDK2003SP1 compiler is special because it needs to link in an additional bufferoverflow.obj file, which does not exist for the other 64-bit MSVC compilers. This change un-breaks the Makefle for all these other compilers (e.g. VS2008).
Diffstat (limited to 'win32')
-rw-r--r--win32/Makefile19
1 files changed, 14 insertions, 5 deletions
diff --git a/win32/Makefile b/win32/Makefile
index fab8cf4492..4d5690fbc8 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -2,7 +2,7 @@
# Makefile to build perl on Windows NT using Microsoft NMAKE.
# Supported compilers:
# Visual C++ 2.0 or later
-# MS Platform SDK 64-bit compiler and tools
+# Windows SDK 64-bit compiler and tools
#
# This is set up to build a perl.exe that runs off a shared library
# (perl513.dll). Also makes individual DLLs for the XS extensions.
@@ -105,6 +105,8 @@ CCTYPE = MSVC60
#CCTYPE = MSVC70FREE
# Visual C++ .NET 2003 (aka Visual C++ 7.x) (full version)
#CCTYPE = MSVC70
+# Windows Server 2003 SP1 Platform SDK (April 2005)
+#CCTYPE = SDK2003SP1
# Visual C++ 2005 Express Edition (aka Visual C++ 8.x) (free version)
#CCTYPE = MSVC80FREE
# Visual C++ 2005 (aka Visual C++ 8.x) (full version)
@@ -350,6 +352,13 @@ WIN64 = undef
!ENDIF
!ENDIF
+# Treat 64-bit MSVC60 (doesn't really exist) as SDK2003SP1 because
+# both link against MSVCRT.dll (which is part of Windows itself) and
+# not against a compiler specific versioned runtime.
+!IF "$(WIN64)" == "define" && "$(CCTYPE)" == "MSVC60"
+CCTYPE = SDK2003SP1
+!ENDIF
+
ARCHITECTURE = $(PROCESSOR_ARCHITECTURE)
!IF "$(ARCHITECTURE)" == "AMD64"
ARCHITECTURE = x64
@@ -496,11 +505,11 @@ LIBBASEFILES = $(CRYPT_LIB) \
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
version.lib odbc32.lib odbccp32.lib comctl32.lib
-# The 64 bit Platform SDK compilers contain a runtime library that doesn't
-# include the buffer overrun verification code used by the /GS switch.
+# The 64 bit Windows Server 2003 SP1 SDK compilers link against MSVCRT.dll, which
+# doesn't include the buffer overrun verification code used by the /GS switch.
# Since the code links against libraries that are compiled with /GS, this
-# "security cookie verification" must be included via bufferoverlow.lib.
-!IF "$(WIN64)" == "define"
+# "security cookie verification" code must be included via bufferoverflow.lib.
+!IF "$(WIN64)" == "define" && "$(CCTYPE)" == "SDK2003SP1"
LIBBASEFILES = $(LIBBASEFILES) bufferoverflowU.lib
!ENDIF