Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
7c417053
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7c417053
编写于
2月 21, 2011
作者:
R
rottenha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
4cbfb99f
10fc22ff
变更
28
隐藏空白更改
内联
并排
Showing
28 changed file
with
325 addition
and
410 deletion
+325
-410
make/Makefile
make/Makefile
+2
-1
make/defs.make
make/defs.make
+8
-1
make/windows/create.bat
make/windows/create.bat
+8
-15
make/windows/makefiles/compile.make
make/windows/makefiles/compile.make
+1
-4
make/windows/makefiles/projectcreator.make
make/windows/makefiles/projectcreator.make
+14
-5
make/windows/makefiles/rules.make
make/windows/makefiles/rules.make
+2
-2
make/windows/platform_amd64
make/windows/platform_amd64
+0
-15
make/windows/platform_i486
make/windows/platform_i486
+0
-15
make/windows/platform_ia64
make/windows/platform_ia64
+0
-12
make/windows/projectfiles/common/Makefile
make/windows/projectfiles/common/Makefile
+3
-6
src/os/windows/vm/perfMemory_windows.cpp
src/os/windows/vm/perfMemory_windows.cpp
+59
-16
src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp
src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp
+2
-2
src/share/tools/ProjectCreator/BuildConfig.java
src/share/tools/ProjectCreator/BuildConfig.java
+24
-33
src/share/tools/ProjectCreator/DirectoryTree.java
src/share/tools/ProjectCreator/DirectoryTree.java
+5
-5
src/share/tools/ProjectCreator/FileFormatException.java
src/share/tools/ProjectCreator/FileFormatException.java
+3
-1
src/share/tools/ProjectCreator/Macro.java
src/share/tools/ProjectCreator/Macro.java
+0
-28
src/share/tools/ProjectCreator/MacroDefinitions.java
src/share/tools/ProjectCreator/MacroDefinitions.java
+0
-154
src/share/tools/ProjectCreator/Util.java
src/share/tools/ProjectCreator/Util.java
+11
-4
src/share/tools/ProjectCreator/WinGammaPlatform.java
src/share/tools/ProjectCreator/WinGammaPlatform.java
+22
-30
src/share/tools/ProjectCreator/WinGammaPlatformVC6.java
src/share/tools/ProjectCreator/WinGammaPlatformVC6.java
+9
-5
src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
+132
-45
src/share/vm/adlc/adlc.hpp
src/share/vm/adlc/adlc.hpp
+1
-6
src/share/vm/oops/methodOop.cpp
src/share/vm/oops/methodOop.cpp
+1
-1
src/share/vm/oops/methodOop.hpp
src/share/vm/oops/methodOop.hpp
+2
-2
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+13
-0
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+1
-1
src/share/vm/utilities/errorReporter.hpp
src/share/vm/utilities/errorReporter.hpp
+1
-0
src/share/vm/utilities/hashtable.hpp
src/share/vm/utilities/hashtable.hpp
+1
-1
未找到文件。
make/Makefile
浏览文件 @
7c417053
#
# Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -43,6 +43,7 @@
# ALT_OUTPUTDIR Output directory to use for hotspot build
# ALT_EXPORT_PATH Directory to export hotspot build to
# ALT_JDK_IMPORT_PATH Current JDK build (only for create_jdk rules)
# ALT_JDK_TARGET_IMPORT_PATH Current JDK build when cross-compiling
# ALT_BUILD_WIN_SA Building SA on Windows is disabled by default.
# Set ALT_BUILD_WIN_SA=1 to enable building SA on
# Windows.
...
...
make/defs.make
浏览文件 @
7c417053
#
# Copyright (c) 2006, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2006, 201
1
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -162,6 +162,13 @@ ifneq ($(ALT_JDK_IMPORT_PATH),)
JDK_IMPORT_PATH
=
$(ALT_JDK_IMPORT_PATH)
endif
# Other parts of JDK build may require an import JDK that can be executed
# on the build host. For cross-compile builds we also need an import JDK
# that matches the target arch, so for that we set ALT_JDK_TARGET_IMPORT_PATH
ifneq
($(ALT_JDK_TARGET_IMPORT_PATH),)
JDK_IMPORT_PATH
=
$(ALT_JDK_TARGET_IMPORT_PATH)
endif
# Find JDK used for javac compiles
BOOTDIR
=
$(SLASH_JAVA)
/re/j2se/
$(PREVIOUS_JDK_VERSION)
/latest/binaries/
$(PLATFORM)
ifneq
($(ALT_BOOTDIR),)
...
...
make/windows/create.bat
浏览文件 @
7c417053
@echo
off
REM
REM Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
REM Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM This code is free software; you can redistribute it and/or modify it
...
...
@@ -50,9 +50,7 @@ goto end
:testit
cl
2
>&
1
|
grep
"IA-64"
>
NUL
if
%errorlevel%
==
0
goto
isia64
cl
2
>&
1
|
grep
"AMD64"
>
NUL
cl
2
>&
1
|
grep
"x64"
>
NUL
if
%errorlevel%
==
0
goto
amd64
set
ARCH
=
x86
set
BUILDARCH
=
i486
...
...
@@ -64,12 +62,6 @@ set ARCH=x86
set
BUILDARCH
=
amd64
set
Platform_arch
=
x86
set
Platform_arch_model
=
x86_64
goto
done
:isia
64
set
ARCH
=
ia64
set
BUILDARCH
=
ia64
set
Platform_arch
=
ia64
set
Platform_arch_model
=
ia64
:done
setlocal
...
...
@@ -81,7 +73,7 @@ if not "%2" == "" goto usage
REM Set HotSpotWorkSpace to the directy two steps above this script
for
%%i
in
(
"
%~dp0
.."
)
do
(
set
HotSpotWorkSpace
=
%%~dpi
)
set
HotSpotBuildRoot
=
%HotSpotWorkSpace%
build
set
HotSpotBuildSpace
=
%HotSpotBuildRoot%
\vs
set
HotSpotBuildSpace
=
%HotSpotBuildRoot%
\vs
-
%BUILDARCH%
set
HotSpotJDKDist
=
%
1
...
...
@@ -89,9 +81,9 @@ REM figure out MSC version
for
/F
%%i
in
(
'sh
%HotSpotWorkSpace%
/make/windows/get_msc_ver.sh'
)
do
set
%%i
echo
**************************************************************
set
ProjectFile
=
jvm
.vcproj
set
ProjectFile
=
%HotSpotBuildSpace%
\
jvm.vcproj
if
"
%MSC_VER%
"
==
"1200"
(
set
ProjectFile
=
jvm
.dsp
set
ProjectFile
=
%HotSpotBuildSpace%
\
jvm.dsp
echo
Will
generate
VC6
project
{
unsupported
}
)
else
(
if
"
%MSC_VER%
"
==
"1400"
(
...
...
@@ -163,7 +155,7 @@ copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\
)
REM force regneration of ProjectFile
if
exist
%
HotSpotBuildSpace%
\
%ProjectFile%
del
%HotSpotBuildSpace%
\
%ProjectFile%
if
exist
%
ProjectFile%
del
%ProjectFile%
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
,
kernel
)
do
(
echo
--
%%i
--
...
...
@@ -182,6 +174,7 @@ echo ARCH=%ARCH% >> %HotSpotBuildSpace%\%%i\local.m
echo
BUILDARCH
=
%BUILDARCH%
>>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
Platform_arch
=
%Platform_arch%
>>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
Platform_arch_model
=
%Platform_arch_model%
>>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
MSC_VER
=
%MSC_VER%
>>
%HotSpotBuildSpace%
\
%%i
\local.make
for
/D
%%j
in
(
debug
,
fastdebug
,
product
)
do
(
if
NOT
EXIST
%HotSpotBuildSpace%
\
%%i
\
%%j
mkdir
%HotSpotBuildSpace%
\
%%i
\
%%j
...
...
@@ -196,7 +189,7 @@ popd
pushd
%HotSpotBuildRoot%
REM It doesn't matter which variant we use here, "compiler1" is as good as any of the others - we need the common variables
nmake
/nologo /F
%HotSpotWorkSpace%
/make/windows/projectfiles/common/Makefile
LOCAL_MAKE
=
%HotSpotBuildSpace%
\compiler1\local.make
%
HotSpotBuildRoot%
/
%
ProjectFile%
nmake
/nologo /F
%HotSpotWorkSpace%
/make/windows/projectfiles/common/Makefile
LOCAL_MAKE
=
%HotSpotBuildSpace%
\compiler1\local.make
%ProjectFile%
popd
...
...
make/windows/makefiles/compile.make
浏览文件 @
7c417053
#
# Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -141,9 +141,6 @@ COMPILER_NAME=VS2010
!
endif
!
endif
# Add what version of the compiler we think this is to the compile line
CPP_FLAGS
=
$(CPP_FLAGS)
/D
"MSC_VER=
$(MSC_VER)
"
# By default, we do not want to use the debug version of the msvcrt.dll file
# but if MFC_DEBUG is defined in the environment it will be used.
MS_RUNTIME_OPTION
=
/MD
...
...
make/windows/makefiles/projectcreator.make
浏览文件 @
7c417053
#
# Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -36,8 +36,6 @@ ProjectCreatorSources=\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\D
irectoryTree.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\D
irectoryTreeNode.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\F
ileFormatException.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\M
acro.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\M
acroDefinitions.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\P
rojectCreator.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\W
inGammaPlatform.java
\
$(WorkSpace)
\s
rc
\s
hare
\t
ools
\P
rojectCreator
\W
inGammaPlatformVC6.java
\
...
...
@@ -50,6 +48,10 @@ ProjectCreatorSources=\
# This is only used internally
ProjectCreatorIncludesPRIVATE
=
\
-relativeInclude
src
\c
losed
\s
hare
\v
m
\
-relativeInclude
src
\c
losed
\o
s
\w
indows
\v
m
\
-relativeInclude
src
\c
losed
\o
s_cpu
\w
indows_
$(Platform_arch)
\v
m
\
-relativeInclude
src
\c
losed
\c
pu
\$
(
Platform_arch
)
\v
m
\
-relativeInclude
src
\s
hare
\v
m
\
-relativeInclude
src
\s
hare
\v
m
\p
rims
\
-relativeInclude
src
\o
s
\w
indows
\v
m
\
...
...
@@ -84,7 +86,7 @@ ProjectCreatorIDEOptions=\
-buildBase
$(HOTSPOTBUILDSPACE)
\%
f
\%
b
\
-startAt
src
\
-compiler
$(VcVersion)
\
-projectFileName
$(HOTSPOTBUILD
ROOT
)
\$
(
ProjectFile
)
\
-projectFileName
$(HOTSPOTBUILD
SPACE
)
\$
(
ProjectFile
)
\
-jdkTargetRoot
$(HOTSPOTJDKDIST)
\
-define
ALIGN_STACK_FRAMES
\
-define
VM_LITTLE_ENDIAN
\
...
...
@@ -106,13 +108,20 @@ ProjectCreatorIDEOptions=\
# Add in build-specific options
!if
"$(BUILDARCH)"
==
"i486"
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
-platformName
Win32
\
-define
IA32
\
-ignorePath
x86_64
\
-define
TARGET_ARCH_MODEL_x86_32
!
else
!if
"$(BUILDARCH)"
==
"amd64"
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
-platformName
x64
\
-define
AMD64
\
-define
_LP64
\
-ignorePath
x86_32
\
-define
TARGET_ARCH_MODEL_x86_64
-define
TARGET_ARCH_MODEL_x86_64
\
-define
TARGET_OS_ARCH_MODEL_windows_x86_64
!
endif
!
endif
ProjectCreatorIDEOptionsIgnoreCompiler1
=
\
...
...
make/windows/makefiles/rules.make
浏览文件 @
7c417053
#
# Copyright (c) 2003, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2003, 201
1
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -53,7 +53,7 @@ ProjectFile=jvm.vcproj
!if
"$(MSC_VER)"
==
"1200"
VcVersion
=
VC6
ProjectFile
=
vm.dsp
ProjectFile
=
j
vm.dsp
!elseif
"$(MSC_VER)"
==
"1400"
...
...
make/windows/platform_amd64
已删除
100644 → 0
浏览文件 @
4cbfb99f
// Platform file for win32 NT platform
os_family = windows
arch = x86
arch_model = x86_64
os_arch = windows_x86
os_arch_model = windows_x86_64
lib_arch = amd64
compiler = visCPP
make/windows/platform_i486
已删除
100644 → 0
浏览文件 @
4cbfb99f
// Platform file for windows platform
os_family = windows
arch = x86
arch_model = x86_32
os_arch = windows_x86
os_arch_model = windows_x86_32
lib_arch = i386
compiler = visCPP
make/windows/platform_ia64
已删除
100644 → 0
浏览文件 @
4cbfb99f
// Platform file for Itanium Windows platform $Revision: 1.0 $
os_family = win32
arch = ia64
os_arch = win32_ia64
compiler = visCPP
gnu_dis_arch = ia64
make/windows/projectfiles/common/Makefile
浏览文件 @
7c417053
#
# Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -54,8 +54,6 @@ BootStrapDir=$(HOTSPOTJDKDIST)
JvmtiOutDir
=
$(HOTSPOTBUILDSPACE)
\$
(
Variant
)
\g
enerated
\j
vmtifiles
!
include
$(HOTSPOTWORKSPACE)/make/windows/makefiles/jvmti.make
Platform
=
$(HOTSPOTWORKSPACE)
/make/windows/platform_
$(BUILDARCH)
!if
"$(Variant)"
==
"compiler2"
# Pick up rules for building adlc
!
include
$(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make
...
...
@@ -105,17 +103,16 @@ HOTSPOT_VM_DISTRO="OpenJDK"
!
endif
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
-platform
$(Platform)
\
-define
HOTSPOT_RELEASE_VERSION
=
\\\"
$(HOTSPOT_RELEASE_VERSION)
\\\"
\
-define
JRE_RELEASE_VERSION
=
\\\"
$(JRE_RELEASE_VERSION)
\\\"
\
-define
HOTSPOT_VM_DISTRO
=
\\\"
$(HOTSPOT_VM_DISTRO)
\\\"
$(HOTSPOTBUILD
ROOT
)/$(ProjectFile)
:
$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class
$(HOTSPOTBUILD
SPACE
)/$(ProjectFile)
:
$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class
@
$(RUN_JAVA)
-Djava
.class.path
=
$(HOTSPOTBUILDSPACE)
/classes ProjectCreator WinGammaPlatform
$(VcVersion)
$(ProjectCreatorIDEOptions)
clean
:
@
rm
-rf
$(HOTSPOTBUILDSPACE)
/classes
@
rm
-r
..
/
$(ProjectFile)
@
rm
-r
$(HOTSPOTBUILDSPACE)
/
$(ProjectFile)
$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class
:
$(ProjectCreatorSources)
@
if
exist
$(HOTSPOTBUILDSPACE)
\c
lasses
rmdir
/s /q
$(HOTSPOTBUILDSPACE)
\c
lasses
...
...
src/os/windows/vm/perfMemory_windows.cpp
浏览文件 @
7c417053
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -298,8 +298,8 @@ static char* get_user_name() {
static
char
*
get_user_name_slow
(
int
vmid
)
{
// directory search
char
*
old
est_user
=
NULL
;
time_t
old
est_ctime
=
0
;
char
*
lat
est_user
=
NULL
;
time_t
lat
est_ctime
=
0
;
const
char
*
tmpdirname
=
os
::
get_temp_directory
();
...
...
@@ -375,18 +375,29 @@ static char* get_user_name_slow(int vmid) {
continue
;
}
// compare and save filename with latest creation time
if
(
statbuf
.
st_size
>
0
&&
statbuf
.
st_ctime
>
oldest_ctime
)
{
if
(
statbuf
.
st_ctime
>
oldest_ctime
)
{
char
*
user
=
strchr
(
dentry
->
d_name
,
'_'
)
+
1
;
if
(
oldest_user
!=
NULL
)
FREE_C_HEAP_ARRAY
(
char
,
oldest_user
);
oldest_user
=
NEW_C_HEAP_ARRAY
(
char
,
strlen
(
user
)
+
1
);
strcpy
(
oldest_user
,
user
);
oldest_ctime
=
statbuf
.
st_ctime
;
}
// If we found a matching file with a newer creation time, then
// save the user name. The newer creation time indicates that
// we found a newer incarnation of the process associated with
// vmid. Due to the way that Windows recycles pids and the fact
// that we can't delete the file from the file system namespace
// until last close, it is possible for there to be more than
// one hsperfdata file with a name matching vmid (diff users).
//
// We no longer ignore hsperfdata files where (st_size == 0).
// In this function, all we're trying to do is determine the
// name of the user that owns the process associated with vmid
// so the size doesn't matter. Very rarely, we have observed
// hsperfdata files where (st_size == 0) and the st_size field
// later becomes the expected value.
//
if
(
statbuf
.
st_ctime
>
latest_ctime
)
{
char
*
user
=
strchr
(
dentry
->
d_name
,
'_'
)
+
1
;
if
(
latest_user
!=
NULL
)
FREE_C_HEAP_ARRAY
(
char
,
latest_user
);
latest_user
=
NEW_C_HEAP_ARRAY
(
char
,
strlen
(
user
)
+
1
);
strcpy
(
latest_user
,
user
);
latest_ctime
=
statbuf
.
st_ctime
;
}
FREE_C_HEAP_ARRAY
(
char
,
filename
);
...
...
@@ -399,7 +410,7 @@ static char* get_user_name_slow(int vmid) {
os
::
closedir
(
tmpdirp
);
FREE_C_HEAP_ARRAY
(
char
,
tdbuf
);
return
(
old
est_user
);
return
(
lat
est_user
);
}
// return the name of the user that owns the process identified by vmid.
...
...
@@ -1339,6 +1350,38 @@ static HANDLE create_sharedmem_resources(const char* dirname, const char* filena
CloseHandle
(
fh
);
fh
=
NULL
;
return
NULL
;
}
else
{
// We created the file mapping, but rarely the size of the
// backing store file is reported as zero (0) which can cause
// failures when trying to use the hsperfdata file.
struct
stat
statbuf
;
int
ret_code
=
::
stat
(
filename
,
&
statbuf
);
if
(
ret_code
==
OS_ERR
)
{
if
(
PrintMiscellaneous
&&
Verbose
)
{
warning
(
"Could not get status information from file %s: %s
\n
"
,
filename
,
strerror
(
errno
));
}
CloseHandle
(
fmh
);
CloseHandle
(
fh
);
fh
=
NULL
;
fmh
=
NULL
;
return
NULL
;
}
// We could always call FlushFileBuffers() but the Microsoft
// docs indicate that it is considered expensive so we only
// call it when we observe the size as zero (0).
if
(
statbuf
.
st_size
==
0
&&
FlushFileBuffers
(
fh
)
!=
TRUE
)
{
DWORD
lasterror
=
GetLastError
();
if
(
PrintMiscellaneous
&&
Verbose
)
{
warning
(
"could not flush file %s: %d
\n
"
,
filename
,
lasterror
);
}
CloseHandle
(
fmh
);
CloseHandle
(
fh
);
fh
=
NULL
;
fmh
=
NULL
;
return
NULL
;
}
}
// the file has been successfully created and the file mapping
...
...
src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp
浏览文件 @
7c417053
/*
* Copyright (c) 2004, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -71,7 +71,7 @@ typedef struct _DISPATCHER_CONTEXT {
PVOID
HandlerData
;
}
DISPATCHER_CONTEXT
,
*
PDISPATCHER_CONTEXT
;
#if MSC_VER < 1500
#if
_
MSC_VER < 1500
/* Not needed for VS2008 compiler, comes from winnt.h. */
typedef
EXCEPTION_DISPOSITION
(
*
PEXCEPTION_ROUTINE
)
(
...
...
src/share/tools/ProjectCreator/BuildConfig.java
浏览文件 @
7c417053
/*
* Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -51,12 +51,14 @@ class BuildConfig {
if
(
vars
==
null
)
vars
=
new
Hashtable
();
String
flavourBuild
=
flavour
+
"_"
+
build
;
String
platformName
=
getFieldString
(
null
,
"PlatformName"
);
System
.
out
.
println
();
System
.
out
.
println
(
flavourBuild
);
put
(
"Name"
,
getCI
().
makeCfgName
(
flavourBuild
));
put
(
"Name"
,
getCI
().
makeCfgName
(
flavourBuild
,
platformName
));
put
(
"Flavour"
,
flavour
);
put
(
"Build"
,
build
);
put
(
"PlatformName"
,
platformName
);
// ones mentioned above were needed to expand format
String
buildBase
=
expandFormat
(
getFieldString
(
null
,
"BuildBase"
));
...
...
@@ -93,7 +95,7 @@ class BuildConfig {
protected
void
initDefaultLinkerFlags
()
{
Vector
linkerFlags
=
new
Vector
();
linkerFlags
.
addAll
(
getCI
().
getBaseLinkerFlags
(
get
(
"OutputDir"
),
get
(
"OutputDll"
)));
linkerFlags
.
addAll
(
getCI
().
getBaseLinkerFlags
(
get
(
"OutputDir"
),
get
(
"OutputDll"
)
,
get
(
"PlatformName"
)
));
put
(
"LinkerFlags"
,
linkerFlags
);
}
...
...
@@ -115,18 +117,15 @@ class BuildConfig {
}
Vector
getPreferredPaths
(
MacroDefinitions
macros
)
{
Vector
getPreferredPaths
()
{
Vector
preferredPaths
=
new
Vector
();
// In the case of multiple files with the same name in
// different subdirectories, prefer the versions specified in
// the platform file as the "os_family" and "arch" macros.
for
(
Iterator
iter
=
macros
.
getMacros
();
iter
.
hasNext
();
)
{
Macro
macro
=
(
Macro
)
iter
.
next
();
if
(
macro
.
name
.
equals
(
"os_family"
)
||
macro
.
name
.
equals
(
"arch"
))
{
preferredPaths
.
add
(
macro
.
contents
);
}
}
// different subdirectories, prefer these versions
preferredPaths
.
add
(
"windows"
);
preferredPaths
.
add
(
"x86"
);
preferredPaths
.
add
(
"closed"
);
// Also prefer "opto" over "adlc" for adlcVMDeps.hpp
preferredPaths
.
add
(
"opto"
);
...
...
@@ -137,18 +136,7 @@ class BuildConfig {
void
handleDB
()
{
WinGammaPlatform
platform
=
(
WinGammaPlatform
)
getField
(
null
,
"PlatformObject"
);
File
incls
=
new
File
(
get
(
"OutputDir"
)+
Util
.
sep
+
"incls"
);
incls
.
mkdirs
();
MacroDefinitions
macros
=
new
MacroDefinitions
();
try
{
macros
.
readFrom
(
getFieldString
(
null
,
"Platform"
),
false
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
putSpecificField
(
"AllFilesHash"
,
computeAllFiles
(
platform
,
macros
));
putSpecificField
(
"AllFilesHash"
,
computeAllFiles
(
platform
));
}
...
...
@@ -190,10 +178,10 @@ class BuildConfig {
ht
.
put
(
expandFormat
(
key
),
expandFormat
(
value
));
}
Hashtable
computeAllFiles
(
WinGammaPlatform
platform
,
MacroDefinitions
macros
)
{
Hashtable
computeAllFiles
(
WinGammaPlatform
platform
)
{
Hashtable
rv
=
new
Hashtable
();
DirectoryTree
tree
=
getSourceTree
(
get
(
"SourceBase"
),
getFieldString
(
null
,
"StartAt"
));
Vector
preferredPaths
=
getPreferredPaths
(
macros
);
Vector
preferredPaths
=
getPreferredPaths
();
// Hold errors until end
Vector
filesNotFound
=
new
Vector
();
...
...
@@ -228,8 +216,7 @@ class BuildConfig {
System
.
err
.
println
(
"Error: some files were not found or "
+
"appeared in multiple subdirectories of "
+
"directory "
+
get
(
"SourceBase"
)
+
" and could not "
+
"be resolved with the os_family and arch "
+
"macros in the platform file."
);
"be resolved with os_family and arch."
);
if
(
filesNotFound
.
size
()
!=
0
)
{
System
.
err
.
println
(
"Files not found:"
);
for
(
Iterator
iter
=
filesNotFound
.
iterator
();
...
...
@@ -254,10 +241,14 @@ class BuildConfig {
Vector
sysDefines
=
new
Vector
();
sysDefines
.
add
(
"WIN32"
);
sysDefines
.
add
(
"_WINDOWS"
);
sysDefines
.
add
(
"HOTSPOT_BUILD_USER=
"
+
System
.
getProperty
(
"user.name"
)
);
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\\\""
);
if
(
vars
.
get
(
"PlatformName"
).
equals
(
"Win32"
))
{
sysDefines
.
add
(
"HOTSPOT_LIB_ARCH=\\\"i386\\\""
);
}
else
{
sysDefines
.
add
(
"HOTSPOT_LIB_ARCH=\\\"amd64\\\""
);
}
sysDefines
.
addAll
(
defines
);
...
...
@@ -710,7 +701,7 @@ class KernelProductConfig extends ProductConfig {
}
abstract
class
CompilerInterface
{
abstract
Vector
getBaseCompilerFlags
(
Vector
defines
,
Vector
includes
,
String
outDir
);
abstract
Vector
getBaseLinkerFlags
(
String
outDir
,
String
outDll
);
abstract
Vector
getBaseLinkerFlags
(
String
outDir
,
String
outDll
,
String
platformName
);
abstract
Vector
getDebugCompilerFlags
(
String
opt
);
abstract
Vector
getDebugLinkerFlags
();
abstract
void
getAdditionalNonKernelLinkerFlags
(
Vector
rv
);
...
...
@@ -718,7 +709,7 @@ abstract class CompilerInterface {
abstract
Vector
getProductLinkerFlags
();
abstract
String
getOptFlag
();
abstract
String
getNoOptFlag
();
abstract
String
makeCfgName
(
String
flavourBuild
);
abstract
String
makeCfgName
(
String
flavourBuild
,
String
platformName
);
void
addAttr
(
Vector
receiver
,
String
attr
,
String
value
)
{
receiver
.
add
(
attr
);
receiver
.
add
(
value
);
...
...
src/share/tools/ProjectCreator/DirectoryTree.java
浏览文件 @
7c417053
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -55,6 +55,9 @@ public class DirectoryTree {
private
Vector
nodes
=
new
Vector
();
public
FileIterator
(
Node
rootNode
)
{
if
(
rootNode
==
null
)
{
return
;
}
nodes
.
add
(
rootNode
);
prune
();
}
...
...
@@ -112,10 +115,7 @@ public class DirectoryTree {
throws
IllegalArgumentException
{
File
root
=
new
File
(
Util
.
normalize
(
baseDirectory
));
if
(!
root
.
isDirectory
())
{
throw
new
IllegalArgumentException
(
"baseDirectory \""
+
baseDirectory
+
"\" does not exist or "
+
"is not a directory"
);
return
;
}
try
{
root
=
root
.
getCanonicalFile
();
...
...
src/share/tools/ProjectCreator/FileFormatException.java
浏览文件 @
7c417053
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -22,7 +22,9 @@
*
*/
@SuppressWarnings
(
"serial"
)
public
class
FileFormatException
extends
Exception
{
public
FileFormatException
()
{
super
();
}
...
...
src/share/tools/ProjectCreator/Macro.java
已删除
100644 → 0
浏览文件 @
4cbfb99f
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
public
class
Macro
{
public
String
name
;
public
String
contents
;
}
src/share/tools/ProjectCreator/MacroDefinitions.java
已删除
100644 → 0
浏览文件 @
4cbfb99f
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
import
java.io.*
;
import
java.util.*
;
public
class
MacroDefinitions
{
private
Vector
macros
;
public
MacroDefinitions
()
{
macros
=
new
Vector
();
}
public
void
addMacro
(
String
name
,
String
contents
)
{
Macro
macro
=
new
Macro
();
macro
.
name
=
name
;
macro
.
contents
=
contents
;
macros
.
add
(
macro
);
}
private
boolean
lineIsEmpty
(
String
s
)
{
for
(
int
i
=
0
;
i
<
s
.
length
();
i
++)
{
if
(!
Character
.
isWhitespace
(
s
.
charAt
(
i
)))
{
return
false
;
}
}
return
true
;
}
public
void
readFrom
(
String
fileName
,
boolean
missingOk
)
throws
FileNotFoundException
,
FileFormatException
,
IOException
{
BufferedReader
reader
=
null
;
try
{
reader
=
new
BufferedReader
(
new
FileReader
(
fileName
));
}
catch
(
FileNotFoundException
e
)
{
if
(
missingOk
)
{
return
;
}
else
{
throw
(
e
);
}
}
String
line
;
do
{
line
=
reader
.
readLine
();
if
(
line
!=
null
)
{
// This had to be rewritten (compare to Database.java)
// because the Solaris platform file has been
// repurposed and now contains "macros" with spaces in
// them.
if
((!
line
.
startsWith
(
"//"
))
&&
(!
lineIsEmpty
(
line
)))
{
int
nameBegin
=
-
1
;
int
nameEnd
=
-
1
;
boolean
gotEquals
=
false
;
int
contentsBegin
=
-
1
;
int
contentsEnd
=
-
1
;
int
i
=
0
;
// Scan forward for beginning of name
while
(
i
<
line
.
length
())
{
if
(!
Character
.
isWhitespace
(
line
.
charAt
(
i
)))
{
break
;
}
i
++;
}
nameBegin
=
i
;
// Scan forward for end of name
while
(
i
<
line
.
length
())
{
if
(
Character
.
isWhitespace
(
line
.
charAt
(
i
)))
{
break
;
}
i
++;
}
nameEnd
=
i
;
// Scan forward for equals sign
while
(
i
<
line
.
length
())
{
if
(
line
.
charAt
(
i
)
==
'='
)
{
gotEquals
=
true
;
break
;
}
i
++;
}
// Scan forward for start of contents
i
++;
while
(
i
<
line
.
length
())
{
if
(!
Character
.
isWhitespace
(
line
.
charAt
(
i
)))
{
break
;
}
i
++;
}
contentsBegin
=
i
;
// Scan *backward* for end of contents
i
=
line
.
length
()
-
1
;
while
(
i
>=
0
)
{
if
(!
Character
.
isWhitespace
(
line
.
charAt
(
i
)))
{
break
;
}
}
contentsEnd
=
i
+
1
;
// Now do consistency check
if
(!((
nameBegin
<
nameEnd
)
&&
(
nameEnd
<
contentsBegin
)
&&
(
contentsBegin
<
contentsEnd
)
&&
(
gotEquals
==
true
)))
{
throw
new
FileFormatException
(
"Expected \"macroname = value\", "
+
"but found: "
+
line
);
}
String
name
=
line
.
substring
(
nameBegin
,
nameEnd
);
String
contents
=
line
.
substring
(
contentsBegin
,
contentsEnd
);
addMacro
(
name
,
contents
);
}
}
}
while
(
line
!=
null
);
reader
.
close
();
}
/** This returns an Iterator of Macros. You should not mutate the
returned Macro objects or use the Iterator to remove
macros. */
public
Iterator
getMacros
()
{
return
macros
.
iterator
();
}
}
src/share/tools/ProjectCreator/Util.java
浏览文件 @
7c417053
/*
* Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -47,7 +47,7 @@ public class Util {
return
sb
.
toString
();
}
static
String
join
(
String
padder
,
String
v
[])
{
static
String
join
(
String
padder
,
String
v
[])
{
StringBuffer
sb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
v
.
length
;
i
++)
{
...
...
@@ -80,9 +80,16 @@ public class Util {
static
String
normalize
(
String
file
)
{
return
file
.
replace
(
'\\'
,
'/'
);
file
=
file
.
replace
(
'\\'
,
'/'
);
if
(
file
.
length
()
>
2
)
{
if
(
file
.
charAt
(
1
)
==
':'
&&
file
.
charAt
(
2
)
==
'/'
)
{
// convert drive letter to uppercase
String
drive
=
file
.
substring
(
0
,
1
).
toUpperCase
();
return
drive
+
file
.
substring
(
1
);
}
}
return
file
;
}
static
String
sep
=
File
.
separator
;
static
String
os
=
"Win32"
;
//System.getProperty("os.name");
}
src/share/tools/ProjectCreator/WinGammaPlatform.java
浏览文件 @
7c417053
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -235,13 +235,6 @@ public abstract class WinGammaPlatform {
(
locationsInTree
.
size
()
==
0
))
{
filesNotFound
.
add
(
fileName
);
}
else
if
(
locationsInTree
.
size
()
>
1
)
{
// We shouldn't have duplicate file names in our workspace.
System
.
err
.
println
();
System
.
err
.
println
(
"There are multiple files named as: "
+
fileName
);
System
.
exit
(-
1
);
// The following code could be safely removed if we don't need duplicate
// file names.
// Iterate through them, trying to find one with a
// preferred path
search:
...
...
@@ -336,7 +329,7 @@ public abstract class WinGammaPlatform {
String
projectName
=
getProjectName
(
projectFileName
,
ext
);
writeProjectFile
(
projectFileName
,
projectName
,
createAllConfigs
());
writeProjectFile
(
projectFileName
,
projectName
,
createAllConfigs
(
BuildConfig
.
getFieldString
(
null
,
"PlatformName"
)
));
}
protected
void
writePrologue
(
String
[]
args
)
{
...
...
@@ -376,7 +369,13 @@ public abstract class WinGammaPlatform {
HsArgHandler
.
STRING
),
new
HsArgRule
(
"-projectFileName"
,
new
HsArgRule
(
"-platformName"
,
"PlatformName"
,
null
,
HsArgHandler
.
STRING
),
new
HsArgRule
(
"-projectFileName"
,
"ProjectFileName"
,
null
,
HsArgHandler
.
STRING
...
...
@@ -394,12 +393,6 @@ public abstract class WinGammaPlatform {
HsArgHandler
.
STRING
),
new
HsArgRule
(
"-platform"
,
"Platform"
,
null
,
HsArgHandler
.
STRING
),
new
HsArgRule
(
"-absoluteInclude"
,
"AbsoluteInclude"
,
null
,
...
...
@@ -590,28 +583,27 @@ public abstract class WinGammaPlatform {
BuildConfig
.
putField
(
null
,
"PlatformObject"
,
this
);
}
Vector
createAllConfigs
()
{
Vector
createAllConfigs
(
String
platform
)
{
Vector
allConfigs
=
new
Vector
();
allConfigs
.
add
(
new
C1DebugConfig
());
boolean
b
=
true
;
if
(
b
)
{
allConfigs
.
add
(
new
C1FastDebugConfig
());
allConfigs
.
add
(
new
C1ProductConfig
());
allConfigs
.
add
(
new
C1FastDebugConfig
());
allConfigs
.
add
(
new
C1ProductConfig
());
allConfigs
.
add
(
new
C2DebugConfig
());
allConfigs
.
add
(
new
C2FastDebugConfig
());
allConfigs
.
add
(
new
C2ProductConfig
());
allConfigs
.
add
(
new
C2DebugConfig
());
allConfigs
.
add
(
new
C2FastDebugConfig
());
allConfigs
.
add
(
new
C2ProductConfig
());
allConfigs
.
add
(
new
TieredDebugConfig
());
allConfigs
.
add
(
new
TieredFastDebugConfig
());
allConfigs
.
add
(
new
TieredProductConfig
());
allConfigs
.
add
(
new
TieredDebugConfig
());
allConfigs
.
add
(
new
TieredFastDebugConfig
());
allConfigs
.
add
(
new
TieredProductConfig
());
allConfigs
.
add
(
new
CoreDebugConfig
());
allConfigs
.
add
(
new
CoreFastDebugConfig
());
allConfigs
.
add
(
new
CoreProductConfig
());
allConfigs
.
add
(
new
CoreDebugConfig
());
allConfigs
.
add
(
new
CoreFastDebugConfig
());
allConfigs
.
add
(
new
CoreProductConfig
());
if
(
platform
.
equals
(
"Win32"
))
{
allConfigs
.
add
(
new
KernelDebugConfig
());
allConfigs
.
add
(
new
KernelFastDebugConfig
());
allConfigs
.
add
(
new
KernelProductConfig
());
...
...
src/share/tools/ProjectCreator/WinGammaPlatformVC6.java
浏览文件 @
7c417053
/*
* Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -223,7 +223,7 @@ class CompilerInterfaceVC6 extends CompilerInterface {
return
rv
;
}
Vector
getBaseLinkerFlags
(
String
outDir
,
String
outDll
)
{
Vector
getBaseLinkerFlags
(
String
outDir
,
String
outDll
,
String
platformName
)
{
Vector
rv
=
new
Vector
();
rv
.
add
(
"PROP Ignore_Export_Lib 0"
);
...
...
@@ -231,8 +231,12 @@ class CompilerInterfaceVC6 extends CompilerInterface {
rv
.
add
(
"ADD CPP /MD"
);
rv
.
add
(
"ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib "
+
" advapi32.lib shell32.lib ole32.lib oleaut32.lib winmm.lib"
);
String
machine
=
"/machine:I386"
;
if
(
platformName
.
equals
(
"x64"
))
{
machine
=
"/machine:X64"
;
}
rv
.
add
(
"ADD LINK32 /out:\""
+
outDll
+
"\" "
+
" /nologo /subsystem:windows /machine:
I386"
+
" /nologo /subsystem:windows /machine:
"
+
machine
+
" /nologo /base:\"0x8000000\" /subsystem:windows /dll"
+
" /export:JNI_GetDefaultJavaVMInitArgs /export:JNI_CreateJavaVM /export:JNI_GetCreatedJavaVMs "
+
" /export:jio_snprintf /export:jio_printf /export:jio_fprintf /export:jio_vfprintf "
+
...
...
@@ -287,7 +291,7 @@ class CompilerInterfaceVC6 extends CompilerInterface {
return
"d"
;
}
String
makeCfgName
(
String
flavourBuild
)
{
return
"vm - "
+
Util
.
os
+
" "
+
flavourBuild
;
String
makeCfgName
(
String
flavourBuild
,
String
platform
)
{
return
"vm - "
+
platform
+
" "
+
flavourBuild
;
}
}
src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
浏览文件 @
7c417053
/*
* Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -37,7 +37,7 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
public
void
writeProjectFile
(
String
projectFileName
,
String
projectName
,
Vector
allConfigs
)
throws
IOException
{
System
.
out
.
println
();
System
.
out
.
println
(
" Writing .vcproj file
..."
);
System
.
out
.
println
(
" Writing .vcproj file
: "
+
projectFileName
);
// If we got this far without an error, we're safe to actually
// write the .vcproj file
printWriter
=
new
PrintWriter
(
new
FileWriter
(
projectFileName
));
...
...
@@ -54,9 +54,8 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
"SccLocalPath"
,
""
}
);
startTag
(
"Platforms"
,
null
);
tag
(
"Platform"
,
new
String
[]
{
"Name"
,
Util
.
os
});
tag
(
"Platform"
,
new
String
[]
{
"Name"
,
(
String
)
BuildConfig
.
getField
(
null
,
"PlatformName"
)
});
endTag
(
"Platforms"
);
startTag
(
"Configurations"
,
null
);
...
...
@@ -81,12 +80,47 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
abstract
class
NameFilter
{
protected
String
fname
;
protected
String
fname
;
abstract
boolean
match
(
FileInfo
fi
);
String
filterString
()
{
return
""
;
}
String
name
()
{
return
this
.
fname
;}
@Override
// eclipse auto-generated
public
int
hashCode
()
{
final
int
prime
=
31
;
int
result
=
1
;
result
=
prime
*
result
+
getOuterType
().
hashCode
();
result
=
prime
*
result
+
((
fname
==
null
)
?
0
:
fname
.
hashCode
());
return
result
;
}
@Override
// eclipse auto-generated
public
boolean
equals
(
Object
obj
)
{
if
(
this
==
obj
)
return
true
;
if
(
obj
==
null
)
return
false
;
if
(
getClass
()
!=
obj
.
getClass
())
return
false
;
NameFilter
other
=
(
NameFilter
)
obj
;
if
(!
getOuterType
().
equals
(
other
.
getOuterType
()))
return
false
;
if
(
fname
==
null
)
{
if
(
other
.
fname
!=
null
)
return
false
;
}
else
if
(!
fname
.
equals
(
other
.
fname
))
return
false
;
return
true
;
}
// eclipse auto-generated
private
WinGammaPlatformVC7
getOuterType
()
{
return
WinGammaPlatformVC7
.
this
;
}
}
class
DirectoryFilter
extends
NameFilter
{
...
...
@@ -109,9 +143,50 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
boolean
match
(
FileInfo
fi
)
{
int
lastSlashIndex
=
fi
.
full
.
lastIndexOf
(
'/'
);
String
fullDir
=
fi
.
full
.
substring
(
0
,
lastSlashIndex
);
return
fullDir
.
endsWith
(
dir
);
int
lastSlashIndex
=
fi
.
full
.
lastIndexOf
(
'/'
);
String
fullDir
=
fi
.
full
.
substring
(
0
,
lastSlashIndex
);
return
fullDir
.
endsWith
(
dir
);
}
@Override
// eclipse auto-generated
public
int
hashCode
()
{
final
int
prime
=
31
;
int
result
=
super
.
hashCode
();
result
=
prime
*
result
+
getOuterType
().
hashCode
();
result
=
prime
*
result
+
baseLen
;
result
=
prime
*
result
+
((
dir
==
null
)
?
0
:
dir
.
hashCode
());
result
=
prime
*
result
+
dirLen
;
return
result
;
}
@Override
// eclipse auto-generated
public
boolean
equals
(
Object
obj
)
{
if
(
this
==
obj
)
return
true
;
if
(!
super
.
equals
(
obj
))
return
false
;
if
(
getClass
()
!=
obj
.
getClass
())
return
false
;
DirectoryFilter
other
=
(
DirectoryFilter
)
obj
;
if
(!
getOuterType
().
equals
(
other
.
getOuterType
()))
return
false
;
if
(
baseLen
!=
other
.
baseLen
)
return
false
;
if
(
dir
==
null
)
{
if
(
other
.
dir
!=
null
)
return
false
;
}
else
if
(!
dir
.
equals
(
other
.
dir
))
return
false
;
if
(
dirLen
!=
other
.
dirLen
)
return
false
;
return
true
;
}
// eclipse auto-generated
private
WinGammaPlatformVC7
getOuterType
()
{
return
WinGammaPlatformVC7
.
this
;
}
}
...
...
@@ -232,32 +307,39 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform {
DirectoryFilter
container
=
null
;
for
(
FileInfo
fileInfo
:
files
)
{
if
(!
fileInfo
.
full
.
startsWith
(
sbase
))
{
continue
;
}
int
lastSlash
=
fileInfo
.
full
.
lastIndexOf
(
'/'
);
String
dir
=
fileInfo
.
full
.
substring
(
sbase
.
length
(),
lastSlash
);
if
(
dir
.
equals
(
"share/vm"
))
{
// skip files directly in share/vm - should only be precompiled.hpp which is handled below
continue
;
}
if
(!
dir
.
equals
(
currentDir
))
{
currentDir
=
dir
;
if
(
container
!=
null
)
{
rv
.
add
(
container
);
}
// remove "share/vm/" from names
String
name
=
dir
;
if
(
dir
.
startsWith
(
"share/vm/"
))
{
name
=
dir
.
substring
(
"share/vm/"
.
length
(),
dir
.
length
());
}
container
=
new
DirectoryFilter
(
name
,
dir
,
sbase
);
}
}
if
(
container
!=
null
)
{
rv
.
add
(
container
);
if
(!
fileInfo
.
full
.
startsWith
(
sbase
))
{
continue
;
}
int
lastSlash
=
fileInfo
.
full
.
lastIndexOf
(
'/'
);
String
dir
=
fileInfo
.
full
.
substring
(
sbase
.
length
(),
lastSlash
);
if
(
dir
.
equals
(
"share/vm"
))
{
// skip files directly in share/vm - should only be precompiled.hpp which is handled below
continue
;
}
if
(!
dir
.
equals
(
currentDir
))
{
currentDir
=
dir
;
if
(
container
!=
null
&&
!
rv
.
contains
(
container
))
{
rv
.
add
(
container
);
}
// remove "share/vm/" from names
String
name
=
dir
;
if
(
dir
.
startsWith
(
"share/vm/"
))
{
name
=
dir
.
substring
(
"share/vm/"
.
length
(),
dir
.
length
());
}
DirectoryFilter
newfilter
=
new
DirectoryFilter
(
name
,
dir
,
sbase
);
int
i
=
rv
.
indexOf
(
newfilter
);
if
(
i
==
-
1
)
{
container
=
newfilter
;
}
else
{
// if the filter already exists, reuse it
container
=
(
DirectoryFilter
)
rv
.
get
(
i
);
}
}
}
if
(
container
!=
null
&&
!
rv
.
contains
(
container
))
{
rv
.
add
(
container
);
}
ContainerFilter
generated
=
new
ContainerFilter
(
"Generated"
);
...
...
@@ -583,7 +665,7 @@ class CompilerInterfaceVC7 extends CompilerInterface {
return
rv
;
}
Vector
getBaseLinkerFlags
(
String
outDir
,
String
outDll
)
{
Vector
getBaseLinkerFlags
(
String
outDir
,
String
outDll
,
String
platformName
)
{
Vector
rv
=
new
Vector
();
addAttr
(
rv
,
"Name"
,
"VCLinkerTool"
);
...
...
@@ -610,8 +692,13 @@ class CompilerInterfaceVC7 extends CompilerInterface {
addAttr
(
rv
,
"SubSystem"
,
"2"
);
addAttr
(
rv
,
"BaseAddress"
,
"0x8000000"
);
addAttr
(
rv
,
"ImportLibrary"
,
outDir
+
Util
.
sep
+
"jvm.lib"
);
// Set /MACHINE option. 1 is machineX86
addAttr
(
rv
,
"TargetMachine"
,
"1"
);
if
(
platformName
.
equals
(
"Win32"
))
{
// Set /MACHINE option. 1 is X86
addAttr
(
rv
,
"TargetMachine"
,
"1"
);
}
else
{
// Set /MACHINE option. 17 is X64
addAttr
(
rv
,
"TargetMachine"
,
"17"
);
}
return
rv
;
}
...
...
@@ -656,12 +743,6 @@ class CompilerInterfaceVC7 extends CompilerInterface {
addAttr
(
rv
,
"Optimization"
,
"2"
);
// Set /Oy- option
addAttr
(
rv
,
"OmitFramePointers"
,
"FALSE"
);
}
Vector
getProductCompilerFlags
()
{
Vector
rv
=
new
Vector
();
getProductCompilerFlags_common
(
rv
);
// Set /Ob option. 1 is expandOnlyInline
addAttr
(
rv
,
"InlineFunctionExpansion"
,
"1"
);
// Set /GF option.
...
...
@@ -670,6 +751,12 @@ class CompilerInterfaceVC7 extends CompilerInterface {
addAttr
(
rv
,
"RuntimeLibrary"
,
"2"
);
// Set /Gy option
addAttr
(
rv
,
"EnableFunctionLevelLinking"
,
"TRUE"
);
}
Vector
getProductCompilerFlags
()
{
Vector
rv
=
new
Vector
();
getProductCompilerFlags_common
(
rv
);
return
rv
;
}
...
...
@@ -693,7 +780,7 @@ class CompilerInterfaceVC7 extends CompilerInterface {
return
"0"
;
}
String
makeCfgName
(
String
flavourBuild
)
{
return
flavourBuild
+
"|"
+
Util
.
os
;
String
makeCfgName
(
String
flavourBuild
,
String
platform
)
{
return
flavourBuild
+
"|"
+
platform
;
}
}
src/share/vm/adlc/adlc.hpp
浏览文件 @
7c417053
/*
* Copyright (c) 1998, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -42,11 +42,6 @@
using
namespace
std
;
#endif
// make sure the MSC_VER and _MSC_VER settings make sense
#if _MSC_VER != MSC_VER && (_MSC_VER != 1400 || MSC_VER != 1399)
#error "Something is wrong with the detection of MSC_VER in the makefiles"
#endif
#if _MSC_VER >= 1400
#define strdup _strdup
#endif
...
...
src/share/vm/oops/methodOop.cpp
浏览文件 @
7c417053
...
...
@@ -1386,7 +1386,7 @@ void CompressedLineNumberWriteStream::write_pair_regular(int bci_delta, int line
}
// See comment in methodOop.hpp which explains why this exists.
#if defined(_M_AMD64) && MSC_VER >= 1400
#if defined(_M_AMD64) &&
_
MSC_VER >= 1400
#pragma optimize("", off)
void
CompressedLineNumberWriteStream
::
write_pair
(
int
bci
,
int
line
)
{
write_pair_inline
(
bci
,
line
);
...
...
src/share/vm/oops/methodOop.hpp
浏览文件 @
7c417053
...
...
@@ -729,8 +729,8 @@ class CompressedLineNumberWriteStream: public CompressedWriteStream {
// Disabling optimization doesn't work for methods in header files
// so we force it to call through the non-optimized version in the .cpp.
// It's gross, but it's the only way we can ensure that all callers are
// fixed.
MSC_VER is defined in build/windows/makefiles/compile.make.
#if defined(_M_AMD64) && MSC_VER >= 1400
// fixed.
_MSC_VER is defined by the windows compiler
#if defined(_M_AMD64) &&
_
MSC_VER >= 1400
void
write_pair
(
int
bci
,
int
line
);
#else
void
write_pair
(
int
bci
,
int
line
)
{
write_pair_inline
(
bci
,
line
);
}
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
7c417053
...
...
@@ -3103,6 +3103,19 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
// Set flags if Aggressive optimization flags (-XX:+AggressiveOpts) enabled.
set_aggressive_opts_flags
();
// Turn off biased locking for locking debug mode flags,
// which are subtlely different from each other but neither works with
// biased locking.
if
(
!
UseFastLocking
||
UseHeavyMonitors
)
{
if
(
!
FLAG_IS_DEFAULT
(
UseBiasedLocking
)
&&
UseBiasedLocking
)
{
// flag set to true on command line; warn the user that they
// can't enable biased locking here
warning
(
"Biased Locking is not supported with locking debug flags"
"; ignoring UseBiasedLocking flag."
);
}
UseBiasedLocking
=
false
;
}
#ifdef CC_INTERP
// Clear flags not supported by the C++ interpreter
FLAG_SET_DEFAULT
(
ProfileInterpreter
,
false
);
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
7c417053
...
...
@@ -3692,7 +3692,7 @@ class CommandLineFlags {
product(uintx, SharedReadOnlySize, 10*M, \
"Size of read-only space in permanent generation (in bytes)") \
\
product(uintx, SharedMiscDataSize,
4*M,
\
product(uintx, SharedMiscDataSize,
NOT_LP64(4*M) LP64_ONLY(5*M),
\
"Size of the shared data area adjacent to the heap (in bytes)") \
\
product(uintx, SharedMiscCodeSize, 4*M, \
...
...
src/share/vm/utilities/errorReporter.hpp
浏览文件 @
7c417053
...
...
@@ -26,6 +26,7 @@
#define SHARE_VM_UTILITIES_ERRORREPORTER_HPP
#include "utilities/globalDefinitions.hpp"
#include "memory/allocation.hpp"
class
ErrorReporter
:
public
StackObj
{
...
...
src/share/vm/utilities/hashtable.hpp
浏览文件 @
7c417053
...
...
@@ -276,7 +276,7 @@ public:
}
int
index_for
(
Symbol
*
name
,
Handle
loader
)
{
return
hash_to_index
(
compute_hash
(
name
,
loader
));
return
this
->
hash_to_index
(
compute_hash
(
name
,
loader
));
}
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录