Merge
This commit is contained in:
commit
3a10addf66
@ -66,3 +66,4 @@ cf26288a114be67c39f2758959ce50b60f5ae330 jdk7-b85
|
||||
7f1ba4459972bf84b8201dc1cc4f62b1fe1c74f4 jdk7-b89
|
||||
425ba3efabbfe0b188105c10aaf7c3c8fa8d1a38 jdk7-b90
|
||||
97d8b6c659c29c8493a8b2b72c2796a021a8cf79 jdk7-b91
|
||||
5f5c33d417f3a14706b09a4a95e65fa7b6fa54d6 jdk7-b92
|
||||
|
@ -183,13 +183,13 @@
|
||||
<tr>
|
||||
<td>Windows X86 (32-bit)</td>
|
||||
<td>Windows XP</td>
|
||||
<td>Microsoft Visual Studio C++ 2008 Standard Edition</td>
|
||||
<td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
|
||||
<td>JDK 6u14 FCS </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows X64 (64-bit)</td>
|
||||
<td>Windows Server 2003 - Enterprise x64 Edition</td>
|
||||
<td>Microsoft Platform SDK - April 2005</td>
|
||||
<td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
|
||||
<td>JDK 6u14 FCS </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@ -789,11 +789,7 @@
|
||||
</li>
|
||||
<li>
|
||||
Install the
|
||||
<a href="#msvc">Microsoft Visual Studio Compilers</a> (32-bit).
|
||||
</li>
|
||||
<li>
|
||||
Install the
|
||||
<a href="#mssdk">Microsoft Platform SDK</a>.
|
||||
<a href="#msvc">Microsoft Visual Studio Compilers</a>).
|
||||
</li>
|
||||
<li>
|
||||
Setup all environment variables for compilers
|
||||
@ -964,13 +960,28 @@
|
||||
</blockquote>
|
||||
<strong><a name="msvc">Windows i586: Microsoft Visual Studio Compilers</a></strong>
|
||||
<blockquote>
|
||||
<p>
|
||||
<b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
|
||||
use the newest VS2010 Microsoft compilers. These build instructions are updated
|
||||
to show where we are going. We have a QA process to go through before
|
||||
official builds actually use VS2010. So for now, official builds are
|
||||
still using VS2003. No other compilers are known to build the entire JDK,
|
||||
including non-open portions.
|
||||
So for now you should be able to build with either VS2003 or VS2010.
|
||||
We do not guarantee that VS2008 will work, although there is sufficient
|
||||
makefile support to make at least basic JDK builds plausible.
|
||||
Visual Studio 2010 Express compilers are likely to be able to build all the
|
||||
"open" sources, with only small adjustments, but this has yet to be made
|
||||
to work. Also we have not yet seen the 7.1 Windows SDK with the 64 bit
|
||||
compilers. <b>END WARNING.</b>
|
||||
<p>
|
||||
The 32-bit OpenJDK Windows build
|
||||
requires
|
||||
Microsoft Visual Studio C++ 2008 (VS2008) Standard
|
||||
Microsoft Visual Studio C++ 2010 (VS2010) Professional
|
||||
Edition compiler.
|
||||
The compiler and other tools are expected to reside
|
||||
in the location defined by the variable
|
||||
<tt>VS90COMNTOOLS</tt> which
|
||||
<tt>VS100COMNTOOLS</tt> which
|
||||
is set by the Microsoft Visual Studio installer.
|
||||
<p>
|
||||
Once the compiler is installed,
|
||||
@ -982,36 +993,21 @@
|
||||
prior to building the
|
||||
OpenJDK.
|
||||
The above environment variables <b>MUST</b> be set.
|
||||
This compiler also contains the Windows SDK v 7.0a,
|
||||
which is an update to the Windows 7 SDK.
|
||||
<p>
|
||||
<b>WARNING:</b> Make sure you check out the
|
||||
<a href="#cygwin">CYGWIN link.exe WARNING</a>.
|
||||
The path <tt>/usr/bin</tt> must be after the path to the
|
||||
Visual Studio product.
|
||||
</blockquote>
|
||||
<strong><a name="mssdk">Windows: Microsoft Platform SDK</a></strong>
|
||||
<strong><a name="mssdk">Windows x64: Microsoft Visual Studio Compilers</a></strong>
|
||||
<blockquote>
|
||||
On <b>X64</b>, the Microsoft Platform Software
|
||||
Development Kit (SDK), April 2005 Edition compiler,
|
||||
is required for building the OpenJDK
|
||||
because it contains the C/C++ compiler.
|
||||
You will need to minimally install the Core SDK and
|
||||
the MDAC SDK features of this compiler.
|
||||
<p>
|
||||
Once the Platform SDK is installed,
|
||||
it is recommended that you run <tt>SetEnv.Cmd /X64</tt>
|
||||
to set the compiler environment variables
|
||||
<tt>MSSDK</tt>,
|
||||
<tt>MSTOOLS</tt>,
|
||||
<tt>INCLUDE</tt>,
|
||||
<tt>LIB</tt>, and
|
||||
<tt>PATH</tt>
|
||||
prior to building the
|
||||
OpenJDK.
|
||||
The above environment variables <b>MUST</b> be set.
|
||||
<p>
|
||||
This Platform SDK compiler is only used on X64 builds
|
||||
but other parts of the Platform SDK may be used
|
||||
for the X86 builds.
|
||||
On <b>X64</b>, the set up is much the same in VS2010
|
||||
except that you run <tt>amd64\VCVARS64.BAT</tt>
|
||||
to set the compiler environment variables.
|
||||
Previously 64 builds had used the 64 bit compiler in
|
||||
an unbundled Windows SDK but this is no longer necessary.
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
@ -1314,40 +1310,16 @@
|
||||
but it's normally found via the DirectX environment variable
|
||||
<tt>DXSDK_DIR</tt>.
|
||||
</blockquote>
|
||||
<strong><a name="msvcrt"><tt>MSVCRT.DLL</tt></a></strong>
|
||||
<strong><a name="msvcrt"><tt>MSVCR100.DLL</tt></a></strong>
|
||||
<blockquote>
|
||||
<strong>i586 only:</strong>
|
||||
The OpenJDK 32-bit build requires access to a redistributable
|
||||
<tt>MSVCRT.DLL</tt>.
|
||||
If the <tt>MSVCRT.DLL</tt> is not installed in
|
||||
the system32 directory set the
|
||||
The OpenJDK build requires access to a redistributable
|
||||
<tt>MSVCR100.DLL</tt>.
|
||||
This is usually picked up automatically from the redist
|
||||
directories of Visual Studio 2010.
|
||||
If this cannot be found set the
|
||||
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
|
||||
variable to the location of this file.
|
||||
<p>
|
||||
<strong>X64 only:</strong>
|
||||
The OpenJDK 64-bit build requires access to a redistributable
|
||||
<tt>MSVCRT.DLL</tt>, which is
|
||||
usually supplied by the
|
||||
<a href="#mssdk">Platform SDK</a>.
|
||||
If it is not available from the Platform SDK,
|
||||
set the
|
||||
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
|
||||
variable to the location of this file.
|
||||
</blockquote>
|
||||
<strong><tt><a name="msvcr90">MSVCR90.DLL</a></tt></strong>
|
||||
<blockquote>
|
||||
<strong>i586 only:</strong>
|
||||
The
|
||||
OpenJDK
|
||||
build requires access to a redistributable
|
||||
<tt>MSVCR90.DLL</tt> which should be
|
||||
supplied by the
|
||||
<a href="#msvc">Visual Studio product</a>.
|
||||
If the <tt>MSVCR90.DLL</tt> is not available from the
|
||||
Visual Studio product
|
||||
set the
|
||||
<a href="#ALT_MSVCR90_DLL_PATH"><tt>ALT_MSVCR90_DLL_PATH</tt></a>
|
||||
variable to the location of this file.
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
@ -1623,11 +1595,10 @@
|
||||
The location of the
|
||||
<a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_MSVCR90_DLL_PATH">ALT_MSVCR90_DLL_PATH</a></tt> </dt>
|
||||
<dt><tt><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
<strong>i586 only:</strong>
|
||||
The location of the
|
||||
<a href="#msvcr90"><tt>MSVCR90.DLL</tt></a>.
|
||||
<a href="#msvcrt"><tt>MSVCR100.DLL</tt></a>.
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
|
@ -92,3 +92,4 @@ e7e7e36ccdb5d56edd47e5744351202d38f3b7ad jdk7-b87
|
||||
605c9707a766ff518cd841fc04f9bb4b36a3a30b jdk7-b90
|
||||
e0a1a502e402dbe7bf2d9102b4084a7e79a99a9b jdk7-b91
|
||||
25f53b53aaa3eb8b2d5391a1e8de9a76ae1dd8a2 hs18-b03
|
||||
3221d1887d30341bedfdac1dbf365ea41beff20f jdk7-b92
|
||||
|
@ -58,11 +58,11 @@ LINK_VER="$1"
|
||||
fi
|
||||
|
||||
if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" ]; then
|
||||
$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
||||
$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
||||
else
|
||||
# Can't use pipes when calling cl.exe or link.exe from IDE. Using transit file vm3.def
|
||||
$DUMPBIN /OUT:vm3.def /symbols *.obj
|
||||
"$CAT" vm3.def | "$GREP" "??_7.*@@6B@" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
||||
"$CAT" vm3.def | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
||||
"$RM" -f vm3.def
|
||||
fi
|
||||
|
||||
|
@ -92,6 +92,7 @@ CPP=ARCH_ERROR
|
||||
# 1399 is our fake number for the VS2005 compiler that really isn't 1400
|
||||
# 1400 is for VS2005
|
||||
# 1500 is for VS2008
|
||||
# 1600 is for VS2010
|
||||
# Do not confuse this MSC_VER with the predefined macro _MSC_VER that the
|
||||
# compiler provides, when MSC_VER==1399, _MSC_VER will be 1400.
|
||||
# Normally they are the same, but a pre-release of the VS2005 compilers
|
||||
@ -121,6 +122,9 @@ COMPILER_NAME=VS2005
|
||||
!if "$(MSC_VER)" == "1500"
|
||||
COMPILER_NAME=VS2008
|
||||
!endif
|
||||
!if "$(MSC_VER)" == "1600"
|
||||
COMPILER_NAME=VS2010
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# Add what version of the compiler we think this is to the compile line
|
||||
@ -183,6 +187,17 @@ LINK_FLAGS = /manifest $(LINK_FLAGS)
|
||||
MT=mt.exe
|
||||
!endif
|
||||
|
||||
!if "$(COMPILER_NAME)" == "VS2010"
|
||||
PRODUCT_OPT_OPTION = /O2 /Oy-
|
||||
FASTDEBUG_OPT_OPTION = /O2 /Oy-
|
||||
DEBUG_OPT_OPTION = /Od
|
||||
GX_OPTION = /EHsc
|
||||
LINK_FLAGS = /manifest $(LINK_FLAGS)
|
||||
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
||||
# as resources inside build artifacts.
|
||||
MT=mt.exe
|
||||
!endif
|
||||
|
||||
# Compile for space above time.
|
||||
!if "$(Variant)" == "kernel"
|
||||
PRODUCT_OPT_OPTION = /O1 /Oy-
|
||||
|
@ -55,6 +55,8 @@ ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) ia64),)
|
||||
MAKE_ARGS += Platform_arch_model=ia64
|
||||
endif
|
||||
|
||||
# http://support.microsoft.com/kb/888731 : this can be either
|
||||
# AMD64 for AMD, or EM64T for Intel chips.
|
||||
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
|
||||
ARCH_DATA_MODEL=64
|
||||
PLATFORM=windows-amd64
|
||||
@ -67,6 +69,19 @@ ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
|
||||
MAKE_ARGS += Platform_arch_model=x86_64
|
||||
endif
|
||||
|
||||
# NB later OS versions than 2003 may report "Intel64"
|
||||
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) "EM64T\|Intel64"),)
|
||||
ARCH_DATA_MODEL=64
|
||||
PLATFORM=windows-amd64
|
||||
VM_PLATFORM=windows_amd64
|
||||
HS_ARCH=x86
|
||||
MAKE_ARGS += LP64=1
|
||||
MAKE_ARGS += ARCH=x86
|
||||
MAKE_ARGS += BUILDARCH=amd64
|
||||
MAKE_ARGS += Platform_arch=x86
|
||||
MAKE_ARGS += Platform_arch_model=x86_64
|
||||
endif
|
||||
|
||||
JDK_INCLUDE_SUBDIR=win32
|
||||
|
||||
# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
|
||||
|
@ -27,9 +27,9 @@
|
||||
all: checkCL checkLink
|
||||
|
||||
checkCL:
|
||||
@ if "$(MSC_VER)" NEQ "1310" if "$(MSC_VER)" NEQ "1399" if "$(MSC_VER)" NEQ "1400" if "$(MSC_VER)" NEQ "1500" \
|
||||
@ if "$(MSC_VER)" NEQ "1310" if "$(MSC_VER)" NEQ "1399" if "$(MSC_VER)" NEQ "1400" if "$(MSC_VER)" NEQ "1500" if "$(MSC_VER)" NEQ "1600" \
|
||||
echo *** WARNING *** unrecognized cl.exe version $(MSC_VER) ($(RAW_MSC_VER)). Use FORCE_MSC_VER to override automatic detection.
|
||||
|
||||
checkLink:
|
||||
@ if "$(LINK_VER)" NEQ "710" if "$(LINK_VER)" NEQ "800" if "$(LINK_VER)" NEQ "900" \
|
||||
@ if "$(LINK_VER)" NEQ "710" if "$(LINK_VER)" NEQ "800" if "$(LINK_VER)" NEQ "900" if "$(LINK_VER)" NEQ "1000" \
|
||||
echo *** WARNING *** unrecognized link.exe version $(LINK_VER) ($(RAW_LINK_VER)). Use FORCE_LINK_VER to override automatic detection.
|
||||
|
@ -290,7 +290,7 @@ void HeapRegion::setup_heap_region_size(uintx min_heap_size) {
|
||||
// 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) {
|
||||
|
@ -41,6 +41,26 @@
|
||||
# pragma optimize ( "", off )
|
||||
#endif
|
||||
|
||||
/* The above workaround now causes more problems with the latest MS compiler.
|
||||
* Visual Studio 2010's /GS option tries to guard against buffer overruns.
|
||||
* /GS is on by default if you specify optimizations, which we do globally
|
||||
* via /W3 /O2. However the above selective turning off of optimizations means
|
||||
* that /GS issues a warning "4748". And since we treat warnings as errors (/WX)
|
||||
* then the compilation fails. There are several possible solutions
|
||||
* (1) Remove that pragma above as obsolete with VS2010 - requires testing.
|
||||
* (2) Stop treating warnings as errors - would be a backward step
|
||||
* (3) Disable /GS - may help performance but you lose the security checks
|
||||
* (4) Disable the warning with "#pragma warning( disable : 4748 )"
|
||||
* (5) Disable planting the code with __declspec(safebuffers)
|
||||
* I've opted for (5) although we should investigate the local performance
|
||||
* benefits of (1) and global performance benefit of (3).
|
||||
*/
|
||||
#if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1600))
|
||||
#define SAFEBUF __declspec(safebuffers)
|
||||
#else
|
||||
#define SAFEBUF
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
// VM_LITTLE_ENDIAN is #defined appropriately in the Makefiles
|
||||
@ -235,7 +255,7 @@ one = 1.0,
|
||||
two24B = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
|
||||
twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
|
||||
|
||||
static int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2) {
|
||||
static SAFEBUF int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2) {
|
||||
int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
|
||||
double z,fw,f[20],fq[20],q[20];
|
||||
|
||||
@ -451,7 +471,7 @@ pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
|
||||
pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
|
||||
pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
|
||||
|
||||
static int __ieee754_rem_pio2(double x, double *y) {
|
||||
static SAFEBUF int __ieee754_rem_pio2(double x, double *y) {
|
||||
double z,w,t,r,fn;
|
||||
double tx[3];
|
||||
int e0,i,j,nx,n,ix,hx,i0;
|
||||
|
Loading…
Reference in New Issue
Block a user