Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
4cc17396
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4cc17396
编写于
8月 09, 2013
作者:
D
dcubed
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
cf130033
1801b347
变更
26
显示空白变更内容
内联
并排
Showing
26 changed file
with
404 addition
and
107 deletion
+404
-107
make/solaris/makefiles/dtrace.make
make/solaris/makefiles/dtrace.make
+17
-3
make/windows/create.bat
make/windows/create.bat
+3
-3
make/windows/create_obj_files.sh
make/windows/create_obj_files.sh
+18
-14
make/windows/makefiles/projectcreator.make
make/windows/makefiles/projectcreator.make
+6
-14
make/windows/makefiles/trace.make
make/windows/makefiles/trace.make
+5
-5
make/windows/makefiles/vm.make
make/windows/makefiles/vm.make
+0
-4
src/cpu/sparc/vm/templateInterpreter_sparc.cpp
src/cpu/sparc/vm/templateInterpreter_sparc.cpp
+21
-0
src/cpu/x86/vm/templateInterpreter_x86_32.cpp
src/cpu/x86/vm/templateInterpreter_x86_32.cpp
+23
-0
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
+23
-0
src/cpu/zero/vm/entryFrame_zero.hpp
src/cpu/zero/vm/entryFrame_zero.hpp
+2
-2
src/cpu/zero/vm/frame_zero.inline.hpp
src/cpu/zero/vm/frame_zero.inline.hpp
+1
-1
src/cpu/zero/vm/stubGenerator_zero.cpp
src/cpu/zero/vm/stubGenerator_zero.cpp
+22
-0
src/os/bsd/vm/attachListener_bsd.cpp
src/os/bsd/vm/attachListener_bsd.cpp
+2
-2
src/os_cpu/linux_zero/vm/os_linux_zero.cpp
src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+0
-10
src/share/tools/ProjectCreator/BuildConfig.java
src/share/tools/ProjectCreator/BuildConfig.java
+75
-30
src/share/tools/ProjectCreator/FileTreeCreatorVC10.java
src/share/tools/ProjectCreator/FileTreeCreatorVC10.java
+53
-5
src/share/tools/ProjectCreator/ProjectCreator.java
src/share/tools/ProjectCreator/ProjectCreator.java
+6
-1
src/share/tools/ProjectCreator/WinGammaPlatform.java
src/share/tools/ProjectCreator/WinGammaPlatform.java
+20
-5
src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
+26
-2
src/share/vm/classfile/javaClasses.cpp
src/share/vm/classfile/javaClasses.cpp
+21
-0
src/share/vm/classfile/javaClasses.hpp
src/share/vm/classfile/javaClasses.hpp
+26
-0
src/share/vm/classfile/systemDictionary.hpp
src/share/vm/classfile/systemDictionary.hpp
+1
-0
src/share/vm/classfile/vmSymbols.hpp
src/share/vm/classfile/vmSymbols.hpp
+2
-0
src/share/vm/interpreter/interpreterRuntime.cpp
src/share/vm/interpreter/interpreterRuntime.cpp
+23
-0
src/share/vm/interpreter/interpreterRuntime.hpp
src/share/vm/interpreter/interpreterRuntime.hpp
+3
-0
test/runtime/7107135/Test7107135.sh
test/runtime/7107135/Test7107135.sh
+5
-6
未找到文件。
make/solaris/makefiles/dtrace.make
浏览文件 @
4cc17396
...
@@ -283,8 +283,8 @@ $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
...
@@ -283,8 +283,8 @@ $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
$(QUIETLY)
$(DTRACE_PROG)
$(DTRACE_OPTS)
-C
-I.
-G
-xlazyload
-o
$@
-s
$(DTRACE).d
\
$(QUIETLY)
$(DTRACE_PROG)
$(DTRACE_OPTS)
-C
-I.
-G
-xlazyload
-o
$@
-s
$(DTRACE).d
\
$(DTraced_Files)
||\
$(DTraced_Files)
||\
STATUS
=
$$
?
;
\
STATUS
=
$$
?
;
\
if
[
x
"
$$
STATUS"
=
x
"1"
-a
\
if
[
x
"
$$
STATUS"
=
x
"1"
]
;
then
\
x
`
uname
-r
`
=
x
"5.10"
-a
\
if
[
x
`
uname
-r
`
=
x
"5.10"
-a
\
x
`
uname
-p
`
=
x
"sparc"
]
;
then
\
x
`
uname
-p
`
=
x
"sparc"
]
;
then
\
echo
"*****************************************************************"
;
\
echo
"*****************************************************************"
;
\
echo
"* If you are building server compiler, and the error message is "
;
\
echo
"* If you are building server compiler, and the error message is "
;
\
...
@@ -294,6 +294,20 @@ $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
...
@@ -294,6 +294,20 @@ $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
echo
"* environment variable HOTSPOT_DISABLE_DTRACE_PROBES to disable "
;
\
echo
"* environment variable HOTSPOT_DISABLE_DTRACE_PROBES to disable "
;
\
echo
"* dtrace probes for this build."
;
\
echo
"* dtrace probes for this build."
;
\
echo
"*****************************************************************"
;
\
echo
"*****************************************************************"
;
\
elif
[
x
`
uname
-r
`
=
x
"5.10"
]
;
then
\
echo
"*****************************************************************"
;
\
echo
"* If you are seeing 'syntax error near
\"
umpiconninfo_t
\"
' on Solaris"
;
\
echo
"* 10, try doing 'cd /usr/lib/dtrace && gzip mpi.d' as root, "
;
\
echo
"* or set the environment variable HOTSPOT_DISABLE_DTRACE_PROBES"
;
\
echo
"* to disable dtrace probes for this build."
;
\
echo
"*****************************************************************"
;
\
else
\
echo
"*****************************************************************"
;
\
echo
"* If you cannot fix dtrace build issues, try to "
;
\
echo
"* set the environment variable HOTSPOT_DISABLE_DTRACE_PROBES"
;
\
echo
"* to disable dtrace probes for this build."
;
\
echo
"*****************************************************************"
;
\
fi
;
\
fi
;
\
fi
;
\
exit
$$
STATUS
exit
$$
STATUS
# Since some DTraced_Files are in LIBJVM.o and they are touched by this
# Since some DTraced_Files are in LIBJVM.o and they are touched by this
...
...
make/windows/create.bat
浏览文件 @
4cc17396
@echo
off
@echo
off
REM
REM
REM Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
REM Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM
REM This code is free software; you can redistribute it and/or modify it
REM This code is free software; you can redistribute it and/or modify it
...
@@ -148,7 +148,7 @@ echo HotSpotJDKDist=%HotSpotJDKDist%
...
@@ -148,7 +148,7 @@ echo HotSpotJDKDist=%HotSpotJDKDist%
REM This is now safe to do.
REM This is now safe to do.
:copyfiles
:copyfiles
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
)
do
(
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
)
do
(
if
NOT
EXIST
%HotSpotBuildSpace%
\
%%i
\generated
mkdir
%HotSpotBuildSpace%
\
%%i
\generated
if
NOT
EXIST
%HotSpotBuildSpace%
\
%%i
\generated
mkdir
%HotSpotBuildSpace%
\
%%i
\generated
copy
%HotSpotWorkSpace%
\make\windows\projectfiles\
%%i
\
*
%HotSpotBuildSpace%
\
%%i
\generated
>
NUL
copy
%HotSpotWorkSpace%
\make\windows\projectfiles\
%%i
\
*
%HotSpotBuildSpace%
\
%%i
\generated
>
NUL
)
)
...
@@ -156,7 +156,7 @@ copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\
...
@@ -156,7 +156,7 @@ copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\
REM force regneration of ProjectFile
REM force regneration of ProjectFile
if
exist
%ProjectFile%
del
%ProjectFile%
if
exist
%ProjectFile%
del
%ProjectFile%
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
)
do
(
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
)
do
(
echo
--
%%i
--
echo
--
%%i
--
echo
#
Generated
file
!
>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
#
Generated
file
!
>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
#
Changing
a
variable
below
and
then
deleting
%ProjectFile%
will
cause
>>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
#
Changing
a
variable
below
and
then
deleting
%ProjectFile%
will
cause
>>
%HotSpotBuildSpace%
\
%%i
\local.make
...
...
make/windows/create_obj_files.sh
浏览文件 @
4cc17396
...
@@ -73,19 +73,17 @@ done
...
@@ -73,19 +73,17 @@ done
BASE_PATHS
=
"
${
BASE_PATHS
}
${
GENERATED
}
/jvmtifiles
${
GENERATED
}
/tracefiles"
BASE_PATHS
=
"
${
BASE_PATHS
}
${
GENERATED
}
/jvmtifiles
${
GENERATED
}
/tracefiles"
if
[
-d
"
${
ALTSRC
}
/share/vm/jfr"
]
;
then
if
[
-d
"
${
ALTSRC
}
/share/vm/jfr/buffers"
]
;
then
BASE_PATHS
=
"
${
BASE_PATHS
}
${
ALTSRC
}
/share/vm/jfr"
BASE_PATHS
=
"
${
BASE_PATHS
}
${
ALTSRC
}
/share/vm/jfr/buffers"
BASE_PATHS
=
"
${
BASE_PATHS
}
${
ALTSRC
}
/share/vm/jfr/buffers"
fi
fi
BASE_PATHS
=
"
${
BASE_PATHS
}
${
COMMONSRC
}
/share/vm/prims/wbtestmethods"
BASE_PATHS
=
"
${
BASE_PATHS
}
${
COMMONSRC
}
/share/vm/prims/wbtestmethods"
CORE_PATHS
=
"
${
BASE_PATHS
}
"
# shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS.
# shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS.
if
[
-d
"
${
ALTSRC
}
/share/vm/gc_implementation"
]
;
then
if
[
-d
"
${
ALTSRC
}
/share/vm/gc_implementation"
]
;
then
CORE_PATHS
=
"
${
COR
E_PATHS
}
`
$FIND
${
ALTSRC
}
/share/vm/gc_implementation
!
-name
gc_implementation
-prune
-type
d
\!
-name
shared
`
"
BASE_PATHS
=
"
${
BAS
E_PATHS
}
`
$FIND
${
ALTSRC
}
/share/vm/gc_implementation
!
-name
gc_implementation
-prune
-type
d
\!
-name
shared
`
"
fi
fi
CORE_PATHS
=
"
${
COR
E_PATHS
}
`
$FIND
${
COMMONSRC
}
/share/vm/gc_implementation
!
-name
gc_implementation
-prune
-type
d
\!
-name
shared
`
"
BASE_PATHS
=
"
${
BAS
E_PATHS
}
`
$FIND
${
COMMONSRC
}
/share/vm/gc_implementation
!
-name
gc_implementation
-prune
-type
d
\!
-name
shared
`
"
if
[
-d
"
${
ALTSRC
}
/share/vm/c1"
]
;
then
if
[
-d
"
${
ALTSRC
}
/share/vm/c1"
]
;
then
COMPILER1_PATHS
=
"
${
ALTSRC
}
/share/vm/c1"
COMPILER1_PATHS
=
"
${
ALTSRC
}
/share/vm/c1"
...
@@ -104,12 +102,11 @@ COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles"
...
@@ -104,12 +102,11 @@ COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles"
# Include dirs per type.
# Include dirs per type.
case
"
${
TYPE
}
"
in
case
"
${
TYPE
}
"
in
"core"
)
Src_Dirs
=
"
${
CORE_PATHS
}
"
;;
"compiler1"
)
Src_Dirs
=
"
${
BASE_PATHS
}
${
COMPILER1_PATHS
}
"
;;
"compiler1"
)
Src_Dirs
=
"
${
CORE_PATHS
}
${
COMPILER1_PATHS
}
"
;;
"compiler2"
)
Src_Dirs
=
"
${
BASE_PATHS
}
${
COMPILER2_PATHS
}
"
;;
"compiler2"
)
Src_Dirs
=
"
${
CORE_PATHS
}
${
COMPILER2_PATHS
}
"
;;
"tiered"
)
Src_Dirs
=
"
${
BASE_PATHS
}
${
COMPILER1_PATHS
}
${
COMPILER2_PATHS
}
"
;;
"tiered"
)
Src_Dirs
=
"
${
CORE_PATHS
}
${
COMPILER1_PATHS
}
${
COMPILER2_PATHS
}
"
;;
"zero"
)
Src_Dirs
=
"
${
BASE_PATHS
}
"
;;
"zero"
)
Src_Dirs
=
"
${
CORE_PATHS
}
"
;;
"shark"
)
Src_Dirs
=
"
${
BASE_PATHS
}
"
;;
"shark"
)
Src_Dirs
=
"
${
CORE_PATHS
}
"
;;
esac
esac
COMPILER2_SPECIFIC_FILES
=
"opto libadt bcEscapeAnalyzer.cpp c2_* runtime_*"
COMPILER2_SPECIFIC_FILES
=
"opto libadt bcEscapeAnalyzer.cpp c2_* runtime_*"
...
@@ -122,7 +119,6 @@ Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp"
...
@@ -122,7 +119,6 @@ Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp"
# Exclude per type.
# Exclude per type.
case
"
${
TYPE
}
"
in
case
"
${
TYPE
}
"
in
"core"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
COMPILER1_SPECIFIC_FILES
}
${
COMPILER2_SPECIFIC_FILES
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
ciTypeFlow.cpp"
;;
"compiler1"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
COMPILER2_SPECIFIC_FILES
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
ciTypeFlow.cpp"
;;
"compiler1"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
COMPILER2_SPECIFIC_FILES
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
ciTypeFlow.cpp"
;;
"compiler2"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
COMPILER1_SPECIFIC_FILES
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
"
;;
"compiler2"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
COMPILER1_SPECIFIC_FILES
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
"
;;
"tiered"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
"
;;
"tiered"
)
Src_Files_EXCLUDE
=
"
${
Src_Files_EXCLUDE
}
${
ZERO_SPECIFIC_FILES
}
${
SHARK_SPECIFIC_FILES
}
"
;;
...
@@ -149,9 +145,17 @@ for e in ${Src_Dirs}; do
...
@@ -149,9 +145,17 @@ for e in ${Src_Dirs}; do
Src_Files
=
"
${
Src_Files
}
`
findsrc
${
e
}
`
"
Src_Files
=
"
${
Src_Files
}
`
findsrc
${
e
}
`
"
done
done
Obj_Files
=
Obj_Files
=
" "
for
e
in
${
Src_Files
}
;
do
for
e
in
${
Src_Files
}
;
do
Obj_Files
=
"
${
Obj_Files
}${
e
%\.[!.]*
}
.obj "
o
=
"
${
e
%\.[!.]*
}
.obj"
set
+e
chk
=
`
expr
"
${
Obj_Files
}
"
:
".*
$o
"
`
set
-e
if
[
"
$chk
"
!=
0
]
;
then
echo
"# INFO: skipping duplicate
$o
"
continue
fi
Obj_Files
=
"
${
Obj_Files
}
$o
"
done
done
echo
Obj_Files
=
${
Obj_Files
}
echo
Obj_Files
=
${
Obj_Files
}
make/windows/makefiles/projectcreator.make
浏览文件 @
4cc17396
...
@@ -44,10 +44,11 @@ ProjectCreatorSources=\
...
@@ -44,10 +44,11 @@ ProjectCreatorSources=\
# This is only used internally
# This is only used internally
ProjectCreatorIncludesPRIVATE
=
\
ProjectCreatorIncludesPRIVATE
=
\
-relativeInclude
src
\c
losed
\s
hare
\v
m
\
-relativeAltSrcInclude
src
\c
losed
\
-relativeInclude
src
\c
losed
\o
s
\w
indows
\v
m
\
-altRelativeInclude
share
\v
m
\
-relativeInclude
src
\c
losed
\o
s_cpu
\w
indows_
$(Platform_arch)
\v
m
\
-altRelativeInclude
os
\w
indows
\v
m
\
-relativeInclude
src
\c
losed
\c
pu
\$
(
Platform_arch
)
\v
m
\
-altRelativeInclude
os_cpu
\w
indows_
$(Platform_arch)
\v
m
\
-altRelativeInclude
cpu
\$
(
Platform_arch
)
\v
m
\
-relativeInclude
src
\s
hare
\v
m
\
-relativeInclude
src
\s
hare
\v
m
\
-relativeInclude
src
\s
hare
\v
m
\p
recompiled
\
-relativeInclude
src
\s
hare
\v
m
\p
recompiled
\
-relativeInclude
src
\s
hare
\v
m
\p
rims
\w
btestmethods
\
-relativeInclude
src
\s
hare
\v
m
\p
rims
\w
btestmethods
\
...
@@ -91,7 +92,7 @@ ProjectCreatorIDEOptions = \
...
@@ -91,7 +92,7 @@ ProjectCreatorIDEOptions = \
-disablePch
getThread_windows_
$(Platform_arch)
.cpp
\
-disablePch
getThread_windows_
$(Platform_arch)
.cpp
\
-disablePch_compiler2
opcodes.cpp
-disablePch_compiler2
opcodes.cpp
# Common options for the IDE builds for c
ore, c
1, and c2
# Common options for the IDE builds for c1, and c2
ProjectCreatorIDEOptions
=
\
ProjectCreatorIDEOptions
=
\
$(ProjectCreatorIDEOptions)
\
$(ProjectCreatorIDEOptions)
\
-sourceBase
$(HOTSPOTWORKSPACE)
\
-sourceBase
$(HOTSPOTWORKSPACE)
\
...
@@ -157,19 +158,11 @@ ProjectCreatorIDEOptionsIgnoreCompiler2=\
...
@@ -157,19 +158,11 @@ ProjectCreatorIDEOptionsIgnoreCompiler2=\
-ignoreFile_TARGET
ciTypeFlow.hpp
\
-ignoreFile_TARGET
ciTypeFlow.hpp
\
-ignoreFile_TARGET
$(Platform_arch_model)
.ad
-ignoreFile_TARGET
$(Platform_arch_model)
.ad
##################################################
# Without compiler(core) specific options
##################################################
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core)
\
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core)
##################################################
##################################################
# Client(C1) compiler specific options
# Client(C1) compiler specific options
##################################################
##################################################
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
-define_compiler1
COMPILER1
\
-define_compiler1
COMPILER1
\
-ignorePath_compiler1
core
\
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
##################################################
##################################################
...
@@ -178,7 +171,6 @@ $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
...
@@ -178,7 +171,6 @@ $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
ProjectCreatorIDEOptions
=
$(ProjectCreatorIDEOptions)
\
-define_compiler2
COMPILER2
\
-define_compiler2
COMPILER2
\
-ignorePath_compiler2
core
\
-additionalFile_compiler2
$(Platform_arch_model)
.ad
\
-additionalFile_compiler2
$(Platform_arch_model)
.ad
\
-additionalFile_compiler2
ad_
$(Platform_arch_model)
.cpp
\
-additionalFile_compiler2
ad_
$(Platform_arch_model)
.cpp
\
-additionalFile_compiler2
ad_
$(Platform_arch_model)
.hpp
\
-additionalFile_compiler2
ad_
$(Platform_arch_model)
.hpp
\
...
...
make/windows/makefiles/trace.make
浏览文件 @
4cc17396
...
@@ -90,25 +90,25 @@ $(TraceOutDir)/traceTypes.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceType
...
@@ -90,25 +90,25 @@ $(TraceOutDir)/traceTypes.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceType
!if
"$(OPENJDK)"
==
"true"
!if
"$(OPENJDK)"
==
"true"
$(TraceOutDir)/traceEventClasses.hpp
:
$(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceEventClasses.xsl $(XML_DEPS)
$(TraceOutDir)/traceEventClasses.hpp
:
$(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceEventClasses.xsl $(XML_DEPS)
@
echo
Generating
$@
@
echo
Generating
OpenJDK
$@
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceSrcDir)
/traceEventClasses.xsl
-OUT
$(TraceOutDir)
/traceEventClasses.hpp
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceSrcDir)
/traceEventClasses.xsl
-OUT
$(TraceOutDir)
/traceEventClasses.hpp
!
else
!
else
$(TraceOutDir)/traceEventClasses.hpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceEventClasses.xsl $(XML_DEPS)
$(TraceOutDir)/traceEventClasses.hpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceEventClasses.xsl $(XML_DEPS)
@
echo
Generating
$@
@
echo
Generating
AltSrc
$@
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceEventClasses.xsl
-OUT
$(TraceOutDir)
/traceEventClasses.hpp
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceEventClasses.xsl
-OUT
$(TraceOutDir)
/traceEventClasses.hpp
$(TraceOutDir)/traceProducer.cpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceProducer.xsl $(XML_DEPS)
$(TraceOutDir)/traceProducer.cpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceProducer.xsl $(XML_DEPS)
@
echo
Generating
$@
@
echo
Generating
AltSrc
$@
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceProducer.xsl
-OUT
$(TraceOutDir)
/traceProducer.cpp
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceProducer.xsl
-OUT
$(TraceOutDir)
/traceProducer.cpp
$(TraceOutDir)/traceRequestables.hpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceRequestables.xsl $(XML_DEPS)
$(TraceOutDir)/traceRequestables.hpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceRequestables.xsl $(XML_DEPS)
@
echo
Generating
$@
@
echo
Generating
AltSrc
$@
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceRequestables.xsl
-OUT
$(TraceOutDir)
/traceRequestables.hpp
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceRequestables.xsl
-OUT
$(TraceOutDir)
/traceRequestables.hpp
$(TraceOutDir)/traceEventControl.hpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceEventControl.xsl $(XML_DEPS)
$(TraceOutDir)/traceEventControl.hpp
:
$(TraceSrcDir)/trace.xml $(TraceAltSrcDir)/traceEventControl.xsl $(XML_DEPS)
@
echo
Generating
$@
@
echo
Generating
AltSrc
$@
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceEventControl.xsl
-OUT
$(TraceOutDir)
/traceEventControl.hpp
@
$(XSLT)
-IN
$(TraceSrcDir)
/trace.xml
-XSL
$(TraceAltSrcDir)
/traceEventControl.xsl
-OUT
$(TraceOutDir)
/traceEventControl.hpp
!
endif
!
endif
...
...
make/windows/makefiles/vm.make
浏览文件 @
4cc17396
...
@@ -36,10 +36,6 @@ CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT"
...
@@ -36,10 +36,6 @@ CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT"
CXX_FLAGS
=
$(CXX_FLAGS)
/D
"ASSERT"
CXX_FLAGS
=
$(CXX_FLAGS)
/D
"ASSERT"
!
endif
!
endif
!if
"$(Variant)"
==
"core"
# No need to define anything, CORE is defined as !COMPILER1 && !COMPILER2
!
endif
!if
"$(Variant)"
==
"compiler1"
!if
"$(Variant)"
==
"compiler1"
CXX_FLAGS
=
$(CXX_FLAGS)
/D
"COMPILER1"
CXX_FLAGS
=
$(CXX_FLAGS)
/D
"COMPILER1"
!
endif
!
endif
...
...
src/cpu/sparc/vm/templateInterpreter_sparc.cpp
浏览文件 @
4cc17396
...
@@ -1887,6 +1887,27 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
...
@@ -1887,6 +1887,27 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
if
(
ProfileInterpreter
)
{
if
(
ProfileInterpreter
)
{
__
set_method_data_pointer_for_bcp
();
__
set_method_data_pointer_for_bcp
();
}
}
#if INCLUDE_JVMTI
if
(
EnableInvokeDynamic
)
{
Label
L_done
;
__
ldub
(
Address
(
Lbcp
,
0
),
G1_scratch
);
// Load current bytecode
__
cmp_and_br_short
(
G1_scratch
,
Bytecodes
::
_invokestatic
,
Assembler
::
notEqual
,
Assembler
::
pn
,
L_done
);
// The member name argument must be restored if _invokestatic is re-executed after a PopFrame call.
// Detect such a case in the InterpreterRuntime function and return the member name argument, or NULL.
__
call_VM
(
G1_scratch
,
CAST_FROM_FN_PTR
(
address
,
InterpreterRuntime
::
member_name_arg_or_null
),
I0
,
Lmethod
,
Lbcp
);
__
br_null
(
G1_scratch
,
false
,
Assembler
::
pn
,
L_done
);
__
delayed
()
->
nop
();
__
st_ptr
(
G1_scratch
,
Lesp
,
wordSize
);
__
bind
(
L_done
);
}
#endif // INCLUDE_JVMTI
// Resume bytecode interpretation at the current bcp
// Resume bytecode interpretation at the current bcp
__
dispatch_next
(
vtos
);
__
dispatch_next
(
vtos
);
// end of JVMTI PopFrame support
// end of JVMTI PopFrame support
...
...
src/cpu/x86/vm/templateInterpreter_x86_32.cpp
浏览文件 @
4cc17396
...
@@ -1920,6 +1920,29 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
...
@@ -1920,6 +1920,29 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
__
get_thread
(
thread
);
__
get_thread
(
thread
);
__
movl
(
Address
(
thread
,
JavaThread
::
popframe_condition_offset
()),
JavaThread
::
popframe_inactive
);
__
movl
(
Address
(
thread
,
JavaThread
::
popframe_condition_offset
()),
JavaThread
::
popframe_inactive
);
#if INCLUDE_JVMTI
if
(
EnableInvokeDynamic
)
{
Label
L_done
;
const
Register
local0
=
rdi
;
__
cmpb
(
Address
(
rsi
,
0
),
Bytecodes
::
_invokestatic
);
__
jcc
(
Assembler
::
notEqual
,
L_done
);
// The member name argument must be restored if _invokestatic is re-executed after a PopFrame call.
// Detect such a case in the InterpreterRuntime function and return the member name argument, or NULL.
__
get_method
(
rdx
);
__
movptr
(
rax
,
Address
(
local0
,
0
));
__
call_VM
(
rax
,
CAST_FROM_FN_PTR
(
address
,
InterpreterRuntime
::
member_name_arg_or_null
),
rax
,
rdx
,
rsi
);
__
testptr
(
rax
,
rax
);
__
jcc
(
Assembler
::
zero
,
L_done
);
__
movptr
(
Address
(
rbx
,
0
),
rax
);
__
bind
(
L_done
);
}
#endif // INCLUDE_JVMTI
__
dispatch_next
(
vtos
);
__
dispatch_next
(
vtos
);
// end of PopFrame support
// end of PopFrame support
...
...
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
浏览文件 @
4cc17396
...
@@ -1929,6 +1929,29 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
...
@@ -1929,6 +1929,29 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
__
movl
(
Address
(
r15_thread
,
JavaThread
::
popframe_condition_offset
()),
__
movl
(
Address
(
r15_thread
,
JavaThread
::
popframe_condition_offset
()),
JavaThread
::
popframe_inactive
);
JavaThread
::
popframe_inactive
);
#if INCLUDE_JVMTI
if
(
EnableInvokeDynamic
)
{
Label
L_done
;
const
Register
local0
=
r14
;
__
cmpb
(
Address
(
r13
,
0
),
Bytecodes
::
_invokestatic
);
__
jcc
(
Assembler
::
notEqual
,
L_done
);
// The member name argument must be restored if _invokestatic is re-executed after a PopFrame call.
// Detect such a case in the InterpreterRuntime function and return the member name argument, or NULL.
__
get_method
(
rdx
);
__
movptr
(
rax
,
Address
(
local0
,
0
));
__
call_VM
(
rax
,
CAST_FROM_FN_PTR
(
address
,
InterpreterRuntime
::
member_name_arg_or_null
),
rax
,
rdx
,
r13
);
__
testptr
(
rax
,
rax
);
__
jcc
(
Assembler
::
zero
,
L_done
);
__
movptr
(
Address
(
rbx
,
0
),
rax
);
__
bind
(
L_done
);
}
#endif // INCLUDE_JVMTI
__
dispatch_next
(
vtos
);
__
dispatch_next
(
vtos
);
// end of PopFrame support
// end of PopFrame support
...
...
src/cpu/zero/vm/entryFrame_zero.hpp
浏览文件 @
4cc17396
...
@@ -58,8 +58,8 @@ class EntryFrame : public ZeroFrame {
...
@@ -58,8 +58,8 @@ class EntryFrame : public ZeroFrame {
JavaCallWrapper
*
call_wrapper
,
JavaCallWrapper
*
call_wrapper
,
TRAPS
);
TRAPS
);
public:
public:
JavaCallWrapper
*
call_wrapper
()
const
{
JavaCallWrapper
*
*
call_wrapper
()
const
{
return
(
JavaCallWrapper
*
)
value
_of_word
(
call_wrapper_off
);
return
(
JavaCallWrapper
*
*
)
addr
_of_word
(
call_wrapper_off
);
}
}
public:
public:
...
...
src/cpu/zero/vm/frame_zero.inline.hpp
浏览文件 @
4cc17396
...
@@ -141,7 +141,7 @@ inline intptr_t* frame::id() const {
...
@@ -141,7 +141,7 @@ inline intptr_t* frame::id() const {
return
fp
();
return
fp
();
}
}
inline
JavaCallWrapper
*
frame
::
entry_frame_call_wrappe
r
()
const
{
inline
JavaCallWrapper
*
*
frame
::
entry_frame_call_wrapper_add
r
()
const
{
return
zero_entryframe
()
->
call_wrapper
();
return
zero_entryframe
()
->
call_wrapper
();
}
}
...
...
src/cpu/zero/vm/stubGenerator_zero.cpp
浏览文件 @
4cc17396
...
@@ -176,6 +176,19 @@ class StubGenerator: public StubCodeGenerator {
...
@@ -176,6 +176,19 @@ class StubGenerator: public StubCodeGenerator {
StubRoutines
::
_oop_arraycopy
;
StubRoutines
::
_oop_arraycopy
;
}
}
static
int
SafeFetch32
(
int
*
adr
,
int
errValue
)
{
int
value
=
errValue
;
value
=
*
adr
;
return
value
;
}
static
intptr_t
SafeFetchN
(
intptr_t
*
adr
,
intptr_t
errValue
)
{
intptr_t
value
=
errValue
;
value
=
*
adr
;
return
value
;
}
void
generate_initial
()
{
void
generate_initial
()
{
// Generates all stubs and initializes the entry points
// Generates all stubs and initializes the entry points
...
@@ -225,6 +238,15 @@ class StubGenerator: public StubCodeGenerator {
...
@@ -225,6 +238,15 @@ class StubGenerator: public StubCodeGenerator {
// arraycopy stubs used by compilers
// arraycopy stubs used by compilers
generate_arraycopy_stubs
();
generate_arraycopy_stubs
();
// Safefetch stubs.
StubRoutines
::
_safefetch32_entry
=
CAST_FROM_FN_PTR
(
address
,
StubGenerator
::
SafeFetch32
);
StubRoutines
::
_safefetch32_fault_pc
=
NULL
;
StubRoutines
::
_safefetch32_continuation_pc
=
NULL
;
StubRoutines
::
_safefetchN_entry
=
CAST_FROM_FN_PTR
(
address
,
StubGenerator
::
SafeFetchN
);
StubRoutines
::
_safefetchN_fault_pc
=
NULL
;
StubRoutines
::
_safefetchN_continuation_pc
=
NULL
;
}
}
public:
public:
...
...
src/os/bsd/vm/attachListener_bsd.cpp
浏览文件 @
4cc17396
...
@@ -445,14 +445,14 @@ AttachOperation* AttachListener::dequeue() {
...
@@ -445,14 +445,14 @@ AttachOperation* AttachListener::dequeue() {
void
AttachListener
::
vm_start
()
{
void
AttachListener
::
vm_start
()
{
char
fn
[
UNIX_PATH_MAX
];
char
fn
[
UNIX_PATH_MAX
];
struct
stat
64
st
;
struct
stat
st
;
int
ret
;
int
ret
;
int
n
=
snprintf
(
fn
,
UNIX_PATH_MAX
,
"%s/.java_pid%d"
,
int
n
=
snprintf
(
fn
,
UNIX_PATH_MAX
,
"%s/.java_pid%d"
,
os
::
get_temp_directory
(),
os
::
current_process_id
());
os
::
get_temp_directory
(),
os
::
current_process_id
());
assert
(
n
<
(
int
)
UNIX_PATH_MAX
,
"java_pid file name buffer overflow"
);
assert
(
n
<
(
int
)
UNIX_PATH_MAX
,
"java_pid file name buffer overflow"
);
RESTARTABLE
(
::
stat
64
(
fn
,
&
st
),
ret
);
RESTARTABLE
(
::
stat
(
fn
,
&
st
),
ret
);
if
(
ret
==
0
)
{
if
(
ret
==
0
)
{
ret
=
::
unlink
(
fn
);
ret
=
::
unlink
(
fn
);
if
(
ret
==
-
1
)
{
if
(
ret
==
-
1
)
{
...
...
src/os_cpu/linux_zero/vm/os_linux_zero.cpp
浏览文件 @
4cc17396
...
@@ -410,16 +410,6 @@ extern "C" {
...
@@ -410,16 +410,6 @@ extern "C" {
int
SpinPause
()
{
int
SpinPause
()
{
}
}
int
SafeFetch32
(
int
*
adr
,
int
errValue
)
{
int
value
=
errValue
;
value
=
*
adr
;
return
value
;
}
intptr_t
SafeFetchN
(
intptr_t
*
adr
,
intptr_t
errValue
)
{
intptr_t
value
=
errValue
;
value
=
*
adr
;
return
value
;
}
void
_Copy_conjoint_jshorts_atomic
(
jshort
*
from
,
jshort
*
to
,
size_t
count
)
{
void
_Copy_conjoint_jshorts_atomic
(
jshort
*
from
,
jshort
*
to
,
size_t
count
)
{
if
(
from
>
to
)
{
if
(
from
>
to
)
{
...
...
src/share/tools/ProjectCreator/BuildConfig.java
浏览文件 @
4cc17396
...
@@ -142,6 +142,69 @@ class BuildConfig {
...
@@ -142,6 +142,69 @@ class BuildConfig {
return
rv
;
return
rv
;
}
}
// Returns true if the specified path refers to a relative alternate
// source file. RelativeAltSrcInclude is usually "src\closed".
public
static
boolean
matchesRelativeAltSrcInclude
(
String
path
)
{
String
relativeAltSrcInclude
=
getFieldString
(
null
,
"RelativeAltSrcInclude"
);
Vector
<
String
>
v
=
getFieldVector
(
null
,
"AltRelativeInclude"
);
for
(
String
pathPart
:
v
)
{
if
(
path
.
contains
(
relativeAltSrcInclude
+
Util
.
sep
+
pathPart
))
{
return
true
;
}
}
return
false
;
}
// Returns the relative alternate source file for the specified path.
// Null is returned if the specified path does not have a matching
// alternate source file.
public
static
String
getMatchingRelativeAltSrcFile
(
String
path
)
{
Vector
<
String
>
v
=
getFieldVector
(
null
,
"RelativeAltSrcFileList"
);
if
(
v
==
null
)
{
return
null
;
}
for
(
String
pathPart
:
v
)
{
if
(
path
.
endsWith
(
pathPart
))
{
String
relativeAltSrcInclude
=
getFieldString
(
null
,
"RelativeAltSrcInclude"
);
return
relativeAltSrcInclude
+
Util
.
sep
+
pathPart
;
}
}
return
null
;
}
// Returns true if the specified path has a matching alternate
// source file.
public
static
boolean
matchesRelativeAltSrcFile
(
String
path
)
{
return
getMatchingRelativeAltSrcFile
(
path
)
!=
null
;
}
// Track the specified alternate source file. The source file is
// tracked without the leading .*<sep><RelativeAltSrcFileList><sep>
// part to make matching regular source files easier.
public
static
void
trackRelativeAltSrcFile
(
String
path
)
{
String
pattern
=
getFieldString
(
null
,
"RelativeAltSrcInclude"
)
+
Util
.
sep
;
int
altSrcInd
=
path
.
indexOf
(
pattern
);
if
(
altSrcInd
==
-
1
)
{
// not an AltSrc path
return
;
}
altSrcInd
+=
pattern
.
length
();
if
(
altSrcInd
>=
path
.
length
())
{
// not a valid AltSrc path
return
;
}
String
altSrcFile
=
path
.
substring
(
altSrcInd
);
Vector
v
=
getFieldVector
(
null
,
"RelativeAltSrcFileList"
);
if
(
v
==
null
||
!
v
.
contains
(
altSrcFile
))
{
addFieldVector
(
null
,
"RelativeAltSrcFileList"
,
altSrcFile
);
}
}
void
addTo
(
Hashtable
ht
,
String
key
,
String
value
)
{
void
addTo
(
Hashtable
ht
,
String
key
,
String
value
)
{
ht
.
put
(
expandFormat
(
key
),
expandFormat
(
value
));
ht
.
put
(
expandFormat
(
key
),
expandFormat
(
value
));
}
}
...
@@ -272,8 +335,19 @@ class BuildConfig {
...
@@ -272,8 +335,19 @@ class BuildConfig {
private
Vector
getSourceIncludes
()
{
private
Vector
getSourceIncludes
()
{
Vector
<
String
>
rv
=
new
Vector
<
String
>();
Vector
<
String
>
rv
=
new
Vector
<
String
>();
Vector
<
String
>
ri
=
new
Vector
<
String
>();
String
sourceBase
=
getFieldString
(
null
,
"SourceBase"
);
String
sourceBase
=
getFieldString
(
null
,
"SourceBase"
);
// add relative alternate source include values:
String
relativeAltSrcInclude
=
getFieldString
(
null
,
"RelativeAltSrcInclude"
);
Vector
<
String
>
asri
=
new
Vector
<
String
>();
collectRelevantVectors
(
asri
,
"AltRelativeInclude"
);
for
(
String
f
:
asri
)
{
rv
.
add
(
sourceBase
+
Util
.
sep
+
relativeAltSrcInclude
+
Util
.
sep
+
f
);
}
Vector
<
String
>
ri
=
new
Vector
<
String
>();
collectRelevantVectors
(
ri
,
"RelativeInclude"
);
collectRelevantVectors
(
ri
,
"RelativeInclude"
);
for
(
String
f
:
ri
)
{
for
(
String
f
:
ri
)
{
rv
.
add
(
sourceBase
+
Util
.
sep
+
f
);
rv
.
add
(
sourceBase
+
Util
.
sep
+
f
);
...
@@ -541,35 +615,6 @@ class TieredProductConfig extends ProductConfig {
...
@@ -541,35 +615,6 @@ class TieredProductConfig extends ProductConfig {
}
}
}
}
class
CoreDebugConfig
extends
GenericDebugNonKernelConfig
{
String
getOptFlag
()
{
return
getCI
().
getNoOptFlag
();
}
CoreDebugConfig
()
{
initNames
(
"core"
,
"debug"
,
"jvm.dll"
);
init
(
getIncludes
(),
getDefines
());
}
}
class
CoreFastDebugConfig
extends
GenericDebugNonKernelConfig
{
String
getOptFlag
()
{
return
getCI
().
getOptFlag
();
}
CoreFastDebugConfig
()
{
initNames
(
"core"
,
"fastdebug"
,
"jvm.dll"
);
init
(
getIncludes
(),
getDefines
());
}
}
class
CoreProductConfig
extends
ProductConfig
{
CoreProductConfig
()
{
initNames
(
"core"
,
"product"
,
"jvm.dll"
);
init
(
getIncludes
(),
getDefines
());
}
}
abstract
class
CompilerInterface
{
abstract
class
CompilerInterface
{
abstract
Vector
getBaseCompilerFlags
(
Vector
defines
,
Vector
includes
,
String
outDir
);
abstract
Vector
getBaseCompilerFlags
(
Vector
defines
,
Vector
includes
,
String
outDir
);
...
...
src/share/tools/ProjectCreator/FileTreeCreatorVC10.java
浏览文件 @
4cc17396
/*
* Copyright (c) 2012, 2013, 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
static
java
.
nio
.
file
.
FileVisitResult
.
CONTINUE
;
import
static
java
.
nio
.
file
.
FileVisitResult
.
CONTINUE
;
import
java.io.IOException
;
import
java.io.IOException
;
...
@@ -21,6 +45,8 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
...
@@ -21,6 +45,8 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
boolean
usePch
=
false
;
boolean
usePch
=
false
;
boolean
disablePch
=
false
;
boolean
disablePch
=
false
;
boolean
useIgnore
=
false
;
boolean
useIgnore
=
false
;
boolean
isAltSrc
=
false
;
// only needed as a debugging crumb
boolean
isReplacedByAltSrc
=
false
;
String
fileName
=
file
.
getFileName
().
toString
();
String
fileName
=
file
.
getFileName
().
toString
();
// TODO hideFile
// TODO hideFile
...
@@ -30,6 +56,26 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
...
@@ -30,6 +56,26 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
usePch
=
true
;
usePch
=
true
;
}
}
String
fileLoc
=
vcProjLocation
.
relativize
(
file
).
toString
();
// isAltSrc and isReplacedByAltSrc applies to all configs for a file
if
(
BuildConfig
.
matchesRelativeAltSrcInclude
(
file
.
toAbsolutePath
().
toString
()))
{
// current file is an alternate source file so track it
isAltSrc
=
true
;
BuildConfig
.
trackRelativeAltSrcFile
(
file
.
toAbsolutePath
().
toString
());
}
else
if
(
BuildConfig
.
matchesRelativeAltSrcFile
(
file
.
toAbsolutePath
().
toString
()))
{
// current file is a regular file that matches an alternate
// source file so yack about replacing the regular file
isReplacedByAltSrc
=
true
;
System
.
out
.
println
(
"INFO: alternate source file '"
+
BuildConfig
.
getMatchingRelativeAltSrcFile
(
file
.
toAbsolutePath
().
toString
())
+
"' replaces '"
+
fileLoc
+
"'"
);
}
for
(
BuildConfig
cfg
:
allConfigs
)
{
for
(
BuildConfig
cfg
:
allConfigs
)
{
if
(
cfg
.
lookupHashFieldInContext
(
"IgnoreFile"
,
fileName
)
!=
null
)
{
if
(
cfg
.
lookupHashFieldInContext
(
"IgnoreFile"
,
fileName
)
!=
null
)
{
useIgnore
=
true
;
useIgnore
=
true
;
...
@@ -58,9 +104,8 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
...
@@ -58,9 +104,8 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
}
}
String
tagName
=
wg
.
getFileTagFromSuffix
(
fileName
);
String
tagName
=
wg
.
getFileTagFromSuffix
(
fileName
);
String
fileLoc
=
vcProjLocation
.
relativize
(
file
).
toString
();
if
(!
useIgnore
&&
!
disablePch
&&
!
usePch
)
{
if
(!
useIgnore
&&
!
disablePch
&&
!
usePch
&&
!
isReplacedByAltSrc
)
{
wg
.
tag
(
tagName
,
new
String
[]
{
"Include"
,
fileLoc
});
wg
.
tag
(
tagName
,
new
String
[]
{
"Include"
,
fileLoc
});
}
else
{
}
else
{
wg
.
startTag
(
wg
.
startTag
(
...
@@ -78,6 +123,11 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
...
@@ -78,6 +123,11 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
if
(
disablePch
)
{
if
(
disablePch
)
{
wg
.
tag
(
"PrecompiledHeader"
,
"Condition"
,
"'$(Configuration)|$(Platform)'=='"
+
cfg
.
get
(
"Name"
)
+
"'"
);
wg
.
tag
(
"PrecompiledHeader"
,
"Condition"
,
"'$(Configuration)|$(Platform)'=='"
+
cfg
.
get
(
"Name"
)
+
"'"
);
}
}
if
(
isReplacedByAltSrc
)
{
wg
.
tagData
(
"ExcludedFromBuild"
,
"true"
,
"Condition"
,
"'$(Configuration)|$(Platform)'=='"
+
cfg
.
get
(
"Name"
)
+
"'"
);
}
}
}
wg
.
endTag
();
wg
.
endTag
();
}
}
...
@@ -137,6 +187,4 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
...
@@ -137,6 +187,4 @@ public class FileTreeCreatorVC10 extends FileTreeCreator {
public
void
writeFileTree
()
throws
IOException
{
public
void
writeFileTree
()
throws
IOException
{
Files
.
walkFileTree
(
this
.
startDir
,
this
);
Files
.
walkFileTree
(
this
.
startDir
,
this
);
}
}
}
}
\ No newline at end of file
src/share/tools/ProjectCreator/ProjectCreator.java
浏览文件 @
4cc17396
/*
/*
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -39,10 +39,15 @@ public class ProjectCreator {
...
@@ -39,10 +39,15 @@ public class ProjectCreator {
+
"jvm.dll; no trailing slash>"
);
+
"jvm.dll; no trailing slash>"
);
System
.
err
.
println
(
" If any of the above are specified, "
System
.
err
.
println
(
" If any of the above are specified, "
+
"they must all be."
);
+
"they must all be."
);
System
.
err
.
println
(
" Note: if '-altRelativeInclude' option below is "
+
"used, then the '-relativeAltSrcInclude' option must be used "
+
"to specify the alternate source dir, e.g., 'src\\closed'"
);
System
.
err
.
println
(
" Additional, optional arguments, which can be "
System
.
err
.
println
(
" Additional, optional arguments, which can be "
+
"specified multiple times:"
);
+
"specified multiple times:"
);
System
.
err
.
println
(
" -absoluteInclude <string containing absolute "
System
.
err
.
println
(
" -absoluteInclude <string containing absolute "
+
"path to include directory>"
);
+
"path to include directory>"
);
System
.
err
.
println
(
" -altRelativeInclude <string containing "
+
"alternate include directory relative to -envVar>"
);
System
.
err
.
println
(
" -relativeInclude <string containing include "
System
.
err
.
println
(
" -relativeInclude <string containing include "
+
"directory relative to -envVar>"
);
+
"directory relative to -envVar>"
);
System
.
err
.
println
(
" -define <preprocessor flag to be #defined "
System
.
err
.
println
(
" -define <preprocessor flag to be #defined "
...
...
src/share/tools/ProjectCreator/WinGammaPlatform.java
浏览文件 @
4cc17396
/*
/*
* Copyright (c) 1999, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -140,10 +140,17 @@ public abstract class WinGammaPlatform {
...
@@ -140,10 +140,17 @@ public abstract class WinGammaPlatform {
"already exist>"
);
"already exist>"
);
System
.
err
.
println
(
" If any of the above are specified, "
+
System
.
err
.
println
(
" If any of the above are specified, "
+
"they must all be."
);
"they must all be."
);
System
.
err
.
println
(
" Note: if '-altRelativeInclude' option below "
+
"is used, then the '-relativeAltSrcInclude' "
+
"option must be used to specify the alternate "
+
"source dir, e.g., 'src\\closed'"
);
System
.
err
.
println
(
" Additional, optional arguments, which can be "
+
System
.
err
.
println
(
" Additional, optional arguments, which can be "
+
"specified multiple times:"
);
"specified multiple times:"
);
System
.
err
.
println
(
" -absoluteInclude <string containing absolute "
+
System
.
err
.
println
(
" -absoluteInclude <string containing absolute "
+
"path to include directory>"
);
"path to include directory>"
);
System
.
err
.
println
(
" -altRelativeInclude <string containing "
+
"alternate include directory relative to "
+
"-sourceBase>"
);
System
.
err
.
println
(
" -relativeInclude <string containing include "
+
System
.
err
.
println
(
" -relativeInclude <string containing include "
+
"directory relative to -sourceBase>"
);
"directory relative to -sourceBase>"
);
System
.
err
.
println
(
" -define <preprocessor flag to be #defined "
+
System
.
err
.
println
(
" -define <preprocessor flag to be #defined "
+
...
@@ -343,6 +350,12 @@ public abstract class WinGammaPlatform {
...
@@ -343,6 +350,12 @@ public abstract class WinGammaPlatform {
HsArgHandler
.
VECTOR
HsArgHandler
.
VECTOR
),
),
new
HsArgRule
(
"-altRelativeInclude"
,
"AltRelativeInclude"
,
null
,
HsArgHandler
.
VECTOR
),
new
HsArgRule
(
"-relativeInclude"
,
new
HsArgRule
(
"-relativeInclude"
,
"RelativeInclude"
,
"RelativeInclude"
,
null
,
null
,
...
@@ -355,6 +368,12 @@ public abstract class WinGammaPlatform {
...
@@ -355,6 +368,12 @@ public abstract class WinGammaPlatform {
HsArgHandler
.
VECTOR
HsArgHandler
.
VECTOR
),
),
new
HsArgRule
(
"-relativeAltSrcInclude"
,
"RelativeAltSrcInclude"
,
null
,
HsArgHandler
.
STRING
),
new
HsArgRule
(
"-relativeSrcInclude"
,
new
HsArgRule
(
"-relativeSrcInclude"
,
"RelativeSrcInclude"
,
"RelativeSrcInclude"
,
null
,
null
,
...
@@ -560,10 +579,6 @@ public abstract class WinGammaPlatform {
...
@@ -560,10 +579,6 @@ public abstract class WinGammaPlatform {
allConfigs
.
add
(
new
TieredFastDebugConfig
());
allConfigs
.
add
(
new
TieredFastDebugConfig
());
allConfigs
.
add
(
new
TieredProductConfig
());
allConfigs
.
add
(
new
TieredProductConfig
());
allConfigs
.
add
(
new
CoreDebugConfig
());
allConfigs
.
add
(
new
CoreFastDebugConfig
());
allConfigs
.
add
(
new
CoreProductConfig
());
return
allConfigs
;
return
allConfigs
;
}
}
...
...
src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
浏览文件 @
4cc17396
/*
* Copyright (c) 2011, 2013, 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.File
;
import
java.io.File
;
import
java.io.FileNotFoundException
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.io.IOException
;
...
@@ -24,7 +48,7 @@ public class WinGammaPlatformVC10 extends WinGammaPlatformVC7 {
...
@@ -24,7 +48,7 @@ public class WinGammaPlatformVC10 extends WinGammaPlatformVC7 {
public
void
writeProjectFile
(
String
projectFileName
,
String
projectName
,
public
void
writeProjectFile
(
String
projectFileName
,
String
projectName
,
Vector
<
BuildConfig
>
allConfigs
)
throws
IOException
{
Vector
<
BuildConfig
>
allConfigs
)
throws
IOException
{
System
.
out
.
println
();
System
.
out
.
println
();
System
.
out
.
print
(
" Writing .vcxproj file: "
+
projectFileName
);
System
.
out
.
print
ln
(
" Writing .vcxproj file: "
+
projectFileName
);
String
projDir
=
Util
.
normalize
(
new
File
(
projectFileName
).
getParent
());
String
projDir
=
Util
.
normalize
(
new
File
(
projectFileName
).
getParent
());
...
@@ -114,7 +138,7 @@ public class WinGammaPlatformVC10 extends WinGammaPlatformVC7 {
...
@@ -114,7 +138,7 @@ public class WinGammaPlatformVC10 extends WinGammaPlatformVC7 {
endTag
();
endTag
();
printWriter
.
close
();
printWriter
.
close
();
System
.
out
.
println
(
" Done."
);
System
.
out
.
println
(
" Done
writing .vcxproj file
."
);
writeFilterFile
(
projectFileName
,
projectName
,
allConfigs
,
projDir
);
writeFilterFile
(
projectFileName
,
projectName
,
allConfigs
,
projDir
);
writeUserFile
(
projectFileName
,
allConfigs
);
writeUserFile
(
projectFileName
,
allConfigs
);
...
...
src/share/vm/classfile/javaClasses.cpp
浏览文件 @
4cc17396
...
@@ -2557,6 +2557,26 @@ void java_lang_ref_SoftReference::set_clock(jlong value) {
...
@@ -2557,6 +2557,26 @@ void java_lang_ref_SoftReference::set_clock(jlong value) {
*
offset
=
value
;
*
offset
=
value
;
}
}
// Support for java_lang_invoke_DirectMethodHandle
int
java_lang_invoke_DirectMethodHandle
::
_member_offset
;
oop
java_lang_invoke_DirectMethodHandle
::
member
(
oop
dmh
)
{
oop
member_name
=
NULL
;
bool
is_dmh
=
dmh
->
is_oop
()
&&
java_lang_invoke_DirectMethodHandle
::
is_instance
(
dmh
);
assert
(
is_dmh
,
"a DirectMethodHandle oop is expected"
);
if
(
is_dmh
)
{
member_name
=
dmh
->
obj_field
(
member_offset_in_bytes
());
}
return
member_name
;
}
void
java_lang_invoke_DirectMethodHandle
::
compute_offsets
()
{
Klass
*
klass_oop
=
SystemDictionary
::
DirectMethodHandle_klass
();
if
(
klass_oop
!=
NULL
&&
EnableInvokeDynamic
)
{
compute_offset
(
_member_offset
,
klass_oop
,
vmSymbols
::
member_name
(),
vmSymbols
::
java_lang_invoke_MemberName_signature
());
}
}
// Support for java_lang_invoke_MethodHandle
// Support for java_lang_invoke_MethodHandle
...
@@ -3205,6 +3225,7 @@ void JavaClasses::compute_offsets() {
...
@@ -3205,6 +3225,7 @@ void JavaClasses::compute_offsets() {
java_lang_ThreadGroup
::
compute_offsets
();
java_lang_ThreadGroup
::
compute_offsets
();
if
(
EnableInvokeDynamic
)
{
if
(
EnableInvokeDynamic
)
{
java_lang_invoke_MethodHandle
::
compute_offsets
();
java_lang_invoke_MethodHandle
::
compute_offsets
();
java_lang_invoke_DirectMethodHandle
::
compute_offsets
();
java_lang_invoke_MemberName
::
compute_offsets
();
java_lang_invoke_MemberName
::
compute_offsets
();
java_lang_invoke_LambdaForm
::
compute_offsets
();
java_lang_invoke_LambdaForm
::
compute_offsets
();
java_lang_invoke_MethodType
::
compute_offsets
();
java_lang_invoke_MethodType
::
compute_offsets
();
...
...
src/share/vm/classfile/javaClasses.hpp
浏览文件 @
4cc17396
...
@@ -976,6 +976,32 @@ class java_lang_invoke_MethodHandle: AllStatic {
...
@@ -976,6 +976,32 @@ class java_lang_invoke_MethodHandle: AllStatic {
static
int
form_offset_in_bytes
()
{
return
_form_offset
;
}
static
int
form_offset_in_bytes
()
{
return
_form_offset
;
}
};
};
// Interface to java.lang.invoke.DirectMethodHandle objects
class
java_lang_invoke_DirectMethodHandle
:
AllStatic
{
friend
class
JavaClasses
;
private:
static
int
_member_offset
;
// the MemberName of this DMH
static
void
compute_offsets
();
public:
// Accessors
static
oop
member
(
oop
mh
);
// Testers
static
bool
is_subclass
(
Klass
*
klass
)
{
return
klass
->
is_subclass_of
(
SystemDictionary
::
DirectMethodHandle_klass
());
}
static
bool
is_instance
(
oop
obj
)
{
return
obj
!=
NULL
&&
is_subclass
(
obj
->
klass
());
}
// Accessors for code generation:
static
int
member_offset_in_bytes
()
{
return
_member_offset
;
}
};
// Interface to java.lang.invoke.LambdaForm objects
// Interface to java.lang.invoke.LambdaForm objects
// (These are a private interface for managing adapter code generation.)
// (These are a private interface for managing adapter code generation.)
...
...
src/share/vm/classfile/systemDictionary.hpp
浏览文件 @
4cc17396
...
@@ -151,6 +151,7 @@ class SymbolPropertyTable;
...
@@ -151,6 +151,7 @@ class SymbolPropertyTable;
do_klass(reflect_CallerSensitive_klass, sun_reflect_CallerSensitive, Opt ) \
do_klass(reflect_CallerSensitive_klass, sun_reflect_CallerSensitive, Opt ) \
\
\
/* support for dynamic typing; it's OK if these are NULL in earlier JDKs */
\
/* support for dynamic typing; it's OK if these are NULL in earlier JDKs */
\
do_klass(DirectMethodHandle_klass, java_lang_invoke_DirectMethodHandle, Opt ) \
do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292 ) \
do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292 ) \
do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292 ) \
do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292 ) \
do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292 ) \
do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292 ) \
...
...
src/share/vm/classfile/vmSymbols.hpp
浏览文件 @
4cc17396
...
@@ -255,6 +255,7 @@
...
@@ -255,6 +255,7 @@
/* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */
\
/* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */
\
template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \
template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \
template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \
template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \
template(java_lang_invoke_DirectMethodHandle, "java/lang/invoke/DirectMethodHandle") \
template(java_lang_invoke_MutableCallSite, "java/lang/invoke/MutableCallSite") \
template(java_lang_invoke_MutableCallSite, "java/lang/invoke/MutableCallSite") \
template(java_lang_invoke_VolatileCallSite, "java/lang/invoke/VolatileCallSite") \
template(java_lang_invoke_VolatileCallSite, "java/lang/invoke/VolatileCallSite") \
template(java_lang_invoke_MethodHandle, "java/lang/invoke/MethodHandle") \
template(java_lang_invoke_MethodHandle, "java/lang/invoke/MethodHandle") \
...
@@ -352,6 +353,7 @@
...
@@ -352,6 +353,7 @@
template(thread_id_name, "tid") \
template(thread_id_name, "tid") \
template(newInstance0_name, "newInstance0") \
template(newInstance0_name, "newInstance0") \
template(limit_name, "limit") \
template(limit_name, "limit") \
template(member_name, "member") \
template(forName_name, "forName") \
template(forName_name, "forName") \
template(forName0_name, "forName0") \
template(forName0_name, "forName0") \
template(isJavaIdentifierStart_name, "isJavaIdentifierStart") \
template(isJavaIdentifierStart_name, "isJavaIdentifierStart") \
...
...
src/share/vm/interpreter/interpreterRuntime.cpp
浏览文件 @
4cc17396
...
@@ -1209,3 +1209,26 @@ IRT_LEAF(void, InterpreterRuntime::popframe_move_outgoing_args(JavaThread* threa
...
@@ -1209,3 +1209,26 @@ IRT_LEAF(void, InterpreterRuntime::popframe_move_outgoing_args(JavaThread* threa
size_of_arguments
*
Interpreter
::
stackElementSize
);
size_of_arguments
*
Interpreter
::
stackElementSize
);
IRT_END
IRT_END
#endif
#endif
#if INCLUDE_JVMTI
// This is a support of the JVMTI PopFrame interface.
// Make sure it is an invokestatic of a polymorphic intrinsic that has a member_name argument
// and return it as a vm_result so that it can be reloaded in the list of invokestatic parameters.
// The dmh argument is a reference to a DirectMethoHandle that has a member name field.
IRT_ENTRY
(
void
,
InterpreterRuntime
::
member_name_arg_or_null
(
JavaThread
*
thread
,
address
dmh
,
Method
*
method
,
address
bcp
))
Bytecodes
::
Code
code
=
Bytecodes
::
code_at
(
method
,
bcp
);
if
(
code
!=
Bytecodes
::
_invokestatic
)
{
return
;
}
ConstantPool
*
cpool
=
method
->
constants
();
int
cp_index
=
Bytes
::
get_native_u2
(
bcp
+
1
)
+
ConstantPool
::
CPCACHE_INDEX_TAG
;
Symbol
*
cname
=
cpool
->
klass_name_at
(
cpool
->
klass_ref_index_at
(
cp_index
));
Symbol
*
mname
=
cpool
->
name_ref_at
(
cp_index
);
if
(
MethodHandles
::
has_member_arg
(
cname
,
mname
))
{
oop
member_name
=
java_lang_invoke_DirectMethodHandle
::
member
((
oop
)
dmh
);
thread
->
set_vm_result
(
member_name
);
}
IRT_END
#endif // INCLUDE_JVMTI
src/share/vm/interpreter/interpreterRuntime.hpp
浏览文件 @
4cc17396
...
@@ -95,6 +95,9 @@ class InterpreterRuntime: AllStatic {
...
@@ -95,6 +95,9 @@ class InterpreterRuntime: AllStatic {
static
void
create_exception
(
JavaThread
*
thread
,
char
*
name
,
char
*
message
);
static
void
create_exception
(
JavaThread
*
thread
,
char
*
name
,
char
*
message
);
static
void
create_klass_exception
(
JavaThread
*
thread
,
char
*
name
,
oopDesc
*
obj
);
static
void
create_klass_exception
(
JavaThread
*
thread
,
char
*
name
,
oopDesc
*
obj
);
static
address
exception_handler_for_exception
(
JavaThread
*
thread
,
oopDesc
*
exception
);
static
address
exception_handler_for_exception
(
JavaThread
*
thread
,
oopDesc
*
exception
);
#if INCLUDE_JVMTI
static
void
member_name_arg_or_null
(
JavaThread
*
thread
,
address
dmh
,
Method
*
m
,
address
bcp
);
#endif
static
void
throw_pending_exception
(
JavaThread
*
thread
);
static
void
throw_pending_exception
(
JavaThread
*
thread
);
// Statics & fields
// Statics & fields
...
...
test/runtime/7107135/Test7107135.sh
浏览文件 @
4cc17396
...
@@ -53,9 +53,6 @@ case "$OS" in
...
@@ -53,9 +53,6 @@ case "$OS" in
fi
fi
;;
;;
*
)
*
)
NULL
=
NUL
PS
=
";"
FS
=
"
\\
"
echo
"Test passed; only valid for Linux"
echo
"Test passed; only valid for Linux"
exit
0
;
exit
0
;
;;
;;
...
@@ -87,14 +84,16 @@ ${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} Test test-rw
...
@@ -87,14 +84,16 @@ ${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} Test test-rw
echo
echo
echo
Test changing of stack protection:
echo
Test changing of stack protection:
echo
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
Test test-rw
echo
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
Test test-rw
x
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
Test test-rwx
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
Test test-rwx
JAVA_RETVAL
=
$?
if
[
"
$
?
"
==
"0"
]
if
[
"
$
JAVA_RETVAL
"
==
"0"
]
then
then
echo
echo
echo
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
TestMT test-rwx
echo
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
TestMT test-rwx
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
TestMT test-rwx
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
THIS_DIR
}
TestMT test-rwx
JAVA_RETVAL
=
$?
fi
fi
exit
$
?
exit
$
JAVA_RETVAL
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录