changeset 1408:0ba67bb5392c

added c1x build directory, added MSVC Win64 project support
author lstadler
date Wed, 12 May 2010 15:01:05 +0200
parents 09e7826ecf01
children a50d2a8d726e
files create64.cmd make/windows/create.bat make/windows/makefiles/makedeps.make make/windows/makefiles/vm.make src/share/tools/MakeDeps/BuildConfig.java src/share/tools/MakeDeps/MakeDeps.java src/share/tools/MakeDeps/Util.java src/share/tools/MakeDeps/WinGammaPlatformVC6.java src/share/tools/MakeDeps/WinGammaPlatformVC7.java src/share/tools/MakeDeps/WinGammaPlatformVC8.java src/share/vm/c1/c1_LIRGenerator.cpp src/share/vm/gc_implementation/g1/heapRegion.cpp
diffstat 12 files changed, 64 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/create64.cmd	Wed May 12 15:01:05 2010 +0200
@@ -0,0 +1,14 @@
+set HotSpotMksHome=C:\cygwin\bin
+set JAVA_HOME="%cd%\java"
+set ORIG_PATH=%PATH%
+set path=%JAVA_HOME%\bin;%path%;C:\cygwin\bin
+
+set OrigPath=%cd%
+cd make\windows
+
+mkdir %OrigPath%\work
+call create.bat %OrigPath% %OrigPath%\work %OrigPath%\java
+
+set PATH=%ORIG_PATH%
+cd %OrigPath%
+pause
--- a/make/windows/create.bat	Tue May 11 19:24:14 2010 +0200
+++ b/make/windows/create.bat	Wed May 12 15:01:05 2010 +0200
@@ -43,6 +43,8 @@
 if %errorlevel% == 0 goto isia64
 cl 2>&1 | grep "AMD64" >NUL
 if %errorlevel% == 0 goto amd64
+cl 2>&1 | grep "x64" >NUL
+if %errorlevel% == 0 goto amd64
 set ARCH=x86
 set BUILDARCH=i486
 set Platform_arch=x86
--- a/make/windows/makefiles/makedeps.make	Tue May 11 19:24:14 2010 +0200
+++ b/make/windows/makefiles/makedeps.make	Wed May 12 15:01:05 2010 +0200
@@ -57,6 +57,7 @@
 # This is only used internally
 MakeDepsIncludesPRIVATE=\
         -relativeInclude src\share\vm\c1 \
+        -relativeInclude src\share\vm\c1x \
         -relativeInclude src\share\vm\compiler \
         -relativeInclude src\share\vm\code \
         -relativeInclude src\share\vm\interpreter \
--- a/make/windows/makefiles/vm.make	Tue May 11 19:24:14 2010 +0200
+++ b/make/windows/makefiles/vm.make	Wed May 12 15:01:05 2010 +0200
@@ -144,6 +144,7 @@
 VM_PATH=../generated/incls
 VM_PATH=$(VM_PATH);../generated/jvmtifiles
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
+VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1x
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code
 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter
--- a/src/share/tools/MakeDeps/BuildConfig.java	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/tools/MakeDeps/BuildConfig.java	Wed May 12 15:01:05 2010 +0200
@@ -242,12 +242,22 @@
 
     void initDefaultDefines(Vector defines) {
         Vector sysDefines = new Vector();
-        sysDefines.add("WIN32");
+        if( Util.os().equals("Win32")) {
+        	sysDefines.add("WIN32");
+            sysDefines.add("HOTSPOT_LIB_ARCH=\\\"i386\\\"");
+        } else {
+        	sysDefines.add("_AMD64_");
+        	sysDefines.add("AMD64");
+        	sysDefines.add("_WIN64");
+        	sysDefines.add("_LP64");
+        	if (System.getenv("MSC_VER") != null)
+        		sysDefines.add("MSC_VER=" + System.getenv("MSC_VER"));
+            sysDefines.add("HOTSPOT_LIB_ARCH=\\\"amd64\\\"");
+        }
         sysDefines.add("_WINDOWS");
         sysDefines.add("HOTSPOT_BUILD_USER="+System.getProperty("user.name"));
         sysDefines.add("HOTSPOT_BUILD_TARGET=\\\""+get("Build")+"\\\"");
         sysDefines.add("_JNI_IMPLEMENTATION_");
-        sysDefines.add("HOTSPOT_LIB_ARCH=\\\"i386\\\"");
 
         sysDefines.addAll(defines);
 
--- a/src/share/tools/MakeDeps/MakeDeps.java	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/tools/MakeDeps/MakeDeps.java	Wed May 12 15:01:05 2010 +0200
@@ -1,3 +1,6 @@
+import java.util.Map;
+import java.util.Map.Entry;
+
 /*
  * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
--- a/src/share/tools/MakeDeps/Util.java	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/tools/MakeDeps/Util.java	Wed May 12 15:01:05 2010 +0200
@@ -23,6 +23,7 @@
  */
 
 import java.util.*;
+import java.util.Map.Entry;
 import java.io.File;
 
 public class Util {
@@ -84,5 +85,25 @@
     }
 
     static String sep = File.separator;
-    static String os = "Win32"; //System.getProperty("os.name");
+    
+    private static String _os;
+    
+    static String os() {
+    	if( _os==null) {
+
+        	for(Map.Entry<String, String> entry: System.getenv().entrySet())
+        		if("PLATFORM_ARCH_MODEL".equals(entry.getKey().toUpperCase())) {
+        			String archModel = entry.getValue();
+        			if("x86_32".equals(archModel))
+        				_os = "Win32";
+        			else if("x86_64".equals(archModel))
+        				_os = "x64";
+        			else
+        				throw new RuntimeException("Unsupported PLATFORM_ARCH_MODEL " + archModel);
+        			return _os;
+        		}
+        	throw new RuntimeException("PLATFORM_ARCH_MODEL not specified");
+    	}
+    	return _os;
+    }
 }
--- a/src/share/tools/MakeDeps/WinGammaPlatformVC6.java	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/tools/MakeDeps/WinGammaPlatformVC6.java	Wed May 12 15:01:05 2010 +0200
@@ -286,6 +286,6 @@
     }
 
     String makeCfgName(String flavourBuild) {
-        return "vm - "+ Util.os + " " + flavourBuild;
+        return "vm - "+ "Win32" + " " + flavourBuild;
     }
 }
--- a/src/share/tools/MakeDeps/WinGammaPlatformVC7.java	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/tools/MakeDeps/WinGammaPlatformVC7.java	Wed May 12 15:01:05 2010 +0200
@@ -51,7 +51,7 @@
             );
 
         startTag("Platforms", null);
-        tag("Platform", new String[] {"Name", Util.os});
+        tag("Platform", new String[] {"Name", Util.os()});
         endTag("Platforms");
 
         startTag("Configurations", null);
@@ -469,7 +469,7 @@
                 "PreprocessorDefinitions", "NDEBUG",
                 "MkTypLibCompatible", "TRUE",
                 "SuppressStartupBanner", "TRUE",
-                "TargetEnvironment", "1",
+                "TargetEnvironment", Util.os().equals("Win32") ? "1" : "3",
                 "TypeLibraryName", cfg.get("OutputDir") + Util.sep + "vm.tlb",
                 "HeaderFileName", ""
             }
@@ -611,7 +611,7 @@
         addAttr(rv, "BaseAddress", "0x8000000");
         addAttr(rv, "ImportLibrary", outDir+Util.sep+"jvm.lib");
         // Set /MACHINE option. 1 is machineX86
-        addAttr(rv, "TargetMachine", "1");
+        addAttr(rv, "TargetMachine", Util.os().equals("Win32") ? "1" : "17");
 
         return rv;
     }
@@ -689,6 +689,6 @@
     }
 
     String makeCfgName(String flavourBuild) {
-        return  flavourBuild + "|" + Util.os;
+        return  flavourBuild + "|" + Util.os();
     }
 }
--- a/src/share/tools/MakeDeps/WinGammaPlatformVC8.java	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/tools/MakeDeps/WinGammaPlatformVC8.java	Wed May 12 15:01:05 2010 +0200
@@ -41,6 +41,8 @@
         addAttr(rv, "UsePrecompiledHeader", "2");
         // Set /EHsc- option. 0 is cppExceptionHandlingNo
         addAttr(rv, "ExceptionHandling", "0");
+        // Parallel compilation
+        addAttr(rv, "AdditionalOptions", "/MP");
 
         return rv;
     }
--- a/src/share/vm/c1/c1_LIRGenerator.cpp	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Wed May 12 15:01:05 2010 +0200
@@ -2427,7 +2427,7 @@
 
       // Load CallSite object from constant pool cache.
       __ oop2reg(cpcache->constant_encoding(), tmp);
-      __ load(new LIR_Address(tmp, call_site_offset, T_OBJECT), tmp);
+      __ load(new LIR_Address(tmp, (int)call_site_offset, T_OBJECT), tmp);
 
       // Load target MethodHandle from CallSite object.
       __ load(new LIR_Address(tmp, java_dyn_CallSite::target_offset_in_bytes(), T_OBJECT), receiver);
--- a/src/share/vm/gc_implementation/g1/heapRegion.cpp	Tue May 11 19:24:14 2010 +0200
+++ b/src/share/vm/gc_implementation/g1/heapRegion.cpp	Wed May 12 15:01:05 2010 +0200
@@ -290,7 +290,7 @@
   // Recalculate the region size to make sure it's a power of
   // 2. This means that region_size is the largest power of 2 that's
   // <= what we've calculated so far.
-  region_size = 1 << region_size_log;
+  region_size = ((uintx)1) << region_size_log;
 
   // Now make sure that we don't go over or under our limits.
   if (region_size < MIN_REGION_SIZE) {