Compare commits

...

1047 Commits

Author SHA1 Message Date
J. Duke
df7769a808 Merge 2017-07-05 17:24:21 +02:00
J. Duke
a4bd44b878 Merge 2017-07-05 17:24:18 +02:00
J. Duke
140ecd5820 Merge 2017-07-05 17:24:13 +02:00
J. Duke
7b02498583 Merge 2017-07-05 17:24:09 +02:00
J. Duke
d8d9ba50ea Merge 2017-07-05 17:24:06 +02:00
J. Duke
bc989dcfb8 Merge 2017-07-05 17:24:03 +02:00
J. Duke
7342ada9e4 Merge 2017-07-05 17:23:50 +02:00
J. Duke
056918b327 Added tag jdk7-b113 for changeset 1fee41c7ed2b 2017-07-05 17:23:40 +02:00
J. Duke
fc0cd82e46 Merge 2017-07-05 17:23:40 +02:00
J. Duke
e5d5c1aab6 Merge 2017-07-05 17:23:37 +02:00
J. Duke
01c67399b1 Merge 2017-07-05 17:23:35 +02:00
J. Duke
7e8240f961 Merge 2017-07-05 17:23:32 +02:00
J. Duke
1cd315930c Merge 2017-07-05 17:23:31 +02:00
J. Duke
fbb8e03b88 Merge 2017-07-05 17:23:29 +02:00
J. Duke
c3e02d7204 Merge 2017-07-05 17:23:26 +02:00
J. Duke
d64d53d932 Added tag jdk7-b112 for changeset f960f117f162 2017-07-05 17:23:19 +02:00
J. Duke
d6ba5ab1f7 Merge 2017-07-05 17:23:18 +02:00
J. Duke
be924849d2 Merge 2017-07-05 17:23:15 +02:00
J. Duke
e67992dad7 Merge 2017-07-05 17:23:08 +02:00
J. Duke
39c946d2b8 Merge 2017-07-05 17:23:03 +02:00
J. Duke
3356cd5be7 Merge 2017-07-05 17:22:58 +02:00
J. Duke
3c77469bb6 Merge 2017-07-05 17:22:53 +02:00
J. Duke
4ac932b0f7 Merge 2017-07-05 17:22:39 +02:00
J. Duke
eb04bc3637 Added tag jdk7-b111 for changeset 69f3edf08347 2017-07-05 17:22:21 +02:00
J. Duke
0bd0f10d2c Merge 2017-07-05 17:22:21 +02:00
J. Duke
e6ad6af7b2 Merge 2017-07-05 17:22:18 +02:00
J. Duke
181685b575 Merge 2017-07-05 17:22:16 +02:00
J. Duke
d72c7a9653 Merge 2017-07-05 17:22:14 +02:00
J. Duke
eaa8dee857 Merge 2017-07-05 17:22:12 +02:00
J. Duke
c7c2c8d131 Merge 2017-07-05 17:22:10 +02:00
J. Duke
ae82a02058 Merge 2017-07-05 17:22:07 +02:00
J. Duke
c9a2ea98b6 Added tag jdk7-b110 for changeset a6442d6bc38a 2017-07-05 17:21:59 +02:00
J. Duke
135c61b9fe Merge 2017-07-05 17:21:58 +02:00
J. Duke
d9f2421530 Merge 2017-07-05 17:21:56 +02:00
J. Duke
239bb4d2cb Merge 2017-07-05 17:21:53 +02:00
J. Duke
cb126a3818 Merge 2017-07-05 17:21:50 +02:00
J. Duke
7e120f68e8 Merge 2017-07-05 17:21:48 +02:00
J. Duke
c62f7c7ec5 Merge 2017-07-05 17:21:45 +02:00
J. Duke
0a8ed973da Merge 2017-07-05 17:21:41 +02:00
J. Duke
8cd2aa8c64 Added tag jdk7-b109 for changeset e02b4d709e17 2017-07-05 17:21:33 +02:00
J. Duke
a4aa79ba87 Merge 2017-07-05 17:21:32 +02:00
J. Duke
cb7c345a1d Merge 2017-07-05 17:21:29 +02:00
J. Duke
2144b9acc2 Merge 2017-07-05 17:21:24 +02:00
J. Duke
b46b43b285 Merge 2017-07-05 17:21:22 +02:00
J. Duke
d132d74dd0 Merge 2017-07-05 17:21:19 +02:00
J. Duke
8b4538db5f Merge 2017-07-05 17:21:16 +02:00
J. Duke
9549e2dce7 Merge 2017-07-05 17:21:06 +02:00
J. Duke
5d8706c95b Added tag jdk7-b108 for changeset 044d31b99ef5 2017-07-05 17:20:50 +02:00
J. Duke
ecec377dfb Merge 2017-07-05 17:20:50 +02:00
J. Duke
1024d6cff1 Merge 2017-07-05 17:20:47 +02:00
J. Duke
75e441bde8 Merge 2017-07-05 17:20:45 +02:00
J. Duke
04cfde006d Merge 2017-07-05 17:20:42 +02:00
J. Duke
42e29debd9 Merge 2017-07-05 17:20:40 +02:00
J. Duke
1320f8414e Merge 2017-07-05 17:20:37 +02:00
J. Duke
1c123ba7ee Merge 2017-07-05 17:20:35 +02:00
J. Duke
53342071dd Added tag jdk7-b107 for changeset 439de530aac5 2017-07-05 17:20:27 +02:00
J. Duke
2d4322b265 Merge 2017-07-05 17:20:27 +02:00
J. Duke
da4d3b0482 Merge 2017-07-05 17:20:24 +02:00
J. Duke
461702e4e6 Merge 2017-07-05 17:20:21 +02:00
J. Duke
d71c0e6a0b Merge 2017-07-05 17:20:19 +02:00
J. Duke
d1d2698351 Merge 2017-07-05 17:20:17 +02:00
J. Duke
f5ed1d3224 Merge 2017-07-05 17:20:14 +02:00
J. Duke
44d4120f65 Merge 2017-07-05 17:20:12 +02:00
J. Duke
e86933fff3 Added tag jdk7-b106 for changeset 6bdae472f772 2017-07-05 17:20:05 +02:00
J. Duke
b2679e3dc4 Merge 2017-07-05 17:20:05 +02:00
J. Duke
3a4aad2225 Merge 2017-07-05 17:20:03 +02:00
J. Duke
e4b2c239c4 Merge 2017-07-05 17:20:00 +02:00
J. Duke
f25ae0ee7e Merge 2017-07-05 17:19:57 +02:00
J. Duke
36a66bf5ec Merge 2017-07-05 17:19:55 +02:00
J. Duke
99d320c026 Merge 2017-07-05 17:19:52 +02:00
J. Duke
18cbe9120e Merge 2017-07-05 17:19:49 +02:00
J. Duke
9ba9de33df Added tag jdk7-b105 for changeset 1ce7938efb03 2017-07-05 17:19:35 +02:00
J. Duke
4862cbc68f Merge 2017-07-05 17:19:35 +02:00
J. Duke
df52a32006 Merge 2017-07-05 17:19:32 +02:00
J. Duke
25f67f3bbe Merge 2017-07-05 17:19:26 +02:00
J. Duke
617591c8ba Merge 2017-07-05 17:19:23 +02:00
J. Duke
8053bdbf2d Merge 2017-07-05 17:19:21 +02:00
J. Duke
6ced2b5d2a Merge 2017-07-05 17:19:18 +02:00
J. Duke
dd52284e0b Merge 2017-07-05 17:19:08 +02:00
J. Duke
c88a15e039 Added tag jdk7-b104 for changeset 10bc903a228d 2017-07-05 17:19:01 +02:00
J. Duke
df74e95462 Merge 2017-07-05 17:19:00 +02:00
J. Duke
1e3b590be6 Merge 2017-07-05 17:18:57 +02:00
J. Duke
c96f92022a Merge 2017-07-05 17:18:55 +02:00
J. Duke
8bd34264b5 Merge 2017-07-05 17:18:53 +02:00
J. Duke
41a50c0fb9 Merge 2017-07-05 17:18:51 +02:00
J. Duke
1a936aa049 Merge 2017-07-05 17:18:49 +02:00
J. Duke
2fba7411ca Merge 2017-07-05 17:18:46 +02:00
J. Duke
183ac93d85 Added tag jdk7-b103 for changeset 647709708658 2017-07-05 17:18:35 +02:00
J. Duke
0861a6d60d Merge 2017-07-05 17:18:35 +02:00
J. Duke
da6f9c197a Merge 2017-07-05 17:18:32 +02:00
J. Duke
53a62962d6 Merge 2017-07-05 17:18:30 +02:00
J. Duke
858159d403 Merge 2017-07-05 17:18:27 +02:00
J. Duke
2d7b160a7f Merge 2017-07-05 17:18:25 +02:00
J. Duke
0e07c950a5 Merge 2017-07-05 17:18:23 +02:00
J. Duke
3a0a5d1605 Merge 2017-07-05 17:18:20 +02:00
J. Duke
6c88f27e20 Added tag jdk7-b102 for changeset 88db80c8e49c 2017-07-05 17:18:12 +02:00
J. Duke
7c87c80e68 Merge 2017-07-05 17:18:12 +02:00
J. Duke
83714e4d7c Merge 2017-07-05 17:18:09 +02:00
J. Duke
ed7d472203 Merge 2017-07-05 17:18:05 +02:00
J. Duke
83dd0343b2 Merge 2017-07-05 17:18:01 +02:00
J. Duke
dd8645d32f Merge 2017-07-05 17:17:57 +02:00
J. Duke
d62de15335 Merge 2017-07-05 17:17:53 +02:00
J. Duke
9ecd8b0f2b Merge 2017-07-05 17:17:39 +02:00
J. Duke
a803c035d3 Added tag jdk7-b101 for changeset 2548ac036b8f 2017-07-05 17:17:22 +02:00
J. Duke
38378b7ee0 Merge 2017-07-05 17:17:22 +02:00
J. Duke
be7516a167 Merge 2017-07-05 17:17:19 +02:00
J. Duke
847a1275a1 Merge 2017-07-05 17:17:17 +02:00
J. Duke
81ff5505f8 Merge 2017-07-05 17:17:14 +02:00
J. Duke
292c6a1d24 Merge 2017-07-05 17:17:12 +02:00
J. Duke
37121880e9 Merge 2017-07-05 17:17:09 +02:00
J. Duke
9f1388e712 Merge 2017-07-05 17:17:06 +02:00
J. Duke
b65efc86e6 Added tag jdk7-b100 for changeset 2d6ba7a22191 2017-07-05 17:16:58 +02:00
J. Duke
adc046b472 Merge 2017-07-05 17:16:58 +02:00
J. Duke
e05ed764eb Merge 2017-07-05 17:16:55 +02:00
J. Duke
a4229edc8a Merge 2017-07-05 17:16:49 +02:00
J. Duke
3af7af1151 Merge 2017-07-05 17:16:45 +02:00
J. Duke
77326c3251 Merge 2017-07-05 17:16:42 +02:00
J. Duke
5a6833dd04 Merge 2017-07-05 17:16:38 +02:00
J. Duke
d0b1d7b43f Merge 2017-07-05 17:16:26 +02:00
J. Duke
27a64b8f8b Added tag jdk7-b99 for changeset c4c8a5bc54f6 2017-07-05 17:16:17 +02:00
J. Duke
ba79b2bcce Merge 2017-07-05 17:16:17 +02:00
J. Duke
3e36dc32ab Merge 2017-07-05 17:16:14 +02:00
J. Duke
720e501aea Merge 2017-07-05 17:16:10 +02:00
J. Duke
24204ae112 Merge 2017-07-05 17:16:07 +02:00
J. Duke
b6cb5e539d Merge 2017-07-05 17:16:05 +02:00
J. Duke
02adc66969 Merge 2017-07-05 17:16:02 +02:00
J. Duke
df331b6c01 Merge 2017-07-05 17:15:57 +02:00
J. Duke
e3c64d0972 Added tag jdk7-b98 for changeset db6e66012044 2017-07-05 17:15:36 +02:00
Lana Steuck
1966035b23 Merge 2010-10-12 12:52:49 -07:00
Lana Steuck
1c0385ff6f Merge 2010-10-12 12:51:48 -07:00
Lana Steuck
9f9f353cf4 Merge 2010-10-12 12:47:55 -07:00
Xueming Shen
2d526410d4 6990846: Demo: NIO.2 filesystem provider for zip/jar archives
The first drop of the zip filesystem provider, as a separate demo

Reviewed-by: alanb
2010-10-08 21:33:28 -07:00
Christine Lu
85df6f646d Added tag jdk7-b113 for changeset edcbadb1c4b3 2010-10-07 15:12:31 -07:00
Christine Lu
545a471906 Added tag jdk7-b113 for changeset 2347b7452dcd 2010-10-07 15:12:19 -07:00
Christine Lu
ea504457e0 Added tag jdk7-b113 for changeset 9d2d843d318f 2010-10-07 15:12:12 -07:00
Christine Lu
a6e5f5eb91 Added tag jdk7-b113 for changeset 039713686e1c 2010-10-07 15:12:11 -07:00
Christine Lu
b705fe7b12 Added tag jdk7-b113 for changeset 4fb06c9f1ce0 2010-10-07 15:12:06 -07:00
Christine Lu
70757fa269 Added tag jdk7-b113 for changeset c180f52ae197 2010-10-07 15:12:01 -07:00
Christine Lu
74e14ce601 Added tag jdk7-b113 for changeset 584eae2875f4 2010-10-07 15:12:00 -07:00
Lana Steuck
9b42254d9a Merge 2010-10-04 14:40:38 -07:00
Lana Steuck
98a4c7fec4 Merge 2010-10-04 14:39:57 -07:00
Lana Steuck
045f71ec25 Merge 2010-10-04 14:38:39 -07:00
Lana Steuck
f8a4e42fb3 Merge 2010-10-04 14:38:14 -07:00
Lana Steuck
70586de1c1 Merge 2010-10-04 14:36:45 -07:00
Lana Steuck
e94376800f Merge 2010-10-04 14:34:54 -07:00
Lance Andersen
0c5307c12b 6989139: Address JDBC Findbugs where Number type Constructor are used
Reviewed-by: ohair
2010-10-04 13:04:09 -04:00
Alan Bateman
41cc1e2f4a 6989190: SO_SNDBUF/SO_RCVBUF limits should only be checked when setsockopt fails (sol)
Reviewed-by: chegar, michaelm
2010-10-04 14:17:36 +01:00
Anthony Petrov
8aee53f1b5 6982279: java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java failed due to NPE
Rely on the WWindowPeer.getTranslucentGraphics()'s return value

Reviewed-by: art, dcherepanov
2010-10-04 16:21:26 +04:00
Anthony Petrov
afc679f6ad 6987233: FileDialog.getDirectory() should add a trainling slash when GTK FileDialog is used
Add the trailing slash if it's absent

Reviewed-by: art, dcherepanov
2010-10-04 16:12:07 +04:00
Andrei Dmitriev
fbb62aa566 6847155: test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java fails
Reviewed-by: denis
2010-10-04 11:40:07 +04:00
Masayoshi Okutsu
2588620965 6955776: (tz) Windows-only: tzmappings needs update for KB981793
6929185: (tz) Windows-only: tzmappings needs update for KB979306

Reviewed-by: peytoia
2010-10-04 13:05:14 +09:00
Alan Bateman
ca93e7004f 6907737: (file) FileVisitor and Files.walkFileTree issues
Reviewed-by: jjg
2010-10-03 19:40:15 +01:00
Alan Bateman
b44a1bd105 6907737: (file) FileVisitor and Files.walkFileTree issues
Reviewed-by: sherman
2010-10-03 19:39:25 +01:00
Alan Bateman
ee93235260 Merge 2010-10-02 12:59:52 +01:00
Alan Bateman
afac13bfe2 6979526: (file) java/nio/file/FileStore/Basic.java fails if the same file system is mounted more than once
Reviewed-by: kevinw, forax
2010-10-02 12:59:04 +01:00
Andrew Brygin
c299b2e4c0 6988213: lcms build failure on windows-amd64
Reviewed-by: igor, prr
2010-10-02 12:41:20 +04:00
Christine Lu
ee2df8c3c0 Added tag jdk7-b112 for changeset c325801e1b17 2010-10-01 15:45:26 -07:00
Christine Lu
fb444f04e2 Added tag jdk7-b112 for changeset 382d78ea38b0 2010-10-01 15:45:14 -07:00
Christine Lu
be3968f8b4 Added tag jdk7-b112 for changeset eb3c76a898eb 2010-10-01 15:45:07 -07:00
Christine Lu
76b7afa4ea Added tag jdk7-b112 for changeset 4597d735f40c 2010-10-01 15:45:06 -07:00
Christine Lu
498a2a778a Added tag jdk7-b112 for changeset 75ef8813e3e2 2010-10-01 15:45:01 -07:00
Christine Lu
86b4193a54 Added tag jdk7-b112 for changeset 2212d6ed6562 2010-10-01 15:44:55 -07:00
Christine Lu
b03add14fc Added tag jdk7-b112 for changeset 4dbc2a40aa76 2010-10-01 15:44:51 -07:00
Lance Andersen
f5a046aae8 6988993: Address Findbugs warnings for the use of String Constructor
Reviewed-by: ohair
2010-10-01 14:36:01 -04:00
Andrei Dmitriev
9c946f5a9c 6829267: Regression test java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java fails in RHEL5
Reviewed-by: art, anthony
2010-10-01 15:10:32 +04:00
Igor Veresov
63fd308170 6988779: c1_LIRAssembler_x86.cpp crashes VS2010 compiler
The workaround changes the scope of the variable

Reviewed-by: phh, ysr, kvn
2010-09-30 16:00:40 -07:00
Jonathan Gibbons
b281273d71 6988436: Cleanup javac option handling
Reviewed-by: darcy
2010-09-30 10:47:12 -07:00
Artem Ananiev
013d469322 6860270: JVM crash is occuring when verifying whether Browse action is supported on WinVista 64 bit
Reviewed-by: anthony, uta
2010-09-30 21:06:53 +04:00
Sergey Malenkov
55c5ae3011 6982753: javax/swing/JTextArea/6940863/bug6940863.java should be modified
Reviewed-by: alexp
2010-09-30 20:21:55 +04:00
Alan Bateman
848ef2c6e7 Merge 2010-09-30 14:49:14 +01:00
Alan Bateman
ce43c743ff 6988037: fileClose prints debug message is close fails
Reviewed-by: kevinw, forax
2010-09-30 14:48:25 +01:00
Andrei Dmitriev
35092b1bf3 6694729: obsolete link in ActionEvent javadoc
Reviewed-by: art
2010-09-30 14:50:36 +04:00
Joe Darcy
4231c49495 6983738: Use a JavacTestingAbstractProcessor
Reviewed-by: jjg
2010-09-29 23:27:57 -07:00
Jonathan Gibbons
ef791d4adb 6502392: Invalid relative names for Filer.createResource and Filer.getResource
Reviewed-by: darcy
2010-09-29 14:01:37 -07:00
Chris Hegarty
674e1ca1c7 6987461: Handle leak when enabling java.net.useSystemProxies
Release the registry key handle if ProxyEnable is 0

Reviewed-by: michaelm
2010-09-29 17:33:17 +01:00
Weijun Wang
b1bd74bb7d 6988163: sun.security.util.Resources dup and a keytool doc typo
Reviewed-by: xuelei
2010-09-29 15:26:59 +08:00
Andrew Brygin
13069fe969 6735275: java.awt.image.SampleModel.getSamples() methods not allways throw ArrayIndexOutOfBoundsException
Reviewed-by: igor, prr
2010-09-29 10:44:02 +04:00
Lana Steuck
23fe7ade81 Merge 2010-09-28 11:43:45 -07:00
Naoto Sato
836de5036c 6915621: (rb) ResourceBundle.getBundle() deadlock when called inside a synchronized thread
Reviewed-by: okutsu
2010-09-28 10:57:56 -07:00
Athijegannathan Sundararajan
55a531c45f 6967842: Element not returned from tree API for ARM resource variables
Reviewed-by: jjg, darcy
2010-09-28 22:46:36 +05:30
Omair Majid
6e5fbc5669 6987945: XDecoratedPeer shouldn't allow to resize a frame to zero size
Reviewed-by: anthony
2010-09-28 10:16:18 -04:00
Michael McMahon
2cd0e300b8 6987927: can't use -Dfile.encoding=Cp037 in net test
Reviewed-by: chegar
2010-09-28 14:36:19 +01:00
Michael McMahon
ff8174e3e4 Merge 2010-09-28 12:04:09 +01:00
Michael McMahon
2c29ae4f3c 6550798: Using InputStream.skip with ResponseCache will cause partial data to be cached
Reviewed-by: chegar
2010-09-28 11:59:57 +01:00
Artem Ananiev
07a295701d 6987896: Modal dialogs resumes the calling thread before it's hidden
Reviewed-by: anthony
2010-09-28 14:57:23 +04:00
Lana Steuck
b3583c3d0d Merge 2010-09-28 00:20:15 -07:00
Jonathan Gibbons
95a1a60964 6986246: Trees object is round-specific
Reviewed-by: darcy
2010-09-27 17:28:49 -07:00
Lance Andersen
d2bd33c264 6987638: javadoc update to RowSetProvider and Statement
Reviewed-by: darcy, alanb
2010-09-27 18:05:23 -04:00
Jonathan Gibbons
2730836d77 6877202: Elements.getDocComment() is not getting JavaDocComments
6861094: javac -Xprint <file> does not print comments
6985205: access to tree positions and doc comments may be lost across annotation processing rounds

Reviewed-by: darcy
2010-09-27 14:20:39 -07:00
Jonathan Gibbons
26f967ece4 6890226: javah -version is broken
Reviewed-by: darcy
2010-09-27 14:05:33 -07:00
Sergey Malenkov
365010ff3e 6986450: javax/swing/JTable/Test6888156.java test is failing against jdk7 just on windows
Reviewed-by: alexp
2010-09-27 21:07:45 +04:00
Omair Majid
625c4ba907 6986968: Crash on XIM server restart
Free XIM data structures on DestroyXIMCallback

Reviewed-by: naoto
2010-09-27 11:30:03 -04:00
Anton Tarasov
0969410407 6886678: Clicking on parent JFrame's client area does not switch focus from JWindow to JFrame on Windows
Reviewed-by: dcherepanov, art
2010-09-27 17:38:57 +04:00
Anton Tarasov
397abc7260 6505819: Provide traverseIn method for sun.awt.EmbeddedFrame
Reviewed-by: dcherepanov, art
2010-09-27 16:11:58 +04:00
Sergey Malenkov
b90f2341f9 6976577: JCK7 api/java_beans/EventSetDescriptor/descriptions.html#Ctor1 fails since jdk7 b102
Reviewed-by: peterz
2010-09-27 13:38:49 +04:00
Lana Steuck
b362a78fef Merge 2010-09-26 14:14:48 -07:00
Lana Steuck
78db31beb6 Merge 2010-09-25 12:02:32 -07:00
Lana Steuck
53e6cf8989 Merge 2010-09-25 12:00:05 -07:00
Lana Steuck
718a6bf6c2 Merge 2010-09-25 10:38:50 -07:00
Weijun Wang
b32aa9d2d5 6986868: TEST failure: sun/security/tools/jarsigner/crl.sh
Reviewed-by: ohair
2010-09-25 10:21:30 +08:00
Lana Steuck
98b2aad842 Merge 2010-09-24 16:43:08 -07:00
Lana Steuck
6b9e679958 Merge 2010-09-24 16:41:32 -07:00
Lana Steuck
e9c4f04da5 Merge 2010-09-24 16:38:09 -07:00
Lana Steuck
a6714f583f Merge 2010-09-24 16:38:08 -07:00
Lana Steuck
d0ae7f5633 Merge 2010-09-24 16:38:05 -07:00
Lana Steuck
1baf4d94fb Merge 2010-09-24 16:38:02 -07:00
Kelly O'Hair
f181e2fb8f 6987114: Fix top level "test" Makefile logic, add jdk/make/Makefile test target
6987113: Remove SCCS logic from makefiles

Reviewed-by: mchung
2010-09-24 14:22:01 -07:00
Kelly O'Hair
0294919402 6987117: Add jprt test sets
Reviewed-by: mchung
2010-09-24 14:06:57 -07:00
Kelly O'Hair
4e0aea2b65 6987117: Add jprt test sets
Reviewed-by: mchung
2010-09-24 14:04:01 -07:00
Kelly O'Hair
e0c099ccb2 6987114: Fix top level "test" Makefile logic, add jdk/make/Makefile test target
Reviewed-by: mchung
2010-09-24 14:03:33 -07:00
Erik Trimble
b7d1b4674b 6987149: Fix incorrect Oracle copyright header in make/templates files
Minor fix to first line of template copyright files

Reviewed-by: ohair
2010-09-24 00:52:04 -07:00
Erik Trimble
03f9d08651 Merge 2010-09-24 00:51:15 -07:00
Yoshito Umaoka
84ca32b8df 6986612: pit jdk7 b112: java.util.Locale getDisplayVariant() sqe test getDisplayVariantTests.java fails
Reviewed-by: dougfelt
2010-09-23 20:05:20 -07:00
Christine Lu
90841ef428 Added tag jdk7-b111 for changeset 4ad83e49760f 2010-09-23 17:33:52 -07:00
Christine Lu
311fc82f63 Added tag jdk7-b111 for changeset 6daafb1093c6 2010-09-23 17:33:40 -07:00
Christine Lu
59fbc51787 Added tag jdk7-b111 for changeset 492db456c4fa 2010-09-23 17:33:33 -07:00
Christine Lu
d7a72c75ba Added tag jdk7-b111 for changeset d32614f0702d 2010-09-23 17:33:33 -07:00
Christine Lu
fcc90d4983 Added tag jdk7-b111 for changeset a8fb6372bee7 2010-09-23 17:33:27 -07:00
Christine Lu
b640ef0cf0 Added tag jdk7-b111 for changeset eaf3ed79a7b5 2010-09-23 17:33:23 -07:00
Christine Lu
3ca0fc1853 Added tag jdk7-b111 for changeset fde8c74d7bd1 2010-09-23 17:33:18 -07:00
Mandy Chung
872a9b9303 6984036: servicetag vendor rebranding issues
Update product_vendor field to use java.vendor system property

Reviewed-by: ohair
2010-09-22 21:44:18 -07:00
Weijun Wang
f788ac2dbd 6982971: TEST failure: com/sun/security/sasl/ntlm/NTLMTest.java
Reviewed-by: wetmore
2010-09-23 10:46:03 +08:00
Jonathan Gibbons
5e44010f8c 6986772: langtools netbeans build should use ${ant.core.lib} instead of ${ant.home}/lib/ant.jar
Reviewed-by: ohair
2010-09-22 12:53:26 -07:00
Kelly O'Hair
4b6857d9ba Merge 2010-09-22 12:53:06 -07:00
Kelly O'Hair
86803785e8 6946527: rebranding system properties per Oracle Requirements (vendor)
Changes from "Sun Microsystems, Inc." to "Oracle Corporation" in the java.vendor, java.specification.vendor and java.vendor.url Java system properties. Also change of Windows COMPANY file property from "Oracle" to "Oracle Corporation".

Reviewed-by: lancea, flar
2010-09-22 11:06:50 -07:00
Keith McGuigan
9e9551fdd8 Merge 2010-09-22 12:54:51 -04:00
Athijegannathan Sundararajan
28c94557eb 6587674: NoClassdefFound when anonymously extending a class
Reviewed-by: jjg, mcimadamore
2010-09-22 20:53:34 +05:30
Daniel D. Daugherty
c7a512e006 6949710: 3/3 the GC'able nature of Logging objects needs to be made brutally clear
Add words in more places to make it clear that Logger objects are GC'able unless there is a strong reference.

Reviewed-by: dholmes, andrew
2010-09-22 07:46:49 -07:00
Doug Lea
9d5707e87d 6986050: Small clarifications and fixes for ForkJoin
Clarify FJ.get on throw InterruptedException, propagate ThreadFactory, shutdown transition

Reviewed-by: chegar
2010-09-21 16:06:59 +01:00
Chris Hegarty
0d636dcf1c 6672144: HttpURLConnection.getInputStream sends POST request after failed chunked
Reviewed-by: michaelm
2010-09-21 15:58:06 +01:00
Daniel D. Daugherty
08b41f30d8 6985848: 3/4 fix for 6561870 causes sa-jdi.jar to be rebuilt every time
Refine fix for 6561870 to only rebuild sa-jdi.jar when needed

Reviewed-by: never, ohair, coleenp
2010-09-21 06:58:44 -07:00
Peter Zhelezniakov
89def18fca 6978052: No appropriate CCC request for listed JDK 7 changes in javax.swing.plaf.synth package (b84)
Reviewed-by: malenkov
2010-09-21 10:04:41 +04:00
Peter Zhelezniakov
83a639538d 6960126: With GTK L&F JDesktopPane substitutes set desktop manager
Reviewed-by: malenkov
2010-09-21 10:03:53 +04:00
Doug Lea
94ffffd5cb 6981113: Add ConcurrentLinkedDeque
Extend techniques developed for ConcurrentLinkedQueue and LinkedTransferQueue to implement a non-blocking concurrent Deque with interior removes.

Reviewed-by: martin, dholmes, chegar
2010-09-20 18:05:09 -07:00
Keith McGuigan
bc7a44e595 6975210: java.lang.VerifyError in some of JCK tests
Naked oop in verificationType::is_reference_assignable_from()

Reviewed-by: never, kvn, coleenp
2010-09-20 15:38:04 -04:00
Maurizio Cimadamore
05fb73163c 6863465: javac doesn't detect circular subclass dependencies via qualified names
Class inheritance circularity check should look at trees, not just symbols

Reviewed-by: jjg
2010-09-18 14:24:09 -07:00
Maurizio Cimadamore
cd3371e702 5088624: cannot find symbol message should be more intelligent
Resolve.java should keep track of all candidates found during a method resolution sweep to generate more meaningful diagnostics

Reviewed-by: jjg
2010-09-18 09:56:23 -07:00
Maurizio Cimadamore
fbf72650b9 6980862: too aggressive compiler optimization causes stale results of Types.implementation()
Use a scope counter in order to determine when/if the implementation cache entries are stale

Reviewed-by: jjg
2010-09-18 09:54:51 -07:00
Lance Andersen
11bbc5d5bc 6984044: RowSet source needs to rebrand vendor references
Reviewed-by: darcy, ohair
2010-09-18 06:09:48 -04:00
Keith McGuigan
de088dd719 Merge 2010-09-17 19:45:12 -04:00
Martin Buchholz
07ebbaac23 6981157: Improve UnknownHostException with EAI error details and other cleanups
Generify; remove compiler warnings, typos, casts; return status information via gai_strerror when getaddrinfo fails; show full stack of native failures

Reviewed-by: michaelm, alanb
2010-09-17 14:40:38 -07:00
Martin Buchholz
11cc8fa5e6 6981138: (process) Process.waitFor() may hang if subprocess has live descendants (lnx)
Do exit status handling before trying to close streams

Reviewed-by: alanb, dholmes
2010-09-17 14:35:00 -07:00
Mandy Chung
d9989f8e0e 6888546: restore System.initializeSystemClasses
Restore System.initializeSystemClasses prior to fix for 6797688

Reviewed-by: alanb
2010-09-17 14:16:14 -07:00
Alexander Potochkin
db3fbf8180 6542335: different behavior on knob of scroll bar between 1.4.2 and 5.0
Reviewed-by: peterz
2010-09-17 23:34:53 +04:00
Alexander Potochkin
1c45f6db9e 4330950: Lost newly entered data in the cell when resizing column width
Reviewed-by: peterz
2010-09-17 23:21:51 +04:00
Alexander Potochkin
76501ba258 6576054: NullPointerException when closing tooltip by pressing esc
Reviewed-by: rupashka
2010-09-17 23:16:19 +04:00
Alexander Potochkin
80129bc004 6632953: MetalComboBoxUI.getBaseline(JComponent, int, int) throws IAE for valid width/height
Reviewed-by: rupashka
2010-09-17 23:09:29 +04:00
Alexander Potochkin
f00f0ea36c 6606019: NPE and IAE are interchanged in specification for GroupLayout.Group class
Reviewed-by: rupashka
2010-09-17 23:00:34 +04:00
Alexander Potochkin
43560f0748 6982661: Complete JLayer component
Reviewed-by: malenkov
2010-09-17 22:50:44 +04:00
Lance Andersen
1832138a31 6985725: RowSetProvider has typo for the property javax.sql.rowset.RowSetFactory in the javadoc
Reviewed-by: darcy, ohair
2010-09-17 13:33:40 -04:00
Lance Andersen
979b63326f 6985400: DatabaseMetaData.generatedKeyAlwaysReturned, "indexe(s)" should be "index(es)"
Reviewed-by: darcy, ohair
2010-09-17 13:30:44 -04:00
Lance Andersen
45ad71b565 6984864: Exception when running acceptChanges with custom SyncProvider
Reviewed-by: darcy, ohair
2010-09-17 13:26:17 -04:00
Lance Andersen
c90d91d5fc 6983452: SyncProvider issue for JoinRowSet implementation
Reviewed-by: darcy, ohair
2010-09-17 13:23:33 -04:00
Zhengyu Gu
f0108fe6f5 Merge 2010-09-17 09:14:26 -07:00
Zhengyu Gu
f9eb9cccb9 6981753: Rebrand vm vendor property settings
Uses JDK_Version to determinate to set vm vendor to "Oracle Corporation" for JDK7 and later.

Reviewed-by: kamg, ohair, coleenp
2010-09-17 09:45:32 -04:00
Vladimir Kozlov
5e98ce13ab Merge 2010-09-16 16:48:40 -07:00
Christine Lu
a8cfef66b3 Added tag jdk7-b110 for changeset a74f1fdb0bb8 2010-09-16 15:13:23 -07:00
Christine Lu
47f544e802 Added tag jdk7-b110 for changeset 5c7242a0a4a5 2010-09-16 15:13:11 -07:00
Christine Lu
2299cf4c82 Added tag jdk7-b110 for changeset 763ed87a4ad6 2010-09-16 15:13:04 -07:00
Christine Lu
b23471dfea Added tag jdk7-b110 for changeset dcabd2849331 2010-09-16 15:13:03 -07:00
Christine Lu
d346ecbbb3 Added tag jdk7-b110 for changeset 184ac472c680 2010-09-16 15:12:57 -07:00
Christine Lu
e96d855817 Added tag jdk7-b110 for changeset 50870108a9a4 2010-09-16 15:12:53 -07:00
Christine Lu
910804d2fa Added tag jdk7-b110 for changeset 65cdbb9664e3 2010-09-16 15:12:48 -07:00
John Cuthbertson
3af63c10ab Merge 2010-09-16 13:45:55 -07:00
Lana Steuck
dc37688eb9 Merge 2010-09-16 11:20:36 -07:00
Lana Steuck
a682d9348d Merge 2010-09-16 11:19:43 -07:00
Lana Steuck
769dc2ec55 Merge 2010-09-16 11:18:41 -07:00
Lana Steuck
d70f7c5e50 Merge 2010-09-16 11:18:37 -07:00
Lana Steuck
4867065f0c Merge 2010-09-16 11:18:27 -07:00
Lana Steuck
cb5a0045e9 Merge 2010-09-16 11:18:21 -07:00
Lana Steuck
3921d2c36d Merge 2010-09-16 11:17:32 -07:00
Lana Steuck
734c8fdcc0 Merge 2010-09-16 11:16:02 -07:00
Lana Steuck
9ed4d2afe1 Merge 2010-09-16 11:15:07 -07:00
Jonathan Gibbons
e0caf9f660 6985115: tests create too much output
Reviewed-by: mcimadamore
2010-09-16 09:57:37 -07:00
Jonathan Gibbons
1144807f1f 6985181: Annotations lost from classfile
Reviewed-by: mcimadamore
2010-09-16 09:56:25 -07:00
Pavel Tisnovsky
331eea0db7 6984543: Test sun/java2d/DirectX/OnScreenRenderingResizeTest fails on GNOME
Testcase correction.

Reviewed-by: art
2010-09-16 13:25:20 +02:00
Sergey Malenkov
575b9e1d81 6741392: libmawt.so crash at Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting+0x4f
Reviewed-by: peterz
2010-09-16 09:07:03 +04:00
Christine Lu
7880134a10 Merge 2010-09-15 13:41:14 -07:00
Christine Lu
d192004010 Merge 2010-09-15 13:40:23 -07:00
Keith McGuigan
1ab450b848 6974813: JVM needs to use demand loading for its DTrace probes
Pass -xlazyload to the 'dtrace -G' invocation

Reviewed-by: phh, ysr
2010-09-15 16:28:19 -04:00
John Coomes
7100220f9b 6985022: update make/jprt.properties for new jdk7 tools
Reviewed-by: ohair, kvn
2010-09-15 10:39:13 -07:00
Alan Bateman
55b13f6d55 6984545: (fc) transferFrom does not throw NonReadableChannelException when target is size 0 and non-readable
Reviewed-by: forax
2010-09-15 15:13:50 +01:00
Vladimir Kozlov
7df5e956d1 6984368: Large default heap size does not allow to use zero based compressed oops
Take into account HeapBaseMinAddress and round down MaxPermSize

Reviewed-by: never
2010-09-14 17:19:35 -07:00
Tom Rodriguez
e65f42fe5e 6982370: SIGBUS in jbyte_fill
Reviewed-by: kvn
2010-09-14 14:09:24 -07:00
Sergey Malenkov
817fbc9a0b 6977726: JColorChooser.getPreviewPanel() returnes null starting from jdk7 b105
Reviewed-by: alexp
2010-09-14 22:05:03 +04:00
Sergey Malenkov
62180d1385 6635395: javax.swing.JDialog constructors should specify IAE throwing if invalid owners passed
Reviewed-by: alexp
2010-09-14 21:22:12 +04:00
Sergey Malenkov
c69aa15d0e 6978482: MetalBorders.ToolBarBorder should specify that its getBorderInsets impl accepts only JToolBar inst
Reviewed-by: alexp
2010-09-14 19:12:28 +04:00
Omair Majid
306f12db9e 6979979: Rounding error in font sizes selected by the GTK Look and Feel
Use floating point font sizes

Reviewed-by: prr
2010-09-14 10:45:38 -04:00
Karen Kinnear
7ac64fa594 Merge 2010-09-14 10:15:27 -04:00
Alex Menkov
ded210964b 4933700: RFE: Add way to get device from Receiver and Transmitter
Reviewed-by: art
2010-09-14 14:14:18 +04:00
Alex Menkov
bf0670e111 Merge 2010-09-14 14:09:26 +04:00
Alex Menkov
a6d309e0bb 4937708: AudioFormat.matches should allow NOT_SPECIFY in all fields
Reviewed-by: denis
2010-09-14 14:07:58 +04:00
Alex Menkov
4cf465320c 6944033: RFE: add PCM_FLOAT support
Reviewed-by: dav
2010-09-14 12:38:49 +04:00
Masayoshi Okutsu
65b5c68b97 6984418: (cal) GregorianCalendar.setWeekDate doesn't check parameter consistency in non-lenient
Reviewed-by: peytoia
2010-09-14 16:47:28 +09:00
John R Rose
52e3d262a1 6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions
Reviewed-by: never
2010-09-13 23:24:30 -07:00
Weijun Wang
ce46bf1737 6982840: sun/security/tools/jarsigner/emptymanifest.sh fails
Reviewed-by: dholmes
2010-09-14 10:18:16 +08:00
Vladimir Kozlov
7be7d19ba5 6984346: Remove development code in type.hpp
Remove code which use UseNewCode in type.hpp

Reviewed-by: never
2010-09-13 16:45:00 -07:00
Igor Veresov
aa21a39d97 6919069: client compiler needs to capture more profile information for tiered work
Added profiling of instanceof and aastore.

Reviewed-by: kvn, jrose, never
2010-09-13 12:10:49 -07:00
Jonathan Gibbons
e3c7ca0c53 6978974: [langtools] <findbugs> task should use ${target.java.home}
Reviewed-by: mcimadamore
2010-09-13 11:40:58 -07:00
Jesse Glick
0d2b8790d3 6965264: langtools build should use ${ant.core.lib} instead of ${ant.home}/lib/ant.jar
Reviewed-by: mcimadamore
2010-09-13 11:35:27 -07:00
Keith McGuigan
662f05162a 6983225: libjvm_db.so is not imported into solaris-x86 builds, and libjvm_dtrace.so not imported at all
Removed sparc-only libjvm_db code and added rules for libjvm_dtrace

Reviewed-by: ohair
2010-09-13 13:10:26 -04:00
John Cuthbertson
2b0e8a56df 6981746: G1: SEGV with -XX:+TraceGen0Time
Pass correct value for length to NumberSeq constructor. Guard dereferences of "body_summary" pointer with a NULL check.

Reviewed-by: tonyp, ysr
2010-09-13 10:00:24 -07:00
Keith McGuigan
b9760f8836 Merge 2010-09-13 07:38:10 -07:00
Karl Helgason
efedb2236a 6943053: Gervill: failures on invalid ranges and 14-bit banks
ModelStandardIndexedDirector fails on invalid ranges. Program changes with 14-bit banks where handled incorectly as 7-bit banks.

Reviewed-by: amenkov
2010-09-13 15:34:24 +04:00
Karl Helgason
0ffd8f54e0 6941027: Gervill update, April 2010
Reviewed-by: amenkov
2010-09-13 15:12:31 +04:00
Yong Jeffrey Huang
ef46184e89 Merge 2010-09-13 02:54:35 -07:00
Doug Lea
a4641686a0 6978087: jsr166y Updates
Simplify the ForkJoinPool API, reworking some of the internals

Reviewed-by: martin, dholmes, chegar
2010-09-13 09:55:03 +01:00
Weijun Wang
4c7ea63262 6845220: Need to update Policytool for Rowset 1.1 and JDBC 4.1 MR added permissions
Reviewed-by: lancea
2010-09-13 09:32:36 +08:00
Igor Veresov
0aba89442c 6984056: C1: incorrect code for integer constant addition on x64
Fix add/sub of constants to ints on x64

Reviewed-by: kvn
2010-09-11 15:21:37 -07:00
Y. Srinivas Ramakrishna
2cb284f394 Merge 2010-09-11 11:42:09 -07:00
Tomas Hurka
ce872b40fb 6765718: Indicate which thread throwing OOME when generating the heap dump at OOME
Emit a fake frame that makes it look like the thread is in the OutOfMemoryError zero-parameter constructor

Reviewed-by: dcubed
2010-09-11 08:18:31 +02:00
Y. Srinivas Ramakrishna
f53d569221 6983930: CMS: Various small cleanups ca September 2010
Fixed comment/documentation typos; converted some guarantee()s to assert()s.

Reviewed-by: jmasa
2010-09-10 17:07:55 -07:00
Lance Andersen
ea6a45ae32 6983984: Fixed typo in DatabaseMetaData.getPseudoColumns() javadocs
Reviewed-by: darcy
2010-09-10 18:51:11 -04:00
Yoshito Umaoka
fbca39ee5d 6875847: Java Locale Enhancement
Co-authored-by: Doug Felt <dougfelt@google.com>
Co-authored-by: Mark Davis <markdavis@google.com>
Reviewed-by: srl
2010-09-10 15:29:40 -07:00
Lance Andersen
36b68b66fa 6589685: JDBC 4.1 updates
Reviewed-by: darcy
2010-09-10 15:26:04 -04:00
Alan Bateman
9dbee5740e Merge 2010-09-10 18:50:52 +01:00
Alan Bateman
ba3ab12326 6983794: TEST_BUG: test/java/nio/channels/Selector/ConnectWrite.java failing
Reviewed-by: chegar
2010-09-10 18:48:49 +01:00
Sergey Malenkov
7640dd5bee 6915566: Closed swing tests failing with assert errors when run with -ea -esa
Reviewed-by: art, peterz
2010-09-10 20:48:17 +04:00
Karen Kinnear
218b17b913 6942092: Loader-constraint test is failing
Fix test string compare to match source update

Reviewed-by: dcubed, phh
2010-09-10 12:36:47 -04:00
Alan Bateman
0fb0f54897 6881498: (file) Re-examine DirectoryStream exception handling
Reviewed-by: forax
2010-09-10 16:36:48 +01:00
Chris Hegarty
b7f1641806 6980517: TEST_BUG sun\net\www\http\ChunkedInputStream\ChunkedEncodingTest.java NullPointerException
Reviewed-by: michaelm
2010-09-10 15:57:05 +01:00
Masayoshi Okutsu
dea3e2e152 6912560: Timezone is not set correctly on Win Vista when Security manager is present
6941137: DST broken in 6u18 when jre/lib/zi is moved elsewhere and replaced with symlink

Reviewed-by: peytoia
2010-09-10 17:51:53 +09:00
Yuka Kamiya
036b7a86a5 6983724: redundant @exception description for Character.Subset(String name)
Reviewed-by: okutsu
2010-09-10 17:22:36 +09:00
Yong Jeffrey Huang
310f795628 Merge 2010-09-09 23:30:59 -07:00
Yong Jeffrey Huang
6c5a8b341b 6980510: Fix for 6959252 broke JConsole mnemonic keys
Reviewed-by: mfang, yhuang
2010-09-09 23:01:43 -07:00
Kelly O'Hair
5ef912b870 6982137: Rebranding pass 2 - missed copyright changes
Reviewed-by: mbykov
2010-09-09 17:08:42 -07:00
Kelly O'Hair
fd65dbfc50 6982137: Rebranding pass 2 - missed copyright changes
Reviewed-by: mbykov
2010-09-09 16:29:40 -07:00
Kelly O'Hair
f7e31fc6c2 6982137: Rebranding pass 2 - missed copyright changes
Reviewed-by: mbykov
2010-09-09 16:26:46 -07:00
Christine Lu
e179cdf2fb Added tag jdk7-b109 for changeset e14215cd81b9 2010-09-09 15:08:03 -07:00
Christine Lu
3b975443ec Added tag jdk7-b109 for changeset f2f25ed74ff7 2010-09-09 15:07:51 -07:00
Christine Lu
f1d3652b00 Added tag jdk7-b109 for changeset 156995b5d710 2010-09-09 15:07:44 -07:00
Christine Lu
7998ff0c05 Added tag jdk7-b109 for changeset 6ae478428a17 2010-09-09 15:07:43 -07:00
Christine Lu
811a0f0155 Added tag jdk7-b109 for changeset 59327a28f6c0 2010-09-09 15:07:37 -07:00
Christine Lu
56ac0fe70e Added tag jdk7-b109 for changeset 7e79ddd7faee 2010-09-09 15:07:32 -07:00
Christine Lu
92a8efc635 Added tag jdk7-b109 for changeset bca3b1e3474c 2010-09-09 15:07:31 -07:00
Christine Lu
f90e336a8f Merge 2010-09-09 14:27:59 -07:00
Christine Lu
bca2254386 Merge 2010-09-09 13:49:03 -07:00
Christine Lu
3d2d72a852 Merge 2010-09-09 13:48:44 -07:00
Jonathan Gibbons
949983f6b0 6983239: TreeScanner does not scan default value for method
Reviewed-by: mcimadamore
2010-09-09 13:31:28 -07:00
Kumar Srinivasan
c73d500311 6390477: (launcher) replace unsafe usages of sprintf with snprintf
Reviewed-by: darcy, mchung
2010-09-09 11:50:40 -07:00
Pavel Tisnovsky
af2548723c 6934483: GCC 4.5 errors "suggest parentheses around something..." when compiling with -Werror and -Wall
These are minor changes fixing compile failure when -Wall -Werror flags are used under gcc 4.5.

Reviewed-by: twisti, kvn, rasbold
2010-09-09 05:24:11 -07:00
Andrew Brygin
899dcb6de0 6523398: OSS CMM: Need to implement writing ICC profile tags in new lcms library
Reviewed-by: igor, prr
2010-09-09 16:20:55 +04:00
Christian Thalinger
93c9356496 Merge 2010-09-09 01:43:48 -07:00
Masayoshi Okutsu
3a9f12ff35 4919632: RFE: SimpleDateFormat should fully support ISO8601 standard for timezone
Reviewed-by: peytoia
2010-09-09 15:37:57 +09:00
Athijegannathan Sundararajan
a5aa8a0943 6900149: IllegalStateException when compiling same files and DiagnosticListener is set
Reviewed-by: jjg
2010-09-09 09:42:45 +05:30
Tom Rodriguez
0ecb9e3298 6965815: OptimizeStringConcat: assert(!q->is_MergeMem()) failed with specjbb2000
Reviewed-by: kvn
2010-09-08 20:28:57 -07:00
Erik Trimble
2077fb46a1 6983320: Fork HS19 to HS20 - renumber Major and build numbers of JVM
Update the Major and Build numbers for HS20

Reviewed-by: jcoomes
2010-09-08 18:33:31 -07:00
Erik Trimble
95737d0cbb Merge 2010-09-08 18:33:04 -07:00
Christine Lu
9f20021e7a Merge 2010-09-08 17:29:34 -07:00
Joe Darcy
bad3865d4e 6294399: (reflect) Constructor.getName() returns fully qualified name of declaring class
Reviewed-by: alanb
2010-09-08 17:10:04 -07:00
Kelly O'Hair
9ed55aba81 6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches)
Reviewed-by: jcoomes
2010-09-08 15:13:31 -07:00
Kelly O'Hair
9f5159e694 6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches)
Reviewed-by: jcoomes
2010-09-08 15:12:37 -07:00
Christine Lu
39b38dd6cf Merge 2010-09-08 14:04:18 -07:00
Christine Lu
34668d416b Merge 2010-09-08 14:04:18 -07:00
Christine Lu
6663780cd0 Merge 2010-09-08 14:04:15 -07:00
Christine Lu
8fa6d6114b Merge 2010-09-08 14:04:13 -07:00
Matthias Klose
059de12e57 6561870: 3/3 Long javac compile lines fail due to command line length issues (agent compiles?)
Use javac's @filename construct to avoid long compile lines

Reviewed-by: ohair, twisti, never
2010-09-08 08:34:57 -07:00
Matthias Klose
d0cc3fc376 6983073: fix compiler error with GCC 4.4 or newer on SPARC
Reviewed-by: twisti
2010-09-08 04:50:26 -07:00
Kelly O'Hair
393c6a7961 Merge 2010-09-07 15:53:32 -07:00
Kelly O'Hair
a252fc3e6c Merge 2010-09-07 15:51:45 -07:00
Kelly O'Hair
729eada18b Merge 2010-09-07 15:51:24 -07:00
Kelly O'Hair
a7ac1a62c9 Merge 2010-09-07 15:50:58 -07:00
Kelly O'Hair
9b7b52281b Merge 2010-09-07 15:50:33 -07:00
Kelly O'Hair
f44a7ee069 Merge 2010-09-07 15:49:48 -07:00
Kelly O'Hair
2abe4f48b7 6982946: Change make/jprt.properties to defer to JPRT itself for jdk platform list
Reviewed-by: kamg
2010-09-07 15:17:43 -07:00
Kelly O'Hair
92e93b59c6 6982946: Change make/jprt.properties to defer to JPRT itself for jdk platform list
Reviewed-by: kamg
2010-09-07 15:16:24 -07:00
Kelly O'Hair
ac8ea93468 6982946: Change make/jprt.properties to defer to JPRT itself for jdk platform list
Reviewed-by: kamg
2010-09-07 15:16:01 -07:00
Kelly O'Hair
43a5a8356f 6982946: Change make/jprt.properties to defer to JPRT itself for jdk platform list
Reviewed-by: kamg
2010-09-07 15:15:33 -07:00
Kelly O'Hair
8890e99b2c 6982946: Change make/jprt.properties to defer to JPRT itself for jdk platform list
Reviewed-by: kamg
2010-09-07 15:14:49 -07:00
Kelly O'Hair
68ba7cf2a3 6982946: Change make/jprt.properties to defer to JPRT itself for jdk platform list
Reviewed-by: kamg
2010-09-07 15:13:58 -07:00
Igor Veresov
34b016cb42 6982921: assert(_entry_bci != InvocationEntryBci) failed: wrong kind of nmethod
Assertion fails during print compilation because nmethod::print_on() calls osr_entry_bci() without checking that the method is an osr method. The fix adds an appropriate check.

Reviewed-by: never, twisti
2010-09-07 14:16:50 -07:00
Tom Rodriguez
cf8bea660b 6982533: Crash in ~StubRoutines::jbyte_fill with AggressiveOpts enabled
Reviewed-by: kvn
2010-09-07 11:31:27 -07:00
Maurizio Cimadamore
4da9c57770 6970584: Flow.java should be more error-friendly
Added a post-attribution visitor that fixup uninitialized types/symbol in AST after erroneous attribution

Reviewed-by: jjg
2010-09-07 17:33:43 +01:00
Maurizio Cimadamore
c1ac5e8862 6981185: com.sun.tools.model.JavacTypes.contains() calls Type.contains instead of Types.containsType
Wrong implementation is causing trivial containment tests to fail unexpectedly (when such tests are executed using compiler API)

Reviewed-by: jjg
2010-09-07 17:32:52 +01:00
John Rose
cd74d63c12 6979327: method handle invocation should use casts instead of type parameters to specify return type
Infer return type for polymorphic signature calls according to updated JSR 292 draft

Reviewed-by: jjg
2010-09-07 17:32:27 +01:00
Maurizio Cimadamore
73825fc885 6337171: javac should create bridge methods when type variable bounds restricted
Javac should add synthetic overrides for inherited abstract methods in order to preserve binary compatibility

Reviewed-by: jjg
2010-09-07 17:31:54 +01:00
Keith McGuigan
06c0a051da 6982851: Add b107 machine classifications to jprt.properties file
See synopsis

Reviewed-by: ohair
2010-09-07 11:50:59 -04:00
Keith McGuigan
5c3276599b Merge 2010-09-07 11:38:09 -04:00
Andrew Brygin
2d2d444adf 6972495: javax/imageio/CachePremissionsTest/CachePermissionsTest.java failed
Reviewed-by: prr
2010-09-07 16:54:39 +04:00
Alan Bateman
ade072e46b 6971706: sun/nio/cs/ext/* classes are duplicated between rt.jar, charsets.jar, and localedata.jar
Reviewed-by: ohair
2010-09-07 08:36:10 +01:00
Jonathan Gibbons
c09fe5cafb 6930507: Symbols for anonymous and local classes made too late for use by java tree API
Reviewed-by: mcimadamore
2010-09-06 12:55:09 -07:00
Lance Andersen
657e4c62cb 6982510: Updated SQLException subclasses from the outback for 6861385 so that the copyrights only have 2 years
Reviewed-by: alanb
2010-09-04 15:37:26 -04:00
Lance Andersen
0b8bc76cef 6680198: UnmarshalException caused by incompatible serialVersionUID
Reviewed-by: sherman
2010-09-04 15:30:23 -04:00
Lance Andersen
96eebc523f 6843995: RowSet 1.1 updates
Reviewed-by: darcy, valeriep
2010-09-04 13:56:27 -04:00
Lance Andersen
a239e8e462 6861385: Updated SQLException subclasses to clarify that they may be thrown for vendor specific conditions
Reviewed-by: alanb
2010-09-04 12:21:56 -04:00
Igor Veresov
2c66a6c3fd 6953144: Tiered compilation
Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation.

Reviewed-by: kvn, never, phh, twisti
2010-09-03 17:51:07 -07:00
Joe Darcy
7d47787007 4881419: The type of X[].clone() should be X[]
Reviewed-by: martin
2010-09-03 15:00:10 -07:00
Alan Bateman
225ef04d34 Merge 2010-09-03 21:03:45 +01:00
Christine Lu
990a6d67a1 Added tag jdk7-b108 for changeset 44d515c5b5b6 2010-09-03 12:50:19 -07:00
Christine Lu
57cf63def3 Added tag jdk7-b108 for changeset b5444f4cf92e 2010-09-03 12:50:07 -07:00
Christine Lu
f4bbd7d192 Added tag jdk7-b108 for changeset 4fc84aaaa7ab 2010-09-03 12:49:59 -07:00
Christine Lu
9cf82cab33 Added tag jdk7-b108 for changeset 47349e388f34 2010-09-03 12:49:59 -07:00
Christine Lu
aaf5561c57 Added tag jdk7-b108 for changeset 9aa5fae6f446 2010-09-03 12:49:53 -07:00
Christine Lu
e4db025a73 Added tag jdk7-b108 for changeset 82e065bffb94 2010-09-03 12:49:48 -07:00
Christine Lu
5e55abdeff Added tag jdk7-b108 for changeset eed672dd8675 2010-09-03 12:49:47 -07:00
Lana Steuck
2111493f31 Merge 2010-09-03 12:00:52 -07:00
Lana Steuck
5b58b51e22 Merge 2010-09-03 12:00:21 -07:00
Keith McGuigan
c5ccd42ac0 6870851: Bad frame_chop in StackMapTable crashes JVM
Must check locals for null when processing chop frame

Reviewed-by: dholmes, dcubed
2010-09-03 14:47:05 -04:00
Kumar Srinivasan
ef7b8cbc9e 6981001: (launcher) EnsureJREInstallation is not being called in order
Reviewed-by: darcy
2010-09-03 07:59:21 -07:00
Alan Bateman
2fdbbbae4e 6965072: Need API to create SDP sockets
Reviewed-by: michaelm
2010-09-03 13:11:54 +01:00
Anton Tarasov
fdaf5c86b2 6867293: switching TAB in a browser doesn't deactivate EmbeddedFrame
Reviewed-by: dcherepanov, art
2010-09-03 11:08:41 +04:00
Athijegannathan Sundararajan
977ad1ae6a 6956462: AssertionError exception thrown in the Compiler Tree API in JDK 7
Reviewed-by: jjg
2010-09-03 12:36:43 +05:30
Athijegannathan Sundararajan
60cf6eb1de 6458823: Messager messages on TypeParamterElements to not include position information
Reviewed-by: jjg
2010-09-03 11:25:43 +05:30
Lana Steuck
3069fdf9a9 Merge 2010-09-02 22:11:39 -07:00
Lana Steuck
abe7f3a325 Merge 2010-09-02 22:11:05 -07:00
Lana Steuck
9be3194788 Merge 2010-09-02 22:09:19 -07:00
Lana Steuck
1b9e0aa8c7 Merge 2010-09-02 22:09:16 -07:00
Lana Steuck
d8dfb1b778 Merge 2010-09-02 22:07:45 -07:00
Lana Steuck
1b0d81a994 Merge 2010-09-02 22:07:42 -07:00
Jonathan Gibbons
753b8d0fea 6921495: spurious semicolons in class def cause empty NOPOS blocks
Reviewed-by: mcimadamore
2010-09-02 18:26:21 -07:00
Lana Steuck
022ee216f4 Merge 2010-09-02 12:17:21 -07:00
Tom Rodriguez
6e78f6cb4b 6981773: incorrect fill value with OptimizeFill
Reviewed-by: kvn, twisti
2010-09-02 11:40:02 -07:00
Naoto Sato
9a37a1e776 6930062: Need to remove or build as part of the test file jdk/test/java/util/Locale/data/deflocale.exe
Reviewed-by: okutsu
2010-09-02 11:13:42 -07:00
Naoto Sato
caef089b98 6981759: copyright header fix for test/java/util/Locale/LocaleCategory.java
Reviewed-by: okutsu
2010-09-02 11:09:09 -07:00
Athijegannathan Sundararajan
183a7b7797 6458749: TypeParameterElement.getEnclosedElements throws NPE within javac
Reviewed-by: jjg
2010-09-02 23:10:05 +05:30
Lana Steuck
34f54b7bb3 Merge 2010-09-02 00:02:23 -07:00
Masayoshi Okutsu
bb11fa02a6 Merge 2010-09-02 10:52:52 +09:00
Mandy Chung
1cef1a3806 6977887: (doc) Java 6 API missing info about encoding parameter in storeToXML method
Reviewed-by: sherman
2010-09-01 17:37:45 -07:00
Lana Steuck
77b5bbb1b5 Merge 2010-09-01 16:15:57 -07:00
Joe Wang
db3c413268 6981408: Upgrade jaxp to 1.4.4
Reviewed-by: darcy
2010-09-01 13:28:07 -07:00
Martin Buchholz
080f83060e 6981145: (se) Eliminate JNI*Critical when creating pipes and other cleanups
Avoid *Critical; fix compile warnings; improve readability

Reviewed-by: alanb
2010-09-01 09:45:08 -07:00
John R Rose
ca3dbff3f8 6979683: inconsistent interaction of reference cast with box/unbox conversions leaves out a useful case
Allow casts which narrow and then unbox.

Reviewed-by: mcimadamore
2010-09-01 03:19:16 -07:00
Tom Rodriguez
690e6e149c Merge 2010-09-01 00:40:05 -07:00
Naoto Sato
63495e2114 6981466: Adding missing test LocaleCategory.java
Reviewed-by: okutsu
2010-08-31 23:56:17 -07:00
Masayoshi Okutsu
d950166573 4267450: (cal) API: Need public API to calculate, format and parse "year of week"
6549953: (cal) WEEK_OF_YEAR and DAY_OF_YEAR calculation problems around Gregorian cutover

Reviewed-by: peytoia
2010-09-01 15:19:13 +09:00
Erik Trimble
624d93d4fa Added tag hs19-b06 for changeset 97604d92cdcf 2010-08-31 17:23:45 -07:00
Erik Trimble
9efc3ebc3f Merge 2010-08-31 16:48:07 -07:00
Naoto Sato
6d2cb04013 4700857: RFE: separating user locale and user interface locale
Reviewed-by: okutsu
2010-08-31 11:27:10 -07:00
Mandy Chung
2aa1723b39 6977548: Broken link in ClassLoader.defineClass javadoc
Reviewed-by: valeriep
2010-08-31 09:17:46 -07:00
Mandy Chung
c8f3efcc75 6981005: TEST BUG: java/lang/ClassLoader/TestCrossDelegate.sh timeout on windows
Increase timeout value

Reviewed-by: alanb
2010-08-31 09:15:34 -07:00
Andrei Dmitriev
41e1560d14 6480547: REG: bug 4118621 which got Integrated in 1.1.8 fails in mustang from b25 onwards
6808185: test/closed/java/awt/Menu/NullMenuLabelTest crashes

Reviewed-by: dcherepanov
2010-08-31 15:05:09 +04:00
Ivan P Krylov
5d5bcb4bca 6979444: add command line option to print command line flags descriptions
Implementation of a nonproduct boolean flag XX:PrintFlagsWithComments

Reviewed-by: kamg, dholmes, dsamersoff
2010-08-31 03:14:00 -07:00
Jonathan Gibbons
0930f81131 6403465: javac should defer diagnostics until it can be determined they are persistent
Reviewed-by: mcimadamore, darcy
2010-08-30 18:03:35 -07:00
Tom Rodriguez
84aedee955 6969586: OptimizeStringConcat: SIGSEGV in LoadNode::Value()
Reviewed-by: kvn
2010-08-30 17:27:35 -07:00
Kelly O'Hair
7f6ca92673 6962317: jdk7 jaxws source bundle still needs rebranding
6955300: Missing files in the jaf source bundle

Reviewed-by: ramap
2010-08-30 16:00:46 -07:00
Kelly O'Hair
1edc810119 6981043: Clean out all native code makefile logic from corba repository
Reviewed-by: jjg
2010-08-30 14:39:42 -07:00
Vladimir Kozlov
3f7bac73fe 6980978: assert(mt == t->xmeet(this)) failed: meet not commutative
Fix code in TypeAryPtr::xmeet() for constant array.

Reviewed-by: never
2010-08-30 11:02:53 -07:00
Antonios Printezis
8098787972 Merge 2010-08-30 10:58:13 -07:00
Antonios Printezis
4b9d7640a7 Merge 2010-08-30 13:00:51 -04:00
Weijun Wang
7fe5113fe7 6911951: NTLM should be a supported Java SASL mechanism
Reviewed-by: vinnie, michaelm
2010-08-30 14:37:43 +08:00
Lana Steuck
0c82e12244 Merge 2010-08-29 22:42:08 -07:00
Lana Steuck
ae1cce3a74 Merge 2010-08-29 22:41:28 -07:00
Martin Buchholz
aff3ad21b8 6980747: Runtime.exec can fail due to SecurityException (lnx)
Add missing doPrivileged to UNIXProcess.java.linux

Reviewed-by: alanb
2010-08-28 12:15:52 -07:00
Daniel D. Daugherty
d7850a0df7 Merge 2010-08-27 21:31:15 -07:00
Jonathan Gibbons
e96eb944c2 6980707: Reduce use of IOException in JavaCompiler
Reviewed-by: darcy
2010-08-27 17:59:08 -07:00
Tom Rodriguez
150ca9b5b1 Merge 2010-08-27 17:35:08 -07:00
Tom Rodriguez
08d9e03b81 4809552: Optimize Arrays.fill(...)
Reviewed-by: kvn
2010-08-27 17:33:49 -07:00
Jonathan Gibbons
fba51e328b 6570730: com.sun.source.tree.ModifiersTree.getFlags() should return class type
Reviewed-by: mcimadamore
2010-08-27 17:21:17 -07:00
Jonathan Gibbons
99d83d8d85 6980724: test/tools/javac/InterfaceAssert.java sometimes fails
Reviewed-by: darcy
2010-08-27 17:14:51 -07:00
Keith McGuigan
6247222cf6 6980262: Memory leak when exception is thrown in static initializer
Use resource memory instead of c-heap for the exception message

Reviewed-by: phh, jmasa
2010-08-27 15:05:28 -04:00
Antonios Printezis
6c64bcc393 Merge 2010-08-27 10:44:06 -07:00
Antonios Printezis
b513e518d2 6980206: G1: assert(has_undefined_max_size, "Undefined max size");
An assert in the management.cpp is too strong and assumes the max size is always defined on memory pools, even when we don't need to use it.

Reviewed-by: mchung, johnc
2010-08-27 13:34:14 -04:00
Kevin Walls
2114fddad9 6980392: TEST_BUG: gc/6581734/Test6581734.java has typo
Simple correction in testcase

Reviewed-by: mchung
2010-08-27 16:57:04 +01:00
Christian Thalinger
6a0c40f1fe 6961697: move nmethod constants section before instruction section
This is a preparation for 6961690.

Reviewed-by: kvn, never
2010-08-27 01:51:27 -07:00
Christine Lu
38d1512949 Added tag jdk7-b107 for changeset c3c1f7961b1a 2010-08-26 16:17:15 -07:00
Christine Lu
e3a36e4914 Added tag jdk7-b107 for changeset d2462a7b07c5 2010-08-26 16:17:02 -07:00
Christine Lu
a805814fd4 Added tag jdk7-b107 for changeset a8c1cf6a14b9 2010-08-26 16:16:55 -07:00
Christine Lu
a133e18a3b Added tag jdk7-b107 for changeset e8ced0e364f9 2010-08-26 16:16:55 -07:00
Christine Lu
72ce2b8c22 Added tag jdk7-b107 for changeset ce4b745d5d58 2010-08-26 16:16:49 -07:00
Christine Lu
1e6bf5f9e1 Added tag jdk7-b107 for changeset a9fb2c5cf4df 2010-08-26 16:16:44 -07:00
Christine Lu
7f1dcd2d0f Added tag jdk7-b107 for changeset 86c8feba9218 2010-08-26 16:16:39 -07:00
Jonathan Gibbons
98f8b67c3a 6980017: javap -XDdetail:source behaves badly if source not available
Reviewed-by: ksrini
2010-08-26 16:13:33 -07:00
Jonathan Gibbons
de9921986c 6604599: ToolProvider should be less compiler-specific
Reviewed-by: darcy
2010-08-26 15:17:17 -07:00
Vladimir Kozlov
45d90a7775 6976400: "Meet Not Symmetric"
Use NULL as klass for TypeAryPtr::RANGE. Add klass verification into TypeAryPtr ctor.

Reviewed-by: never
2010-08-26 11:05:25 -07:00
David Holmes
670922cd27 6978641: Fix for 6929067 introduces additional overhead in thread creation/termination paths
Disable stack bounds checks in product mode other than for the initial thread

Reviewed-by: coleenp, jcoomes, aph
2010-08-25 21:29:05 -04:00
Joe Darcy
0f3dd95156 6980019: Finish rename of ARM -> try-with-resources in jdk repository
Reviewed-by: jjg
2010-08-25 15:35:45 -07:00
Naoto Sato
34fda8a36d 6875847: Java Locale Enhancement
Fix for javac to allow "sun.util.locale" package accessible.

Reviewed-by: jjg
2010-08-25 15:31:46 -07:00
John Coomes
be6d973a49 6978300: G1: debug builds crash if ParallelGCThreads==0
Reviewed-by: tonyp, ysr
2010-08-25 14:39:55 -07:00
Jonathan Gibbons
37fcc133f6 6960424: new option -Xpkginfo for better control of when package-info.class is generated
Reviewed-by: mcimadamore
2010-08-25 11:40:25 -07:00
Jonathan Gibbons
0e1661c2f1 6979564: ":" for path separator in dist/bin/javac does not work on Windows
Reviewed-by: jjh
2010-08-25 11:24:30 -07:00
Tom Rodriguez
d486ceec9f Merge 2010-08-25 10:31:45 -07:00
Antonios Printezis
1456a4c423 6941275: G1: The MemoryPools are incorrectly supported for G1
The way we were caluclating the max value meant that it might fluctuate during the run and this broke some assumptions inside the MBeans framework. This change sets the max value of each pool to -1, which means undefined according to the spec.

Reviewed-by: mchung, johnc
2010-08-25 08:44:58 -04:00
Christian Thalinger
a4b2fe3b1c 6978355: renaming for 6961697
This is the renaming part of 6961697 to keep the actual changes small for review.

Reviewed-by: kvn, never
2010-08-25 05:27:54 -07:00
Jonathan Gibbons
19a9622303 6929404: Filer.getResource(SOURCE_PATH, ...) does not work when -sourcepath contains >1 entry
Reviewed-by: darcy
2010-08-24 15:09:21 -07:00
Jonathan Gibbons
d6c5c969f0 6935638: -implicit:none prevents compilation with annotation processing
Reviewed-by: darcy
2010-08-24 11:31:00 -07:00
Gary Benson
e0b5ab6bcb 6976186: Integrate Shark
Shark is a JIT compiler for Zero that uses the LLVM compiler infrastructure.

Reviewed-by: ohair
2010-08-24 13:27:45 +01:00
Artem Ananiev
28253f9cb3 6949936: Provide API for running nested events loops, similar to what modal dialogs do
Reviewed-by: ant, anthony
2010-08-24 12:54:46 +04:00
Lana Steuck
026d5787bb Merge 2010-08-23 19:14:55 -07:00
Lana Steuck
f2af16c789 Merge 2010-08-23 19:14:20 -07:00
Lana Steuck
0bd861fdb9 Merge 2010-08-23 19:13:15 -07:00
Lana Steuck
9f2b02319f Merge 2010-08-23 19:12:01 -07:00
Y. Srinivas Ramakrishna
23ee6aa5f6 6910183: CMS: assert(_index < capacity(),"_index out of bounds")
Weakened a too-strong, off-by-one assert; added code to keep track of and report any overflows at appropriate level of verbosity.

Reviewed-by: jcoomes, tonyp
2010-08-23 17:51:10 -07:00
Jonathan Gibbons
c12f12ce8e 6976747: JCDiagnostic: replace "boolean mandatory" with new "Set<JCDiagnostic.Flag>"
Reviewed-by: mcimadamore
2010-08-23 15:13:33 -07:00
Jonathan Gibbons
c72513c86b 6975005: improve JavacProcessingEnvironment.Round abstraction
Reviewed-by: darcy
2010-08-23 11:56:53 -07:00
Kumar Srinivasan
8f806006bd 6966740: (pack200) need to add the timezone regression test
Reviewed-by: jrose
2010-08-23 10:47:42 -07:00
Kumar Srinivasan
6f001f2e2f 6969063: (pack200) The default value of Pack200.Packer.SEGMENT_LIMIT property is empty string instead of -1
Reviewed-by: jrose
2010-08-23 10:19:20 -07:00
Chris Hegarty
f2e822b50f 6977851: NPE from FileURLConnection.connect
Reviewed-by: michaelm
2010-08-23 21:59:13 +01:00
Vladimir Kozlov
3756a7daa9 6896381: CTW fails share/vm/ci/bcEscapeAnalyzer.cpp:99, assert(_stack_height < _max_stack,"stack overflow")
Check constant Tag type instead of calling get_constant().

Reviewed-by: never
2010-08-23 09:09:36 -07:00
Maurizio Cimadamore
92de62f50b 6978574: return statement in try block with multi-catch causes ClassFormatError
Wrong nested loops in Gen.java causes javac to generate bad bytecode

Reviewed-by: jjg
2010-08-23 17:00:07 +01:00
Maurizio Cimadamore
f5dd0bab3f 6932571: Compiling Generics causing Inconvertible types
Types.rewriteQuantifiers() does not work well with recursive type-variable bounds

Reviewed-by: jjg
2010-08-23 16:59:30 +01:00
Daniel D. Daugherty
11da6c2e2a Merge 2010-08-23 08:44:03 -07:00
Kumar Srinivasan
226ae73a8d 6531345: Memory leak in unpack200
Reviewed-by: jrose
2010-08-23 08:18:08 -07:00
Alan Bateman
f92a419833 6431344: (fc) FileChannel.transferTo() doesn't work if address space runs out
Reviewed-by: forax, chegar
2010-08-23 17:35:18 +01:00
Alan Bateman
b7ca44871e 6978511: (file) Path.toRealPath should fail if not resolving links and file does not exist
Reviewed-by: forax, chegar
2010-08-23 17:11:07 +01:00
Chris Hegarty
b0942f5a43 6965924: java.net.HttpCookie using static SimpleDateFormat which is not thread safe
Reviewed-by: michaelm
2010-08-23 16:27:56 +01:00
Chris Hegarty
107837ccd7 6968584: Thread should not be Cloneable
Reviewed-by: dholmes
2010-08-23 14:35:22 +01:00
Yuka Kamiya
cd78cc6fdb 6977550: (tz) Support tzdata2010l
Reviewed-by: okutsu
2010-08-23 14:14:52 +09:00
John R Rose
c7e50e8305 6912064: type profiles need to be exploited more for dynamic language support
Reviewed-by: kvn
2010-08-20 23:40:30 -07:00
Erik Trimble
5530cf1226 6978915: Remove Mercurial tags for Hotspot 19 Build 06
Delete the hs19-b06 Hg tag, as it was put on incorrectly

Reviewed-by: jcoomes
2010-08-20 14:24:47 -07:00
Erik Trimble
8a3ced949a 6978889: Remove premature change of build number to Hotspot 19 Build 07
Change the build number back to 06

Reviewed-by: jcoomes
2010-08-20 12:57:42 -07:00
Antonios Printezis
ec4173f8cc Merge 2010-08-20 12:01:10 -07:00
Antonios Printezis
0597c930f1 Merge 2010-08-20 13:17:08 -04:00
Tom Rodriguez
519c627fe5 Merge 2010-08-20 09:55:50 -07:00
Kumar Srinivasan
05802c5a7a Merge 2010-08-20 08:49:48 -07:00
Kumar Srinivasan
28fff3ad36 6966737: (pack200) the pack200 regression tests need to be more robust
Reviewed-by: jrose, ohair
2010-08-20 08:18:54 -07:00
Erik Trimble
1a4c564ed2 Merge 2010-08-20 04:08:08 -07:00
Erik Trimble
8a49894619 6978726: Bump the HS19 build number to 07
Update the HS19 build number to 07

Reviewed-by: jcoomes
2010-08-20 03:47:09 -07:00
Erik Trimble
3a6039c5be Added tag hs19-b06 for changeset a5c5892863c7 2010-08-19 18:51:34 -07:00
Erik Trimble
8eb6166ca1 Added tag hs19-b05 for changeset ffcd9ec2df9a 2010-08-19 18:51:24 -07:00
Christine Lu
d13610cef5 Added tag jdk7-b106 for changeset 9af6b80c6f4b 2010-08-19 15:13:23 -07:00
Christine Lu
6a8e4a71ed Added tag jdk7-b106 for changeset 546a8efadb54 2010-08-19 15:13:12 -07:00
Christine Lu
190c5bdf8a Added tag jdk7-b106 for changeset c61d5f1854de 2010-08-19 15:13:06 -07:00
Christine Lu
212be87e66 Added tag jdk7-b106 for changeset 443acf814b79 2010-08-19 15:13:06 -07:00
Christine Lu
ce65360838 Added tag jdk7-b106 for changeset 60bd1c133a48 2010-08-19 15:13:01 -07:00
Christine Lu
04d8c6d439 Added tag jdk7-b106 for changeset 07335a216c91 2010-08-19 15:12:56 -07:00
Christine Lu
29264f0049 Added tag jdk7-b106 for changeset 3367eadd6595 2010-08-19 15:12:55 -07:00
Tom Rodriguez
a54b1ff70e 6978249: spill between cpu and fpu registers when those moves are fast
Reviewed-by: kvn
2010-08-19 14:51:47 -07:00
Kumar Srinivasan
facee61c79 6888127: java.util.jar.Pack200.Packer Memory Leak
Reviewed-by: jrose
2010-08-19 14:08:04 -07:00
Y. Srinivas Ramakrishna
500e68f0b1 6978533: CMS: Elide BOT update asserts until 6977974 is fixed correctly
Reviewed-by: jcoomes, jmasa, tonyp
2010-08-19 12:02:10 -07:00
Pavel Tisnovsky
b002fe5992 6885308: The incorrect -XX:StackRedPages, -XX:StackShadowPages, -XX:StackYellowPages could cause VM crash
Test minimal stack sizes given (also fixed linux compilation error)

Reviewed-by: never, phh, coleenp
2010-08-19 14:23:59 -04:00
Antonios Printezis
e886514c96 Merge 2010-08-19 14:08:58 -04:00
Maurizio Cimadamore
634d001c64 6977800: Regression: invalid resolution of supertype for local class
Resolution of superclass/superinterfaces in extends/implements clause skips local classes

Reviewed-by: jjg
2010-08-19 11:54:25 +01:00
Maurizio Cimadamore
d56e09153a 6885255: Improve usability of raw warnings
Raw warnings should be disabled in (i) instanceof expressions and (ii) when java.lang.Class is not parameterized

Reviewed-by: jjg
2010-08-19 11:52:58 +01:00
Maurizio Cimadamore
71962ebfb0 6886247: regression: javac crashes with an assertion error in Attr.java
Capture conversion does not work on nested types

Reviewed-by: jjg
2010-08-19 11:50:50 +01:00
Weijun Wang
c736a3d9c7 6921610: 1.6 update 17 and 18 throw java.lang.IndexOutOfBoundsException
Reviewed-by: vinnie, xuelei
2010-08-19 12:24:53 +08:00
Weijun Wang
34198dbc4c 6976536: Solaris JREs do not have the krb5.kdc.bad.policy configured by default
Reviewed-by: valeriep
2010-08-19 11:26:32 +08:00
John Cuthbertson
846cfeee6e Merge 2010-08-18 17:44:33 -04:00
Kelly O'Hair
fb2ceb5470 6932743: Makefiles not parsing version strings with - from uname -r
Reviewed-by: mchung
2010-08-18 13:46:39 -07:00
Kelly O'Hair
737e6157fe 6974005: Use of cygpath in Makefile logic needs to silence error messages
Reviewed-by: mchung
2010-08-18 13:46:02 -07:00
Y. Srinivas Ramakrishna
fc61f2721e 6977970: CMS: concurrentMarkSweepGeneration.cpp:7947 assert(addr <= _limit) failed: sweep invariant
Allow for the possibility (when the heap is expanding) that the sweep might skip over and past, rather than necessarily step on, the sweep limit determined at the beginning of a concurrent marking cycle.

Reviewed-by: jmasa, tonyp
2010-08-18 11:39:21 -07:00
John Cuthbertson
3b69a96c58 6977924: Changes for 6975078 produce build error with certain gcc versions
The changes introduced for 6975078 assign badHeapOopVal to the _allocation field in the ResourceObj class. In 32 bit linux builds with certain versions of gcc this assignment will be flagged as an error while compiling allocation.cpp. In 32 bit builds the constant value badHeapOopVal (which is cast to an intptr_t) is negative. The _allocation field is typed as an unsigned intptr_t and gcc catches this as an error.

Reviewed-by: jcoomes, ysr, phh
2010-08-18 10:59:06 -07:00
Gary Benson
a325f5589a 6977640: Zero and Shark fixes
A number of fixes for Zero and Shark.

Reviewed-by: twisti
2010-08-18 01:22:16 -07:00
Abhijit Saha
a3319eba8a 6977952: Test: Sync missing tests from hs16.3 to hs17.x
Reviewed-by: wrockett
2010-08-17 22:52:50 -07:00
Erik Trimble
2929434832 Merge 2010-08-18 16:11:21 -07:00
Xueming Shen
51e553fe0e 6969651: TEST_BUG: tools/jar/JarEntryTime.java failed on JDK7 when run on NFS
Changed to use more appropriate nfs file time

Reviewed-by: martin
2010-08-17 16:01:54 -07:00
Antonios Printezis
ce2883fbbd 6975964: G1: print out a more descriptive message for evacuation failure when +PrintGCDetails is set
We're renaming "evacuation failure" to "to-space overflow". I'm also piggy-backing a small additional change which removes the "Mark closure took..." output.

Reviewed-by: ysr, johnc
2010-08-17 14:40:00 -04:00
Antonios Printezis
7125621712 6974928: G1: sometimes humongous objects are allocated in young regions
As the title says, sometimes we are allocating humongous objects in young regions and we shouldn't.

Reviewed-by: ysr, johnc
2010-08-17 14:40:00 -04:00
Antonios Printezis
1f0201f90b 6959014: G1: assert(minimum_desired_capacity <= maximum_desired_capacity) failed: sanity check
There are a few issues in the code that calculates whether to resize the heap and by how much: a) some calculations can overflow 32-bit size_t's, b) min_desired_capacity is not bounded by the max heap size, and c) the assrt that fires is in the wrong place. The fix also includes some tidying up of the related verbose code.

Reviewed-by: ysr, jmasa
2010-08-17 14:40:00 -04:00
Erik Trimble
1b2d47b99b Merge 2010-08-17 09:43:34 -07:00
Michael McMahon
8eca7db307 6339649: URI.create should include a detail message when throwing IllegalArgumentException
Create enclosing exception with message of enclosed

Reviewed-by: alanb, chegar
2010-08-17 14:49:01 +01:00
Y. Srinivas Ramakrishna
77f845359a 6948538: CMS: BOT walkers can fall into object allocation and initialization cracks
GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode.

Reviewed-by: chrisphi, johnc, poonam
2010-08-16 15:58:42 -07:00
Mandy Chung
a33a3ae92b 6921234: TEST_BUG: java/lang/ClassLoader/deadlock/TestCrossDelegate.sh needs to be modified for Cygwin
Add check for CYGWIN

Reviewed-by: ohair
2010-08-16 15:36:13 -07:00
Jonathan Gibbons
d7787c25cf 6976833: options included twice in Example SimpleCompiler
Reviewed-by: darcy
2010-08-16 14:59:21 -07:00
Christine Lu
e66e60f894 Merge 2010-08-16 14:47:00 -07:00
Maurizio Cimadamore
2801325742 6369605: Unconstrained type variables fails to include bounds
Unconstrained type-variables with recursive bounds are not inferred properly

Reviewed-by: jjg
2010-08-16 14:58:10 +01:00
Maurizio Cimadamore
91bd86216a 6976649: javac does not enforce required annotation elements in arrays
Type annotation should take advantage of recursive annotation checking

Reviewed-by: jjg
2010-08-16 14:56:23 +01:00
John Cuthbertson
becf7cffb3 Merge 2010-08-14 00:47:52 -07:00
Tom Rodriguez
0f1f7c3b7f 6976372: # assert(_owner == Thread::current()) failed: invariant
Reviewed-by: kvn, twisti
2010-08-13 15:14:00 -07:00
Gary Benson
5223492f6b 6976186: Integrate Shark
Shark is a JIT compiler for Zero that uses the LLVM compiler infrastructure.

Reviewed-by: ohair
2010-08-13 22:26:27 +01:00
Christine Lu
aff549a4ab Added tag jdk7-b105 for changeset 60298a435212 2010-08-13 11:38:43 -07:00
Christine Lu
f11a30cdf8 Added tag jdk7-b105 for changeset 6a99ae51ed62 2010-08-13 11:38:30 -07:00
Christine Lu
95a3c51ea7 Added tag jdk7-b105 for changeset fe0fb5c541c6 2010-08-13 11:38:22 -07:00
Christine Lu
daf33b796d Added tag jdk7-b105 for changeset 989115191d21 2010-08-13 11:38:21 -07:00
Christine Lu
21a5efbe75 Added tag jdk7-b105 for changeset 1b104350a980 2010-08-13 11:38:16 -07:00
Christine Lu
1996b05795 Added tag jdk7-b105 for changeset 0e859833ce7c 2010-08-13 11:38:10 -07:00
Christine Lu
c9abbe87df Added tag jdk7-b105 for changeset 50afdd611849 2010-08-13 11:38:08 -07:00
Erik Trimble
ba5d36a6d6 6977051: Bump the HS19 build number to 06
Update the HS19 build number to 06

Reviewed-by: jcoomes
2010-08-13 10:56:17 -07:00
Erik Trimble
728414c987 Merge 2010-08-13 10:55:42 -07:00
Daniel D. Daugherty
ae38e974f0 Merge 2010-08-13 07:33:20 -07:00
Yong Jeffrey Huang
02a9f5a885 Merge 2010-08-13 01:09:02 -07:00
Tom Rodriguez
a96301c84e 6975006: assert(check.is_deoptimized_frame()) failed: missed deopt
Reviewed-by: kvn, twisti
2010-08-12 23:34:34 -07:00
Lana Steuck
673cb7c129 Merge 2010-08-12 19:59:10 -07:00
Lana Steuck
f87e976a33 Merge 2010-08-12 19:58:19 -07:00
Lana Steuck
19addb504b Merge 2010-08-12 19:55:48 -07:00
Mandy Chung
8808e17f23 Merge 2010-08-12 16:47:13 -07:00
Tom Rodriguez
1d736d2851 6974176: ShouldNotReachHere, instanceKlass.cpp:1426
Reviewed-by: kvn, twisti
2010-08-12 16:38:23 -07:00
Mandy Chung
abc4e4d7d0 6973831: NPE when printing stack trace of OOME
Initialize suppressedExceptions field to null

Reviewed-by: briangoetz, dholmes, forax
2010-08-12 16:36:49 -07:00
Alan Bateman
49d555edee 6971825: (so) improve scatter/gather implementation
Reviewed-by: chegar, sherman
2010-08-12 19:53:25 +01:00
Lana Steuck
19009fcd51 Merge 2010-08-12 11:23:15 -07:00
John Coomes
bb7d4b2b35 6976378: ParNew: stats are printed unconditionally in debug builds
Reviewed-by: tonyp
2010-08-11 13:12:28 -07:00
Vladimir Kozlov
b092cb33e6 6973329: C2 with Zero based COOP produces code with broken anti-dependency on x86
Recompile without subsuming loads if RA try to clone a node with anti_dependence.

Reviewed-by: never
2010-08-11 10:48:20 -07:00
Denis Lila
a3c07597f2 6976265: No STROKE_CONTROL
Implemented it in sun.java2d.pisces by adding a PathIterator.

Reviewed-by: flar
2010-08-11 10:05:56 -04:00
Gary Benson
d7310fb0f7 6976186: integrate Shark HotSpot changes
Shark is a JIT compiler for Zero that uses the LLVM compiler infrastructure.

Reviewed-by: kvn, twisti
2010-08-11 05:51:21 -07:00
Yong Jeffrey Huang
04d90d25e3 6959252: convert the anonymous arrays to named arrays in Java List Resource files
Reviewed-by: katakai, psun
2010-08-11 02:22:32 -07:00
Christian Thalinger
c9ac8cc788 6975855: don't emit deopt MH handler in C1 if not required
This CR implements the same for C1 as 6926782 for C2.

Reviewed-by: never
2010-08-11 01:17:27 -07:00
Jeremy Manson
b36bff7dcd 6378314: Bad warning message when agent library not found. local directory is not searched
Print a more detailed error message for agent library load failure.

Reviewed-by: jcoomes, never, ohair, coleenp
2010-08-10 19:17:57 -04:00
Y. Srinivas Ramakrishna
7ee29eeb6a 6973570: OrderAccess::storestore() scales poorly on multi-socket x64 and sparc: cache-line ping-ponging
Volatile store to static variable removed in favour of a volatile store to stack to avoid excessive cache coherency traffic; verified that the volatile store is not elided by any of our current compilers.

Reviewed-by: dholmes, dice, jcoomes, kvn
2010-08-10 14:53:35 -07:00
Xueming Shen
46e4eafc0c 6923794: About 40 JCK test case fail with AssertionError if -esa option is specified
Removed the assert

Reviewed-by: alanb
2010-08-10 13:15:40 -07:00
Tom Rodriguez
dc37d152e7 6975027: use of movptr to set length of array
Reviewed-by: kvn, iveresov
2010-08-10 12:15:10 -07:00
Denis Lila
55323320b6 6967436: lines longer than 2^15 can fill window
6967433: dashed lines broken when using scaling transforms

Converted pisces to floating point. Also, using better AA algorithm

Reviewed-by: flar
2010-08-10 13:19:44 -04:00
Chris Hegarty
22534d46e9 6882910: Unexplained lack of IP4 network ability when transparent IP6 to IP4 is disabled
Reviewed-by: alanb
2010-08-10 17:30:43 +01:00
Sergey Malenkov
e1edb38d9e 6960267: JTable.getRowHeight() returns value different from the specified default (16.0) with GTK L&F
Reviewed-by: peterz
2010-08-10 19:29:30 +04:00
Lance Andersen
1716bf859b 6898593: java.sql.Date.valueOf no exception if date given is not in the JDBC date escape syntax
Reviewed-by: minqi
2010-08-10 10:07:33 -04:00
Maurizio Cimadamore
23a89dba04 6975231: Regression test for 6881115 is failing with compiler output not matching expected output
Missing symbols are collected in an HashSet which doesn't preserve ordering

Reviewed-by: jjg
2010-08-10 14:53:19 +01:00
Maurizio Cimadamore
132dde52c3 6975275: diamond implementation needs some cleanup
Resolution issues during diamond inference should be reported through Resolve.logResolveError()

Reviewed-by: jjg
2010-08-10 14:52:34 +01:00
John Coomes
b0e98512a7 6970376: ParNew: shared TaskQueue statistics
Reviewed-by: ysr
2010-08-09 18:03:50 -07:00
Tom Rodriguez
68ff9b2b00 Merge 2010-08-09 17:51:56 -07:00
Lana Steuck
35703f67d9 Merge 2010-08-09 16:03:07 -07:00
Lana Steuck
5fee6662ef Merge 2010-08-09 16:02:19 -07:00
Vladimir Kozlov
2e48a18645 6975078: assert(allocated_on_res_area() || allocated_on_C_heap() || allocated_on_arena()
Pass the check in ResourceObj() if _allocation value is already set and object is allocated on stack.

Reviewed-by: dholmes, johnc
2010-08-09 15:17:05 -07:00
John Coomes
7fe1c05c7c 6966222: G1: simplify TaskQueue overflow handling
Reviewed-by: tonyp, ysr
2010-08-09 05:41:05 -07:00
Christine Lu
80a48b15c7 Added tag jdk7-b104 for changeset fef4187d7622 2010-08-06 12:52:19 -07:00
Christine Lu
2791b0619d Added tag jdk7-b104 for changeset 0feaed799206 2010-08-06 12:52:07 -07:00
Christine Lu
6cb5b0ee66 Added tag jdk7-b104 for changeset 930517ba4d97 2010-08-06 12:52:00 -07:00
Christine Lu
ba330f23de Added tag jdk7-b104 for changeset e4e7ae0ec293 2010-08-06 12:51:59 -07:00
Christine Lu
b8117e7869 Added tag jdk7-b104 for changeset 83e5347f5988 2010-08-06 12:51:54 -07:00
Christine Lu
8ab0372f60 Added tag jdk7-b104 for changeset cd7adc8eaafb 2010-08-06 12:51:49 -07:00
Christine Lu
57069c5967 Added tag jdk7-b104 for changeset c27b7b809bd2 2010-08-06 12:51:48 -07:00
Vladimir Kozlov
7895bef72f 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
Tell C++ to not inline so much by using flag -xspace.

Reviewed-by: ysr
2010-08-06 11:53:28 -07:00
Daniel D. Daugherty
438ccadcce 6962604: 3/3 Testcase sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.sh failure
Disable MonitorVmStartTerminate.sh until 6543856 is fixed.

Reviewed-by: ohair
2010-08-06 11:07:16 -07:00
John Cuthbertson
f8eed77f36 6930581: G1: assert(ParallelGCThreads > 1 || n_yielded() == _hrrs->occupied(),"Should have yielded all the .
During RSet updating, when ParallelGCThreads is zero, references that point into the collection set are added directly the referenced region's RSet. This can cause the sparse table in the RSet to expand. RSet scanning and the "occupied" routine will then operate on different instances of the sparse table causing the assert to trip. This may also cause some cards added post expansion to be missed during RSet scanning. When ParallelGCThreads is non-zero such references are recorded on the "references to be scanned" queue and the card containing the reference is recorded in a dirty card queue for use in the event of an evacuation failure. Employ the parallel code in the serial case to avoid expanding the RSets of regions in the collection set.

Reviewed-by: iveresov, ysr, tonyp
2010-08-06 10:17:21 -07:00
Erik Trimble
72990b87b1 Added tag hs19-b04 for changeset 9dfa2b7f8640 2010-08-05 02:48:45 -07:00
Maurizio Cimadamore
fa2cb78a09 6857948: Calling a constructor with a doubly bogus argument causes an internal error
Problem when constructor resolution returns an erroneous symbol

Reviewed-by: jjg
2010-08-05 09:45:25 +01:00
Maurizio Cimadamore
156e82c164 6881115: javac permits nested anno w/o mandatory attrs => IncompleteAnnotationException
Default annotation value is not attributed

Reviewed-by: jjg, darcy
2010-08-05 09:44:54 +01:00
Christine Lu
44c78fb98c Merge 2010-08-04 22:02:14 -07:00
Andrei Pangin
bc38b1c703 6945961: SIGSEGV in memcpy() during class loading on linux-i586
Check the result of strchr() in Bytecode Verifier

Reviewed-by: kamg, acorn
2010-08-04 20:25:02 -07:00
Vladimir Kozlov
4728aa064a 6974682: CTW: assert(target != NULL) failed: must not be null
Add address table size to constant section size.

Reviewed-by: never
2010-08-04 17:42:20 -07:00
Antonios Printezis
b4148f3379 6963209: G1: remove the concept of abandoned pauses
As part of 6944166 we disabled the concept of abandoned pauses (i.e., if the collection set is empty, we would still try to do a pause even if it is to update the RSets and scan the roots). This changeset removes the code and structures associated with abandoned pauses.

Reviewed-by: iveresov, johnc
2010-08-04 13:03:23 -04:00
Erik Trimble
169880d486 Merge 2010-08-03 19:01:25 -07:00
Vladimir Kozlov
5bed80aab9 6973963: SEGV in ciBlock::start_bci() with EA
Added more checks into ResourceObj and growableArray to verify correctness of allocation type.

Reviewed-by: never, coleenp, dholmes
2010-08-03 15:55:03 -07:00
Martin Buchholz
500a66b0d8 6955504: (str) String[Builder/Buffer].append(char[],int,int) throws OutOfMemoryError in b94
Let arraycopy throw AIOOBE for invalid negative length

Reviewed-by: chegar, forax
2010-08-03 12:22:49 -07:00
Kelly O'Hair
f82d12c1b4 6974239: Correct reference to jdk document site in javadoc
Reviewed-by: skannan
2010-08-03 10:53:21 -07:00
Sean Mullan
2bcf6f798f Merge 2010-08-03 09:55:29 -04:00
Sean Mullan
707346f099 6653372: Error in java.security.KeyStore example code
Reviewed-by: weijun
2010-08-03 09:39:52 -04:00
Bob Vandette
b95c7e9523 6953477: Increase portability and flexibility of building Hotspot
A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail.

Reviewed-by: phh, never, coleenp, dholmes
2010-08-03 08:13:38 -04:00
Chris Hegarty
784f62993b 6973030: NTLM proxy authentication fails with https
Reviewed-by: michaelm
2010-08-03 12:03:03 +01:00
Lana Steuck
6581804c68 Merge 2010-08-02 19:46:14 -07:00
Lana Steuck
3d517c6b50 Merge 2010-08-02 19:45:28 -07:00
Lana Steuck
bb7b93499c Merge 2010-08-02 19:44:12 -07:00
Lana Steuck
c3c47e6790 Merge 2010-08-02 19:42:54 -07:00
Lana Steuck
d5cc4b8c89 Merge 2010-08-02 19:41:35 -07:00
Kelly O'Hair
a656854b1e 6971426: jdk/make/docs docs target does not work on windows
Reviewed-by: igor, jjg
2010-08-02 16:31:55 -07:00
Kelly O'Hair
f6c4154043 6973616: Update minimum boot jdk from 1.5 to 1.6
Reviewed-by: igor, jjg
2010-08-02 16:31:26 -07:00
Jonathan Gibbons
0c1962f5de 6973626: test/tools/javac/processing/* tests fail with assertions enabled
Reviewed-by: darcy
2010-08-02 16:29:54 -07:00
Joe Darcy
74210780a0 6971877: Project Coin: improve semantics of suppressed exceptions in try-with-resources
Reviewed-by: jjb
2010-08-02 13:35:39 -07:00
Vladimir Kozlov
f0b6dc4e4f 6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
Set Z = 0 (not equal) before repne_scan() to indicate that class was not found when RCX == 0.

Reviewed-by: never, phh
2010-07-30 10:21:15 -07:00
Michael McMahon
bf106fcab7 6510892: com/sun/net/httpserver/bugs/B6361557.java fails
Reviewed-by: chegar
2010-07-30 18:16:30 +01:00
Sergey Malenkov
e51e3b724f 6972468: Security manager should be used for tests in java/beans/XMLEncoder
Reviewed-by: peterz
2010-07-30 19:40:29 +04:00
Sergey Malenkov
d3b90b4164 6199676: REGRESSION: ColorChooser loses preview when change LandF in Java5
Reviewed-by: alexp, peterz
2010-07-30 19:21:27 +04:00
Erik Trimble
4ce3f156ec 6973381: Bump the HS19 build number to 05
Update the HS19 build number to 05

Reviewed-by: jcoomes
2010-07-30 06:56:40 -07:00
Erik Trimble
a4b5c38070 Merge 2010-07-29 23:14:56 -07:00
Lana Steuck
9f50973389 Merge 2010-07-29 22:04:41 -07:00
Lana Steuck
99a605b4b3 Merge 2010-07-29 22:02:45 -07:00
Jonathan Gibbons
eff5854b96 6966604: JavacFiler not correctly notified of lastRound
Reviewed-by: darcy
2010-07-29 19:30:35 -07:00
Jonathan Gibbons
75b1007388 6340549: javax.tools.JavaCompilerTool.getStandardFileManager().list() includes directories
Reviewed-by: darcy
2010-07-29 19:27:11 -07:00
Jonathan Gibbons
30c006f23f 6972556: warning for using a file name instead of a binary name for Filer.createSourceFile
Reviewed-by: darcy
2010-07-29 18:06:34 -07:00
Lana Steuck
18a0513e0d Merge 2010-07-29 17:12:27 -07:00
Lana Steuck
92a8ffe4ab Merge 2010-07-29 13:48:23 -07:00
Christine Lu
f5bf509c49 Added tag jdk7-b103 for changeset a5cf09e6c109 2010-07-29 13:33:32 -07:00
Christine Lu
2c09c3cf0b Added tag jdk7-b103 for changeset 81a799b11c0e 2010-07-29 13:33:20 -07:00
Christine Lu
9b19c5b40c Added tag jdk7-b103 for changeset f84fd6d66187 2010-07-29 13:33:13 -07:00
Christine Lu
a1e95a3802 Added tag jdk7-b103 for changeset d599ee7032ef 2010-07-29 13:33:13 -07:00
Christine Lu
5bc757e86c Added tag jdk7-b103 for changeset 0dc48f97ffd1 2010-07-29 13:33:08 -07:00
Christine Lu
e6fcfd056b Added tag jdk7-b103 for changeset a5f45610331b 2010-07-29 13:33:04 -07:00
Christine Lu
c0563bc803 Added tag jdk7-b103 for changeset a80a6daf6891 2010-07-29 13:33:02 -07:00
Lana Steuck
af17406ae2 Merge 2010-07-29 13:22:16 -07:00
Chris Hegarty
d08b7168c3 Merge 2010-07-29 17:04:07 +01:00
Alexander Potochkin
476f58c4af 4743225: Size of JComboBox list is wrong when list is populated via PopupMenuListener
Reviewed-by: rupashka
2010-07-29 19:34:03 +04:00
Maurizio Cimadamore
a38fe743aa 6970833: Try-with-resource implementation throws an NPE during Flow analysis
Updated logic not to rely upon Symbol.implementation (which check in superinterfaces)

Reviewed-by: jjg
2010-07-29 15:57:43 +01:00
Maurizio Cimadamore
d7444b88be 6972747: CheckExamples fail when assertions are enabled
The test calls the wrong version of JavacMessage constructor

Reviewed-by: jjg
2010-07-29 15:57:18 +01:00
Maurizio Cimadamore
541f7a7a41 6938454: Unable to determine generic type in program that compiles under Java 6
A redundant dubtyping check causes spurious inference failure

Reviewed-by: jjg
2010-07-29 15:56:25 +01:00
Alan Bateman
1736731b74 6934977: (bf) MappedByteBuffer.load can SIGBUS if file is truncated
6799037: (fs) MappedByteBuffer.load crash with unaligned file-mapping (sol)

Reviewed-by: chegar, forax
2010-07-29 13:08:58 +01:00
Chris Hegarty
2d91b17b0a 6972374: NetworkInterface.getNetworkInterfaces throws "java.net.SocketException" on Solaris zone
Reviewed-by: alanb, dsamersoff
2010-07-29 10:02:41 +01:00
Michael Wilkerson
9b77e947fa Merge 2010-07-28 21:03:41 -07:00
Coleen Phillimore
c45761e2a8 6958465: Sparc aten build24.0: openjdk-7.ea-b96 failed Error: Formal argument ... requires an lvalue
Fix compilation errors.  Made non-const references const so can be assigned with lvalue.

Reviewed-by: phh, xlu
2010-07-28 17:57:43 -04:00
Andrew Haley
d44a3683b1 6888526: Linux getCurrentThreadCpuTime is drastically slower than Windows
Reviewed-by: dcubed, dholmes
2010-07-28 17:38:21 +01:00
Jonathan Gibbons
bcbe3b2577 6403456: -Werror should work with annotation processing
Reviewed-by: darcy
2010-07-27 11:52:11 -07:00
Jan Lahoda
157108fe22 6972327: JCTree.pos incorrect for annotations without modifiers and package
Reviewed-by: mcimadamore
2010-07-27 11:32:03 -07:00
Vinnie Ryan
837cc6d064 6972409: Cease emitting LDAP filter debug messages
Reviewed-by: xuelei
2010-07-27 11:40:46 +01:00
Xue-Lei Andrew Fan
caefa97f8c 6870947: 15 sec delay detecting "socket closed" condition when a TCP connection is reset by an LDAP server
Reviewed-by: weijun
2010-07-27 16:07:00 +08:00
Tom Rodriguez
b071e2accc Merge 2010-07-26 15:58:07 -07:00
Jonathan Gibbons
1c75e97108 6957438: improve code for generating warning messages containing option names
Reviewed-by: mcimadamore
2010-07-26 14:25:56 -07:00
Jonathan Gibbons
ccd014ed3f 6971882: Remove -XDstdout from javac test
Reviewed-by: darcy
2010-07-26 14:18:45 -07:00
Kelly O'Hair
3362748733 6972274: Fix the use of egrep -ci in the top level makefile sanity checks
Reviewed-by: prr
2010-07-26 14:14:42 -07:00
Daniel D. Daugherty
cf3105821b 6971847: 4/4 jmap '-histo:live' option is necessary for proper leak detection
Add work around for 6971851. Abort if 'histo:live' option isn't supported.

Reviewed-by: alanb, darcy
2010-07-26 09:06:47 -07:00
Martin Buchholz
564c0a977b 6717780: (coll spec) LinkedList api documentation provides the wrong method name
Cleanup by simply making Deque equal status with List

Reviewed-by: darcy
2010-07-26 08:17:50 -07:00
Weijun Wang
9d92d626e3 6972005: ConfPlusProp.java test failure when DNS has info for realm
Reviewed-by: xuelei
2010-07-26 17:21:51 +08:00
Andrei Pangin
53ac035768 Merge 2010-07-25 07:31:50 -07:00
Xue-Lei Andrew Fan
f5561769de 6867345: Turkish regional options cause NPE in sun.security.x509.AlgorithmId.algOID
Reviewed-by: mullan, weijun
2010-07-24 22:59:41 +08:00
Michael Wilkerson
3f659885ec Added tag jdk7-b102 for changeset 755ea7201562 2010-07-23 16:42:36 -07:00
Michael Wilkerson
78845e9e0b Added tag jdk7-b102 for changeset 828a1670fef1 2010-07-23 16:42:26 -07:00
Michael Wilkerson
5f0efc9ebc Added tag jdk7-b102 for changeset 69f365110144 2010-07-23 16:42:21 -07:00
Michael Wilkerson
bc54af4743 Added tag jdk7-b102 for changeset 39fde8f85ca1 2010-07-23 16:42:20 -07:00
Michael Wilkerson
f907666b7c Added tag jdk7-b102 for changeset e2378fd93633 2010-07-23 16:42:15 -07:00
Michael Wilkerson
6b4a0e7c26 Added tag jdk7-b102 for changeset f15aef32e2b3 2010-07-23 16:42:11 -07:00
Michael Wilkerson
63ff9298d5 Added tag jdk7-b102 for changeset 785a8905908b 2010-07-23 16:42:10 -07:00
Y. Srinivas Ramakrishna
27c8e4b84a Merge 2010-07-23 14:31:15 -07:00
Tom Rodriguez
0ed8a9f6fc Merge 2010-07-23 10:21:17 -07:00
Vladimir Kozlov
3fbdd52bdf 6969569: assert(is_static() && is_constant()) failed: illegal call to constant_value()
Add missing is_static guard.

Reviewed-by: twisti
2010-07-23 10:07:46 -07:00
Vinnie Ryan
575bf80be6 6676075: RegistryContext (com.sun.jndi.url.rmi.rmiURLContext) coding problem
Reviewed-by: mullan
2010-07-23 17:41:47 +01:00
Alexey Utkin
70d7880102 6969851: VM hangs/crashes in FileDialog test (VS2008/2010 build)
Reviewed-by: prr, art
2010-07-23 18:59:48 +04:00
Tom Rodriguez
762e078636 6970566: runThese fails with SIGSEGV
Reviewed-by: kvn
2010-07-22 15:29:22 -07:00
Jonathan Gibbons
7eb8c115ec 6968063: provide examples of code that generate diagnostics
Reviewed-by: mcimadamore
2010-07-22 11:02:54 -07:00
Antonios Printezis
38ab95c64b 6962589: remove breadth first scanning code from parallel gc
Remove the breadth-first copying order from ParallelScavenge and use depth-first by default.

Reviewed-by: jcoomes, ysr, johnc
2010-07-22 10:27:41 -04:00
John Cuthbertson
3a2b2b4fd8 6814437: G1: remove the _new_refs array
The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.

Reviewed-by: iveresov, jmasa, tonyp
2010-08-02 12:51:43 -07:00
Kevin Walls
75c23332be Merge 2010-07-31 15:10:59 +01:00
Kevin Walls
5fb46fd5a8 6581734: CMS Old Gen's collection usage is zero after GC which is incorrect
Management code enabled for use by a concurrent collector.

Reviewed-by: mchung, ysr
2010-07-30 22:43:50 +01:00
Daniel D. Daugherty
7dea7787e2 6964018: 3/4 AnonLoggerWeakRefLeak and LoggerWeakRefLeak can fail in JPRT
Refactor test/sun/tools/common/* code and refactor AnonLoggerWeakRefLeak and LoggerWeakRefLeak to use it.

Reviewed-by: ohair, alanb
2010-07-21 17:01:31 -07:00
Daniel D. Daugherty
9f5d2eb156 6962804: 4/4 ShellScaffold tests can fail without a specific reason
Add more diagnostics for failures. Only copy target file in grepForString when NL is missing.

Reviewed-by: ohair, dholmes
2010-07-21 16:59:40 -07:00
Daniel D. Daugherty
5d8f395e2b 6941287: 4/4 jrunscriptTest.sh test does not work right under Cygwin
Add golden_diff variable for doing proper golden file diffs on Cygwin.

Reviewed-by: ohair, dholmes
2010-07-21 16:58:35 -07:00
Y. Srinivas Ramakrishna
f495cb2581 Merge 2010-07-21 12:45:42 -07:00
Alan Bateman
11b424e02b 6963907: (so) Socket adapter need to implement sendUrgentData
Reviewed-by: chegar
2010-07-21 18:08:46 +01:00
Y. Srinivas Ramakrishna
eceef28d8c Merge 2010-07-21 09:57:21 -07:00
Chris Hegarty
c7d240fc1a 6970262: TEST_BUG: test/java/net/NetworkInterface/IPv4Only.java has wrong test name in @run tag
Reviewed-by: alanb, dsamersoff
2010-07-21 13:52:38 +01:00
Chris Hegarty
2890d62dbb 6969395: TEST_BUG: Tests in java/net sun/net problems
Reviewed-by: alanb
2010-07-21 13:29:26 +01:00
Lana Steuck
f1cce86e5b Merge 2010-07-20 22:22:32 -07:00
Lana Steuck
109adcf650 Merge 2010-07-20 22:21:31 -07:00
Lana Steuck
a0b9feb69b Merge 2010-07-20 22:17:34 -07:00
Lana Steuck
b901dad72f Merge 2010-07-20 22:17:33 -07:00
Lana Steuck
69411a12bb Merge 2010-07-20 22:17:28 -07:00
Lana Steuck
20ff6025ba Merge 2010-07-20 22:17:26 -07:00
Erik Trimble
54f18dfa74 Merge 2010-07-20 18:13:55 -07:00
Y. Srinivas Ramakrishna
625332a903 Merge 2010-07-20 16:09:44 -07:00
Andrei Pangin
3888d500b9 6964170: Verifier crashes
Check if klassOop != NULL rather than klass_part != NULL

Reviewed-by: kamg, never
2010-07-20 08:41:42 -07:00
Sean Mullan
882b752caf 6870553: X509Certificate.getSigAlgName method description uses non-standard algorithm name as example
Reviewed-by: xuelei
2010-07-20 10:41:50 -04:00
John Cuthbertson
5c3da1ee7e 6956639: G1: assert(cached_ptr != card_ptr) failed: shouldn't be, concurrentG1Refine.cpp:307
During concurrent refinment, filter cards in young regions after it has been determined that the region has been allocated from and the young type of the region has been set.

Reviewed-by: iveresov, tonyp, jcoomes
2010-07-19 11:06:34 -07:00
Weijun Wang
f2f06cfb5d 6969292: make DNS lookup for realm/kdc really work
Reviewed-by: alanb, valeriep
2010-07-19 10:02:55 +08:00
Weijun Wang
2dace6e70f 6969683: Generify ResolverConfiguration codes
Reviewed-by: alanb, chegar
2010-07-19 10:02:50 +08:00
Andrei Pangin
8ce591cea8 Merge 2010-07-17 21:49:23 -07:00
John Coomes
daf491a814 6962947: shared TaskQueue statistics
Reviewed-by: tonyp, ysr
2010-07-16 21:33:21 -07:00
Tom Ball
985efdc475 6911256: Project Coin: Support Automatic Resource Management (ARM) blocks in the compiler
6964740: Project Coin: More tests for ARM compiler changes
6965277: Project Coin: Correctness issues in ARM implementation
6967065: add -Xlint warning category for Automatic Resource Management (ARM)

Reviewed-by: jjb, darcy, mcimadamore, jjg, briangoetz
2010-07-16 19:35:24 -07:00
John R Rose
7e34622217 6969574: invokedynamic call sites deoptimize instead of executing
Reviewed-by: kvn
2010-07-16 18:14:19 -07:00
Xueming Shen
98f8ed01aa 6964313: Find sun/nio/cs/ext issue with CreateSymbols, then move sun/nio/cs/ext to charset.jar
Removed the duplicate sun.nio.cs.ext entries from rt.jar and moved X11 charsets into charsets.jar

Reviewed-by: ohair
2010-07-16 16:45:52 -04:00
Y. Srinivas Ramakrishna
4efdcb87d1 Merge 2010-07-16 10:09:15 -07:00
Tom Rodriguez
734af9cd47 Merge 2010-07-16 08:29:42 -07:00
Alan Bateman
640336ebe6 6649594: Intermittent IOExceptions during dynamic attach on linux and solaris
Reviewed-by: dcubed, dholmes
2010-07-16 13:14:03 +01:00
Michael Wilkerson
b9859c555d Added tag jdk7-b101 for changeset 197b3b36b3f4 2010-07-15 20:11:54 -07:00
Michael Wilkerson
6d2cecc165 Added tag jdk7-b101 for changeset 47da38a8c0f0 2010-07-15 20:11:45 -07:00
Michael Wilkerson
78d224e10f Added tag jdk7-b101 for changeset 42130df1ac5b 2010-07-15 20:11:40 -07:00
Michael Wilkerson
cfc55e5aa1 Added tag jdk7-b101 for changeset 705b83bb0c66 2010-07-15 20:11:39 -07:00
Michael Wilkerson
431a99ccf9 Added tag jdk7-b101 for changeset c8f322bd177e 2010-07-15 20:11:35 -07:00
Michael Wilkerson
3aafcb67df Added tag jdk7-b101 for changeset 3085ed0d1781 2010-07-15 20:11:32 -07:00
Michael Wilkerson
158f98af37 Added tag jdk7-b101 for changeset f3297675495c 2010-07-15 20:11:31 -07:00
Erik Trimble
89ddf727ca Merge 2010-07-15 19:52:58 -07:00
Erik Trimble
374e15fb40 Merge 2010-07-15 19:51:34 -07:00
John R Rose
a4e4149340 6964498: JSR 292 invokedynamic sites need local bootstrap methods
Add JVM_CONSTANT_InvokeDynamic records to constant pool to determine per-instruction BSMs.

Reviewed-by: twisti
2010-07-15 18:40:45 -07:00
Joe Darcy
7dcb52915b 6963622: Project Coin: Refinements to suppressed exceptions
Reviewed-by: alanb, forax, jjb
2010-07-15 18:02:05 -07:00
Tom Rodriguez
ffb15fdb04 Merge 2010-07-15 13:48:01 -07:00
Tom Rodriguez
ea25541820 6968336: VM crash guarantee(!nm->is_zombie()) failed: cannot lock a zombie method
Reviewed-by: twisti
2010-07-15 08:54:48 -07:00
Tomas Zezula
9c273720d6 6964669: javac reports error on miranda methods
Synthetic name clash check should not apply to miranda methods

Reviewed-by: jjg
2010-07-15 16:31:56 +01:00
Mahmood Ali
aa93fd7701 6967002: JDK7 b99 javac compilation error (java.lang.AssertionError)
Bug in JavacParser related to parsing of type annotations in varargs position

Reviewed-by: jjg
2010-07-15 16:31:02 +01:00
Bhavesh Patel
abe67eceb0 6955341: Oracle rebranding changes for man pages
Reviewed-by: darcy
2010-07-14 15:42:06 -07:00
Andrei Pangin
6572ca3124 Merge 2010-07-14 17:52:18 -04:00
Vladimir Kozlov
2b339c9319 6968368: SIGSEGV in the BCEscapeAnalyzer::copy_dependencies
Use GrowableArray and VectorSet allocated in ciEnv arena.

Reviewed-by: never, twisti
2010-07-14 14:47:34 -07:00
Vladimir Kozlov
7378cf14d9 6968646: JVM crashes with SIGFPE during startup
Check that cpuid returns valid values for processor topology (not zeros).

Reviewed-by: never, twisti
2010-07-14 14:29:14 -07:00
Lana Steuck
6f5c11015d Merge 2010-07-14 09:12:46 -07:00
Jonathan Gibbons
a1e7efde4a 6968789: incorrect text in "diamond not supported" message
Reviewed-by: darcy
2010-07-13 19:20:48 -07:00
Jonathan Gibbons
5db54afdea 6968434: test CheckResourceKeys fails on control builds
Reviewed-by: darcy
2010-07-13 19:17:55 -07:00
Jonathan Gibbons
ec05f75ccd 6966732: replace use of static Log.getLocalizedString with non-static alternative where possible
Reviewed-by: darcy
2010-07-13 19:14:09 -07:00
Peter Zhelezniakov
c3da619227 6462562: InternationalFormatter inserts text incorrectly
6578432: Currency format instance does not work with Swing's NumberFormatter

Reviewed-by: rupashka
2010-07-13 17:26:34 +04:00
Weijun Wang
c20e1ffd6c 6670889: Keystore created under Hindi Locale causing ArrayIndexOutOfBoundsException
Reviewed-by: chegar
2010-07-13 20:27:01 +08:00
Dmitry Samersoff
bd18ff374c 6964714: NetworkInterface getInetAddresses enumerates IPv6 addresses if java.net.preferIPvStack property set
User can disable ipv6 explicitly, have to check it

Reviewed-by: chegar, alanb
2010-07-13 15:32:36 +04:00
Tom Rodriguez
1eabc28737 6968385: malformed xml in sweeper logging
Reviewed-by: kvn
2010-07-12 22:27:18 -07:00
Lana Steuck
f45e422039 Merge 2010-07-12 19:43:19 -07:00
Lana Steuck
6b9ad54671 Merge 2010-07-12 19:42:02 -07:00
Lana Steuck
246f900195 Merge 2010-07-12 19:37:50 -07:00
Lana Steuck
c3121fbc7e Merge 2010-07-12 19:37:48 -07:00
Lana Steuck
36eac9c460 Merge 2010-07-12 19:35:41 -07:00
Lana Steuck
7cf17a50bb Merge 2010-07-12 19:35:37 -07:00
Lana Steuck
be587b0b28 Merge 2010-07-12 19:35:11 -07:00
Lana Steuck
8baf254d15 Merge 2010-07-12 19:33:50 -07:00
Lana Steuck
f495312b72 Merge 2010-07-12 19:32:29 -07:00
Jonathan Gibbons
29ceaebc37 6968497: localized text appears in raw diagnostic
Reviewed-by: darcy
2010-07-12 16:37:46 -07:00
Daniel D. Daugherty
9c1cae042e Merge 2010-07-12 15:52:06 -07:00
Igor Nekrestyanov
9ab742ede8 6968373: FontUtilities static initializer throws AccessControlException
Reviewed-by: prr
2010-07-12 15:11:20 -07:00
Daniel D. Daugherty
ccbd107813 6968401: 3/3 disable tests added by 6942989 until 6964018 is fixed
Disable AnonLoggerWeakRefLeak.sh and LoggerWeakRefLeak.sh

Reviewed-by: ohair
2010-07-12 14:19:44 -07:00
Kelly O'Hair
37f89e6be6 6959998: Return of SurfaceData_InitOps point not checked in all cases (parfait found these)
Reviewed-by: prr
2010-07-12 13:16:28 -07:00
Y. Srinivas Ramakrishna
c0b1b0d0e7 Merge 2010-07-12 12:53:52 -07:00
Tom Rodriguez
d3c3800a29 6958668: repeated uncommon trapping for new of klass which is being initialized
Reviewed-by: kvn, jrose
2010-07-12 10:58:25 -07:00
Chris Hegarty
6f0719f802 6966846: Incorrect assertion in java.net.Inet6Address.readObject
Reviewed-by: michaelm
2010-07-12 18:18:13 +01:00
Chris Hegarty
41fbcaf73d 6967684: httpserver using a non thread-safe SimpleDateFormat
Reviewed-by: michaelm
2010-07-12 18:16:35 +01:00
Chris Hegarty
25c1ab1e55 6967937: Scope id no longer being set after 6931566
Reviewed-by: alanb, dsamersoff
2010-07-12 18:13:40 +01:00
Michael Wilkerson
5245d5d52c Added tag jdk7-b100 for changeset 84d4886d48aa 2010-07-09 19:18:42 -07:00
Michael Wilkerson
0955245ab5 Added tag jdk7-b100 for changeset 4f5e99470724 2010-07-09 19:18:32 -07:00
Michael Wilkerson
6f9b7f8e40 Added tag jdk7-b100 for changeset 6bca2bbbf1f3 2010-07-09 19:18:27 -07:00
Michael Wilkerson
709178cf04 Added tag jdk7-b100 for changeset 9962977aef86 2010-07-09 19:18:26 -07:00
Michael Wilkerson
d65cdc272a Added tag jdk7-b100 for changeset 4670a882996f 2010-07-09 19:18:22 -07:00
Michael Wilkerson
9a744b5c79 Added tag jdk7-b100 for changeset f037d51a0c87 2010-07-09 19:18:19 -07:00
Michael Wilkerson
bb3e41d286 Added tag jdk7-b100 for changeset 2d321433a4f0 2010-07-09 19:18:18 -07:00
Jon VanAlten
95408ff1c7 6967533: Epoch bug: ExceptionInInitializerError on systems with uninitialized clock
Remove (hopefully!) unnecessary check of currentTimeMillis

Reviewed-by: dholmes
2010-07-09 18:55:25 -07:00
Sergey Malenkov
2ca2c1d52f 6963811: Deadlock-prone locking changes in Introspector
Reviewed-by: peterz, rupashka
2010-07-09 22:07:39 +04:00
Kumar Srinivasan
e5b31c9351 6921472: RFE: java launcher code needs clean up
This changeset also contains fixes for 6405284, 6753938 and 6922500

Reviewed-by: darcy
2010-07-09 11:04:34 -07:00
Kumar Srinivasan
6474c4d2a3 6930056: (launcher) Need to remove or build as part of test these liblibrary.so files
Reviewed-by: ohair, darcy
2010-07-09 09:54:10 -07:00
Sergey Malenkov
049e350efd 6894597: test/closed/javax/swing/JPopupMenu/6495920/bug6495920.java fails
Reviewed-by: alexp, peterz
2010-07-09 19:42:17 +04:00
Erik Trimble
5cd8be04d6 Merge 2010-07-09 00:35:35 -07:00
Erik Trimble
dcb3877665 Merge 2010-07-09 00:32:48 -07:00
Erik Trimble
cbe3e79eb9 Added tag hs19-b03 for changeset 4670a882996f 2010-07-09 00:31:01 -07:00
Tom Rodriguez
7533d0caf7 6965184: possible races in make_not_entrant_or_zombie
Reviewed-by: kvn
2010-07-08 14:29:44 -07:00
Lana Steuck
ddc7fcdc27 Merge 2010-07-08 11:28:01 -07:00
Pavel Porvatov
93a394d6ee 6520101: FileChooser will cause OutOfMemory when application will run long time
Reviewed-by: peterz
2010-07-08 19:09:41 +04:00
Mandy Chung
a20650acd0 6967423: Hotspot support for modules image
Add hotspot support for modules image

Reviewed-by: acorn
2010-07-07 15:35:58 -07:00
Tom Rodriguez
ae3ddc1514 Merge 2010-07-07 12:40:01 -07:00
Karen Kinnear
7c19b04e6d Merge 2010-07-07 14:12:08 -04:00
Kelly O'Hair
d6b705678a 6967036: Need to fix links with // in Javadoc comments
Reviewed-by: mchung
2010-07-07 10:21:59 -07:00
Kelly O'Hair
2b8c80bc91 6954517: Testcase failure tools/launcher/UnicodeTest.sh
Reviewed-by: ksrini
2010-07-07 10:17:36 -07:00
Dmitry Cherepanov
dcc737282d 6959174: Need to introduce sun.awt.disableGtkFileDialogs system property
Reviewed-by: art, anthony
2010-07-07 14:20:22 +04:00
Joe Darcy
5ab764cefb 6963723: Project Coin: Retrofit more JDK classes for ARM
Reviewed-by: alanb, malenkov, prr, amenkov
2010-07-06 18:58:30 -07:00
Igor Nekrestyanov
1e8cbf3a53 6967050: JDK build issues with cygwin/vc2010
Reviewed-by: prr, ohair
2010-07-06 18:23:14 -07:00
Dmitry Cherepanov
6d38b07902 6966643: GTK FileDialog hangs when user manually closes it
Reviewed-by: art
2010-07-06 18:23:09 +04:00
Artem Ananiev
983ec86773 6424157: java.awt.EventQueue push/pop might cause threading issues
Reviewed-by: ant, dcherepanov
2010-07-06 17:59:56 +04:00
Vladimir Kozlov
cc513a8564 6966411: escape.cpp:450 assert(base->Opcode() == Op_ConP
Execute IGVN optimization before and after Escape Analysis

Reviewed-by: never
2010-07-02 17:30:30 -07:00
Tom Rodriguez
bf1ca00b7c 6965671: fatal error: acquiring lock JNIGlobalHandle_lock/16 out of order with lock CodeCache_lock/1
Reviewed-by: kvn, dcubed
2010-07-02 15:01:47 -07:00
Karen Kinnear
13ac5e3af2 6964164: MonitorInUseLists leak of contended objects
Fix MonitorInUseLists memory leak and MonitorBound now works

Reviewed-by: chrisphi, dice
2010-07-02 17:23:43 -04:00
Alexander Potochkin
dbeca02bca 6937415: Some components return undocumented default values under Nimbus LaF
Reviewed-by: peterz
2010-07-02 19:34:34 +04:00
Alexander Potochkin
4b7f7c425e 6711682: JCheckBox in JTable: checkbox doesn't alaways respond to the first mouse click
Reviewed-by: rupashka
2010-07-02 19:28:51 +04:00
Erik Trimble
b4884449a6 6966252: Bump the HS19 build number to 04
Update the HS19 build number to 04

Reviewed-by: jcoomes
2010-07-02 01:37:36 -07:00
Erik Trimble
2d9848a160 Merge 2010-07-02 01:36:15 -07:00
John Coomes
e8dbd32204 6957084: simplify TaskQueue overflow handling
Reviewed-by: ysr, jmasa
2010-07-01 21:40:45 -07:00
Sean Mullan
f217a785d5 Merge 2010-07-01 15:30:44 -04:00
Sean Mullan
f74b88af11 6782979: Add JNLPAppletLauncher (6618105) to blacklist
Reviewed-by: ohair
2010-07-01 15:20:31 -04:00
Vladimir Yaroslavskiy
6593dfa333 6947216: Even more Dual-pivot quicksort improvements
Reviewed-by: jjb
2010-07-01 16:28:08 +01:00
Sergey Malenkov
55db965e8d 6959266: test javax/swing/JInternalFrame/6725409/bug6725409.java should be modified
Reviewed-by: alexp
2010-07-01 18:47:56 +04:00
Sergey Malenkov
41f3ac5368 4129681: Cannot get a title border to display its label as disabled
Reviewed-by: alexp, rupashka
2010-07-01 18:09:45 +04:00
Lana Steuck
04b6a83eb6 Merge 2010-06-30 19:05:50 -07:00
Michael Wilkerson
4189f3e295 Merge 2010-06-30 18:57:51 -07:00
Michael Wilkerson
21eac83406 Merge 2010-06-30 18:57:35 -07:00
Jonathan Gibbons
e438672595 6964768: need test program to validate javac resource bundles
Reviewed-by: darcy
2010-06-30 18:06:29 -07:00
Ulf Zibis
c8a460e29d 6940258: (bf) Use intrinsified reverseBytes operation; elide no-op constructs
Reviewed-by: alanb, sherman
2010-06-30 16:11:32 -07:00
Based on an idea by Ulf Zibis
cd7e4c8c16 6935172: Optimize bit-twiddling in Bits.java
Transformations to reduce size of bytecode

Reviewed-by: sherman
2010-06-30 16:11:32 -07:00
Martin Buchholz
3cb2c5c25a 6934271: Better handling of longer utf-8 sequences
Various cleanups, including clever bit-twiddling

Reviewed-by: sherman
2010-06-30 16:11:32 -07:00
Ulf Zibis
ff895e1ca9 6933322: Add methods highSurrogate(), lowSurrogate() to class Character
Add public variants of methods Surrogate.high, Surrogate.low

Reviewed-by: okutsu, sherman
2010-06-30 16:11:32 -07:00
Ulf Zibis
aa6a17064b 6934270: Remove javac warnings from Character.java
Use generics and conform to coding style

Reviewed-by: sherman
2010-06-30 16:11:32 -07:00
Ulf Zibis
9c3e20af57 6963749: Minor improvements to Character.UnicodeBlock
Fix surrogate area docs; make source more readable

Reviewed-by: okutsu, sherman
2010-06-30 16:11:32 -07:00
Martin Buchholz
0af0decb66 6940381: Wording improvements for String.indexOf, String.lastIndexOf
Make wording of javadoc clearer and more consistent

Reviewed-by: sherman
2010-06-30 16:11:32 -07:00
Ulf Zibis
9c81e25271 6937112: String.lastIndexOf confused by unpaired trailing surrogate
Rewrite lastIndexOf for performance and correctness

Reviewed-by: sherman
2010-06-30 16:11:32 -07:00
Ulf Zibis
a0f3e72c24 6934265: Add public method Character.isBmpCodePoint
Move isBmpCodePoint from sun.nio.cs.Surrogate to Character

Reviewed-by: sherman
2010-06-30 16:11:32 -07:00
Ulf Zibis
30d5c660bc 6934268: Better implementation of Character.isValidCodePoint
Use the cleverest possible bit-twiddling micro-optimizations

Reviewed-by: sherman
2010-06-30 16:11:31 -07:00
Lana Steuck
9a4b556a63 Merge 2010-06-30 15:09:24 -07:00
Coleen Phillimore
091b24c59d Merge 2010-06-30 11:52:10 -04:00
Lana Steuck
e15e0c33b4 Merge 2010-06-29 22:43:59 -07:00
Lana Steuck
67de841056 Merge 2010-06-29 22:34:59 -07:00
Lana Steuck
b55f667040 Merge 2010-06-29 22:31:40 -07:00
Lana Steuck
48d58f76ef Merge 2010-06-29 22:31:39 -07:00
Lana Steuck
9f224e129c Merge 2010-06-29 22:31:34 -07:00
Lana Steuck
762fd67d8d Merge 2010-06-29 22:31:31 -07:00
Phil Race
408319a638 6964882: 32 bit JDK does not build on 64 bit Windows platforms
Reviewed-by: ohair, valeriep
2010-06-29 16:34:17 -07:00
Phil Race
a58629198d 6964882: 32 bit JDK does not build on 64 bit Windows platforms
Reviewed-by: ohair, valeriep
2010-06-29 16:33:41 -07:00
John R Rose
7b529c7ee7 Merge 2010-06-29 16:09:57 -07:00
Lana Steuck
6bc7c5dcb7 Merge 2010-06-29 12:06:46 -07:00
Lana Steuck
acc448eb85 Merge 2010-06-29 10:50:11 -07:00
Lana Steuck
77aa98ea04 Merge 2010-06-29 10:49:46 -07:00
Lana Steuck
4b717b5ba1 Merge 2010-06-29 10:49:43 -07:00
Lana Steuck
5fb4ac8429 Merge 2010-06-29 10:48:06 -07:00
Lana Steuck
d7a336ae22 Merge 2010-06-29 10:48:02 -07:00
Vladimir Kozlov
4bd0381466 6964774: Adjust optimization flags setting
Adjust performance flags settings.

Reviewed-by: never, phh
2010-06-29 10:34:00 -07:00
Phil Race
93f31249a1 6943487: NPE in makeMultiCharsetString while printing on linux
Reviewed-by: igor, jgodinez
2010-06-29 09:48:15 -07:00
Alan Bateman
62b559b4e9 6213702: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win)
Reviewed-by: michaelm, chegar
2010-06-29 17:11:12 +01:00
Jon VanAlten
a55533ffab 6963870: NPE in CompoundBorder.getInsets()
Reviewed-by: alexp
2010-06-29 14:42:30 +04:00
Kumar Srinivasan
7511a7950b 6856415: Enabling java security manager will make programe thrown wrong exception ( main method not found )
Reviewed-by: darcy
2010-06-28 18:25:03 -07:00
Vladimir Kozlov
448b83e288 6677629: PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist()
Use replace_node() method instead of subsume_node().

Reviewed-by: jrose, never
2010-06-28 14:54:39 -07:00
Chris Hegarty
8dd995ca0d 6961029: java/net/BindException/Test.java should not use wildcard address
Reviewed-by: michaelm, alanb
2010-06-28 20:52:37 +01:00
Antonios Printezis
dfc84e8c89 6944166: G1: explicit GCs are not always handled correctly
G1 was not handling explicit GCs correctly in many ways. It does now. See the CR for the list of improvements contained in this changeset.

Reviewed-by: iveresov, ysr, johnc
2010-06-28 14:13:17 -04:00
Antonios Printezis
968deb7658 6962569: assembler_sparc.cpp:1969: assert(false) failed: error
Array_overlap_test() fails when the address range crosses the MSB boundary. Thanks to Tom and Vladimir for their help on this one.

Reviewed-by: kvn, never, iveresov
2010-06-28 14:13:18 -04:00
Vladimir Kozlov
8a416b2365 6964479: widen normalization of small int and long values should be symmetric
Normalize widen value in xmeet() and xdual() methods for types Int and Long so the type meet will be symmetric.

Reviewed-by: jrose
2010-06-28 10:52:50 -07:00
Coleen Phillimore
52adb9a491 Merge 2010-06-28 12:03:05 -04:00
Chris Hegarty
fba8695a1c Merge 2010-06-28 15:06:24 +01:00
Chris Hegarty
85a8187c52 6954525: Testcase failure java/net/Authenticator/B4769350.java
Reviewed-by: michaelm, weijun
2010-06-28 14:55:25 +01:00
John R Rose
3c5e7ab5f1 Merge 2010-06-26 00:19:55 -07:00
Alan Bateman
18ea7bbd4d Merge 2010-06-25 18:34:11 +01:00
Alan Bateman
efa88ff48b 6963828: TEST_BUG: java/nio/channels/FileTransfer.java takes too long (win)
Reviewed-by: chegar
2010-06-25 18:31:41 +01:00
Kelly O'Hair
667d968e28 6964311: Build regression due to rt.jar contents change
The fix for 6933622 regressed control builds, this is a workaround fix, filed 6964313 to find the right answer to why it happened and how to fix it correctly.

Reviewed-by: alanb, darcy
2010-06-25 08:44:20 -07:00
Michael Wilkerson
9db4736a1e Added tag jdk7-b99 for changeset c24b113fe4ac 2010-06-24 20:03:19 -07:00
Michael Wilkerson
b9b38ef01c Added tag jdk7-b99 for changeset f825b9b605e4 2010-06-24 20:03:10 -07:00
Michael Wilkerson
6b96799305 Added tag jdk7-b99 for changeset a66eb9dba76c 2010-06-24 20:03:05 -07:00
Michael Wilkerson
52ca0b6388 Added tag jdk7-b99 for changeset 2ac6aa68ce63 2010-06-24 20:03:04 -07:00
Michael Wilkerson
d6e7567e90 Added tag jdk7-b99 for changeset f45234b29a80 2010-06-24 20:03:00 -07:00
Michael Wilkerson
aa4f13c0ea Added tag jdk7-b99 for changeset 3eab1800a65c 2010-06-24 20:02:56 -07:00
Michael Wilkerson
c457ab9c1a Added tag jdk7-b99 for changeset 3aeed58228be 2010-06-24 20:02:55 -07:00
Jon Masamitsu
36e0024524 Merge 2010-06-24 15:56:12 -07:00
John Coomes
a792499b68 6888573: class data sharing does not always disable large pages
Reviewed-by: phh
2010-06-24 15:38:42 -07:00
Jonathan Gibbons
17e9572501 6917288: Unnamed nested class is not generated
Reviewed-by: mcimadamore
2010-06-24 10:34:53 -07:00
Kelly O'Hair
ce119517a2 6963941: Correct download link for source drop bundle
Reviewed-by: darcy
2010-06-24 08:34:57 -07:00
Yuri Nesterenko
83f31097a2 6957166: With XAWT, set arguments properly creating a MouseWheelEvent
Swap some parameters to allow bigger values for click count.

Reviewed-by: dav
2010-06-24 11:50:18 +04:00
Weijun Wang
c93ecb6623 6946669: SSL/Krb5 should not call EncryptedData.reset(data, false)
Reviewed-by: xuelei
2010-06-24 14:26:35 +08:00
Weijun Wang
6426b52076 6844907: krb5 etype order should be from strong to weak
Reviewed-by: valeriep
2010-06-24 14:26:28 +08:00
Weijun Wang
4bdcad4b69 6958026: Problem with PKCS12 keystore
Reviewed-by: mullan
2010-06-24 14:26:22 +08:00
Joshua Bloch
50f960454d 6911258: Project Coin: Add essential API support for Automatic Resource Management (ARM) blocks
6911261: Project Coin: Retrofit Automatic Resource Management (ARM) support onto platform APIs
6962571: Infinite loop in printing out Throwable stack traces with circular references

Reviewed-by: darcy, alanb
2010-06-23 17:03:40 -07:00
Joshua Bloch
5b2078e713 6911258: Project Coin: Add essential API support for Automatic Resource Management (ARM) blocks
Reviewed-by: darcy, alanb
2010-06-23 16:51:30 -07:00
Jon Masamitsu
80d9f0356a Merge 2010-06-23 15:17:20 -07:00
Alan Bateman
af32180a74 Merge 2010-06-23 21:22:27 +01:00
Alan Bateman
670501c6c6 6963027: TEST_BUG: channels and buffer tests need to run in samevm mode
Reviewed-by: ohair, sherman, chegar
2010-06-23 20:19:29 +01:00
Vladimir Kozlov
381c57e0d4 6947341: JVM Crash running Oracle ATG CRMDemo
Missing protected page below heap with compressed oops on Linux with large pages use.

Reviewed-by: never, phh, jcoomes
2010-06-23 09:40:11 -07:00
Jon Masamitsu
c443776640 6952853: SIGSEGV with UseAdaptiveGCBoundary on 64b linux running jvm2008
Shrinking of a generation and the corresponding card table was causing part of the card table to be uncommitted.

Reviewed-by: jcoomes
2010-06-23 08:35:31 -07:00
Dmitry Samersoff
5cf9793864 6931566: NetworkInterface is not working when interface name is more than 15 characters long
Separate Linux and Solaris code, use lifreq under Solaris

Reviewed-by: chegar
2010-06-23 17:25:50 +04:00
Kelly O'Hair
9ff93a56c0 Merge 2010-06-22 19:18:06 -07:00
Kelly O'Hair
dfb66312ab 6933622: Duplicate class files in rt.jar and charsets.jar
6895003: JarReorder is not excluding a requested file

Reviewed-by: jjg
2010-06-22 17:26:32 -07:00
Kelly O'Hair
5fcb4ac25f 6939022: Source code adjustments for parfait compilation
Reviewed-by: jjg
2010-06-22 17:07:17 -07:00
Daniel D. Daugherty
34d162ce41 Merge 2010-06-22 16:18:54 -07:00
Igor Veresov
7a40a76a81 6962980: C1: stub area should take into account method handle deopt stub
Reviewed-by: twisti, never
2010-06-22 12:10:07 -07:00
Xueming Shen
3235e8028e Merge 2010-06-22 14:22:14 -04:00
Xueming Shen
62854e9b81 6963156: TEST_BUG: Several tests under sun/nio/cs failed
Updated the test cases and removed them from ProblemList.txt

Reviewed-by: alanb
2010-06-22 14:04:36 -04:00
Jeremy Manson
9a0c9857b1 6942989: 2/2 Memory leak of java.lang.ref.WeakReference objects
Use ReferenceQueues to manage WeakReferences in LogManager and Logger.

Reviewed-by: dholmes, alanb, emcmanus, tonyp
2010-06-22 10:54:59 -07:00
Kelly O'Hair
43eef4d0ef 6931871: Rebranding of javadoc generation in makefiles
6951293: control docs target does not work on windows

Reviewed-by: jjg
2010-06-22 10:54:38 -07:00
Alexander Potochkin
38241ca3a4 6684401: JTree isExpanded should not call itself recursively
Reviewed-by: rupashka
2010-06-22 20:36:55 +04:00
Alexander Potochkin
3e7a0f0bfd 6777378: NullPointerException in XPDefaultRenderer.paint()
Reviewed-by: rupashka
2010-06-22 19:38:27 +04:00
Zhengyu Gu
a59a9f6a2b Merge 2010-06-22 10:03:12 -04:00
Zhengyu Gu
360fcdc7bd 6939019: Source code adjustments for parfait compilation of hotspot
Minor source code adjustments for parfait compilation, since it uses different compiler vs. JDK

Reviewed-by: never, kamg
2010-06-22 09:46:15 -04:00
Peter Zhelezniakov
c24951c366 6959260: javax/swing/JLabel/6501991/bug6501991.java failed on build 1.7.0-ea-b96
Reviewed-by: rupashka
2010-06-22 14:36:46 +04:00
Sergey Malenkov
3cd3bb0958 6707234: Method returned by Introspector.internalFindMethod not necessarily most specific
Reviewed-by: peterz
2010-06-22 12:06:33 +04:00
Lana Steuck
6a10c59513 Merge 2010-06-21 22:09:18 -07:00
Lana Steuck
ac40d6f126 Merge 2010-06-21 22:08:10 -07:00
Lana Steuck
4407396c1c Merge 2010-06-21 22:07:06 -07:00
Lana Steuck
dde1b747f6 Merge 2010-06-21 22:07:03 -07:00
Lana Steuck
bf6e1ab5ce Merge 2010-06-21 22:06:51 -07:00
Lana Steuck
ae3c69bfc5 Merge 2010-06-21 22:06:46 -07:00
Lana Steuck
fa13ff6051 Merge 2010-06-21 22:06:28 -07:00
Lana Steuck
682a3fcf9b Merge 2010-06-21 22:05:11 -07:00
Lana Steuck
01848008df Merge 2010-06-21 22:04:23 -07:00
Mandy Chung
239fc2abf7 6962815: support enable and disable of the servicetag's system registry for testing purpose
Allow the system registry to be disabled/enabled at runtime

Reviewed-by: ksrini
2010-06-21 15:02:47 -07:00
Tom Rodriguez
fdaa7a673c 6656830: assert((*p)->is_oop(),"expected an oop while scanning weak refs")
Reviewed-by: dcubed, kvn, twisti
2010-06-21 14:26:17 -07:00
Kelly O'Hair
0eca63f398 6960853: Cleanup makefiles, remove unused vars etc
6959596: Windows fastdebug build broken
6960335: Add top level 'make test' rule that uses test/Makefile, runs all test batches

Reviewed-by: alanb
2010-06-21 11:00:15 -07:00
Mandy Chung
4d0c91a7c9 6962478: Privacy page referenced in register_ja.html is incorrect
Fix the URL for the privacy page

Reviewed-by: ogino
2010-06-20 19:56:42 -07:00
Kelly O'Hair
b383b9ba47 6962617: Testcase changes, cleanup of problem list for jdk_tools targets
Reviewed-by: alanb
2010-06-20 14:53:36 -07:00
Kelly O'Hair
4c7ea8f9ef 6960853: Cleanup makefiles, remove unused vars etc
Reviewed-by: alanb
2010-06-20 14:51:33 -07:00
Kumar Srinivasan
30c988b71e 6712743: pack200: should default to 150.7 pack format for classfiles without any classes
Reviewed-by: jrose
2010-06-19 17:42:39 -07:00
Alan Bateman
909d0bb109 6962419: TEST_BUG: java_io tests fails in samevm mode
Reviewed-by: ohair, sherman
2010-06-19 15:17:36 +01:00
John R Rose
2fb4d43825 Merge 2010-06-19 01:14:40 -07:00
Jonathan Gibbons
dfd2d3b478 6961178: Allow doclet.xml to contain XML attributes
Reviewed-by: bpatel
2010-06-18 21:13:56 -07:00
Tom Rodriguez
338714d4e6 6956958: assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted() || is_optimized() || is_megam
Reviewed-by: kvn
2010-06-18 16:51:54 -07:00
Jonathan Gibbons
7210444d87 6962540: langtools Makefile sets DEV_NULL incorrectly
Reviewed-by: ohair
2010-06-18 16:45:13 -07:00
John R Rose
f3779adaed Merge 2010-06-18 15:23:57 -07:00
John R Rose
3141814177 Merge 2010-06-18 15:12:04 -07:00
Alan Bateman
30e0321d0a 6962045: TEST_BUG: Tests in test/java/io/Serializable leave files open
Reviewed-by: mchung
2010-06-18 20:59:13 +01:00
Phil Race
ee0a2ddfe6 6961633: gui applications cause a jvm crash on windows
Reviewed-by: ceisserer, bae
2010-06-18 11:00:14 -07:00
Mandy Chung
0a801a25db 6961894: TEST_BUG: jdk_lang tests fail in samevm mode
Fixed jdk_lang tests to run in samevm mode or mark to run in othervm

Reviewed-by: alanb
2010-06-18 09:35:22 -07:00
Alan Bateman
0b946fc36e 4981129: (dc) DatagramSocket created by DatagramChannel does not provide sender info
Reviewed-by: chegar
2010-06-18 16:16:51 +01:00
Anthony Petrov
c49c7ce7e8 6961754: JCK tests CvsEventTest0001 and CvsEventTest0002 fail under FF 3.5 on OEL 5
Check the return value of XlibUtil.translateCoordinates() for null

Reviewed-by: art, dcherepanov
2010-06-18 17:13:26 +04:00
Anthony Petrov
a0e99eb3e4 6959165: JVM crash during execution FileDialogBufferOverflowTest.html
Add proper synchronization

Reviewed-by: art, dcherepanov
2010-06-18 17:09:28 +04:00
Erik Trimble
dbda92bd87 Merge 2010-06-18 00:19:10 -07:00
Erik Trimble
70eb231ee9 Merge 2010-06-18 00:09:22 -07:00
Erik Trimble
e1ffbcca68 Merge 2010-06-17 23:59:24 -07:00
Kelly O'Hair
70d13b11e3 6955292: Workaround ant 1.7.1 package-info.java issue in ant scripts
6940241: Change jaxp/jaxws so that the http downloads are not done by default
6960333: Add make level ALLOW_DOWNLOADS=true option

Reviewed-by: darcy, ramap
2010-06-17 17:19:58 -07:00
Kelly O'Hair
8cc0b7c935 6869741: Integrate JAX-WS 2.2 and JAXB 2.2 in JDK 7
Reviewed-by: darcy, ramap
2010-06-17 17:18:55 -07:00
Michael Wilkerson
5bdc7a2a88 Added tag jdk7-b98 for changeset eca02d17ce03 2010-06-17 16:28:21 -07:00
Michael Wilkerson
704059e82c Added tag jdk7-b98 for changeset 3046e368377b 2010-06-17 16:28:11 -07:00
Michael Wilkerson
5cb762fd3a Added tag jdk7-b98 for changeset 2166b8232399 2010-06-17 16:28:05 -07:00
Michael Wilkerson
01e7cde127 Added tag jdk7-b98 for changeset 19fe6cf1559b 2010-06-17 16:28:04 -07:00
Michael Wilkerson
e8b11fe509 Added tag jdk7-b98 for changeset cddc74d84e01 2010-06-17 16:27:59 -07:00
Michael Wilkerson
da01f1bc64 Added tag jdk7-b98 for changeset 7b1eebf9ecf0 2010-06-17 16:27:56 -07:00
Michael Wilkerson
3a1ab0ea9d Added tag jdk7-b98 for changeset eda3e9ad64dc 2010-06-17 16:27:54 -07:00
Kelly O'Hair
eadcba1cd9 6869741: Integrate JAX-WS 2.2 and JAXB 2.2 in JDK 7
Reviewed-by: ramap
2010-06-17 14:42:30 -07:00
Xueming Shen
12d90b9484 6962067: TEST_BUG: Tests in java/util/zip/ZipFile leave file open
Close zipfile and io stream when done

Reviewed-by: alanb
2010-06-17 13:21:46 -07:00
Kelly O'Hair
cafa9bd6e5 6955292: Workaround ant 1.7.1 package-info.java issue in ant scripts
6960333: Add make level ALLOW_DOWNLOADS=true option
6940241: Change jaxp/jaxws so that the http downloads are not done by default

Reviewed-by: darcy
2010-06-17 10:50:14 -07:00
Kelly O'Hair
98a56c7ab7 6955301: Update names and references to rebranded drop bundles (jaxp, jaxws, jaf)
Reviewed-by: darcy
2010-06-17 10:43:17 -07:00
Alan Bateman
29b2194847 6395224: (so) SocketChannel writer blocked on large buffer is not preempted by close method (vista)
Reviewed-by: chegar
2010-06-17 17:49:59 +01:00
Mandy Chung
ec720fb754 6961408: test/java/util/logging/ParentLoggersTest.java fails in samevm mode
Check against the list of loggers added since the test begins to run

Reviewed-by: dcubed
2010-06-16 23:27:41 -07:00
Weijun Wang
5141220c5e 6959292: regression: cannot login if session key and preauth does not use the same etype
Reviewed-by: xuelei, valeriep
2010-06-17 13:46:15 +08:00
Lana Steuck
c97385de9d Merge 2010-06-16 17:52:10 -07:00
Joshua Maurice
bb97fb0834 6956638: JavacTask.generate does not generate all required files
Reviewed-by: darcy
2010-06-16 16:23:27 -07:00
Lana Steuck
6c504b042e Merge 2010-06-16 14:09:03 -07:00
Lana Steuck
ce4febb72c Merge 2010-06-16 14:07:47 -07:00
Lana Steuck
6c1e7ccb5e Merge 2010-06-16 13:41:34 -07:00
Mandy Chung
0f0ac3ef39 6961502: TEST_BUG: test/java/lang/ClassLoader/defineClass/DefineClassByteBuffer.java fails
Fix the test to define TestClass by DummyClassLoader as it intends to do

Reviewed-by: alanb
2010-06-16 12:40:22 -07:00
Kumar Srinivasan
fad23a5a1f 6575373: Error verifying signatures of pack200 files in some cases
Reviewed-by: jrose, forax
2010-06-16 12:36:49 -07:00
Mario Torre
cb437cbfe4 6961732: FontMetrics.getLeading() may be negative in freetype-based OpenJDK builds
Fix premature integer roundings to preserve correct height, width and descent values for fonts

Reviewed-by: prr
2010-06-16 20:46:10 +02:00
Sean Coffey
08c333279b 6860491: WRAP_TIME_MILLIS incorrectly set
Alter WRAP_TIME_MILLIS to be unsigned

Reviewed-by: yan
2010-06-16 16:15:57 +01:00
Alan Bateman
dadf7053f7 6961630: TEST_BUG: Several SocketChannel and Selector tests can fail with "address already in use"
Reviewed-by: chegar
2010-06-16 14:24:46 +01:00
Anthony Petrov
f79194f505 6959787: java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html failed on 7b94
Add a delay to the test to make sure the filename filters are called.

Reviewed-by: dcherepanov, art
2010-06-16 11:26:15 +04:00
Mandy Chung
008e969429 6961506: TEST_BUG: ResourceBundle/Bug4168625Test.java and TestBug4179766.java fails in samevm mode
Set the proper parent class loader of Loader and SimpleLoader

Reviewed-by: naoto
2010-06-15 20:34:49 -07:00
Mandy Chung
fc99cf1793 6961518: TEST_BUG: add @run main/othervm in tests that call setSecurityManager
Mark tests to run in othervm

Reviewed-by: ohair
2010-06-15 20:29:22 -07:00
Vladimir Kozlov
21f481e5dd 6959430: Make sure raw loads have control edge
Check that raw loads have control edge

Reviewed-by: never, twisti
2010-06-15 18:07:27 -07:00
John R Rose
998865b735 Merge 2010-06-15 15:57:36 -07:00
Alan Bateman
a98209a61f Merge 2010-06-15 21:43:59 +01:00
Tom Rodriguez
32036d6953 Merge 2010-06-15 12:06:52 -07:00
Tom Rodriguez
f6c6028287 6952176: Remove debug flag from adlc makefile for 6Update trains
Reviewed-by: kvn, twisti
2010-06-15 12:03:15 -07:00
Alexander Potochkin
f27b8e12bd 6739756: JToolBar leaves space for non-visible items under Nimbus L&F
Reviewed-by: peterz
2010-06-15 21:32:59 +04:00
Alexander Potochkin
0b9679e5b7 6771547: SynthParser throws StringIndexOutOfBoundsException parsing custom ColorTypes
Reviewed-by: rupashka
2010-06-15 21:28:22 +04:00
Mandy Chung
9e05cd8605 6959641: testcase failing java/util/Locale/Bug4184873Test.java
Revert the Bug4184873_{he,id,yi} files to revision 0 (before rebranding)

Reviewed-by: naoto
2010-06-15 09:54:03 -07:00
Mandy Chung
c1c925728c Merge 2010-06-15 09:52:34 -07:00
Mandy Chung
1696f0a3a6 6952161: Rebranding: Registration html for servicetag
Rebrand register.html and jdk_header.png

Reviewed-by: ohair, asaha, ogino, mfang
2010-06-15 09:49:31 -07:00
Alan Bateman
cee6cf433e 6961358: TEST_BUG: java/nio/channels/SocketChannel/OpenLeak.java can't run in samevm mode
Reviewed-by: chegar
2010-06-15 16:42:54 +01:00
Alan Bateman
52c2b63a7a 6932744: TEST_BUG: java/nio/channels/Selector/OpRead.java failing
Reviewed-by: chegar
2010-06-15 16:36:20 +01:00
Alexander Potochkin
b96bd0ebfc 6735259: NPE at WindowsComboBoxUI$XPComboBoxButton.getState(WindowsComboBoxUI.java:408)
Reviewed-by: rupashka
2010-06-15 19:10:42 +04:00
Alexander Potochkin
db380d5775 6788484: NPE in DefaultTableCellHeaderRenderer.getColumnSortOrder() with null table
Reviewed-by: rupashka
2010-06-15 19:05:44 +04:00
Sergey Malenkov
003df98660 5066685: BorderFactory lacks SoftBevelBorder support
Reviewed-by: alexp
2010-06-15 17:39:55 +04:00
Alan Bateman
788f7f3485 6961062: (dc) Several DatagramChannel tests timeout or fail with "address already in use"
Reviewed-by: chegar
2010-06-15 10:03:37 +01:00
Mandy Chung
612e107faa 6960789: com.sun.servicetag API needs to be added in ct.sym
Include com.sun.servicetag classes when generating ct.sym

Reviewed-by: alanb, jjg
2010-06-14 14:44:00 -07:00
Jonathan Gibbons
8fbcd87b24 6960831: fix CORBA build warnings
Reviewed-by: darcy
2010-06-14 11:28:53 -07:00
Gary Benson
729c6246fb 6960550: Missing semicolon in Zero
There is a missing semicolon in cppInterpreter_zero.cpp.

Reviewed-by: twisti
2010-06-14 00:52:15 -07:00
Martin Buchholz
35e50729a8 6960898: Regression due to src/share/classes/java/lang/ProcessBuilder.java changes
Use Null{In,Out}putStream.INSTANCE as with Linux code

Reviewed-by: ohair
2010-06-13 17:19:22 -07:00
John R Rose
c8359c3738 6960865: ldc of unloaded class throws an assert in ciTypeFlow
Support java_mirror for unloaded klasses, arrays as well as instances.  Simplify ciTypeFlow by removing unused path.

Reviewed-by: kvn
2010-06-12 22:53:43 -07:00
Martin Buchholz
45b78120fc 6944584: Improvements to subprocess handling on Unix
Use thread pool for reaper thread; move most I/O operations out of reaper thread

Reviewed-by: michaelm, hiroshi
2010-06-11 18:55:45 -07:00
Andrew John Hughes
5b0c4babe6 6959197: When building with JAVAC_MAX_WARNINGS=true, the build fails in sun/nio/cs due to the use of -Werror
Remove unneeded casts, add generic types and make better use of static data

Reviewed-by: sherman
2010-06-12 01:32:43 +01:00
Jonathan Gibbons
f6a7442983 6958836: javadoc should support -Xmaxerrs and -Xmaxwarns
Reviewed-by: darcy
2010-06-11 17:24:23 -07:00
Jonathan Gibbons
774e9847c4 6877961: langtools build should allow more options when running jtreg
Reviewed-by: mcimadamore
2010-06-11 07:12:07 -07:00
Alan Bateman
356e978bce 6938230: (so) SocketAdaptor.close() does not translate IOException resulting in Error
Reviewed-by: chegar
2010-06-11 14:47:22 +01:00
Alan Bateman
82adf1a224 6934585: TEST_BUG: java/nio/channels/AsynchronousSocketChannel/Basic.java
Reviewed-by: chegar
2010-06-11 14:31:26 +01:00
Weijun Wang
b0277a9631 6958869: regression: PKIXValidator fails when multiple trust anchors have same dn
Reviewed-by: xuelei, wetmore, mullan
2010-06-11 11:38:36 +08:00
Lana Steuck
599d2d5eaf Merge 2010-06-10 18:58:31 -07:00
Jonathan Gibbons
19b81a2817 6960407: Potential rebranding issues in openjdk/langtools repository sources
Reviewed-by: darcy
2010-06-10 17:09:56 -07:00
Jonathan Gibbons
0dd9ef9b43 6944312: Potential rebranding issues in openjdk/langtools repository sources
Reviewed-by: darcy
2010-06-10 16:08:01 -07:00
Martin Buchholz
d6dea71e06 6959259: Minor improvements to static Random field caching
Cache fields in locals; small javadoc clarifications

Reviewed-by: emcmanus, dholmes, forax, dl
2010-06-10 15:55:26 -07:00
Martin Buchholz
e267adc80a 6960394: Stop linking with -lnsl on Linux
Define LIBNSL (like LIBSOCKET), non-empty only on Solaris

Reviewed-by: ohair
2010-06-10 15:54:25 -07:00
Igor Nekrestyanov
7313e1145f 6952043: Incorrect JNI calls in fontpath.c
Reviewed-by: jgodinez, prr
2010-06-10 15:00:30 -07:00
Mandy Chung
50cb7df534 Merge 2010-06-10 14:21:37 -07:00
Lana Steuck
c6d6482bfe Merge 2010-06-10 14:18:45 -07:00
Mandy Chung
22ac1684a0 6959965: jstat: Add new -classload option to print class loading statistics
Add a new jstat -classload option

Reviewed-by: alanb
2010-06-10 14:14:17 -07:00
Vladimir Kozlov
9c7b430e11 6730276: JDI_REGRESSION tests fail with "Error: count must be non-zero" error on x86
Modify assembler code to check for 0 count for all copy routines.

Reviewed-by: never, ysr, jcoomes
2010-06-10 13:04:20 -07:00
Jon Masamitsu
428d02d5d7 Merge 2010-06-10 08:27:35 -07:00
Maurizio Cimadamore
875dc24cfc 6945418: Project Coin: Simplified Varargs Method Invocation
Add new mandatory warning for unsafe vararg method declaration. Warning can be suppressed as usual (@SuppressWarnings("varargs")/-Xlint:-varargs)

Reviewed-by: jjg, darcy
2010-06-10 09:29:23 +01:00
John R Rose
1f4cfb029b 6939203: JSR 292 needs method handle constants
Add new CP types CONSTANT_MethodHandle, CONSTANT_MethodType; extend 'ldc' bytecode.

Reviewed-by: twisti, never
2010-06-09 18:50:45 -07:00
Coleen Phillimore
b82f9f3c1e Merge 2010-06-09 13:53:58 -04:00
Alan Bateman
3c05d51ed6 6935563: (dc) Improve connection reset/port unreachable handling [win]
Reviewed-by: chegar
2010-06-09 18:51:32 +01:00
John R Rose
4df63bafc0 6939203: JSR 292 needs method handle constants
Add new CP types CONSTANT_MethodHandle, CONSTANT_MethodType to verifier; put in runtime support upcall.

Reviewed-by: twisti
2010-06-08 23:08:56 -07:00
Joe Darcy
bc95863f7d 6935997: Please add a nested throwable constructor to AssertionError
Reviewed-by: martin, forax, wetmore
2010-06-08 18:52:17 -07:00
Andrew John Hughes
aafc1e13c0 6959123: Remove use of obsolete png_check_sig function in splashscreen_png.c
Avoid use of deprecated libpng macro (removed in some 1.4.x releases)

Reviewed-by: prr
2010-06-08 17:52:47 +01:00
Chris Hegarty
2f408651fb 6957375: java/net/ResponseCache getResponseCode and ResponseCacheTest fail after rebranding
Reviewed-by: ohair, wetmore, alanb
2010-06-08 10:46:14 +01:00
John Cuthbertson
6d8002eb26 6953058: G1: A bigapp crashes with SIGSEGV in compiled code
In C2's G1 post write barrier, the loads of the buffer and index fields from the DirtyCardQueue structure may be moved across a safepoint. Use the current value of "control" in the C2 IR to limit how far these loads can move.

Reviewed-by: never, iveresov, kvn
2010-06-07 17:46:04 -07:00
Tom Rodriguez
154ae789ef 6958485: fix for 6879921 was insufficient
Reviewed-by: kvn
2010-06-07 14:17:01 -07:00
Jonathan Gibbons
aa58d21213 6958802: cleanup and doc langtools build.xml file
Reviewed-by: ohair
2010-06-04 17:33:25 -07:00
Jonathan Gibbons
c8cce21323 6958391: add vizant support to langtools build
Reviewed-by: mcimadamore
2010-06-04 14:54:54 -07:00
Coleen Phillimore
d64aeff387 Merge 2010-06-04 17:44:51 -04:00
Erik Trimble
ed94c35f61 Merge 2010-06-04 11:54:35 -07:00
Igor Veresov
00b75f8353 6958292: C1: Enable parallel compilation
Enable parallel compilation in C1

Reviewed-by: never, kvn
2010-06-04 11:18:04 -07:00
Weijun Wang
2d9fcecd29 6951366: kerberos login failure on win2008 with AD set to win2000 compat mode
Reviewed-by: valeriep, xuelei
2010-06-04 19:28:53 +08:00
Joe Darcy
da823fbf44 6519115: MirroredTypeException thrown but should be MirroredTypesException
Reviewed-by: jjg
2010-06-03 19:56:12 -07:00
Erik Trimble
51ba3f9981 6958458: Bump the HS19 build number to 03
Update the HS19 build number to 03

Reviewed-by: jcoomes
2010-06-03 18:18:56 -07:00
Jonathan Gibbons
3bc126336f 6955264: add option to suppress Abort in Check.completionError
Reviewed-by: mcimadamore
2010-06-03 17:14:20 -07:00
Vladimir Kozlov
36f8c82970 6958254: -XX:+VerifyOops is broken on x86
Save and restore r10 in verify_oop().

Reviewed-by: never
2010-06-03 14:20:27 -07:00
Karen Kinnear
f8b167cccd Merge 2010-06-03 13:34:47 -04:00
Karen Kinnear
9934e0af8e 6852873: Reduce safepoint cleanup time
New optional flags to reduce inflated monitor cleanup times

Reviewed-by: chrisphi, dice
2010-06-03 13:21:47 -04:00
John R Rose
d6a9b93b5a Merge 2010-06-02 22:45:42 -07:00
Tom Rodriguez
3cf74e191f 6930994: Code cache is full warning should be visible in product
Reviewed-by: kvn, twisti, ysr
2010-06-02 20:15:33 -07:00
Joe Darcy
fa91c4b435 6933147: Provided new utility visitors supporting SourceVersion.RELEASE_7
Reviewed-by: jjg
2010-06-02 19:08:47 -07:00
Martin Buchholz
72ec2d876a 6955840: ThreadLocalRandom bug - overriden setSeed(long) method is not invoked for java.util.Random(long)
Allow setSeed only during construction

Reviewed-by: dl, dholmes
2010-06-02 17:53:54 -07:00
Tom Rodriguez
b26797f892 6956931: assert(SafepointSynchronize::is_at_safepoint()) failed: must be executed at a safepoint
Reviewed-by: kvn, dcubed
2010-06-02 14:23:23 -07:00
Vladimir Kozlov
bdef27482c 6957882: nsk/sajdi tests failed with NullPointerException
VM.getObjectAlignmentInBytes() accesses intxType before it is created.

Reviewed-by: never
2010-06-02 12:02:49 -07:00
Vladimir Kozlov
a3005a16fc 6954029: Improve implicit null check generation with compressed oops
Hoist DecodeN instruction above null check

Reviewed-by: never, twisti
2010-06-02 09:49:32 -07:00
Pavel Porvatov
5d3cbf89ec 6636983: Japanese text does not display correctly in a JEditorPane
Reviewed-by: peterz
2010-06-02 12:53:35 +04:00
Alan Bateman
6d1572722f Merge 2010-06-02 09:35:32 +01:00
Alan Bateman
9351f319e2 6950927: Testcase failure sun/management/jmxremote/bootstrap/JvmstatCountersTest.java
Reviewed-by: dholmes, dcubed
2010-06-02 09:29:39 +01:00
Pavel Porvatov
94422f1795 6857057: api/javax_swing/text/GlyphView/index.html#Methods test fails
Reviewed-by: peterz
2010-06-02 11:59:27 +04:00
Erik Trimble
98d775ab1f Merge 2010-06-01 11:48:33 -07:00
John R Rose
be95b163a6 6957080: MethodComparator needs stress testing
Add a stress-test flag for running MethodComparator over many inputs.  Fix bugs that crop up.

Reviewed-by: kvn
2010-05-29 19:22:32 -07:00
John R Rose
49cbc41c82 6957004: MethodComparator uses the wrong CP index accessor
Change two uses of get_index_u2 to get_index_u2_cpcache; also tweak some debugging print functions

Reviewed-by: kvn
2010-05-28 16:23:51 -07:00
Igor Veresov
4da8658b14 6955349: C1: Make G1 barriers work with x64
This fixes G1 barriers in c1 on x64.

Reviewed-by: never
2010-05-27 22:01:55 -07:00
Vladimir Kozlov
cc18a50e59 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
Added new product ObjectAlignmentInBytes flag to control object alignment.

Reviewed-by: twisti, ysr, iveresov
2010-05-27 18:01:56 -07:00
Keith McGuigan
211a79fc65 6930553: classfile format checker allows invalid method descriptor in CONSTANT_NameAndType_info in some cases
Check NameAndType_info signatures aggressively, even when unreferenced

Reviewed-by: coleenp, acorn, never
2010-05-27 17:06:39 -04:00
John Coomes
308ec93f02 6956472: test/runtime/6888954/vmerrors.sh uses ksh-specific syntax
Reviewed-by: jmelvin, kvn
2010-05-27 13:09:56 -07:00
John R Rose
05b4f2e796 6956164: nightly regressions from 6939207
Fix errors in 6939207.

Reviewed-by: kvn
2010-05-27 09:54:07 -07:00
Daniel D. Daugherty
d2703f3e8d Merge 2010-05-26 14:16:55 -07:00
Tom Rodriguez
66b26ccfb4 Merge 2010-05-25 13:18:49 -07:00
Christian Thalinger
7a9f2e7625 6934104: JSR 292 needs to support SPARC C2
C2 for SPARC needs to support JSR 292.

Reviewed-by: kvn, never
2010-05-25 02:38:48 -07:00
John Cuthbertson
9936975b96 6941378: G1: change default value of G1UseFixedWindowMMUTracker to true
Rather than changing the default value of the G1UseFixedWindowMMUTracker, the flag and associated guarantee have been removed.

Reviewed-by: jcoomes, tonyp, ysr
2010-05-24 17:11:22 -07:00
John R Rose
e59f431f8d Merge 2010-05-24 14:15:14 -07:00
Tom Rodriguez
0582a3ba99 6490487: java support on 64 bit solaris x86 machines is broken
Reviewed-by: kvn, kamg
2010-05-24 13:53:38 -07:00
John R Rose
581521ba96 6939207: refactor constant pool index processing
Factored cleanup of instruction decode which prepares for enhanced ldc semantics.

Reviewed-by: twisti
2010-05-23 01:38:26 -07:00
Christian Thalinger
2e24ba80e9 6930772: JSR 292 needs to support SPARC C1
C1 for SPARC needs to support JSR 292.

Reviewed-by: never, jrose
2010-05-21 02:59:24 -07:00
Christian Thalinger
c9f2ba541b 6951083: oops and relocations should part of nmethod not CodeBlob
This moves the oops from Codeblob to nmethod.

Reviewed-by: kvn, never
2010-05-20 06:34:23 -07:00
Keith McGuigan
4f45d8c3a2 6911922: JVM must throw VerifyError for jsr or jsr_w opcodes in class file v.51+
6693236: A class file whose version number is greater than to 50.0 must be verified using the typechecker

Disable failover verification for classfiles >= v51

Reviewed-by: never, acorn, dholmes
2010-05-19 10:19:10 -04:00
John R Rose
ffc05ac66b Merge 2010-05-13 20:01:40 -07:00
John R Rose
8fff72a23b Merge 2010-05-13 20:01:34 -07:00
John R Rose
07ee2dd259 6939196: method handle signatures off the boot class path get linkage errors
Remove workaround from MethodHandleImpl lookup code; add JUnit regression test to MethodHandlesTest.

Reviewed-by: twisti
2010-05-03 23:32:47 -07:00
John R Rose
a56ce23775 6939134: JSR 292 adjustments to method handle invocation
Split MethodHandle.invoke into invokeExact and invokeGeneric

Reviewed-by: twisti
2010-05-01 15:05:39 -07:00
John R Rose
0d30a781cf 6939134: JSR 292 adjustments to method handle invocation
Split MethodHandle.invoke into invokeExact and invokeGeneric; also clean up JVM-to-Java interfaces

Reviewed-by: twisti
2010-04-30 23:48:23 -07:00
Antonios Printezis
3e2cf1a294 6946048: G1: improvements to +PrintGCDetails output
Small improvements to G1's PrintGCDetails output. It also includes minor formatting details.

Reviewed-by: ysr, johnc
2010-04-22 15:20:16 -04:00
Antonios Printezis
a6d2266193 6949307: G1: raise a vm error, do not core dump, if target pause time and target interval are inconsistent
First, change the guarantee to raising a vm error. Second, set the interval dynamically, and based on the pause time target, if it is not set explicitly.

Reviewed-by: ysr, johnc
2010-05-07 13:14:41 -04:00
3061 changed files with 170068 additions and 65213 deletions

16
.hgtags
View File

@@ -72,3 +72,19 @@ b5dab6a313fdff4c043250e4d9c8f66fd624d27e jdk7-b93
654298d26561b76dfe3cfcffbbd7078080837300 jdk7-b95
d260f892491e040ae385a8e6df59557a7d721abf jdk7-b96
7e406ebed9a5968b584f3c3e6b60893b5d6d9741 jdk7-b97
db6e660120446c407e2d908d52ec046592b21726 jdk7-b98
c4c8a5bc54f66abc68cd185d9294042121922154 jdk7-b99
2d6ba7a221915bdf0311acc5641c7f3875cb793e jdk7-b100
2548ac036b8fca3326d058d758e6df8355a42469 jdk7-b101
88db80c8e49cea352c2900f689600dc410761c1f jdk7-b102
64770970865839b0443066370e7d476ef47e90cd jdk7-b103
10bc903a228d3a8efdf46fb8c3fcf82a59b88bc5 jdk7-b104
1ce7938efb03224ccc8b3cdd7803eb39e889539c jdk7-b105
6bdae472f77205046703b685eff2ac4f7a0ecf4e jdk7-b106
439de530aac531a360beedba6e2fe51e17292cc0 jdk7-b107
044d31b99ef5609389fc771c422e722e5e224228 jdk7-b108
e02b4d709e177d08d56130a4bc68061e4bbacc7d jdk7-b109
a6442d6bc38a44152e0662688213ce4d2701f42a jdk7-b110
69f3edf083477955b5bd2f754252c7504167d8e1 jdk7-b111
f960f117f1623629f64203e2b09a92a8f6f14ff5 jdk7-b112
1fee41c7ed2b3388970a756a85aa693c0de8407a jdk7-b113

View File

@@ -72,3 +72,19 @@ d7f35c61afa092b6357c2c4bce3f298f16620f71 jdk7-b94
fd3663286e77b9f13c39eee124db2beb079b3ca6 jdk7-b95
cf71cb5151166f35433afebaf67dbf34a704a170 jdk7-b96
5e197c942c6ebd8b92f324a31049c5f1d26d40ef jdk7-b97
6cea9984d73d74de0cd01f30d07ac0a1ed196117 jdk7-b98
e7f18db469a3e947b7096bfd12e87380e5a042cd jdk7-b99
b218a53ec7d3d42be61d31d6917a6c5c037b6f56 jdk7-b100
4193eaf5f1b82794c6a0fb1a8d11af43d1b1d611 jdk7-b101
a136a51f5113da4dad3853b74a8536ab583ab112 jdk7-b102
be2aedc4e3b1751c1310f334242ba69e90867f38 jdk7-b103
f8be576feefce0c6695f188ef97ec16b73ad9cfd jdk7-b104
9f96a4269d7727dad68864eaab795eafce270311 jdk7-b105
43096cccf1cee749c2f4e7714ee71f4e9e0f4d7f jdk7-b106
7d396ad455c3b2f68b0d7094891c5aba7c757a6e jdk7-b107
140fdef4ddf52244013b6157dc542cd9f677bb6f jdk7-b108
81dfc728d7bb7e1fff4a4dc6d0f7cea5a3315667 jdk7-b109
2a02d4a6955c7c078aee9a604cb3be409800d82c jdk7-b110
9702d6fef68e17533ee7fcf5923b11ead3e912ce jdk7-b111
b852103caf73da70068473777ae867a457bb3ae1 jdk7-b112
c1df968c4527bfab5f97662a89245f15d12d378b jdk7-b113

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1995, 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
@@ -29,10 +29,6 @@ ifndef TOPDIR
TOPDIR:=.
endif
ifndef CONTROL_TOPDIR
CONTROL_TOPDIR=$(TOPDIR)
endif
# Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true)
OPENJDK_SOURCETREE=$(TOPDIR)/openjdk
OPENJDK_BUILDDIR:=$(shell \
@@ -120,7 +116,7 @@ endif
all_product_build::
@$(FINISH_ECHO)
# Generis build of basic repo series
# Generic build of basic repo series
generic_build_repo_series::
$(MKDIR) -p $(OUTPUTDIR)
$(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
@@ -179,11 +175,15 @@ endif
# The install process needs to know what the DEBUG_NAME is, so
# look for INSTALL_DEBUG_NAME in the install rules.
#
# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME).
# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
# not be the same location.
#
# Location of fresh bootdir output
ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
FRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME)/j2sdk-image
FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME)/j2sdk-image
create_fresh_product_bootdir: FRC
@$(START_ECHO)
@@ -248,10 +248,14 @@ build_product_image:
generic_build_repo_series
@$(FINISH_ECHO)
# NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME).
# Due to the use of short paths in $(ABS_OUTPUTDIR), this may
# not be the same location.
generic_debug_build:
@$(START_ECHO)
$(MAKE) \
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME) \
DEBUG_NAME=$(DEBUG_NAME) \
GENERATE_DOCS=false \
$(BOOT_CYCLE_DEBUG_SETTINGS) \
@@ -348,8 +352,8 @@ endif
clobber::
$(RM) -r $(OUTPUTDIR)/*
$(RM) -r $(OUTPUTDIR)-debug/*
$(RM) -r $(OUTPUTDIR)-fastdebug/*
$(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-debug/*
$(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-fastdebug/*
-($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
clean: clobber
@@ -550,6 +554,60 @@ ifeq ($(BUNDLE_RULES_AVAILABLE), true)
include $(BUNDLE_RULES)
endif
################################################################
# rule to test
################################################################
.NOTPARALLEL: test_run
test:
$(MAKE) test_run
test_run: test_clean test_start test_summary
test_start:
@$(ECHO) "Tests started at `$(DATE)`"
test_clean:
$(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt
test_summary: $(OUTPUTDIR)/test_failures.txt
@$(ECHO) "#################################################"
@$(ECHO) "Tests completed at `$(DATE)`"
@( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \
|| $(ECHO) "No TEST STATS seen in log" )
@$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt"
@$(ECHO) "#################################################"
@if [ -s $< ] ; then \
$(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \
$(CAT) $<; \
exit 1; \
else \
$(ECHO) "Success! No failures detected"; \
fi
# Get failure list from log
$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
@$(RM) $@
@( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) | $(NAWK) 'length>0' > $@
# Get log file of all tests run
JDK_TO_TEST := $(shell \
if [ -d "$(ABS_OUTPUTDIR)/j2sdk-image" ] ; then \
$(ECHO) "$(ABS_OUTPUTDIR)/j2sdk-image"; \
elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \
$(ECHO) "$(ABS_OUTPUTDIR)"; \
elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \
$(ECHO) "$(PRODUCT_HOME)"; \
fi \
)
TEST_TARGETS=all
$(OUTPUTDIR)/test_log.txt:
$(RM) $@
( $(CD) test && \
$(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) $(TEST_TARGETS) \
) | tee $@
################################################################
# JPRT rule to build
################################################################
@@ -560,7 +618,7 @@ include ./make/jprt.gmk
# PHONY
################################################################
.PHONY: all \
.PHONY: all test test_run test_start test_summary test_clean \
generic_build_repo_series \
what clobber insane \
dev dev-build dev-sanity dev-clobber \

View File

@@ -148,7 +148,7 @@
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads.
</td>
<td>Sun Studio 12</td>
<td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td>
</tr>
<tr>
@@ -158,7 +158,7 @@
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads.
</td>
<td>Sun Studio 12</td>
<td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td>
</tr>
<tr>
@@ -168,7 +168,7 @@
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads.
</td>
<td>Sun Studio 12</td>
<td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td>
</tr>
<tr>
@@ -178,7 +178,7 @@
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads.
</td>
<td>Sun Studio 12</td>
<td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td>
</tr>
<tr>
@@ -941,21 +941,78 @@
<strong><a name="studio">Solaris: Sun Studio</a></strong>
<blockquote>
At a minimum, the
<a href="http://developers.sun.com/sunstudio/index.jsp" target="_blank">
Sun Studio 12 Compilers</a>
(containing version 5.9 of the C and C++ compilers) is required,
with patches from the
<a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access" target="_blank">
SunSolve web site</a>.
<a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
Sun Studio 12 Update 1 Compilers</a>
(containing version 5.10 of the C and C++ compilers) is required,
including specific patches.
<p>
The Solaris SPARC patch list is:
<ul>
<li>
118683-05: SunOS 5.10: Patch for profiling libraries and assembler
</li>
<li>
119963-21: SunOS 5.10: Shared library patch for C++
</li>
<li>
120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
</li>
<li>
128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
</li>
<li>
141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
</li>
<li>
141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
</li>
<li>
142371-01: Sun Studio 12.1 Update 1: Patch for dbx
</li>
<li>
143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
</li>
<li>
143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
</li>
<li>
142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
</li>
</ul>
<p>
The Solaris X86 patch list is:
<ul>
<li>
119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
</li>
<li>
119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
</li>
<li>
120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
</li>
<li>
141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
</li>
<li>
128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
</li>
<li>
142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
</li>
<li>
142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
</li>
</ul>
<p>
Set
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
to point to the location of
the compiler binaries, and place this location in the <tt>PATH</tt>.
<p>
The Sun Studio Express compilers at:
The Oracle Solaris Studio Express compilers at:
<a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
Sun Studio Express Download site</a>
Oracle Solaris Studio Express Download site</a>
are also an option, although these compilers have not
been extensively used yet.
</blockquote>

View File

@@ -72,3 +72,19 @@ bcd2fc089227559ac5be927923609fac29f067fa jdk7-b91
06dbf406818c789bb586c1de4c002024cd26ecd2 jdk7-b95
edc2a2659c77dabc55cb55bb617bad89e3a05bb3 jdk7-b96
4ec9d59374caa1e5d72fa802291b4d66955a4936 jdk7-b97
3b99409057e4c255da946f9f540d051a5ef4ab23 jdk7-b98
95db968660e7d87c345d5cf3dc2e3db037fb7220 jdk7-b99
a56d734a1e970e1a21a8f4feb13053e9a33674c7 jdk7-b100
86a239832646a74811695428984b6947c0bd6dc8 jdk7-b101
78561a95779090b5106c8d0f1a75360a027ef087 jdk7-b102
11e7678c3eb169b77d9a9892fe5e3dfa1d1a0d51 jdk7-b103
9607213481d400ac477183191cc080e1bef6f475 jdk7-b104
6f21b030092fb61244cc8a0aedf8058f7c022b81 jdk7-b105
519daea48888196af76a975a3b31258efa860bad jdk7-b106
232adb83eae8375439ccff65b6e205ca0da0510d jdk7-b107
8d810527b499a67153365db74421a03c12b46f35 jdk7-b108
c3dd858e09b20206459d9e7b0ead99d27ab00eab jdk7-b109
0e1f80fda2271f53d4bbb59ec3f301dfbcef6a0a jdk7-b110
640fa4d4e2ad4c2d7e4815c955026740d8c52b7a jdk7-b111
cc67fdc4fee9a5b25caee4e71b51a8ff24ae7d1a jdk7-b112
a89a6c5be9d1a754868d3d359cbf7ad36aa95631 jdk7-b113

View File

@@ -61,7 +61,6 @@ ABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
CLASSES_DIR = $(BUILD_DIR)/classes
GENSRC_DIR = $(BUILD_DIR)/gensrc
BIN_DIR = $(DIST_DIR)/bin
LIB_DIR = $(DIST_DIR)/lib
#-----

View File

@@ -28,306 +28,10 @@
# targeted to Linux. Should not contain any rules.
#
# Warning: the following variables are overriden by Defs.gmk. Set
# values will be silently ignored:
# CFLAGS (set $(OTHER_CFLAGS) instead)
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
# LDFLAGS (set $(OTHER_LDFAGS) instead)
# LDLIBS (set $(EXTRA_LIBS) instead)
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
# Get shared JDK settings
include $(BUILDDIR)/common/shared/Defs.gmk
# Part of INCREMENTAL_BUILD mechanism.
# Compiler emits things like: path/file.o: file.h
# We want something like: relative_path/file.o relative_path/file.d: file.h
CC_DEPEND = -MM
CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
ifndef PLATFORM_SRC
PLATFORM_SRC = $(TOPDIR)/src/solaris
endif # PLATFORM_SRC
# platform specific include files
PLATFORM_INCLUDE_NAME = $(PLATFORM)
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
# suffix used for make dependencies files.
DEPEND_SUFFIX = d
# The suffix applied to the library name for FDLIBM
FDDLIBM_SUFFIX = a
# The suffix applied to scripts (.bat for windows, nothing for unix)
SCRIPT_SUFFIX =
# CC compiler object code output directive flag value
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
#
# Default HPI libraries. Build will build only native, unless
# overriden at the make command line. This makes it convenient for
# people doing, say, a pthreads port -- they can create a posix
# directory here, and say "gnumake HPIS=posix" at the top
# level.
#
HPIS = native
#
# Default optimization
#
CC_HIGHEST_OPT = -O3
CC_HIGHER_OPT = -O3
CC_LOWER_OPT = -O2
CC_NO_OPT =
ifeq ($(PRODUCT), java)
_OPT = $(CC_HIGHER_OPT)
else
_OPT = $(CC_LOWER_OPT)
CPPFLAGS_DBG += -DLOGGING
endif
# For all platforms, do not omit the frame pointer register usage.
# We need this frame pointer to make it easy to walk the stacks.
# This should be the default on X86, but ia64 and amd64 may not have this
# as the default.
CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
ifeq ($(ZERO_BUILD), true)
CFLAGS_REQUIRED = $(ZERO_ARCHFLAG)
ifeq ($(ZERO_ENDIANNESS), little)
CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
endif
LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
else
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
endif
# Add in platform specific optimizations for all opt levels
CC_HIGHEST_OPT += $(_OPT_$(ARCH))
CC_HIGHER_OPT += $(_OPT_$(ARCH))
CC_LOWER_OPT += $(_OPT_$(ARCH))
# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off
ifdef NO_OPTIMIZATIONS
CC_HIGHEST_OPT = $(CC_NO_OPT)
CC_HIGHER_OPT = $(CC_NO_OPT)
CC_LOWER_OPT = $(CC_NO_OPT)
endif
#
# Selection of warning messages
#
GCC_INHIBIT = -Wno-unused -Wno-parentheses
GCC_STYLE =
GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
#
# Treat compiler warnings as errors, if warnings not allowed
#
ifeq ($(COMPILER_WARNINGS_FATAL),true)
GCC_WARNINGS += -Werror
endif
#
# Misc compiler options
#
ifeq ($(ARCH),ppc)
CFLAGS_COMMON = -fsigned-char
else # ARCH
CFLAGS_COMMON = -fno-strict-aliasing
endif # ARCH
PIC_CODE_LARGE = -fPIC
PIC_CODE_SMALL = -fpic
GLOBAL_KPIC = $(PIC_CODE_LARGE)
ifeq ($(ARCH), amd64)
CFLAGS_COMMON += $(GLOBAL_KPIC) $(GCC_WARNINGS) -pipe
else
CFLAGS_COMMON += $(GLOBAL_KPIC) $(GCC_WARNINGS)
endif
# Linux 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
DEBUG_FLAG = -g
ifeq ($(FASTDEBUG), true)
ifeq ($(ARCH_DATA_MODEL), 64)
DEBUG_FLAG = -g1
endif
endif
CFLAGS_OPT = $(POPT)
CFLAGS_DBG = $(DEBUG_FLAG)
CFLAGS_COMMON += $(CFLAGS_REQUIRED)
CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
CXXFLAGS_OPT = $(POPT)
CXXFLAGS_DBG = $(DEBUG_FLAG)
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
ifeq ($(FASTDEBUG), true)
CFLAGS_DBG += $(CC_LOWER_OPT)
CXXFLAGS_DBG += $(CC_LOWER_OPT)
endif
CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
ifneq ($(ARCH),alpha)
CPP_ARCH_FLAGS += -D$(ARCH)
else
CPP_ARCH_FLAGS += -D_$(ARCH)_
endif
CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -DLINUX $(VERSION_DEFINES) \
-D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
ifeq ($(ARCH_DATA_MODEL), 64)
CPPFLAGS_COMMON += -D_LP64=1
endif
CPPFLAGS_OPT =
CPPFLAGS_DBG = -DDEBUG
ifdef LIBRARY
# Libraries need to locate other libraries at runtime, and you can tell
# a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
# buried inside the .so. The $ORIGIN says to look relative to where
# the library itself is and it can be followed with relative paths from
# that. By default we always look in $ORIGIN, optionally we add relative
# paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
# On Linux we add a flag -z origin, not sure if this is necessary, but
# doesn't seem to hurt.
# The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
# Try: 'readelf -d lib*.so' to see these settings in a library.
#
LDFLAGS_COMMON += -Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker \$$ORIGIN
LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=-Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker \$$ORIGIN/%)
endif
EXTRA_LIBS += -lc
LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs
LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION)
#
# -L paths for finding and -ljava
#
LDFLAGS_OPT = -Xlinker -O1
LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
#
# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
# statically link libgcc but will print a warning with the flag. We don't
# want the warning, so check gcc version first.
#
CC_VER_MAJOR := $(shell $(CC) -dumpversion | $(SED) 's/egcs-//' | $(CUT) -d'.' -f1)
ifeq ("$(CC_VER_MAJOR)", "3")
OTHER_LDFLAGS += -static-libgcc
endif
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
# (See Rules.gmk) The gcc 5 compiler might have an option for this?
AUTOMATIC_PCH_OPTION =
#
# Post Processing of libraries/executables
#
ifeq ($(VARIANT), OPT)
ifneq ($(NO_STRIP), true)
# Debug 'strip -g' leaves local function Elf symbols (better stack traces)
POST_STRIP_PROCESS = $(STRIP) -g
endif
endif
#
# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
#
LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
#
# Support for Quantify.
#
ifdef QUANTIFY
QUANTIFY_CMD = quantify
QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
endif
#
# Path and option to link against the VM, if you have to. Note that
# there are libraries that link against only -ljava, but they do get
# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
# the library itself should not.
#
VM_NAME = server
JVMLIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH)/$(VM_NAME) -ljvm
JAVALIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH) -ljava $(JVMLIB)
#
# We want to privatize JVM symbols on Solaris. This is so the user can
# write a function called FindClass and this should not override the
# FindClass that is inside the JVM. At this point in time we are not
# concerned with other JNI libraries because we hope that there will
# not be as many clashes there.
#
PRIVATIZE_JVM_SYMBOLS = false
USE_PTHREADS = true
override ALT_CODESET_KEY = _NL_CTYPE_CODESET_NAME
override AWT_RUNPATH =
override HAVE_ALTZONE = false
override HAVE_FILIOH = false
override HAVE_GETHRTIME = false
override HAVE_GETHRVTIME = false
override HAVE_SIGIGNORE = true
override LEX_LIBRARY = -lfl
ifeq ($(STATIC_CXX),true)
override LIBCXX = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
else
override LIBCXX = -lstdc++
endif
override LIBPOSIX4 =
override LIBSOCKET =
override LIBTHREAD =
override MOOT_PRIORITIES = true
override NO_INTERRUPTIBLE_IO = true
override OPENWIN_HOME = /usr/X11R6
ifeq ($(ARCH), amd64)
override OPENWIN_LIB = $(OPENWIN_HOME)/lib64
else
override OPENWIN_LIB = $(OPENWIN_HOME)/lib
endif
override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER
override SUN_CMM_SUBDIR =
override THREADS_FLAG = native
override USE_GNU_M4 = true
override USING_GNU_TAR = true
override WRITE_LIBVERSION = false
# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
# resulting resolved absolute name of the executable in the environment
# variable EXECNAME. That executable name is then used that to locate the
# installation area.
override USE_EXECNAME = true
# If your platform has DPS, it will have Type1 fonts too, in which case
# it is best to enable DPS support until such time as 2D's rasteriser
# can fully handle Type1 fonts in all cases. Default is "yes".
# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
# DPS (Displayable PostScript) is available on Solaris machines
HAVE_DPS = no
#
# Japanese manpages
#
JA_SOURCE_ENCODING = eucJP
JA_TARGET_ENCODINGS = eucJP

View File

@@ -28,16 +28,6 @@
# targeted to Solaris. Should not contain any rules.
#
# Warning: the following variables are overridden by Defs.gmk. Set
# values will be silently ignored:
# CFLAGS (set $(OTHER_CFLAGS) instead)
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
# LDFLAGS (set $(OTHER_LDFAGS) instead)
# LDLIBS (set $(EXTRA_LIBS) instead)
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
# LINTFLAGS (set $(OTHER_LINTFLAGS) instead)
# Get shared JDK settings
include $(BUILDDIR)/common/shared/Defs.gmk
@@ -45,600 +35,3 @@ ifndef PLATFORM_SRC
PLATFORM_SRC = $(TOPDIR)/src/solaris
endif # PLATFORM_SRC
# platform specific include files
PLATFORM_INCLUDE_NAME = $(PLATFORM)
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
# suffix used for make dependencies files
DEPEND_SUFFIX = d
# suffix used for lint files
LINT_SUFFIX = ln
# The suffix applied to the library name for FDLIBM
FDDLIBM_SUFFIX = a
# The suffix applied to scripts (.bat for windows, nothing for unix)
SCRIPT_SUFFIX =
# CC compiler object code output directive flag value
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
#
# Default HPI libraries. Build will build only native unless
# overriden at the make command line. This makes it convenient for
# people doing, say, a pthreads port -- they can create a posix
# directory here, and say "gnumake HPIS=posix" at the top
# level.
#
HPIS = native
#
# Java default optimization (-x04/-O2) etc. Applies to the VM.
#
ifeq ($(PRODUCT), java)
_OPT = $(CC_HIGHER_OPT)
else
_OPT = $(CC_LOWER_OPT)
CPPFLAGS_DBG += -DLOGGING -DDBINFO
endif
#
# If -Xa is in CFLAGS_COMMON it will end up ahead of $(POPT) for the
# optimized build, and that ordering of the flags completely freaks
# out cc. Hence, -Xa is instead in each CFLAGS variant.
#
# The more unusual options to the Sun C compiler:
# -v Stricter type checking, more error checking
# (To turn ALL warnings into fatals, use -errwarn=%all)
# -xstrconst Place string literals and constants in read-only area
# (means you can't write on your string literals)
# -xs Force debug information (stabs) into the .so or a.out
# (makes the library/executable debuggable without the
# .o files needing to be around, but at a space cost)
# -g & -O If you add the -g option to the optimized compiles
# you will get better stack retraces, the code is
# still optimized. This includes a space cost too.
# -xc99=%none Do NOT allow for c99 extensions to be used.
# e.g. declarations must precede statements
# -xCC Allow the C++ style of comments in C: //
# Required with many of the source files.
# -mt Assume multi-threaded (important)
#
#
# Debug flag for C and C++ compiler
#
CFLAGS_DEBUG_OPTION=-g
CXXFLAGS_DEBUG_OPTION=-g
# Turn off -g if we are doing tcov build
ifdef TCOV_BUILD
CFLAGS_DEBUG_OPTION=
CXXFLAGS_DEBUG_OPTION=
endif
# FASTDEBUG: Optimize the -g builds, gives us a faster debug java
# If true adds -O to the debug compiles. This allows for any assert
# tests to remain and debug checking. The resulting code is faster
# but less debuggable. Stack traces are still valid, although only
# approximate line numbers are given. Printing of local variables
# during a debugging session is not possible, but stepping and
# printing of global or static variables should be possible.
# Performance/size of files should be about the same, maybe smaller.
#
ifeq ($(FASTDEBUG), true)
CC_FASTDEBUG_OPT = $(CC_LOWER_OPT)
CFLAGS_DEBUG_OPTION = -g $(CC_FASTDEBUG_OPT)
CXXFLAGS_DEBUG_OPTION = -g0 $(CC_FASTDEBUG_OPT)
endif
CFLAGS_COMMON = -v -mt -L$(OBJDIR) -xc99=%none
CFLAGS_COMMON += -xCC
CFLAGS_COMMON += -errshort=tags
CFLAGS_OPT = $(POPT)
CFLAGS_DBG = $(CFLAGS_DEBUG_OPTION)
CFLAGS_COMMON += -Xa $(CFLAGS_REQUIRED)
# Assume MT behavior all the time (important)
CXXFLAGS_COMMON = -mt
# Assume no C++ exceptions are used
CXXFLAGS_COMMON += -features=no%except -DCC_NOEX
# For C++, these options tell it to assume nothing about locating libraries
# either at compile time, or at runtime. Use of these options will likely
# require the use of -L and -R options to indicate where libraries will
# be found at compile time (-L) and at runtime (-R).
# The /usr/lib location comes for free, so no need to specify that one.
# Note: C is much simplier and there is no need for these options. This
# is mostly needed to avoid dependencies on libraries in the
# Compiler install area, also see LIBCXX and LIBM.
CXXFLAGS_COMMON += -norunpath -xnolib
#
# Treat compiler warnings as errors, if requested
#
ifeq ($(COMPILER_WARNINGS_FATAL),true)
CFLAGS_COMMON += -errwarn=%all
CXXFLAGS_COMMON += -errwarn=%all
endif
CXXFLAGS_OPT = $(POPT)
CXXFLAGS_DBG = $(CXXFLAGS_DEBUG_OPTION)
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
# Add -xstrconst to the library compiles. This forces all string
# literals into the read-only data section, which prevents them from
# being written to and increases the runtime pages shared on the system.
#
ifdef LIBRARY
CFLAGS_COMMON +=-xstrconst
endif
# Source browser database
#
# COMPILE_WITH_SB
# If defined adds -xsb to compiles and creates a
# source browsing database during compilation.
#
ifdef COMPILE_WITH_SB
ifeq ($(LIBRARY), java)
CFLAGS_DBG += -xsb
endif
endif
# Lint Flags:
# -Xa ANSI C plus K&R, favor ANSI rules
# -Xarch=XXX Same as 'cc -xarch=XXX'
# -fd report on old style func defs
# -errchk=structarg report on 64bit struct args by value
# -errchk=longptr64 report on 64bit to 32bit issues (ignores casts)
# -errchk=parentheses report on suggested use of extra parens
# -v suppress unused args
# -x suppress unused externs
# -u suppress extern func/vars used/defined
# -errfmt=simple use one line errors with position info
LINTFLAGS_COMMON = -Xa
LINTFLAGS_COMMON += -fd
LINTFLAGS_COMMON += -errchk=structarg,longptr64,parentheses
LINTFLAGS_COMMON += -v
LINTFLAGS_COMMON += -x
LINTFLAGS_COMMON += -u
LINTFLAGS_COMMON += -errfmt=simple
LINTFLAGS_OPT =
LINTFLAGS_DBG =
# The -W0,-noglobal tells the compiler to NOT generate mangled global
# ELF data symbols for file local static data.
# This can break fix&continue, but we'd rather do the same compilations
# for deliverable bits as we do for non-deliverable bits
# Tell the compilers to never generate globalized names, all the time.
CFLAGS_COMMON += -W0,-noglobal
# Arch specific settings (determines type of .o files and instruction set)
ifeq ($(ARCH_FAMILY), sparc)
ifdef VIS_NEEDED
XARCH_VALUE/32=v8plusa
XARCH_VALUE/64=v9a
else
# Someday this should change to improve optimization on UltraSPARC
# and abandon the old v8-only machines like the SPARCstation 10.
# Indications with Mustang is that alacrity runs do not show a
# big improvement using v8plus over v8, but other benchmarks might.
XARCH_VALUE/32=v8
XARCH_VALUE/64=v9
endif
endif
ifeq ($(ARCH_FAMILY), i586)
XARCH_VALUE/64=amd64
XARCH_VALUE/32=
endif
# Arch value based on current data model being built
XARCH_VALUE=$(XARCH_VALUE/$(ARCH_DATA_MODEL))
ifneq ($(XARCH_VALUE), )
# The actual compiler -xarch options to use
XARCH_OPTION/32 = -xarch=$(XARCH_VALUE/32)
XARCH_OPTION/64 = -xarch=$(XARCH_VALUE/64)
XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL))
endif
# If we have a specific -xarch value to use, add it
ifdef XARCH_OPTION
CFLAGS_COMMON += $(XARCH_OPTION)
CXXFLAGS_COMMON += $(XARCH_OPTION)
ASFLAGS_COMMON += $(XARCH_OPTION)
EXTRA_LIBS += $(XARCH_OPTION)
LINTFLAGS_COMMON += -Xarch=$(XARCH_VALUE)
endif
#
# uncomment the following to build with PERTURBALOT set
#
# OTHER_CFLAGS += -DPERTURBALOT
#
CPPFLAGS_COMMON = -D$(ARCH_FAMILY) -D__solaris__ -D_REENTRANT
CPPFLAGS_OPT =
CPPFLAGS_DBG = -DDEBUG
ifeq ($(ARCH_FAMILY), i586)
# The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
# Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
# (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h).
# Note: -Dmacro is the same as #define macro 1
# -Dmacro= is the same as #define macro
#
CPPFLAGS_COMMON += -DcpuIntel -D_LITTLE_ENDIAN= -D$(LIBARCH)
# Turn off a superfluous compiler error message on Intel
CFLAGS_COMMON += -erroff=E_BAD_PRAGMA_PACK_VALUE
endif
# Java memory management is based on memory mapping by default, but a
# system only assuming malloc/free can be built by adding -DUSE_MALLOC
CPPFLAGS_COMMON += -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS
CPPFLAGS_OPT += -DTRIMMED
LDFLAGS_DEFS_OPTION = -z defs
LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION)
#
# -L paths for finding and -ljava
#
LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
LDFLAGS_OPT =
LDFLAGS_DBG =
#
# We never really want the incremental linker, ever
# The -xildoff option tells Sun's compilers to NOT use incremental linker
#
LDFLAGS_COMMON += -xildoff
ifdef LIBRARY
# Libraries need to locate other libraries at runtime, and you can tell
# a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
# buried inside the .so. The $ORIGIN says to look relative to where
# the library itself is and it can be followed with relative paths from
# that. By default we always look in $ORIGIN, optionally we add relative
# paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
# The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
# Try: 'dump -Lv lib*.so' to see these settings in a library.
#
LDFLAGS_COMMON += -R\$$ORIGIN
LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=-R\$$ORIGIN/%)
endif
EXTRA_LIBS += -lc
# Postprocessing is done on the images directories only
#
ifeq ($(VARIANT), OPT)
ifeq ($(PARTIAL_GPROF), true)
NO_STRIP = true
endif
ifeq ($(GPROF), true)
NO_STRIP = true
endif
ifneq ($(NO_STRIP), true)
# Debug 'strip -x' leaves local function Elf symbols (better stack traces)
POST_STRIP_PROCESS = $(STRIP) -x
endif
endif
POST_MCS_PROCESS=$(MCS) -d -a "JDK $(FULL_VERSION)"
#
# Sun C compiler will take -M and pass it on to ld.
# Usage: ld $(LD_MAPFILE_FLAG) mapfile *.o
#
ifeq ($(CC_VERSION),gcc)
LD_MAPFILE_FLAG = -Xlinker -M -Xlinker
else
LD_MAPFILE_FLAG = -M
endif
#
# Variables globally settable from the make command line (default
# values in brackets):
# GPROF (false)
# Eg: % gnumake GPROF=true
GPROF = false
ifeq ($(GPROF), true)
CFLAGS_COMMON += -DGPROF -xpg
EXTRA_LIBS += -xpg
endif
# PARTIAL_GPROF is to be used ONLY during compilation - it should not
# appear during linking of libraries or programs. It also should
# prevent linking with -z defs to allow a symbol to remain undefined.
#
PARTIAL_GPROF = false
ifeq ($(PARTIAL_GPROF), true)
CFLAGS_GPROF += -xpg
LDFLAGS_DEFS_OPTION = -z nodefs
endif
#
# For a TCOV build we add in the TCOV_OPTION
#
ifdef TCOV_BUILD
TCOV_OPTION = -xprofile=tcov
LDFLAGS_COMMON += $(TCOV_OPTION) -Kpic
CFLAGS_COMMON += $(TCOV_OPTION)
CXXFLAGS_COMMON += $(TCOV_OPTION)
EXTRA_LIBS += $(TCOV_OPTION)
LDNOMAP=true
endif
#
# Solaris only uses native threads.
#
THREADS_FLAG= native
THREADS_DIR= threads
#
# Support for Quantify.
#
ifdef QUANTIFY
QUANTIFY_CMD = quantify
QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
ifdef LIBRARY
CFLAGS_COMMON += -K PIC
endif
endif
#
# Support for Purify.
#
ifdef PURIFY
PURIFY_CMD = /net/suntools.eng/export/tools/sparc/bin/purify
PURIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
LINK_PRE_CMD = $(PURIFY_CMD) $(PURIFY_OPTIONS)
ifdef LIBRARY
CFLAGS_COMMON += -K PIC
endif
endif
#
# Different "levels" of optimization.
#
ifeq ($(CC_VERSION),gcc)
CC_HIGHEST_OPT = -O3
CC_HIGHER_OPT = -O3
CC_LOWER_OPT = -O2
CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer
CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
# (See Rules.gmk) May need to wait for gcc 5?
AUTOMATIC_PCH_OPTION =
else
# Highest could be -xO5, but indications are that -xO5 should be reserved
# for a per-file use, on sources with known performance impacts.
CC_HIGHEST_OPT = -xO4
CC_HIGHER_OPT = -xO4
CC_LOWER_OPT = -xO2
#
# WARNING: Use of _OPT=$(CC_HIGHEST_OPT) in your Makefile needs to be
# done with care, there are some assumptions below that need to
# be understood about the use of pointers, and IEEE behavior.
#
# Use non-standard floating point mode (not IEEE 754)
CC_HIGHEST_OPT += -fns
# Do some simplification of floating point arithmetic (not IEEE 754)
CC_HIGHEST_OPT += -fsimple
# Use single precision floating point with 'float'
CC_HIGHEST_OPT += -fsingle
# Assume memory references via basic pointer types do not alias
# (Source with excessing pointer casting and data access with mixed
# pointer types are not recommended)
CC_HIGHEST_OPT += -xalias_level=basic
# Use intrinsic or inline versions for math/std functions
# (If you expect perfect errno behavior, do not use this)
CC_HIGHEST_OPT += -xbuiltin=%all
# Loop data dependency optimizations (need -xO3 or higher)
CC_HIGHEST_OPT += -xdepend
# Pointer parameters to functions do not overlap
# (Similar to -xalias_level=basic usage, but less obvious sometimes.
# If you pass in multiple pointers to the same data, do not use this)
CC_HIGHEST_OPT += -xrestrict
# Inline some library routines
# (If you expect perfect errno behavior, do not use this)
CC_HIGHEST_OPT += -xlibmil
# Use optimized math routines
# (If you expect perfect errno behavior, do not use this)
# Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
# CC_HIGHEST_OPT += -xlibmopt
ifeq ($(ARCH_FAMILY), sparc)
# Assume at most 8byte alignment, raise SIGBUS on error
### Presents an ABI issue with customer JNI libs?
####CC_HIGHEST_OPT += -xmemalign=8s
# Automatic prefetch instructions, explicit prefetch macros
CC_HIGHEST_OPT += -xprefetch=auto,explicit
# Pick ultra as the chip to optimize to
CC_HIGHEST_OPT += -xchip=ultra
endif
ifeq ($(ARCH), i586)
# Pick pentium as the chip to optimize to
CC_HIGHEST_OPT += -xchip=pentium
endif
ifdef LIBRARY
# The Solaris CBE (Common Build Environment) requires that the use
# of appl registers be disabled when compiling a public library (or
# a library that's loaded by a public library) on sparc.
CFLAGS_REQUIRED_sparc += -xregs=no%appl
CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl
endif
ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1)
# Do NOT use the frame pointer register as a general purpose opt register
CFLAGS_REQUIRED_i586 += -xregs=no%frameptr
CFLAGS_REQUIRED_amd64 += -xregs=no%frameptr
# We MUST allow data alignment of 4 for sparc V8 (32bit)
# Presents an ABI issue with customer JNI libs? We must be able to
# to handle 4byte aligned objects? (rare occurance, but possible?)
CFLAGS_REQUIRED_sparc += -xmemalign=4s
endif
# Just incase someone trys to use the SOS9 compilers
ifeq ($(CC_VER), 5.6)
# We MUST allow data alignment of 4 for sparc (sparcv9 is ok at 8s)
CFLAGS_REQUIRED_sparc += -xmemalign=4s
endif
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
# (See Rules.gmk) The SS11 -xpch=auto* options appear to be broken.
AUTOMATIC_PCH_OPTION =
endif
CC_NO_OPT =
# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off
ifdef NO_OPTIMIZATIONS
CC_HIGHEST_OPT = $(CC_NO_OPT)
CC_HIGHER_OPT = $(CC_NO_OPT)
CC_LOWER_OPT = $(CC_NO_OPT)
endif
# Flags required all the time
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
# Add processor specific options for optimizations
CC_HIGHEST_OPT += $(_OPT_$(ARCH))
CC_HIGHER_OPT += $(_OPT_$(ARCH))
CC_LOWER_OPT += $(_OPT_$(ARCH))
# Secret compiler optimization options that should be in the above macros
# but since they differ in format from C to C++, are added into the C or
# C++ specific macros for compiler flags.
#
# On i586 we need to tell the code generator to ALWAYS use a
# frame pointer.
ifeq ($(ARCH_FAMILY), i586)
# Note that in 5.7, this is done with -xregs=no%frameptr
ifeq ($(CC_VER), 5.5)
# It's not exactly clear when this optimization kicks in, the
# current assumption is -xO4 or greater and for C++ with
# the -features=no%except option and -xO4 and greater.
# Bottom line is, we ALWAYS want a frame pointer!
CXXFLAGS_OPT += -Qoption ube -Z~B
CFLAGS_OPT += -Wu,-Z~B
ifeq ($(FASTDEBUG), true)
CXXFLAGS_DBG += -Qoption ube -Z~B
CFLAGS_DBG += -Wu,-Z~B
endif
endif
endif
#
# Optimizer for sparc needs to be told not to do certain things
# related to frames or save instructions.
ifeq ($(ARCH_FAMILY), sparc)
# NOTE: Someday the compilers will provide a high-level option for this.
# Use save instructions instead of add instructions
# This was an optimization starting in SC5.0 that made it hard for us to
# find the "save" instruction (which got turned into an "add")
CXXFLAGS_OPT += -Qoption cg -Qrm-s
CFLAGS_OPT += -Wc,-Qrm-s
ifeq ($(FASTDEBUG), true)
CXXFLAGS_DBG += -Qoption cg -Qrm-s
CFLAGS_DBG += -Wc,-Qrm-s
endif
#
# NOTE: Someday the compilers will provide a high-level option for this.
# Don't allow tail call code optimization. Started in SC5.0.
# We don't like code of this form:
# save
# <code>
# call foo
# restore
# because we can't tell if the method will have a stack frame
# and register windows or not.
CXXFLAGS_OPT += -Qoption cg -Qiselect-T0
CFLAGS_OPT += -Wc,-Qiselect-T0
ifeq ($(FASTDEBUG), true)
CXXFLAGS_DBG += -Qoption cg -Qiselect-T0
CFLAGS_DBG += -Wc,-Qiselect-T0
endif
endif
#
# Path and option to link against the VM, if you have to. Note that
# there are libraries that link against only -ljava, but they do get
# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
# the library itself should not.
#
VM_NAME = server
JVMLIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH)/server -ljvm
JAVALIB =
# Part of INCREMENTAL_BUILD mechanism.
# Compiler emits things like: path/file.o: file.h
# We want something like: relative_path/file.o relative_path/file.d: file.h
# In addition on Solaris, any include file starting with / is deleted,
# this gets rid of things like /usr/include files, which never change.
CC_DEPEND = -xM1
CC_DEPEND_FILTER = $(SED) -e '/:[ ]*[/]/d' -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g' | $(SORT) -u
# Location of openwin libraries (do we really need this anymore?)
OPENWIN_HOME = /usr/openwin
OPENWIN_LIB = $(OPENWIN_HOME)/lib$(ISA_DIR)
# Runtime graphics library search paths...
OPENWIN_RUNTIME_LIB = /usr/openwin/lib$(ISA_DIR)
AWT_RUNPATH = -R/usr/dt/lib$(ISA_DIR) -R$(OPENWIN_RUNTIME_LIB)
# C++ Runtime library (libCrun.so), use instead of -lCrun.
# Originally used instead of -lCrun to guarantee use of the system
# .so version and not the .a or .so that came with the compilers.
# With the newer compilers this could probably change back to -lCrun but
# in general this is ok to continue to do.
LIBCXX = /usr/lib$(ISA_DIR)/libCrun.so.1
# Math Library (libm.so), do not use -lm.
# There might be two versions of libm.so on the build system:
# libm.so.1 and libm.so.2, and we want libm.so.1.
# Depending on the Solaris release being used to build with,
# /usr/lib/libm.so could point at a libm.so.2, so we are
# explicit here so that the libjvm.so you have built will work on an
# older Solaris release that might not have libm.so.2.
# This is a critical factor in allowing builds on Solaris 10 or newer
# to run on Solaris 8 or 9.
#
# Note: Historically there was also a problem picking up a static version
# of libm.a from the compiler area, but that problem has gone away
# with the newer compilers. Use of libm.a would cause .so bloat.
#
LIBM = /usr/lib$(ISA_DIR)/libm.so.1
# Socket library
LIBSOCKET = -lsocket
# GLOBAL_KPIC: If set means all libraries are PIC, position independent code
# EXCEPT for select compiles
# If a .o file is compiled non-PIC then it should be forced
# into the RW data segment with a mapfile option. This is done
# with object files which generated from .s files.
# The -ztext enforces that no relocations remain in the text segment
# so that it remains purely read-only for optimum system performance.
# Some libraries may use a smaller size (13bit -Kpic) on sparc instead of
# (32 bit -KPIC) and will override GLOBAL_KPIC appropriately.
#
PIC_CODE_LARGE = -KPIC
PIC_CODE_SMALL = -Kpic
ifndef TCOV_BUILD
GLOBAL_KPIC = $(PIC_CODE_LARGE)
CXXFLAGS_COMMON += $(GLOBAL_KPIC)
CFLAGS_COMMON += $(GLOBAL_KPIC)
LDFLAGS_COMMON += -ztext
endif # TCOV_BUILD
# If your platform has DPS, it will have Type1 fonts too, in which case
# it is best to enable DPS support until such time as 2D's rasteriser
# can fully handle Type1 fonts in all cases. Default is "yes".
# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
# DPS (Displayable PostScript) is available on Solaris machines
HAVE_DPS = yes
#
# Japanese manpages
#
JA_SOURCE_ENCODING = eucJP
JA_TARGET_ENCODINGS = eucJP UTF-8 PCK

View File

@@ -31,363 +31,7 @@
# Get shared JDK settings
include $(BUILDDIR)/common/shared/Defs.gmk
# CC compiler object code output directive flag value
CC_OBJECT_OUTPUT_FLAG = -Fo
CC_PROGRAM_OUTPUT_FLAG = -Fe
# The suffix applied to the library name for FDLIBM
FDDLIBM_SUFFIX = lib
# The suffix applied to scripts (.bat for windows, nothing for unix)
SCRIPT_SUFFIX = .bat
HPIS = windows
# LIB_LOCATION, which for windows identifies where .exe files go, may be
# set by each GNUmakefile. The default is BINDIR.
ifndef LIB_LOCATION
LIB_LOCATION = $(BINDIR)
endif # LIB_LOCATION
ifndef PLATFORM_SRC
PLATFORM_SRC = $(TOPDIR)/src/windows
endif # PLATFORM_SRC
# for backwards compatability, the old "win32" is used here instead of
# the more proper "windows"
PLATFORM_INCLUDE_NAME = win32
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
# The following DLL's are considered MS runtime libraries and should
# not to be REBASEd, see deploy/make/common/Release.gmk.
# msvcrt.dll, msvcrnn.dll [msvcr71 or msvcr80 or msvcr90] : Microsoft runtimes
MS_RUNTIME_LIBRARIES = msvcrt.dll
MSVCRNN_DLL =
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(COMPILER_VERSION), VS2003)
MSVCRNN_DLL = msvcr71.dll
MSVCPNN_DLL = msvcp71.dll
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
endif
ifeq ($(COMPILER_VERSION), VS2005)
MSVCRNN_DLL = msvcr80.dll
MSVCPNN_DLL = msvcp80.dll
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
endif
ifeq ($(COMPILER_VERSION), VS2008)
MSVCRNN_DLL = msvcr90.dll
MSVCPNN_DLL = msvcp90.dll
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
endif
ifeq ($(COMPILER_VERSION), VS2010)
MSVCRNN_DLL = msvcr100.dll
MSVCPNN_DLL = msvcp100.dll
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
endif
endif
# C Compiler flag definitions
#
# Default optimization
#
ifeq ($(CC_VERSION),msvc)
# Visual Studio .NET 2003 or VS2003 compiler option definitions:
# -O1 Favors reduced size over speed (-Og -Os -Oy -Ob2 -Gs -GF -Gy)
# -O2 Favors speed over reduced size (-Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy)
# -Ox Full optimization (use -O2) (-Og -Oi -Ot -Oy -Ob2)
# (Removed in Visual Studio 2005 or VS2005)
# -Ob2 More aggressive inlining
# -Og Global optimizations
# -Oi Replace some functions with intrinsic or special forms
# -Op Improve floating point calculations (disables some optimizations)
# (Replaced with -fp:precise in VS2005, /Op is default now)
# -Os Favor small code
# -Ot Favor faster code
# -Oy Frame pointer omission
# -GB Optimize for pentium (old VC6 option?)
# -G6 VS2003 version of -GB?
# -GF Pool strings in read-only memory
# -Gf Pool strings in read-write memory (the default)
# -Gs Controls stack probess
# -GS Adds buffer overflow checks on stacks
# (Default in VS2005)
# -GX Enables exception handling
# (Replaced with /EHsc in VS2005)
# -Gy Function level linking only
#
# NOTE: With VC6, -Ox included -Gs.
# NOTE: With VC6, -Ox, -O1, and -O2 used -Ob1, not -Ob2.
# NOTE: With VC6, -O1 and -O2 used -Gf, not -GF.
#
ifeq ($(COMPILER_VERSION), VC6)
# VC6 (6.2) msvc compiler (the way Tiger and early Mustang were built)
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
AUTOMATIC_PCH_OPTION =
GX_OPTION = -GX
ifeq ($(ARCH_DATA_MODEL), 32)
CC_HIGHEST_OPT = -Ox -Gy -Os -GB
CC_HIGHER_OPT = -Ox -Gy -Os -GB
CC_LOWER_OPT = -Ox -Gy -Os -GB
else
CC_HIGHEST_OPT = -Ox -Gy -Op
CC_HIGHER_OPT = -Ox -Gy -Op
CC_LOWER_OPT = -Ox -Gy -Op
endif
endif
ifeq ($(COMPILER_VERSION), VS2003)
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
AUTOMATIC_PCH_OPTION = -YX
# Also known as VC7 compiler
GX_OPTION = -GX
ifeq ($(ARCH_DATA_MODEL), 32)
# Lowered opt level to try and reduce footprint, dll size especially.
# Was: CC_HIGHEST_OPT = -O2 -G6
# Was: CC_HIGHER_OPT = -O2
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
else
CC_HIGHEST_OPT = -O2 -Op
CC_HIGHER_OPT = -O2 -Op
CC_LOWER_OPT = -O1 -Op
endif
endif
ifeq ($(COMPILER_VERSION), VS2005)
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
AUTOMATIC_PCH_OPTION =
# VS2005 compiler, only with Platform SDK right now?
GX_OPTION = -EHsc
ifeq ($(ARCH_DATA_MODEL), 32)
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
else
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
endif
endif
ifeq ($(COMPILER_VERSION), VS2008)
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
AUTOMATIC_PCH_OPTION =
GX_OPTION = -EHsc
ifeq ($(ARCH_DATA_MODEL), 32)
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
else
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
endif
endif
ifeq ($(COMPILER_VERSION), VS2010)
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
AUTOMATIC_PCH_OPTION =
GX_OPTION = -EHsc
ifeq ($(ARCH_DATA_MODEL), 32)
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
else
CC_HIGHEST_OPT = -O2
CC_HIGHER_OPT = -O1
CC_LOWER_OPT = -O1
endif
endif
CC_NO_OPT = -Od
else # CC_VERSION
# GCC not supported, but left for historical reference...
CC_HIGHEST_OPT = -O3
CC_HIGHER_OPT = -O2
CC_LOWER_OPT = -O2
CC_NO_OPT =
endif
# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off
ifdef NO_OPTIMIZATIONS
CC_HIGHEST_OPT = $(CC_NO_OPT)
CC_HIGHER_OPT = $(CC_NO_OPT)
CC_LOWER_OPT = $(CC_NO_OPT)
endif
ifeq ($(PRODUCT), java)
_OPT = $(CC_HIGHER_OPT)
else
_OPT = $(CC_LOWER_OPT)
endif
# Select the runtime support library carefully, need to be consistent
#
# VS2003 compiler option definitions:
# -MD Use dynamic multi-threaded runtime library
# -MDd Use debug version (don't use, doesn't mix with -MD DLL's)
# -MT Use static multi-threaded runtime library (-ML is going away)
# -MTd Use static debug version (better than -MDd, no runtime issues)
# -D_DEBUG Change use of malloc/free/etc to use special debug ones (-MTd)
#
# NOTE: We also will use /D _STATIC_CPPLIB so we don't need msvcpnn.dll
#
ifeq ($(MS_RUNTIME_STATIC),true)
MS_RUNTIME_OPTION=-MT
else
MS_RUNTIME_OPTION=-MD
endif
# The _DEBUG macro option (changes things like malloc to use debug version)
MS_RUNTIME_DEBUG_OPTION=
MS_RC_DEBUG_OPTION=
# Externally set environment variable can force any build to use the debug vers
ifeq ($(MFC_DEBUG), true)
ifeq ($(MS_RUNTIME_STATIC),true)
MS_RUNTIME_OPTION=-MTd
else
# This MS debugging flag forces a dependence on the debug
# version of the runtime library (MSVCRTD.DLL), as does -MDd.
# We cannot re-distribute this debug runtime.
MS_RUNTIME_OPTION=-MDd
endif
MS_RUNTIME_DEBUG_OPTION= -D_DEBUG
MS_RC_DEBUG_OPTION= -d _DEBUG
endif
# Always add _STATIC_CPPLIB definition
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB
MS_RUNTIME_OPTION += $(STATIC_CPPLIB_OPTION)
ifeq ($(CC_VERSION),msvc)
# VS2003 compiler option definitions:
# -Zi Cause *.pdb file to be created, full debug information
# -Z7 Full debug inside the .obj, no .pdb
# -Zd Basic debug, no local variables? In the .obj
# -Zl Don't add runtime library name to obj file?
# -Od Turns off optimization and speeds compilation
# -YX -Fp/.../foobar.pch Use precompiled headers (try someday?)
# -nologo Don't print out startup message
# /D _STATIC_CPPLIB
# Use static link for the C++ runtime (so msvcpnn.dll not needed)
#
CFLAGS_COMMON += -Zi -nologo
CFLAGS_OPT = $(POPT)
CFLAGS_DBG = -Od $(MS_RUNTIME_DEBUG_OPTION)
# Starting from VS2005 the wchar_t is handled as a built-in C/C++ data type
# by default. However, we expect the wchar_t to be a typedef to the
# unsigned short data type. The -Zc:wchar_t- option restores the old
# behavior (as seen in VS2003) to avoid massive code modifications.
# When/if our code will be "C/C++ Standard"-compliant (at least in the area
# of handling the wchar_t type), the option won't be necessary.
ifeq ($(ARCH_DATA_MODEL), 32)
CFLAGS_VS2005 += -Zc:wchar_t-
else
# The 64bit Platform SDK we use (April 2005) doesn't like this option
ifneq ($(CC_VER), 14.00.40310.41)
CFLAGS_VS2005 += -Zc:wchar_t-
endif
endif
# All builds get the same runtime setting
CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
LDEBUG = /debug
ifeq ($(VTUNE_SUPPORT), true)
OTHER_CFLAGS = -Z7 -Ox
LDEBUG += /pdb:NONE
endif
# The new Platform SDK and VS2005 has /GS as a default and requires
# bufferoverflowU.lib on the link command line, otherwise
# we get missing __security_check_cookie externals at link time.
BUFFEROVERFLOWLIB = bufferoverflowU.lib
# Always add bufferoverflowU.lib to VS2005 link commands (pack uses LDDFLAGS)
LFLAGS_VS2005 = $(BUFFEROVERFLOWLIB)
# LFLAGS are the flags given to $(LINK) and used to build the actual DLL file
BASELFLAGS = -nologo /opt:REF /incremental:no
LFLAGS = $(BASELFLAGS) $(LDEBUG) $(EXTRA_LFLAGS) $(LFLAGS_$(COMPILER_VERSION))
LDDFLAGS += $(LFLAGS_$(COMPILER_VERSION))
endif
#
# Preprocessor macro definitions
#
CPPFLAGS_COMMON = -DWIN32 -DIAL -D_LITTLE_ENDIAN
ifeq ($(ARCH), amd64)
CPPFLAGS_COMMON += -D_AMD64_ -Damd64
else
CPPFLAGS_COMMON += -DWIN32 -D_X86_ -Dx86
endif
CPPFLAGS_COMMON += -DWIN32_LEAN_AND_MEAN
#
# Output options (use specific filenames to avoid parallel compile errors)
#
CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
#
# Add warnings and extra on 64bit issues
#
ifeq ($(ARCH_DATA_MODEL), 64)
CFLAGS_COMMON += -Wp64
endif
CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL)
#
# Treat compiler warnings as errors, if requested
#
ifeq ($(COMPILER_WARNINGS_FATAL),true)
CFLAGS_COMMON += -WX
endif
CPPFLAGS_OPT =
CPPFLAGS_DBG = -DDEBUG -DLOGGING
CXXFLAGS_COMMON = $(CFLAGS_COMMON)
CXXFLAGS_OPT = $(CFLAGS_OPT)
CXXFLAGS_DBG = $(CFLAGS_DBG)
ifneq ($(LIBRARY),fdlibm)
EXTRA_LIBS += advapi32.lib
endif
#
# Path and option to link against the VM, if you have to.
#
JVMLIB = $(BOOTDIR)/lib/jvm.lib
JAVALIB =
ifeq ($(CC_VERSION), msvc)
CC_DEPEND = -FD
CC_DEPEND_FILTER =
else # CC_VERSION
# not supported, but left for historical reference...
CC_DEPEND = -MM
CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)&!g'
endif # CC_VERSION
LIBRARY_SUFFIX = dll
LIB_SUFFIX = lib
# Settings for the VERSIONINFO tap on windows.
VERSIONINFO_RESOURCE = $(TOPDIR)/src/windows/resource/version.rc
RC_FLAGS = /l 0x409 /r
ifeq ($(VARIANT), OPT)
RC_FLAGS += -d NDEBUG
else
RC_FLAGS += $(MS_RC_DEBUG_OPTION)
endif
ifndef COPYRIGHT_YEAR
COPYRIGHT_YEAR = 2007
endif
RC_FLAGS += -d "JDK_BUILD_ID=$(FULL_VERSION)" \
-d "JDK_COMPANY=$(COMPANY_NAME)" \
-d "JDK_COMPONENT=$(PRODUCT_NAME) Platform SE binary" \
-d "JDK_VER=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)" \
-d "JDK_COPYRIGHT=Copyright \xA9 $(COPYRIGHT_YEAR)" \
-d "JDK_NAME=$(PRODUCT_NAME) Platform SE $(JDK_MINOR_VERSION) $(JDK_UPDATE_META_TAG)" \
-d "JDK_FVER=$(JDK_VERSION)"

View File

@@ -73,54 +73,10 @@ JDK_LOCALES = ja zh_CN
#
JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh
#
# All libraries except libjava and libjvm itself link against libjvm and
# libjava, the latter for its exported common utilities. libjava only links
# against libjvm. Programs' makefiles take their own responsibility for
# adding other libs.
#
ifdef PACKAGE
# put JAVALIB first, but do not lose any platform specific values....
LDLIBS_COMMON = $(JAVALIB)
endif # PACKAGE
#
# Libraries that must appear ahead of libc.so on the link command line
#
ifdef PROGRAM
ifeq ($(PLATFORM), solaris)
LDLIBS_COMMON = -lthread -ldl
endif
ifeq ($(PLATFORM), linux)
LDLIBS_COMMON = -ldl
endif
endif # PROGRAM
LDLIBS_COMMON += $(EXTRA_LIBS)
#
# Default is to build, not import native binaries
#
ifndef IMPORT_NATIVE_BINARIES
IMPORT_NATIVE_BINARIES=false
endif
# If importing libraries in, no incremental builds
ifeq ($(IMPORT_NATIVE_BINARIES),true)
INCREMENTAL_BUILD=false
endif
# for generated libraries
LIBDIR = $(OUTPUTDIR)/lib
ABS_LIBDIR = $(ABS_OUTPUTDIR)/lib
# Optional place to save the windows .lib files
LIBFILES_DIR = $(OUTPUTDIR)/libfiles
# for ext jre files
EXTDIR = $(LIBDIR)/ext
# for generated include files
INCLUDEDIR = $(OUTPUTDIR)/include
# for generated class files
CLASSBINDIR = $(OUTPUTDIR)/classes
DEMOCLASSDIR = $(OUTPUTDIR)/democlasses
@@ -131,8 +87,6 @@ BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars
ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
# for generated java source files
GENSRCDIR = $(OUTPUTDIR)/gensrc
# for generated C source files (not javah)
GENNATIVESRCDIR = $(OUTPUTDIR)/gennativesrc
# for imported source files
IMPORTSRCDIR = $(OUTPUTDIR)/impsrc
# for imported documents
@@ -196,19 +150,6 @@ override ABS_TEMPDIR = $(ABS_OUTPUTDIR)/$(UNIQUE_PATH)
dummy1:=$(shell $(MKDIR) -p $(TEMPDIR))
dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK))
# OBJDIRNAME is the name of the directory where the object code is to
# be placed. It's name depends on whether the data model architecture
# is 32-bit or not.
ifneq ($(ARCH_DATA_MODEL), 32)
OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
else
OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX)
endif
OBJDIR = $(TEMPDIR)/$(OBJDIRNAME)
# CLASSHDRDIR is where the generated C Class Header files go.
CLASSHDRDIR = $(TEMPDIR)/CClassHeaders
#
# CLASSDESTDIR can be used to specify the directory where generated classes
# are to be placed. The default is CLASSBINDIR.
@@ -217,11 +158,6 @@ ifndef CLASSDESTDIR
CLASSDESTDIR = $(CLASSBINDIR)
endif
INCLUDES = -I. -I$(CLASSHDRDIR) \
$(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES)
OTHER_CPPFLAGS = $(INCLUDES)
#
# vpaths. These are the default locations searched for source files.
# GNUmakefiles of individual areas often override the default settings.
@@ -235,35 +171,6 @@ VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPA
VPATH.java = $(VPATH0.java)
vpath %.java $(VPATH.java)
vpath %.class $(CLASSBINDIR)
vpath %.$(OBJECT_SUFFIX) $(OBJDIR)
#
# VPATH.h is used elsewhere to generate include flags. By default,
# anyone has access to the include files that the JVM area exports,
# namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific
# relatives.
#
ifeq ($(PLATFORM), windows)
VPATH.h = $(BOOTDIR)/include;$(BOOTDIR)/include/$(PLATFORM_INCLUDE_NAME)
else
VPATH.h = $(PLATFORM_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/include$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/javavm/include
endif
vpath %.h $(VPATH.h)
#
# Used in two ways: helps link against libjava.so. Also if overridden
# determines where your shared library is installed.
#
ifndef LIB_LOCATION
LIB_LOCATION = $(LIBDIR)/$(LIBARCH)
endif
#
# Java header and stub variables
#
CLASSHDRS = $(patsubst %,$(CLASSHDRDIR)/%.h,$(subst .,_,$(CLASSES.export)))
CLASSSTUBOBJS = classstubs.$(OBJECT_SUFFIX)
STUBPREAMBLE = $(INCLUDEDIR)/StubPreamble.h
#
# Classpath seen by javac (different from the one seen by the VM
@@ -338,38 +245,9 @@ define OTHERSUBDIRS-loop
done
endef
#
# Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
# used for this file, otherwise the default settings are used.
#
CFLAGS_$(VARIANT)/BYFILE = $(CFLAGS_$(VARIANT)/$(@F)) \
$(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F)))
CXXFLAGS_$(VARIANT)/BYFILE = $(CXXFLAGS_$(VARIANT)/$(@F)) \
$(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F)))
#
# Tool flags
#
ASFLAGS = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS)
CFLAGS = $(CFLAGS_$(VARIANT)/BYFILE) $(CFLAGS_COMMON) $(OTHER_CFLAGS)
CXXFLAGS = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS)
CPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \
$(DEFINES) $(OPTIONS:%=-D%)
LDFLAGS = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS)
LDLIBS = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON)
LINTFLAGS = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \
$(OTHER_LINTFLAGS)
# this should be moved into Defs-<platform>.gmk.....
ifeq ($(PLATFORM), windows)
VERSION_DEFINES = -DRELEASE="\"$(RELEASE)\""
else
VERSION_DEFINES = -DRELEASE='"$(RELEASE)"'
endif
# Prevent the use of many default suffix rules we do not need
.SUFFIXES:
.SUFFIXES: .c .o .h .obj .cpp .hpp .java .class
.SUFFIXES: .java .class
# Make sure we are all insane
ifdef INSANE

View File

@@ -1,275 +0,0 @@
#
# Copyright (c) 1995, 2009, 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
#
# Generic makefile for building shared libraries.
#
include $(TOPDIR)/make/common/Classes.gmk
#
# It is important to define these *after* including Classes.gmk
# in order to override the values defined inthat makefile.
#
ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
ACTUAL_LIBRARY_DIR = $(LIB_LOCATION)
ACTUAL_LIBRARY = $(ACTUAL_LIBRARY_DIR)/$(ACTUAL_LIBRARY_NAME)
library:: $(ACTUAL_LIBRARY)
FILES_o = $(patsubst %.c, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
FILES_o += $(patsubst %.s, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_s))))
FILES_o += $(patsubst %.cpp, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_cpp))))
ifeq ($(INCREMENTAL_BUILD),true)
FILES_d = $(patsubst %.c, %.$(DEPEND_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
FILES_d += $(patsubst %.cpp, %.$(DEPEND_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_cpp))))
endif # INCREMENTAL_BUILD
ifeq ($(PLATFORM),solaris)
# List of all lint files, one for each .c file (only for C)
FILES_ln = $(patsubst %.c, %.$(LINT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
endif
#
# C++ libraries must be linked with CC.
#
ifdef CPLUSPLUSLIBRARY
LINKER=$(LINK.cc)
else
LINKER=$(LINK.c)
endif
# We either need to import (copy) libraries in, or build them
$(ACTUAL_LIBRARY):: $(INIT) $(TEMPDIR) $(LIBDIR) $(BINDIR) $(EXTDIR) classheaders
#
# COMPILE_APPROACH: Different approaches to compile up the native object
# files as quickly as possible.
# The setting of parallel works best on Unix, batch on Windows.
#
COMPILE_FILES_o = $(OBJDIR)/.files_compiled
$(COMPILE_FILES_o): $(FILES_d) $(FILES_o)
@$(ECHO) "$<" >> $@
clean::
$(RM) $(COMPILE_FILES_o)
#
# COMPILE_APPROACH=parallel: Will trigger compilations (just compilations) to
# happen in parallel. Greatly decreases Unix build time, even on single CPU
# machines, more so on multiple CPU machines. Default is 2 compiles
# at a time, but can be adjusted with ALT_PARALLEL_COMPILE_JOBS.
# Note that each .d file will also be dependent on it's .o file, see
# Rules.gmk.
# Note this does not depend on Rules.gmk to work like batch (below)
# and this technique doesn't seem to help Windows build time nor does
# it work very well, it's possible the Windows Visual Studio compilers
# don't work well in a parallel situation, this needs investigation.
#
ifeq ($(COMPILE_APPROACH),parallel)
.PHONY: library_parallel_compile
library_parallel_compile:
@$(ECHO) "Begin parallel compiles: $(shell $(PWD))"
@$(MAKE) -j $(PARALLEL_COMPILE_JOBS) $(COMPILE_FILES_o)
@$(ECHO) "Done with parallel compiles: $(shell $(PWD))"
$(ACTUAL_LIBRARY):: library_parallel_compile
endif
#
# COMPILE_APPROACH=batch: Will trigger compilations (just compilations) to
# happen in batch mode. Greatly decreases Windows build time.
# See logic in Rules.gmk for how compiles happen, the $(MAKE) in
# library_batch_compile below triggers the actions in Rules.gmk.
# Note that each .d file will also be dependent on it's .o file, see
# Rules.gmk.
#
ifeq ($(COMPILE_APPROACH),batch)
.PHONY: library_batch_compile
library_batch_compile:
@$(ECHO) "Begin BATCH compiles: $(shell $(PWD))"
$(MAKE) $(COMPILE_FILES_o)
$(MAKE) batch_compile
@$(ECHO) "Done with BATCH compiles: $(shell $(PWD))"
$(MAKE) COMPILE_APPROACH=normal $(COMPILE_FILES_o)
$(ACTUAL_LIBRARY):: library_batch_compile
endif
ifeq ($(PLATFORM), windows)
#
# Library building rules.
#
$(LIBRARY).lib:: $(OBJDIR)
# build it into $(OBJDIR) so that the other generated files get put
# there, then copy just the DLL (and MAP file) to the requested directory.
#
$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
@$(prep-target)
@$(MKDIR) -p $(OBJDIR)
$(LINK) -dll -out:$(OBJDIR)/$(@F) \
-map:$(OBJDIR)/$(LIBRARY).map \
$(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
$(OTHER_LCF) $(JAVALIB) $(LDLIBS)
$(CP) $(OBJDIR)/$(@F) $@
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
$(OBJDIR)/$(LIBRARY).lcf: $(OBJDIR)/$(LIBRARY).res $(COMPILE_FILES_o) $(FILES_m)
@$(prep-target)
@$(MKDIR) -p $(TEMPDIR)
@$(ECHO) $(FILES_o) > $@
ifndef LOCAL_RESOURCE_FILE
@$(ECHO) $(OBJDIR)/$(LIBRARY).res >> $@
endif
@$(ECHO) Created $@
RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
/D "JDK_INTERNAL_NAME=$(LIBRARY)" \
/D "JDK_FTYPE=0x2L"
$(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
ifndef LOCAL_RESOURCE_FILE
@$(prep-target)
$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)
endif
#
# Install a .lib file if required.
#
ifeq ($(INSTALL_DOT_LIB), true)
$(ACTUAL_LIBRARY):: $(LIBDIR)/$(LIBRARY).lib
clean::
-$(RM) $(LIBDIR)/$(LIBRARY).lib
$(LIBDIR)/$(LIBRARY).lib:: $(OBJDIR)/$(LIBRARY).lib
$(install-file)
$(LIBDIR)/$(LIBRARY).dll:: $(OBJDIR)/$(LIBRARY).dll
$(install-file)
endif # INSTALL_DOT_LIB
else # PLATFORM
#
# On Solaris, use mcs to write the version into the comment section of
# the shared library. On other platforms set this to false at the
# make command line.
#
$(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder)
@$(prep-target)
@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), _OPT=$(_OPT)"
@$(ECHO) "Rebuilding $@ because of $?"
$(LINKER) $(SHARED_LIBRARY_FLAG) -o $@ $(FILES_o) $(LDLIBS)
ifeq ($(WRITE_LIBVERSION),true)
$(MCS) -d -a "$(FULL_VERSION)" $@
endif # WRITE_LIBVERSION
endif # PLATFORM
#
# Cross check all linted files against each other
#
ifeq ($(PLATFORM),solaris)
lint.errors : $(FILES_ln)
$(LINT.c) $(FILES_ln) $(LDLIBS)
endif
#
# Class libraries with JNI native methods get a include to the package.
#
ifdef PACKAGE
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)
OTHER_INCLUDES += -I$(SHARE_SRC)/native/common -I$(PLATFORM_SRC)/native/common
OTHER_INCLUDES += -I$(SHARE_SRC)/native/$(PKGDIR) \
-I$(PLATFORM_SRC)/native/$(PKGDIR)
endif
#
# Clean/clobber rules
#
clean::
$(RM) -r $(ACTUAL_LIBRARY)
clobber:: clean
#
# INCREMENTAL_BUILD means that this workspace will be built over and over
# possibly incrementally. This means tracking the object file dependencies
# on include files so that sources get re-compiled when the include files
# change. When building from scratch and doing a one time build (like
# release engineering or nightly builds) set INCREMENTAL_BUILD=false.
#
ifeq ($(INCREMENTAL_BUILD),true)
#
# Workaround: gnumake sometimes says files is empty when it shouldn't
# was: files := $(foreach file, $(wildcard $(OBJDIR)/*.$(DEPEND_SUFFIX)), $(file))
#
files := $(shell $(LS) $(OBJDIR)/*.$(DEPEND_SUFFIX) 2>/dev/null)
#
# Only include these files if we have any.
#
ifneq ($(strip $(files)),)
include $(files)
endif # files
endif # INCREMENTAL_BUILD
#
# Default dependencies
#
all: build
build: library
debug:
$(MAKE) VARIANT=DBG build
fastdebug:
$(MAKE) VARIANT=DBG FASTDEBUG=true build
.PHONY: all build debug fastdebug

View File

@@ -1,98 +0,0 @@
#
# Copyright (c) 1998, 2005, 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
#
# Makefile for linking with mapfiles.
#
# NOTE: Not using a mapfile will expose all your extern functions and
# extern data symbols as part of your interface, so unless your
# extern names are safe from being mistaken as names from other
# libraries, you better use a mapfile, or use a unique naming
# convention on all your extern symbols.
#
# The mapfile will establish versioning by defining the exported interface.
#
# The mapfile can also force certain .o files or elf sections into the
# the different segments of the resulting library/program image.
#
# The macro FILES_m can contain any number of mapfiles.
#
# Always make sure 'all' is the default rule
mapfile_default_rule: all
ifeq ($(PLATFORM), solaris)
ifeq ($(VARIANT), OPT)
# OPT build MUST have a mapfile?
ifndef FILES_m
FILES_m = mapfile-vers
endif
# If we are re-ordering functions in this solaris library, we need to make
# sure that -xF is added to the compile lines. This option is critical and
# enables the functions to be reordered.
ifdef FILES_reorder
CFLAGS_OPT += -xF
CXXFLAGS_OPT += -xF
endif
INIT += $(TEMPDIR)/mapfile-vers
$(TEMPDIR)/mapfile-vers : $(FILES_m) $(FILES_reorder)
$(prep-target)
$(CAT) $(FILES_m) > $@
ifdef FILES_reorder
$(SED) -e 's=OUTPUTDIR=$(OUTPUTDIR)=' $(FILES_reorder) >> $@
endif
endif # VARIANT
ifndef LDNOMAP
LDMAPFLAGS_OPT = -M$(TEMPDIR)/mapfile-vers
LDMAPFLAGS_DBG = $(FILES_m:%=-M%)
endif
endif # PLATFORM
ifeq ($(PLATFORM), linux)
ifeq ($(VARIANT), OPT)
# OPT build MUST have a mapfile?
ifndef FILES_m
FILES_m = mapfile-vers
endif
endif # VARIANT
ifndef LDNOMAP
LDMAPFLAGS_OPT = $(FILES_m:%=-Xlinker -version-script=%)
LDMAPFLAGS_DBG = $(FILES_m:%=-Xlinker -version-script=%)
endif
endif # PLATFORM
LDFLAGS_OPT += $(LDMAPFLAGS_OPT)
LDFLAGS_DBG += $(LDMAPFLAGS_DBG)

View File

@@ -34,7 +34,7 @@ rules_default_rule: all
#
# Directory set up. (Needed by deploy workspace)
#
$(CLASSDESTDIR) $(CLASSHDRDIR) $(OBJDIR) $(OUTPUTDIR) $(BINDIR) $(LIBDIR) $(LIBDIR)/$(LIBARCH) $(TEMPDIR) $(EXTDIR):
$(CLASSDESTDIR) $(OUTPUTDIR) $(TEMPDIR) $(EXTDIR):
$(MKDIR) -p $@
#
@@ -163,9 +163,6 @@ $(CLASSDESTDIR)/%.class: $(SHARE_SRC)/classes/%.java
# List of class files needed
FILES_class = $(FILES_java:%.java=$(CLASSDESTDIR)/%.class)
# Got to include exported files.
FILES_class += $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
# Construct list of java sources we need to compile
source_list_prime:
@$(MKDIR) -p $(TEMPDIR)
@@ -214,50 +211,7 @@ endif
classes.clean: packages.clean
$(RM) $(JAVA_SOURCE_LIST)
#
# C and C++ make dependencies
#
include $(TOPDIR)/make/common/internal/NativeCompileRules.gmk
#
# Running Javah to generate stuff into CClassHeaders.
#
ifdef FILES_export
CLASSES.export = $(subst /,.,$(FILES_export:%.java=%))
CLASSES.export += $(subst /,.,$(FILES_export2:%.java=%))
CLASSES.export += $(subst /,.,$(FILES_export3:%.java=%))
CLASSES_export = $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
CLASSES_export += $(FILES_export2:%.java=$(CLASSDESTDIR)/%.class)
CLASSES_export += $(FILES_export3:%.java=$(CLASSDESTDIR)/%.class)
# Fix when deploy workspace makefiles don't depend on this name
#CLASSHDR_DOTFILE=$(CLASSHDRDIR)/.classheaders
CLASSHDR_DOTFILE=$(OBJDIR)/.class.headers.$(ARCH)
classheaders: classes $(CLASSHDR_DOTFILE)
$(CLASSHDR_DOTFILE): $(CLASSES_export)
$(prep-target)
$(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
@$(java-vm-cleanup)
@$(TOUCH) $@
classheaders.clean:
$(RM) -r $(CLASSHDRDIR) $(CLASSHDR_DOTFILE)
else # FILES_export
classheaders: classes
classheaders.clean:
endif # FILES_export
clean clobber:: classheaders.clean classes.clean .delete.classlist
clean clobber:: classes.clean .delete.classlist
#
# Default dependencies
@@ -265,12 +219,11 @@ clean clobber:: classheaders.clean classes.clean .delete.classlist
all: build
build: classheaders
build: classes
default: all
.PHONY: all build clean clobber \
.delete.classlist classes .compile.classlist classes.clean \
classheaders classheaders.clean \
batch_compile

View File

@@ -1,214 +0,0 @@
#
# Copyright (c) 1995, 2007, 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
#
# Native C/C++ Compile Rules
#
#
# INCREMENTAL_BUILD: Record the #include file dependencies.
#
# NOTE: We build make include files with the suffix
# $(DEPEND_SUFFIX) on every compilation. These are initially
# created as temp files just in case a ^C kills it in the middle.
# Compiler is smart enough to handle ^C and not create the .o file, or
# is supposed to be that smart, but the .$(DEPEND_SUFFIX) file
# creation here isn't.
# These .$(DEPEND_SUFFIX) files are included by Library.gmk and
# Program.gmk, when they exist (Search for 'make dependencies').
#
ifeq ($(INCREMENTAL_BUILD),true)
$(OBJDIR)/%.$(DEPEND_SUFFIX): %.c
@$(prep-target)
@$(ECHO) "Creating $@"
@$(RM) $@.temp
@$(CC) $(CC_DEPEND) $(CPPFLAGS) $< 2> $(DEV_NULL) | \
$(CC_DEPEND_FILTER) > $@.temp
@$(MV) $@.temp $@
$(OBJDIR)/%.$(DEPEND_SUFFIX): %.cpp
@$(prep-target)
@$(ECHO) "Creating $@"
@$(RM) $@.temp
@$(CXX) $(CC_DEPEND) $(CPPFLAGS) $(CXXFLAGS) $< 2> $(DEV_NULL) | \
$(CC_DEPEND_FILTER) > $@.temp
@$(MV) $@.temp $@
endif # INCREMENTAL_BUILD
#
# C, C++, asm files.
#
# Normal or parallel compile rule is the same, but batch compiles require
# we save up the sources files that use the same compile line so that we
# can do one compile line.
#
ifneq ($(COMPILE_APPROACH), batch)
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
@$(prep-target)
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
@$(check-conventions)
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.cpp
@$(prep-target)
$(COMPILE.cc) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
@$(check-conventions)
else
#
# Batch compiling might be faster if the compiler was smart about recognizing
# optimization opportunities available when all files are being compiled
# the same way. Unfortunately this is rare.
# Automatic pre-compiled headers (pch) might be a possibility so we
# add any auto pch options here.
# So we save all the source files that have the same compile line as the
# first file. A normal compile pass is made after the batch compile
# to catch anything missed.
# If the compilers had a -o option that allowed us to direct where to
# write the object files to, then we would not need to save the object
# file list or move them from the make directory to the build directory.
#
# Source names
COMPILE_LIST.c = $(OBJDIR)/.source_names_c
COMPILE_LIST.cpp = $(OBJDIR)/.source_names_cpp
# Object file list
COMPILE_OBJ_LIST.c = $(OBJDIR)/.obj_names_c
COMPILE_OBJ_LIST.cpp = $(OBJDIR)/.obj_names_cpp
# The compile line
COMPILE_BATCH.c = $(OBJDIR)/.compile_c
COMPILE_BATCH.cpp = $(OBJDIR)/.compile_cpp
# The compile line for the current target
THIS_COMPILE_BATCH.c = $(COMPILE_BATCH.c)-$(@F)
THIS_COMPILE_BATCH.cpp = $(COMPILE_BATCH.cpp)-$(@F)
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
@$(prep-target)
@$(ECHO) "$(COMPILE.c) $(CFLAGS_GPROF)" > $(THIS_COMPILE_BATCH.c)
@if [ ! -s $(COMPILE_BATCH.c) ] ; then \
$(CP) $(THIS_COMPILE_BATCH.c) $(COMPILE_BATCH.c) ; \
$(ECHO) $< > $(COMPILE_LIST.c); \
$(ECHO) $(@F) > $(COMPILE_OBJ_LIST.c); \
elif [ "`$(DIFF) -w -b $(THIS_COMPILE_BATCH.c) $(COMPILE_BATCH.c)`" \
= "" ] ; then \
$(ECHO) $< >> $(COMPILE_LIST.c); \
$(ECHO) $(@F) >> $(COMPILE_OBJ_LIST.c); \
fi
@$(RM) $(THIS_COMPILE_BATCH.c)
@$(check-conventions)
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.cpp
@$(prep-target)
@$(ECHO) "$(COMPILE.cpp) $(CFLAGS_GPROF)" > $(THIS_COMPILE_BATCH.cpp)
@if [ ! -s $(COMPILE_BATCH.cpp) ] ; then \
$(CP) $(THIS_COMPILE_BATCH.cpp) $(COMPILE_BATCH.cpp) ; \
$(ECHO) $< > $(COMPILE_LIST.cpp); \
$(ECHO) $(@F) > $(COMPILE_OBJ_LIST.cpp); \
elif [ "`$(DIFF) -w -b $(THIS_COMPILE_BATCH.cpp) $(COMPILE_BATCH.cpp)`"\
= "" ] ; then \
$(ECHO) $< >> $(COMPILE_LIST.cpp); \
$(ECHO) $(@F) >> $(COMPILE_OBJ_LIST.cpp); \
fi
@$(RM) $(THIS_COMPILE_BATCH.cpp)
@$(check-conventions)
batch_compile: $(FILES_o)
@$(ECHO) "Doing batch compilations"
@if [ -s $(COMPILE_LIST.c) ] ; then \
$(ECHO) "$(COMPILE.c) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
`$(CAT) $(COMPILE_LIST.c)`" ; \
( $(COMPILE.c) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
`$(CAT) $(COMPILE_LIST.c)` && \
$(ECHO) "$(MV) `$(CAT) $(COMPILE_OBJ_LIST.c)` $(OBJDIR)" && \
$(MV) `$(CAT) $(COMPILE_OBJ_LIST.c)` $(OBJDIR) ) || exit 1 ; \
fi
@if [ -s $(COMPILE_LIST.cpp) ] ; then \
$(ECHO) "$(COMPILE.cpp) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
`$(CAT) $(COMPILE_LIST.cpp)`" ; \
( $(COMPILE.cpp) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
`$(CAT) $(COMPILE_LIST.cpp)` && \
$(ECHO) "$(MV) `$(CAT) $(COMPILE_OBJ_LIST.cpp)` $(OBJDIR)" && \
$(MV) `$(CAT) $(COMPILE_OBJ_LIST.cpp)` $(OBJDIR) ) || exit 1 ; \
fi
@$(RM) $(COMPILE_BATCH.c) $(COMPILE_LIST.c) $(COMPILE_OBJ_LIST.c)
@$(RM) $(COMPILE_BATCH.cpp) $(COMPILE_LIST.cpp) $(COMPILE_OBJ_LIST.cpp)
endif
# newer as does not handle c++ style comments
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.s
ifneq ($(CC_VERSION), gcc)
@$(prep-target)
$(COMPILE.s) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
else
@$(prep-target)
$(CPP) -x assembler-with-cpp $< | $(COMPILE.s) -o $@
endif
@$(check-conventions)
#
# Quick hack for making the compiler generate just the assembly file.
# $ gnumake obj/sparc/myfile.s
#
$(OBJDIR)/%.s: %.c
@$(prep-target)
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ -S $<
@$(check-conventions)
# remove the intermediate files from the directories.
# (If VARIANT=OPT, this removes all debug and fastdebug files too)
clobber clean::
$(RM) -r $(OBJDIR)
$(RM) -r $(OBJDIR)_*
#
# Lint support
# (The 'lint' rule below is an older rule not using the .$(LINT_SUFFIX) files)
#
ifeq ($(PLATFORM), solaris)
$(OBJDIR)/%.$(LINT_SUFFIX): %.c
@$(prep-target)
$(LINT.c) -dirout=$(OBJDIR) -c $<
lint.clean:
$(RM) $(OBJDIR)/*.$(LINT_SUFFIX)
# Old rule
lint: $(FILES_c)
ifneq ($(FILES_c),)
$(LINT.c) -Ncheck -Nlevel=3 $? $(LDLIBS) > lint.$(ARCH) 2>&1
endif
endif
.PHONY: batch_compile

View File

@@ -1,119 +0,0 @@
#
# Copyright (c) 2005, 2009, 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
#
# GCC Compiler settings
#
COMPILER_NAME=GCC
ifeq ($(PLATFORM), windows)
# Settings specific to Windows, pretty stale, hasn't been used
CC = $(COMPILER_PATH)gcc
CPP = $(COMPILER_PATH)gcc -E
CXX = $(COMPILER_PATH)g++
CCC = $(COMPILER_PATH)g++
LIBEXE = $(COMPILER_PATH)lib
LINK = $(COMPILER_PATH)link
RC = $(MSDEVTOOLS_PATH)link
LINK32 = $(LINK)
RSC = $(RC)
# unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
ifeq ($(ARCH_DATA_MODEL), 32)
CC_VER = UNKNOWN
CC_TYPE = UNKNOWN
else
CC_VER = UNKNOWN
CC_TYPE = UNKNOWN
endif
_LINK_VER :=$(shell $(LINK) 2>&1 | $(HEAD) -n 1)
LINK_VER :=$(call GetVersion,"$(_LINK_VER)")
endif
ifeq ($(PLATFORM), linux)
# Settings specific to Linux
CC = $(COMPILER_PATH)gcc
CPP = $(COMPILER_PATH)gcc -E
# statically link libstdc++ before C++ ABI is stablized on Linux
STATIC_CXX = true
ifeq ($(STATIC_CXX),true)
# g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
# We need to use gcc to statically link the C++ runtime. gcc and g++ use
# the same subprocess to compile C++ files, so it is OK to build using gcc.
CXX = $(COMPILER_PATH)gcc
else
CXX = $(COMPILER_PATH)g++
endif
ifeq ($(ZERO_BUILD), true)
# zero
REQUIRED_CC_VER = 3.2
REQUIRED_GCC_VER = 3.2.*
else
ifneq ("$(findstring sparc,$(ARCH))", "")
# sparc or sparcv9
REQUIRED_CC_VER = 4.0
else
ifeq ($(ARCH_DATA_MODEL), 32)
# i586
REQUIRED_CC_VER = 3.2
else
ifeq ($(ARCH), amd64)
# amd64
REQUIRED_CC_VER = 3.2
endif
ifeq ($(ARCH), ia64)
# ia64
REQUIRED_CC_VER = 3.2
endif
endif
endif
endif
# Option used to create a shared library
SHARED_LIBRARY_FLAG = -shared -mimpure-text
SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
endif
ifeq ($(PLATFORM), solaris)
# Settings specific to Solaris
CC = $(COMPILER_PATH)gcc
CPP = $(COMPILER_PATH)gcc -E
CXX = $(COMPILER_PATH)g++
REQUIRED_CC_VER = 3.2
# Option used to create a shared library
SHARED_LIBRARY_FLAG = -G
endif
# Get gcc version
_CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
CC_VER :=$(call GetVersion,"$(_CC_VER)")

View File

@@ -1,186 +0,0 @@
#
# Copyright (c) 2005, 2009, 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
#
# MSVC Compiler settings
#
ifeq ($(PLATFORM), windows)
CC = $(COMPILER_PATH)cl
CPP = $(COMPILER_PATH)cl
CXX = $(COMPILER_PATH)cl
CCC = $(COMPILER_PATH)cl
LIBEXE = $(COMPILER_PATH)lib
LINK = $(COMPILER_PATH)link
RC = $(MSDEVTOOLS_PATH)rc
LINK32 = $(LINK)
RSC = $(RC)
# Fill in unknown values
COMPILER_NAME=Unknown MSVC Compiler
COMPILER_VERSION=
REQUIRED_CC_VER=
REQUIRED_LINK_VER=
# unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
# Compiler version and type (Always get word after "Version")
ifndef CC_VER
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
export CC_VER
endif
# SDK-64 and MSVC6 put REBASE.EXE in a different places - go figure...
ifeq ($(ARCH_DATA_MODEL), 32)
ifndef LINK_VER
LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
export LINK_VER
endif
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
ifeq ($(CC_MAJORVER), 13)
# This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077
REQUIRED_CC_VER = 13.10.3077
REQUIRED_LINK_VER = 7.10.3077
COMPILER_NAME=Visual Studio .NET 2003 Professional C++
COMPILER_VERSION=VS2003
REBASE = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase
MTL = $(COMPILER_PATH)../../Common7/Tools/Bin/midl
ifndef COMPILER_PATH
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
endif
endif
ifeq ($(CC_MAJORVER), 14)
# This should be: CC_VER=14.00.50727.42 LINK_VER=8.00.50727.42
REQUIRED_CC_VER = 14.00.50727.42
REQUIRED_LINK_VER = 8.00.50727.42
COMPILER_NAME=Visual Studio 8
COMPILER_VERSION=VS2005
REBASE = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase
MTL = $(COMPILER_PATH)../../Common8/Tools/Bin/midl
ifndef COMPILER_PATH
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
endif
endif
ifeq ($(CC_MAJORVER), 15)
# This should be: CC_VER=15.00.21022.08 LINK_VER=9.00.21022.08
REQUIRED_CC_VER = 15.00.21022.08
REQUIRED_LINK_VER = 9.00.21022.08
COMPILER_NAME=Visual Studio 9
COMPILER_VERSION=VS2008
#rebase and midl moved out of Visual Studio into the SDK:
REBASE = $(MSDEVTOOLS_PATH)/rebase
MTL = $(MSDEVTOOLS_PATH)/midl.exe
ifndef COMPILER_PATH
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
endif
endif
ifeq ($(CC_MAJORVER), 16)
# This should be: CC_VER=16.00.30319.01 LINK_VER=10.00.30319.01
REQUIRED_CC_VER = 16.00.30319.01
REQUIRED_LINK_VER = 10.00.30319.01
COMPILER_NAME=Visual Studio 10
COMPILER_VERSION=VS2010
#rebase and midl moved out of Visual Studio into the SDK:
REBASE = $(MSDEVTOOLS_PATH)/rebase
MTL = $(MSDEVTOOLS_PATH)/midl.exe
ifndef COMPILER_PATH
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
endif
endif
else
# else ARCH_DATA_MODEL is 64
ifndef LINK_VER
LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
export LINK_VER
endif
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
CC_MINORVER :=$(call MinorVersion,$(CC_VER))
CC_MICROVER :=$(call MicroVersion,$(CC_VER))
ifeq ($(ARCH), ia64)
REQUIRED_CC_VER = 13.00.9337.7
REQUIRED_LINK_VER = 7.00.9337.7
endif
ifeq ($(ARCH), amd64)
REQUIRED_CC_VER = 14.00.40310.41
REQUIRED_LINK_VER = 8.00.40310.39
endif
ifeq ($(CC_MAJORVER), 13)
ifeq ($(ARCH), ia64)
# This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7
COMPILER_NAME=Microsoft Platform SDK - November 2001 Edition
COMPILER_VERSION=VS2003
endif
endif
ifeq ($(CC_MAJORVER), 14)
ifeq ($(ARCH), amd64)
ifeq ($(CC_MICROVER), 30701)
# This should be: CC_VER=14.00.30701 LINK_VER=8.00.30701
# WARNING: it says 14, but it is such an early build it doesn't
# have all the VS2005 compiler option changes, so treat
# this like a VS2003 compiler.
COMPILER_NAME=Microsoft Platform SDK - February 2003 Edition
COMPILER_VERSION=VS2003
else
# This should be: CC_VER=14.00.40310.41 LINK_VER=8.00.40310.39
COMPILER_NAME=Microsoft Platform SDK - April 2005 Edition (3790.1830)
COMPILER_VERSION=VS2005
endif
endif
endif
ifeq ($(CC_MAJORVER), 15)
# This should be: CC_VER=15.00.21022.8 LINK_VER=9.00.21022.8
REQUIRED_CC_VER = 15.00.21022.8
REQUIRED_LINK_VER = 9.00.21022.8
COMPILER_NAME=Windows SDK 6.1 Visual Studio 9
COMPILER_VERSION=VS2008
RC = $(MSSDK61)/bin/x64/rc
REBASE = $(MSSDK61)/bin/x64/rebase
else
ifeq ($(CC_MAJORVER), 16)
# This should be: CC_VER=16.00.30319.01 LINK_VER=9.00.30319.01
REQUIRED_CC_VER = 16.00.30319.01
REQUIRED_LINK_VER = 10.00.30319.01
COMPILER_NAME=Microsoft Visual Studio 10
COMPILER_VERSION=VS2010
RC = $(MSSDK7)/bin/x64/rc
REBASE = $(MSSDK7)/bin/x64/rebase
else
# This will cause problems if ALT_COMPILER_PATH is defined to ""
# which is a directive to use the PATH.
REBASE = $(COMPILER_PATH)../REBASE
endif
endif
ifndef COMPILER_PATH
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
endif
endif
ifndef COMPILER_VERSION
COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here)
endif
# Shared library generation flag
SHARED_LIBRARY_FLAG = -LD
endif

View File

@@ -1,69 +0,0 @@
#
# Copyright (c) 2005, 2009, 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
#
# Sun Studio Compiler settings
#
COMPILER_NAME=Sun Studio
# Sun Studio Compiler settings specific to Solaris
ifeq ($(PLATFORM), solaris)
COMPILER_VERSION=SS12
REQUIRED_CC_VER=5.9
CC = $(COMPILER_PATH)cc
CPP = $(COMPILER_PATH)cc -E
CXX = $(COMPILER_PATH)CC
LINT = $(COMPILER_PATH)lint
# Option used to create a shared library
SHARED_LIBRARY_FLAG = -G
endif
# Sun Studio Compiler settings specific to Linux
ifeq ($(PLATFORM), linux)
# This has not been tested
COMPILER_VERSION=SS12
REQUIRED_CC_VER=5.9
CC = $(COMPILER_PATH)cc
CPP = $(COMPILER_PATH)cc -E
CXX = $(COMPILER_PATH)CC
LINT = $(COMPILER_PATH)lint
# statically link libstdc++ before C++ ABI is stablized on Linux
STATIC_CXX = true
ifeq ($(STATIC_CXX),true)
# CC always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
# We need to use cc to statically link the C++ runtime.
CXX = $(COMPILER_PATH)cc
else
CXX = $(COMPILER_PATH)CC
endif
# Option used to create a shared library
SHARED_LIBRARY_FLAG = -G
endif
# Get compiler version
_CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1)
CC_VER :=$(call GetVersion,"$(_CC_VER)")

View File

@@ -42,7 +42,7 @@ else
endif
#
# All java tools (javac, javah, and javadoc) run faster with certain java
# All java tools (javac and javadoc) run faster with certain java
# options, this macro should be used with all these tools.
# In particular, the client VM makes these tools run faster when
# it's available.
@@ -134,21 +134,14 @@ JAVACFLAGS += -encoding ascii
JAVACFLAGS += -classpath $(BOOTDIR)/lib/tools.jar
JAVACFLAGS += $(OTHER_JAVACFLAGS)
# Needed for javah
JAVAHFLAGS += -classpath $(CLASSBINDIR)
# Langtools
ifdef LANGTOOLS_DIST
JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
JAVAC_CMD = $(BOOT_JAVA_CMD) \
"-Xbootclasspath/p:$(JAVAC_JAR)" \
-jar $(JAVAC_JAR) $(JAVACFLAGS)
JAVAH_CMD = $(BOOT_JAVA_CMD) \
"-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \
-jar $(JAVAH_JAR) $(JAVAHFLAGS)
JAVADOC_CMD = $(BOOT_JAVA_CMD) \
"-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
-jar $(JAVADOC_JAR)
@@ -156,8 +149,6 @@ else
# If no explicit tools, use boot tools (add VM flags in this case)
JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
$(JAVACFLAGS)
JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \
$(JAVAHFLAGS)
JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%)
endif

View File

@@ -94,14 +94,6 @@ else
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
endif
# COMPILER_PATH: path to where the compiler and tools are installed.
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
else
COMPILER_PATH =/usr/bin/
endif
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"

View File

@@ -86,24 +86,6 @@ else
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
endif
# COMPILER_PATH: path to where the compiler and tools are installed.
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
else
# Careful here, COMPILER_VERSION may not be defined yet (see Compiler.gmk)
# If the place where we keep a set of Sun Studio compilers doesn't exist,
# try and use /opt/SUNWspro, the default location for the SS compilers.
# (DirExists checks for this path twice, an automount double check)
_SUNSTUDIO_SET_ROOT=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/SUNWspro
SUNSTUDIO_SET_ROOT:=$(call DirExists,$(_SUNSTUDIO_SET_ROOT),$(_SUNSTUDIO_SET_ROOT),)
ifneq ($(SUNSTUDIO_SET_ROOT),)
COMPILER_PATH =$(SUNSTUDIO_SET_ROOT)/$(COMPILER_VERSION)/bin/
else
COMPILER_PATH =/opt/SUNWspro/bin/
endif
endif
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"

View File

@@ -31,7 +31,6 @@
# Level: Default is 3, 0 means none, 4 is the most but may be unreliable
# Some makefiles may have set this to 0 to turn off warnings completely,
# which also effectively creates a COMPILER_WARNINGS_FATAL=false situation.
# Program.gmk may turn this down to 2 (building .exe's).
# Windows 64bit platforms are less likely to be warning free.
# Historically, Windows 32bit builds should be mostly warning free.
ifndef COMPILER_WARNING_LEVEL
@@ -74,7 +73,7 @@ override INCREMENTAL_BUILD = false
# The ALT values should never really have spaces or use \.
# Suspect these environment variables to have spaces and/or \ characters:
# SYSTEMROOT, SystemRoot, WINDIR, windir, PROGRAMFILES, ProgramFiles,
# MSTOOLS, Mstools, MSSDK, MSSdk, VC71COMNTOOLS,
# VC71COMNTOOLS,
# MSVCDIR, MSVCDir.
# So use $(subst \,/,) on them first adding quotes and placing them in
# their own variable assigned with :=, then use FullPath.
@@ -201,124 +200,6 @@ ifndef SHORTPROGRAMFILES
export SHORTPROGRAMFILES
endif
# Compilers, SDK, and Visual Studio (MSDEV) [32bit is different from 64bit]
ifeq ($(ARCH_DATA_MODEL), 32)
ifndef SHORTMSVCDIR
# Try looking in MSVCDIR or MSVCDir area first (set by vcvars32.bat)
ifdef MSVCDIR
xMSVCDIR :="$(subst \,/,$(MSVCDIR))"
SHORTMSVCDIR :=$(call FullPath,$(xMSVCDIR))
else
ifdef MSVCDir
xMSVCDIR :="$(subst \,/,$(MSVCDir))"
SHORTMSVCDIR :=$(call FullPath,$(xMSVCDIR))
else
ifneq ($(SHORTPROGRAMFILES),)
xMSVCDIR :="$(SHORTPROGRAMFILES)/Microsoft Visual Studio .NET 2003/Vc7"
SHORTMSVCDIR :=$(call FullPath,$(xMSVCDIR))
endif
endif
endif
ifneq ($(subst MSDev98,OLDOLDOLD,$(SHORTMSVCDIR)),$(SHORTMSVCDIR))
SHORTMSVCDIR :=
endif
# If we still don't have it, look for VS100COMNTOOLS, setup by installer?
ifeq ($(SHORTMSVCDIR),)
ifdef VS100COMNTOOLS # /Common/Tools directory, use ../../Vc
xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))"
_vs100tools :=$(call FullPath,$(xVS100COMNTOOLS))
endif
ifneq ($(_vs100tools),)
SHORTMSVCDIR :=$(_vs100tools)/../../Vc
endif
endif
export SHORTMSVCDIR
# If we still don't have it, look for VS71COMNTOOLS, setup by installer?
ifeq ($(SHORTMSVCDIR),)
ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7
xVS71COMNTOOLS :="$(subst \,/,$(VS71COMNTOOLS))"
_vs71tools :=$(call FullPath,$(xVS71COMNTOOLS))
endif
ifneq ($(_vs71tools),)
SHORTMSVCDIR :=$(_vs71tools)/../../Vc7
endif
endif
export SHORTMSVCDIR
endif
ifneq ($(SHORTMSVCDIR),)
SHORTCOMPILERBIN :=$(SHORTMSVCDIR)/Bin
SHORTPSDK :=$(SHORTMSVCDIR)/PlatformSDK
export SHORTCOMPILERBIN
export SHORTPSDK
endif
endif
# The Microsoft Platform SDK installed by itself
ifneq ($(SHORTPROGRAMFILES),)
ifndef SHORTPSDK
xPSDK :="$(SHORTPROGRAMFILES)/Microsoft Platform SDK"
SHORTPSDK :=$(call FullPath,$(xPSDK))
ifeq ($(SHORTPSDK),)
xPSDK :="$(SHORTPROGRAMFILES)/Microsoft SDK"
SHORTPSDK :=$(call FullPath,$(xMSSDK))
endif
export SHORTPSDK
endif
endif
# If no SDK found yet, look in other places
ifndef SHORTPSDK
ifdef MSSDK
xMSSDK :="$(subst \,/,$(MSSDK))"
SHORTPSDK :=$(call FullPath,$(xMSSDK))
else
ifdef MSSdk
xMSSDK :="$(subst \,/,$(MSSdk))"
SHORTPSDK :=$(call FullPath,$(xMSSDK))
endif
endif
export SHORTPSDK
endif
# Compilers for 64bit are from SDK
ifeq ($(ARCH_DATA_MODEL), 64)
ifndef SHORTCOMPILERBIN
ifdef VS100COMNTOOLS # /Common7/Tools directory, use ../../Vc
xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))"
_vs100tools :=$(call FullPath,$(xVS100COMNTOOLS))
endif
ifneq ($(_vs100tools),)
SHORTCOMPILERBIN :=$(_vs100tools)/../../Vc/bin/amd64
xMSSDK70 :="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/"
MSSDK7 :=$(call FullPath,$(xMSSDK70))
export MSSDK7
else
xMSSDK61 :="C:/Program Files/Microsoft SDKs/Windows/v6.1/"
MSSDK61 :=$(call FullPath,$(xMSSDK61))
xVS2008 :="C:/Program Files (x86)/Microsoft Visual Studio 9.0/"
_vs2008 :=$(call FullPath,$(xVS2008))
ifneq ($(_vs2008),)
ifeq ($(ARCH), ia64)
SHORTCOMPILERBIN :=$(_vs2008)/VC/Bin/x86_ia64
endif
ifeq ($(ARCH), amd64)
SHORTCOMPILERBIN :=$(_vs2008)/VC/Bin/$(ARCH)
endif
else
ifneq ($(SHORTPSDK),)
ifeq ($(ARCH), ia64)
SHORTCOMPILERBIN :=$(SHORTPSDK)/Bin/Win64
endif
ifeq ($(ARCH), amd64)
SHORTCOMPILERBIN :=$(SHORTPSDK)/Bin/Win64/x86/$(ARCH)
endif
endif
endif
endif
export SHORTCOMPILERBIN
endif
endif
# Location on system where jdk installs might be
ifneq ($(SHORTPROGRAMFILES),)
USRJDKINSTANCES_PATH =$(SHORTPROGRAMFILES)/Java
@@ -356,55 +237,6 @@ ifndef JDK_DEVTOOLS_DIR
export JDK_DEVTOOLS_DIR
endif
# COMPILER_PATH: path to where the compiler and tools are installed.
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifndef COMPILER_PATH
ifdef ALT_COMPILER_PATH
xALT_COMPILER_PATH :="$(subst \,/,$(ALT_COMPILER_PATH))"
fxALT_COMPILER_PATH :=$(call FullPath,$(xALT_COMPILER_PATH))
COMPILER_PATH :=$(call PrefixPath,$(fxALT_COMPILER_PATH))
else
COMPILER_PATH :=$(call PrefixPath,$(SHORTCOMPILERBIN))
endif
COMPILER_PATH :=$(call AltCheckSpaces,COMPILER_PATH)
export COMPILER_PATH
endif
# MSDEVTOOLS_PATH: path to where the additional MS Compiler tools are.
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifndef MSDEVTOOLS_PATH
ifdef ALT_MSDEVTOOLS_PATH
xALT_MSDEVTOOLS_PATH :="$(subst \,/,$(ALT_MSDEVTOOLS_PATH))"
fxALT_MSDEVTOOLS_PATH :=$(call FullPath,$(xALT_MSDEVTOOLS_PATH))
MSDEVTOOLS_PATH :=$(call PrefixPath,$(fxALT_MSDEVTOOLS_PATH))
else
ifeq ($(ARCH_DATA_MODEL), 64)
ifdef MSTOOLS
xMSTOOLS :="$(subst \,/,$(MSTOOLS))"
_ms_tools :=$(call FullPath,$(xMSTOOLS))
else
ifdef Mstools
xMSTOOLS :="$(subst \,/,$(Mstools))"
_ms_tools :=$(call FullPath,$(xMSTOOLS))
else
_ms_tools :=
endif
endif
ifneq ($(_ms_tools),)
_ms_tools_bin :=$(_ms_tools)/Bin
else
# Assumes compiler bin is .../Bin/win64/x86/AMD64, rc.exe is 3 levels up
_ms_tools_bin :=$(SHORTCOMPILERBIN)/../../..
endif
else
_ms_tools_bin :=$(SHORTCOMPILERBIN)
endif
MSDEVTOOLS_PATH :=$(call PrefixPath,$(_ms_tools_bin))
endif
MSDEVTOOLS_PATH:=$(call AltCheckSpaces,MSDEVTOOLS_PATH)
export MSDEVTOOLS_PATH
endif
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
ifndef DEVTOOLS_PATH

View File

@@ -51,7 +51,7 @@
# Get shared system utilities macros defined
include $(BUILDDIR)/common/shared/Defs-utils.gmk
# Assumes ARCH, PLATFORM, ARCH_VM_SUBDIR, etc. have been defined.
# Assumes ARCH, PLATFORM, etc. have been defined.
# Simple pwd path
define PwdPath
@@ -157,7 +157,6 @@ endef
_check_values:=\
$(call CheckValue,ARCH,),\
$(call CheckValue,ARCH_DATA_MODEL,),\
$(call CheckValue,ARCH_VM_SUBDIR,),\
$(call CheckValue,VARIANT,),\
$(call CheckValue,PLATFORM,)
@@ -194,21 +193,15 @@ endif
# can be OPT or DBG, default is OPT
# Determine the extra pattern to add to the release name for debug/fastdebug.
# Determine the JDK_IMPORT_VARIANT, so we get the right VM files copied over.
# Determine suffix for obj directory or OBJDIR, for .o files.
# (by keeping .o files separate, just .o files, they don't clobber each
# other, however, the library files will clobber each other).
#
ifeq ($(VARIANT), DBG)
BUILD_VARIANT_RELEASE=-debug
OBJDIRNAME_SUFFIX=_g
else
BUILD_VARIANT_RELEASE=
OBJDIRNAME_SUFFIX=
endif
ifeq ($(FASTDEBUG), true)
VARIANT=DBG
BUILD_VARIANT_RELEASE=-fastdebug
OBJDIRNAME_SUFFIX=_gO
_JDK_IMPORT_VARIANT=/fastdebug
endif
@@ -330,6 +323,4 @@ BINDIR = $(OUTPUTDIR)/bin$(ISA_DIR)
# Absolute path to output directory
ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))
# Get shared compiler settings
include $(BUILDDIR)/common/shared/Compiler.gmk

View File

@@ -58,19 +58,10 @@ PLATFORM_SHARED=done
# ARCH sparc, sparcv9, i586, amd64, or ia64
# ARCH_FAMILY sparc or i586
# ARCHPROP sparc or x86
# ARCH_VM_SUBDIR jre/bin, jre/lib/sparc, etc.
# LIBARCH sparc, sparcv9, i386, amd64, or ia64
# DEV_NULL destination of /dev/null, NUL or /dev/NULL
# CLASSPATH_SEPARATOR separator in classpath, ; or :
# LIB_PREFIX dynamic or static library prefix, lib or empty
# LIB_SUFFIX static library file suffix, .lib or .a?
# LIBRARY_SUFFIX dynamic library file suffix, .dll or .so
# OBJECT_SUFFIX object file suffix, .o or .obj
# EXE_SUFFIX executable file suffix, .exe or empty
# BUNDLE_FILE_SUFFIX suffix for bundles: .tar or .tar.gz
# ISA_DIR solaris only: /sparcv9 or /amd64
# LIBARCH32 solaris only: sparc or i386
# LIBARCH64 solaris only: sparcv9 or amd64
# REQUIRED_WINDOWS_NAME windows only: basic name of windows
# REQUIRED_WINDOWS_VERSION windows only: specific version of windows
# USING_CYGWIN windows only: true or false
@@ -129,7 +120,6 @@ ifeq ($(SYSTEM_UNAME), SunOS)
# Need to maintain the jre/lib/i386 location for 32-bit Intel
ifeq ($(ARCH), i586)
ARCH_FAMILY = $(ARCH)
LIBARCH = i386
# Value of Java os.arch property
ARCHPROP = x86
else
@@ -138,17 +128,8 @@ ifeq ($(SYSTEM_UNAME), SunOS)
else
ARCH_FAMILY = sparc
endif
LIBARCH = $(ARCH)
# Value of Java os.arch property
ARCHPROP = $(LIBARCH)
endif
# The two LIBARCH names
ifeq ($(ARCH_FAMILY), sparc)
LIBARCH32 = sparc
LIBARCH64 = sparcv9
else
LIBARCH32 = i386
LIBARCH64 = amd64
ARCHPROP = $(ARCH)
endif
# Suffix for file bundles used in previous release
BUNDLE_FILE_SUFFIX=.tar
@@ -218,16 +199,12 @@ ifeq ($(SYSTEM_UNAME), Linux)
endif
endif
# Need to maintain the jre/lib/i386 location for 32-bit Intel
ifeq ($(ARCH), i586)
LIBARCH = i386
ARCHPROP = i386
else
LIBARCH = $(ARCH)
ARCHPROP = $(ARCH)
endif
# Value of Java os.arch property
ARCHPROP = $(LIBARCH)
# Suffix for file bundles used in previous release
BUNDLE_FILE_SUFFIX=.tar.gz
# Minimum disk space needed as determined by running 'du -sk' on
@@ -303,9 +280,7 @@ ifeq ($(PLATFORM), windows)
endif
endif
export ARCH_DATA_MODEL
# LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel
ARCH=i586
LIBARCH=i386
# Value of Java os.arch property
ARCHPROP=x86
REQUIRED_WINDOWS_NAME=Windows Professional 2000
@@ -323,9 +298,8 @@ ifeq ($(PLATFORM), windows)
ARCH=ia64
endif
endif
LIBARCH=$(ARCH)
# Value of Java os.arch property
ARCHPROP=$(LIBARCH)
ARCHPROP=$(ARCH)
endif
ARCH_FAMILY = $(ARCH)
# Where is unwanted output to be delivered?
@@ -337,14 +311,6 @@ ifeq ($(PLATFORM), windows)
export DEV_NULL
# Classpath separator
CLASSPATH_SEPARATOR = ;
# The suffix used for object file (.o for unix .obj for windows)
OBJECT_SUFFIX = obj
# The suffix applied to executables (.exe for windows, nothing for solaris)
EXE_SUFFIX = .exe
# The prefix applied to library files (lib for solaris, nothing for windows)
LIB_PREFIX=
LIBRARY_SUFFIX = dll
LIB_SUFFIX = lib
# User name determination (set _USER)
ifndef USER
ifdef USERNAME
@@ -359,8 +325,6 @@ ifeq ($(PLATFORM), windows)
else
_USER:=$(USER)
endif
# Location of client/server directories
ARCH_VM_SUBDIR=jre/bin
# Suffix for file bundles used in previous release
BUNDLE_FILE_SUFFIX=.tar
# Minimum disk space needed as determined by running 'du -sk' on
@@ -430,16 +394,6 @@ ifneq ($(PLATFORM), windows)
export DEV_NULL
# Character used between entries in classpath
CLASSPATH_SEPARATOR = :
# suffix used for object file (.o for unix .obj for windows)
OBJECT_SUFFIX = o
# The suffix applied to runtime libraries
LIBRARY_SUFFIX = so
# The suffix applied to link libraries
LIB_SUFFIX = so
# The suffix applied to executables (.exe for windows, nothing for solaris)
EXE_SUFFIX =
# The prefix applied to library files (lib for solaris, nothing for windows)
LIB_PREFIX = lib
# User name determination (set _USER)
ifndef USER
ifdef LOGNAME
@@ -450,8 +404,6 @@ ifneq ($(PLATFORM), windows)
else
_USER:=$(USER)
endif
# Location of client/server directories
ARCH_VM_SUBDIR=jre/lib/$(LIBARCH)
endif
# If blanks in the username, use the first 4 words and pack them together

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2006, 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
@@ -24,29 +24,13 @@
#
# Properties for jprt
jprt.tools.default.release=jdk1.7.0
# Specific platform list
jprt.build.platforms=\
solaris_sparc_5.10,\
solaris_sparcv9_5.10,\
solaris_i586_5.10,\
solaris_x64_5.10,\
linux_i586_2.6,\
linux_x64_2.6,\
windows_i586_5.0,\
windows_x64_5.2
# Use whatever release that the submitted job requests
jprt.tools.default.release=${jprt.submit.release}
# The different build flavors we want
# The different build flavors we want, we override here so we just get these 2
jprt.build.flavors=product,fastdebug
# Explicitly designate what the 32bit match is for the 64bit build
jprt.solaris_sparcv9.build.platform.match32=solaris_sparc_5.10
jprt.solaris_sparcv9_5.10.build.platform.match32=solaris_sparc_5.10
jprt.solaris_x64.build.platform.match32=solaris_i586_5.10
jprt.solaris_x64_5.10.build.platform.match32=solaris_i586_5.10
# Directories needed to build
jprt.bundle.src.dirs=make src
jprt.bundle.exclude.src.dirs=build dist
# Directories to be excluded from the source bundles
jprt.bundle.exclude.src.dirs=build dist webrev

View File

@@ -32,12 +32,6 @@ PACKAGE = com.sun.tools.corba.se.idl
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
# This program must contain a manifest that defines the execution level
# needed to follow standard Vista User Access Control Guidelines
# This must be set before Program.gmk is included
#
BUILD_MANIFEST=true
#
# Files
#

View File

@@ -75,7 +75,7 @@ public class CorbaResourceUtil {
args[1] = (arg1 != null ? arg1.toString() : "null");
args[2] = (arg2 != null ? arg2.toString() : "null");
return java.text.MessageFormat.format(format, args);
return java.text.MessageFormat.format(format, (Object[]) args);
}
private static boolean resourcesInitialized = false;

View File

@@ -350,7 +350,7 @@ public final class ObjectUtility {
if (useToString) {
try {
cls.getDeclaredMethod( "toString", null ) ;
cls.getDeclaredMethod( "toString", (Class[])null ) ;
return true ;
} catch (Exception exc) {
return false ;

View File

@@ -108,8 +108,8 @@ public class ExceptionHandlerImpl implements ExceptionHandler
try {
helperClass = Class.forName( helperName, true, loader ) ;
Method idMethod = helperClass.getDeclaredMethod( "id", null ) ;
setId( (String)idMethod.invoke( null, null ) ) ;
Method idMethod = helperClass.getDeclaredMethod( "id", (Class[])null ) ;
setId( (String)idMethod.invoke( null, (Object[])null ) ) ;
} catch (Exception ex) {
throw wrapper.badHelperIdMethod( ex, helperName ) ;
}

View File

@@ -589,7 +589,7 @@ abstract public class ORB {
this.getClass().getMethod("create_operation_list", argc);
// OK, the method exists, so invoke it and be happy.
Object[] argx = { oper };
java.lang.Object[] argx = { oper };
return (org.omg.CORBA.NVList)meth.invoke(this, argx);
}
catch( java.lang.reflect.InvocationTargetException exs ) {

View File

@@ -187,7 +187,7 @@ public final class Bridge
try {
// Invoke the ObjectInputStream.latestUserDefinedLoader method
return (ClassLoader)latestUserDefinedLoaderMethod.invoke(null,
NO_ARGS);
(Object[])NO_ARGS);
} catch (InvocationTargetException ite) {
Error err = new Error(
"sun.corba.Bridge.latestUserDefinedLoader: " + ite ) ;

View File

@@ -101,3 +101,25 @@ d38f45079fe98792a7381dbb4b64f5b589ec8c58 jdk7-b94
573e8ea5fd68e8e51eb6308d283ac3b3889d15e0 jdk7-b96
573e8ea5fd68e8e51eb6308d283ac3b3889d15e0 hs19-b02
5f42499e57adc16380780f40541e1a66cd601891 jdk7-b97
8a045b3f5c13eaad92ff4baf15ca671845fcad1a jdk7-b98
6a236384a379642b5a2398e2819db9ab4e711e9b jdk7-b99
ad1977f08c4d69162a0775fe3f9576b9fd521d10 jdk7-b100
6c3a919105b68c15b7db923ec9a00006e9560910 jdk7-b101
ad1977f08c4d69162a0775fe3f9576b9fd521d10 hs19-b03
c5cadf1a07717955cf60dbaec16e35b529fd2cb0 jdk7-b102
cb4250ef73b21de6c487ea14e2b0b99eed67b4b6 jdk7-b103
e55900b5c1b865cac17e18abc639c7dc50de7fd8 hs19-b04
b4acf10eb134fe930802c97e36db65e7ccb544b5 jdk7-b104
6709c14587c2cc6faca208767335afeb01e33de5 jdk7-b105
1b81ca701fa5fc30adc4cfdaa4bdd153df5e6c86 jdk7-b106
cc3fdfeb54b049f18edcf3463e6ab051d0b7b609 hs19-b05
688a538aa65412178286ae2a6b0c00b6711e121b hs19-b06
bf496cbe9b74dda5975a1559da7ecfdd313e509e jdk7-b107
0000000000000000000000000000000000000000 hs19-b06
6c43216df13513a0f96532aa06f213066c49e27b hs19-b06
e44a93947ccbfce712b51725f313163606f15486 jdk7-b108
cc4bb3022b3144dc5db0805b9ef6c7eff2aa3b81 jdk7-b109
2f25f2b8de2700a1822463b1bd3d02b5e218018f jdk7-b110
07b042e13dde4f3479ba9ec55120fcd5e8623323 jdk7-b111
5511edd5d719f3fc9fdd04879482026a3d2c8652 jdk7-b112
beef35b96b81129c375d572357fb9548d9020db1 jdk7-b113

View File

@@ -253,7 +253,11 @@ static bool read_lib_info(struct ps_prochandle* ph) {
if (nwords > 5 && find_lib(ph, word[5]) == false) {
intptr_t base;
lib_info* lib;
#ifdef _LP64
sscanf(word[0], "%lx", &base);
#else
sscanf(word[0], "%x", &base);
#endif
if ((lib = add_lib_info(ph, word[5], (uintptr_t)base)) == NULL)
continue; // ignore, add_lib_info prints error

View File

@@ -1037,7 +1037,7 @@ public class CommandProcessor {
public void prologue(Address start, Address end) {
}
public void visit(CodeBlob blob) {
fout.println(gen.genHTML(blob.instructionsBegin()));
fout.println(gen.genHTML(blob.contentBegin()));
}
public void epilogue() {
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -54,7 +54,7 @@ public class Runtime1 {
/** FIXME: consider making argument "type-safe" in Java port */
public Address entryFor(int id) {
return blobFor(id).instructionsBegin();
return blobFor(id).codeBegin();
}
/** FIXME: consider making argument "type-safe" in Java port */

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -39,11 +39,10 @@ public class CodeBlob extends VMObject {
private static CIntegerField sizeField;
private static CIntegerField headerSizeField;
private static CIntegerField relocationSizeField;
private static CIntegerField instructionsOffsetField;
private static CIntegerField contentOffsetField;
private static CIntegerField codeOffsetField;
private static CIntegerField frameCompleteOffsetField;
private static CIntegerField dataOffsetField;
private static CIntegerField oopsOffsetField;
private static CIntegerField oopsLengthField;
private static CIntegerField frameSizeField;
private static AddressField oopMapsField;
@@ -70,10 +69,9 @@ public class CodeBlob extends VMObject {
headerSizeField = type.getCIntegerField("_header_size");
relocationSizeField = type.getCIntegerField("_relocation_size");
frameCompleteOffsetField = type.getCIntegerField("_frame_complete_offset");
instructionsOffsetField = type.getCIntegerField("_instructions_offset");
contentOffsetField = type.getCIntegerField("_content_offset");
codeOffsetField = type.getCIntegerField("_code_offset");
dataOffsetField = type.getCIntegerField("_data_offset");
oopsOffsetField = type.getCIntegerField("_oops_offset");
oopsLengthField = type.getCIntegerField("_oops_length");
frameSizeField = type.getCIntegerField("_frame_size");
oopMapsField = type.getAddressField("_oop_maps");
@@ -115,11 +113,19 @@ public class CodeBlob extends VMObject {
// public RelocInfo relocationBegin();
// public RelocInfo relocationEnd();
public Address instructionsBegin() {
return headerBegin().addOffsetTo(instructionsOffsetField.getValue(addr));
public Address contentBegin() {
return headerBegin().addOffsetTo(contentOffsetField.getValue(addr));
}
public Address instructionsEnd() {
public Address contentEnd() {
return headerBegin().addOffsetTo(dataOffsetField.getValue(addr));
}
public Address codeBegin() {
return headerBegin().addOffsetTo(contentOffsetField.getValue(addr));
}
public Address codeEnd() {
return headerBegin().addOffsetTo(dataOffsetField.getValue(addr));
}
@@ -131,44 +137,28 @@ public class CodeBlob extends VMObject {
return headerBegin().addOffsetTo(sizeField.getValue(addr));
}
public Address oopsBegin() {
return headerBegin().addOffsetTo(oopsOffsetField.getValue(addr));
}
public Address oopsEnd() {
return oopsBegin().addOffsetTo(getOopsLength());
}
// Offsets
public int getRelocationOffset() { return (int) headerSizeField.getValue(addr); }
public int getInstructionsOffset() { return (int) instructionsOffsetField.getValue(addr); }
public int getDataOffset() { return (int) dataOffsetField.getValue(addr); }
public int getOopsOffset() { return (int) oopsOffsetField.getValue(addr); }
public int getRelocationOffset() { return (int) headerSizeField .getValue(addr); }
public int getContentOffset() { return (int) contentOffsetField.getValue(addr); }
public int getCodeOffset() { return (int) codeOffsetField .getValue(addr); }
public int getDataOffset() { return (int) dataOffsetField .getValue(addr); }
// Sizes
public int getSize() { return (int) sizeField.getValue(addr); }
public int getHeaderSize() { return (int) headerSizeField.getValue(addr); }
public int getSize() { return (int) sizeField .getValue(addr); }
public int getHeaderSize() { return (int) headerSizeField.getValue(addr); }
// FIXME: add getRelocationSize()
public int getInstructionsSize() { return (int) instructionsEnd().minus(instructionsBegin()); }
public int getDataSize() { return (int) dataEnd().minus(dataBegin()); }
public int getContentSize() { return (int) contentEnd().minus(contentBegin()); }
public int getCodeSize() { return (int) codeEnd() .minus(codeBegin()); }
public int getDataSize() { return (int) dataEnd() .minus(dataBegin()); }
// Containment
public boolean blobContains(Address addr) { return headerBegin().lessThanOrEqual(addr) && dataEnd().greaterThan(addr); }
public boolean blobContains(Address addr) { return headerBegin() .lessThanOrEqual(addr) && dataEnd() .greaterThan(addr); }
// FIXME: add relocationContains
public boolean instructionsContains(Address addr) { return instructionsBegin().lessThanOrEqual(addr) && instructionsEnd().greaterThan(addr); }
public boolean dataContains(Address addr) { return dataBegin().lessThanOrEqual(addr) && dataEnd().greaterThan(addr); }
public boolean oopsContains(Address addr) { return oopsBegin().lessThanOrEqual(addr) && oopsEnd().greaterThan(addr); }
public boolean contains(Address addr) { return instructionsContains(addr); }
public boolean isFrameCompleteAt(Address a) { return instructionsContains(a) && a.minus(instructionsBegin()) >= frameCompleteOffsetField.getValue(addr); }
/** Support for oops in scopes and relocs. Note: index 0 is reserved for null. */
public OopHandle getOopAt(int index) {
if (index == 0) return null;
if (Assert.ASSERTS_ENABLED) {
Assert.that(index > 0 && index <= getOopsLength(), "must be a valid non-zero index");
}
return oopsBegin().getOopHandleAt((index - 1) * VM.getVM().getOopSize());
}
public boolean contentContains(Address addr) { return contentBegin().lessThanOrEqual(addr) && contentEnd().greaterThan(addr); }
public boolean codeContains(Address addr) { return codeBegin() .lessThanOrEqual(addr) && codeEnd() .greaterThan(addr); }
public boolean dataContains(Address addr) { return dataBegin() .lessThanOrEqual(addr) && dataEnd() .greaterThan(addr); }
public boolean contains(Address addr) { return contentContains(addr); }
public boolean isFrameCompleteAt(Address a) { return codeContains(a) && a.minus(codeBegin()) >= frameCompleteOffsetField.getValue(addr); }
// Reclamation support (really only used by the nmethods, but in order to get asserts to work
// in the CodeCache they are defined virtual here)
@@ -191,7 +181,7 @@ public class CodeBlob extends VMObject {
if (Assert.ASSERTS_ENABLED) {
Assert.that(getOopMaps() != null, "nope");
}
return getOopMaps().findMapAtOffset(pc.minus(instructionsBegin()), debugging);
return getOopMaps().findMapAtOffset(pc.minus(codeBegin()), debugging);
}
// virtual void preserve_callee_argument_oops(frame fr, const RegisterMap* reg_map, void f(oop*)) { ShouldNotReachHere(); }
@@ -223,18 +213,9 @@ public class CodeBlob extends VMObject {
}
protected void printComponentsOn(PrintStream tty) {
// FIXME: add relocation information
tty.println(" instructions: [" + instructionsBegin() + ", " + instructionsEnd() + "), " +
tty.println(" content: [" + contentBegin() + ", " + contentEnd() + "), " +
" code: [" + codeBegin() + ", " + codeEnd() + "), " +
" data: [" + dataBegin() + ", " + dataEnd() + "), " +
" oops: [" + oopsBegin() + ", " + oopsEnd() + "), " +
" frame size: " + getFrameSize());
}
//--------------------------------------------------------------------------------
// Internals only below this point
//
private int getOopsLength() {
return (int) oopsLengthField.getValue(addr);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -35,7 +35,6 @@ import sun.jvm.hotspot.utilities.*;
public class NMethod extends CodeBlob {
private static long pcDescSize;
private static CIntegerField zombieInstructionSizeField;
private static sun.jvm.hotspot.types.OopField methodField;
/** != InvocationEntryBci if this nmethod is an on-stack replacement method */
private static CIntegerField entryBCIField;
@@ -49,6 +48,7 @@ public class NMethod extends CodeBlob {
private static CIntegerField deoptOffsetField;
private static CIntegerField origPCOffsetField;
private static CIntegerField stubOffsetField;
private static CIntegerField oopsOffsetField;
private static CIntegerField scopesDataOffsetField;
private static CIntegerField scopesPCsOffsetField;
private static CIntegerField dependenciesOffsetField;
@@ -87,7 +87,6 @@ public class NMethod extends CodeBlob {
private static void initialize(TypeDataBase db) {
Type type = db.lookupType("nmethod");
zombieInstructionSizeField = type.getCIntegerField("_zombie_instruction_size");
methodField = type.getOopField("_method");
entryBCIField = type.getCIntegerField("_entry_bci");
osrLinkField = type.getAddressField("_osr_link");
@@ -98,6 +97,7 @@ public class NMethod extends CodeBlob {
deoptOffsetField = type.getCIntegerField("_deoptimize_offset");
origPCOffsetField = type.getCIntegerField("_orig_pc_offset");
stubOffsetField = type.getCIntegerField("_stub_offset");
oopsOffsetField = type.getCIntegerField("_oops_offset");
scopesDataOffsetField = type.getCIntegerField("_scopes_data_offset");
scopesPCsOffsetField = type.getCIntegerField("_scopes_pcs_offset");
dependenciesOffsetField = type.getCIntegerField("_dependencies_offset");
@@ -134,14 +134,16 @@ public class NMethod extends CodeBlob {
public boolean isOSRMethod() { return getEntryBCI() != VM.getVM().getInvocationEntryBCI(); }
/** Boundaries for different parts */
public Address constantsBegin() { return instructionsBegin(); }
public Address constantsBegin() { return contentBegin(); }
public Address constantsEnd() { return getEntryPoint(); }
public Address codeBegin() { return getEntryPoint(); }
public Address codeEnd() { return headerBegin().addOffsetTo(getStubOffset()); }
public Address instsBegin() { return codeBegin(); }
public Address instsEnd() { return headerBegin().addOffsetTo(getStubOffset()); }
public Address exceptionBegin() { return headerBegin().addOffsetTo(getExceptionOffset()); }
public Address deoptBegin() { return headerBegin().addOffsetTo(getDeoptOffset()); }
public Address stubBegin() { return headerBegin().addOffsetTo(getStubOffset()); }
public Address stubEnd() { return headerBegin().addOffsetTo(getScopesDataOffset()); }
public Address stubEnd() { return headerBegin().addOffsetTo(getOopsOffset()); }
public Address oopsBegin() { return headerBegin().addOffsetTo(getOopsOffset()); }
public Address oopsEnd() { return headerBegin().addOffsetTo(getScopesDataOffset()); }
public Address scopesDataBegin() { return headerBegin().addOffsetTo(getScopesDataOffset()); }
public Address scopesDataEnd() { return headerBegin().addOffsetTo(getScopesPCsOffset()); }
public Address scopesPCsBegin() { return headerBegin().addOffsetTo(getScopesPCsOffset()); }
@@ -154,8 +156,9 @@ public class NMethod extends CodeBlob {
public Address nulChkTableEnd() { return headerBegin().addOffsetTo(getNMethodEndOffset()); }
public int constantsSize() { return (int) constantsEnd() .minus(constantsBegin()); }
public int codeSize() { return (int) codeEnd() .minus(codeBegin()); }
public int instsSize() { return (int) instsEnd() .minus(instsBegin()); }
public int stubSize() { return (int) stubEnd() .minus(stubBegin()); }
public int oopsSize() { return (int) oopsEnd() .minus(oopsBegin()); }
public int scopesDataSize() { return (int) scopesDataEnd() .minus(scopesDataBegin()); }
public int scopesPCsSize() { return (int) scopesPCsEnd() .minus(scopesPCsBegin()); }
public int dependenciesSize() { return (int) dependenciesEnd().minus(dependenciesBegin()); }
@@ -166,7 +169,7 @@ public class NMethod extends CodeBlob {
public int totalSize() {
return
constantsSize() +
codeSize() +
instsSize() +
stubSize() +
scopesDataSize() +
scopesPCsSize() +
@@ -176,8 +179,9 @@ public class NMethod extends CodeBlob {
}
public boolean constantsContains (Address addr) { return constantsBegin() .lessThanOrEqual(addr) && constantsEnd() .greaterThan(addr); }
public boolean codeContains (Address addr) { return codeBegin() .lessThanOrEqual(addr) && codeEnd() .greaterThan(addr); }
public boolean instsContains (Address addr) { return instsBegin() .lessThanOrEqual(addr) && instsEnd() .greaterThan(addr); }
public boolean stubContains (Address addr) { return stubBegin() .lessThanOrEqual(addr) && stubEnd() .greaterThan(addr); }
public boolean oopsContains (Address addr) { return oopsBegin() .lessThanOrEqual(addr) && oopsEnd() .greaterThan(addr); }
public boolean scopesDataContains (Address addr) { return scopesDataBegin() .lessThanOrEqual(addr) && scopesDataEnd() .greaterThan(addr); }
public boolean scopesPCsContains (Address addr) { return scopesPCsBegin() .lessThanOrEqual(addr) && scopesPCsEnd() .greaterThan(addr); }
public boolean handlerTableContains(Address addr) { return handlerTableBegin().lessThanOrEqual(addr) && handlerTableEnd().greaterThan(addr); }
@@ -187,6 +191,15 @@ public class NMethod extends CodeBlob {
public Address getEntryPoint() { return entryPointField.getValue(addr); }
public Address getVerifiedEntryPoint() { return verifiedEntryPointField.getValue(addr); }
/** Support for oops in scopes and relocs. Note: index 0 is reserved for null. */
public OopHandle getOopAt(int index) {
if (index == 0) return null;
if (Assert.ASSERTS_ENABLED) {
Assert.that(index > 0 && index <= oopsSize(), "must be a valid non-zero index");
}
return oopsBegin().getOopHandleAt((index - 1) * VM.getVM().getOopSize());
}
// FIXME: add interpreter_entry_point()
// FIXME: add lazy_interpreter_entry_point() for C2
@@ -338,6 +351,15 @@ public class NMethod extends CodeBlob {
printOn(System.out);
}
protected void printComponentsOn(PrintStream tty) {
// FIXME: add relocation information
tty.println(" content: [" + contentBegin() + ", " + contentEnd() + "), " +
" code: [" + codeBegin() + ", " + codeEnd() + "), " +
" data: [" + dataBegin() + ", " + dataEnd() + "), " +
" oops: [" + oopsBegin() + ", " + oopsEnd() + "), " +
" frame size: " + getFrameSize());
}
public String toString() {
Method method = getMethod();
return "NMethod for " +
@@ -367,6 +389,7 @@ public class NMethod extends CodeBlob {
private int getExceptionOffset() { return (int) exceptionOffsetField .getValue(addr); }
private int getDeoptOffset() { return (int) deoptOffsetField .getValue(addr); }
private int getStubOffset() { return (int) stubOffsetField .getValue(addr); }
private int getOopsOffset() { return (int) oopsOffsetField .getValue(addr); }
private int getScopesDataOffset() { return (int) scopesDataOffsetField .getValue(addr); }
private int getScopesPCsOffset() { return (int) scopesPCsOffsetField .getValue(addr); }
private int getDependenciesOffset() { return (int) dependenciesOffsetField.getValue(addr); }

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -75,7 +75,7 @@ public class PCDesc extends VMObject {
}
public Address getRealPC(NMethod code) {
return code.instructionsBegin().addOffsetTo(getPCOffset());
return code.codeBegin().addOffsetTo(getPCOffset());
}

View File

@@ -72,6 +72,7 @@ public class BytecodeDisassembler {
addBytecodeClass(Bytecodes._invokestatic, BytecodeInvoke.class);
addBytecodeClass(Bytecodes._invokespecial, BytecodeInvoke.class);
addBytecodeClass(Bytecodes._invokeinterface, BytecodeInvoke.class);
addBytecodeClass(Bytecodes._invokedynamic, BytecodeInvoke.class);
addBytecodeClass(Bytecodes._jsr, BytecodeJsr.class);
addBytecodeClass(Bytecodes._jsr_w, BytecodeJsrW.class);
addBytecodeClass(Bytecodes._iload, BytecodeLoad.class);

View File

@@ -54,15 +54,31 @@ public class BytecodeInvoke extends BytecodeWithCPIndex {
// returns the name of the invoked method
public Symbol name() {
ConstantPool cp = method().getConstants();
if (isInvokedynamic()) {
int[] nt = cp.getNameAndTypeAt(indexForFieldOrMethod());
return cp.getSymbolAt(nt[0]);
}
return cp.getNameRefAt(index());
}
// returns the signature of the invoked method
public Symbol signature() {
ConstantPool cp = method().getConstants();
if (isInvokedynamic()) {
int[] nt = cp.getNameAndTypeAt(indexForFieldOrMethod());
return cp.getSymbolAt(nt[1]);
}
return cp.getSignatureRefAt(index());
}
public int getSecondaryIndex() {
if (isInvokedynamic()) {
// change byte-ordering of 4-byte integer
return VM.getVM().getBytes().swapInt(javaSignedWordAt(1));
}
return super.getSecondaryIndex(); // throw an error
}
public Method getInvokedMethod() {
return method().getConstants().getMethodRefAt(index());
}
@@ -87,6 +103,7 @@ public class BytecodeInvoke extends BytecodeWithCPIndex {
public boolean isInvokevirtual() { return adjustedInvokeCode() == Bytecodes._invokevirtual; }
public boolean isInvokestatic() { return adjustedInvokeCode() == Bytecodes._invokestatic; }
public boolean isInvokespecial() { return adjustedInvokeCode() == Bytecodes._invokespecial; }
public boolean isInvokedynamic() { return adjustedInvokeCode() == Bytecodes._invokedynamic; }
public boolean isValid() { return isInvokeinterface() ||
isInvokevirtual() ||
@@ -104,6 +121,11 @@ public class BytecodeInvoke extends BytecodeWithCPIndex {
buf.append(spaces);
buf.append('#');
buf.append(Integer.toString(indexForFieldOrMethod()));
if (isInvokedynamic()) {
buf.append('(');
buf.append(Integer.toString(getSecondaryIndex()));
buf.append(')');
}
buf.append(" [Method ");
StringBuffer sigBuf = new StringBuffer();
new SignatureConverter(signature(), sigBuf).iterateReturntype();

View File

@@ -25,6 +25,7 @@
package sun.jvm.hotspot.interpreter;
import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.utilities.*;
public class BytecodeLoadConstant extends BytecodeWithCPIndex {
@@ -32,10 +33,47 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
super(method, bci);
}
public boolean hasCacheIndex() {
// normal ldc uses CP index, but fast_aldc uses swapped CP cache index
return javaCode() != code();
}
public int index() {
return javaCode() == Bytecodes._ldc ?
int i = javaCode() == Bytecodes._ldc ?
(int) (0xFF & javaByteAt(1))
: (int) (0xFFFF & javaShortAt(1));
if (hasCacheIndex()) {
return (0xFFFF & VM.getVM().getBytes().swapShort((short) i));
} else {
return i;
}
}
public int poolIndex() {
int i = index();
if (hasCacheIndex()) {
ConstantPoolCache cpCache = method().getConstants().getCache();
return cpCache.getEntryAt(i).getConstantPoolIndex();
} else {
return i;
}
}
public int cacheIndex() {
if (hasCacheIndex()) {
return index();
} else {
return -1; // no cache index
}
}
private Oop getCachedConstant() {
int i = cacheIndex();
if (i >= 0) {
ConstantPoolCache cpCache = method().getConstants().getCache();
return cpCache.getEntryAt(i).getF1();
}
return null;
}
public void verify() {
@@ -58,6 +96,7 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
// has to be int or float or String or Klass
return (ctag.isUnresolvedString() || ctag.isString()
|| ctag.isUnresolvedKlass() || ctag.isKlass()
|| ctag.isMethodHandle() || ctag.isMethodType()
|| ctag.isInt() || ctag.isFloat())? true: false;
}
}
@@ -112,7 +151,7 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
public String getConstantValue() {
ConstantPool cpool = method().getConstants();
int cpIndex = index();
int cpIndex = poolIndex();
ConstantTag ctag = cpool.getTagAt(cpIndex);
if (ctag.isInt()) {
return "<int " + Integer.toString(cpool.getIntAt(cpIndex)) +">";
@@ -149,6 +188,18 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
} else {
throw new RuntimeException("should not reach here");
}
} else if (ctag.isMethodHandle() || ctag.isMethodType()) {
Oop x = getCachedConstant();
int refidx = cpool.getMethodHandleIndexAt(cpIndex);
int refkind = cpool.getMethodHandleRefKindAt(cpIndex);
return "<MethodHandle kind=" + Integer.toString(refkind) +
" ref=" + Integer.toString(refidx)
+ (x == null ? "" : " @" + x.getHandle()) + ">";
} else if (ctag.isMethodType()) {
Oop x = getCachedConstant();
int refidx = cpool.getMethodTypeIndexAt(cpIndex);
return "<MethodType " + cpool.getSymbolAt(refidx).asString()
+ (x == null ? "" : " @" + x.getHandle()) + ">";
} else {
if (Assert.ASSERTS_ENABLED) {
Assert.that(false, "invalid load constant type");
@@ -162,7 +213,12 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
buf.append(getJavaBytecodeName());
buf.append(spaces);
buf.append('#');
buf.append(Integer.toString(index()));
buf.append(Integer.toString(poolIndex()));
if (hasCacheIndex()) {
buf.append('(');
buf.append(Integer.toString(cacheIndex()));
buf.append(')');
}
buf.append(spaces);
buf.append(getConstantValue());
if (code() != javaCode()) {

View File

@@ -37,12 +37,19 @@ public abstract class BytecodeWithCPIndex extends Bytecode {
// the constant pool index for this bytecode
public int index() { return 0xFFFF & javaShortAt(1); }
public int getSecondaryIndex() {
throw new IllegalArgumentException("must be invokedynamic");
}
protected int indexForFieldOrMethod() {
ConstantPoolCache cpCache = method().getConstants().getCache();
// get ConstantPool index from ConstantPoolCacheIndex at given bci
int cpCacheIndex = index();
if (cpCache == null) {
return cpCacheIndex;
} else if (code() == Bytecodes._invokedynamic) {
int secondaryIndex = getSecondaryIndex();
return cpCache.getMainEntryAt(secondaryIndex).getConstantPoolIndex();
} else {
// change byte-ordering and go via cache
return cpCache.getEntryAt((int) (0xFFFF & VM.getVM().getBytes().swapShort((short) cpCacheIndex))).getConstantPoolIndex();

View File

@@ -222,7 +222,7 @@ public class Bytecodes {
public static final int _invokespecial = 183; // 0xb7
public static final int _invokestatic = 184; // 0xb8
public static final int _invokeinterface = 185; // 0xb9
public static final int _xxxunusedxxx = 186; // 0xba
public static final int _invokedynamic = 186; // 0xba
public static final int _new = 187; // 0xbb
public static final int _newarray = 188; // 0xbc
public static final int _anewarray = 189; // 0xbd
@@ -269,9 +269,12 @@ public class Bytecodes {
public static final int _fast_invokevfinal = 226;
public static final int _fast_linearswitch = 227;
public static final int _fast_binaryswitch = 228;
public static final int _shouldnotreachhere = 229; // For debugging
public static final int _fast_aldc = 229;
public static final int _fast_aldc_w = 230;
public static final int _return_register_finalizer = 231;
public static final int _shouldnotreachhere = 232; // For debugging
public static final int number_of_codes = 230;
public static final int number_of_codes = 233;
public static int specialLengthAt(Method method, int bci) {
int code = codeAt(method, bci);
@@ -458,9 +461,9 @@ public class Bytecodes {
def(_dconst_1 , "dconst_1" , "b" , null , BasicType.getTDouble() , 2, false);
def(_bipush , "bipush" , "bc" , null , BasicType.getTInt() , 1, false);
def(_sipush , "sipush" , "bcc" , null , BasicType.getTInt() , 1, false);
def(_ldc , "ldc" , "bi" , null , BasicType.getTIllegal(), 1, true );
def(_ldc_w , "ldc_w" , "bii" , null , BasicType.getTIllegal(), 1, true );
def(_ldc2_w , "ldc2_w" , "bii" , null , BasicType.getTIllegal(), 2, true );
def(_ldc , "ldc" , "bk" , null , BasicType.getTIllegal(), 1, true );
def(_ldc_w , "ldc_w" , "bkk" , null , BasicType.getTIllegal(), 1, true );
def(_ldc2_w , "ldc2_w" , "bkk" , null , BasicType.getTIllegal(), 2, true );
def(_iload , "iload" , "bi" , "wbii" , BasicType.getTInt() , 1, false);
def(_lload , "lload" , "bi" , "wbii" , BasicType.getTLong() , 2, false);
def(_fload , "fload" , "bi" , "wbii" , BasicType.getTFloat() , 1, false);
@@ -618,26 +621,26 @@ public class Bytecodes {
def(_dreturn , "dreturn" , "b" , null , BasicType.getTDouble() , -2, true );
def(_areturn , "areturn" , "b" , null , BasicType.getTObject() , -1, true );
def(_return , "return" , "b" , null , BasicType.getTVoid() , 0, true );
def(_getstatic , "getstatic" , "bjj" , null , BasicType.getTIllegal(), 1, true );
def(_putstatic , "putstatic" , "bjj" , null , BasicType.getTIllegal(), -1, true );
def(_getfield , "getfield" , "bjj" , null , BasicType.getTIllegal(), 0, true );
def(_putfield , "putfield" , "bjj" , null , BasicType.getTIllegal(), -2, true );
def(_invokevirtual , "invokevirtual" , "bjj" , null , BasicType.getTIllegal(), -1, true );
def(_invokespecial , "invokespecial" , "bjj" , null , BasicType.getTIllegal(), -1, true );
def(_invokestatic , "invokestatic" , "bjj" , null , BasicType.getTIllegal(), 0, true );
def(_invokeinterface , "invokeinterface" , "bjj__", null , BasicType.getTIllegal(), -1, true );
def(_xxxunusedxxx , "xxxunusedxxx" , null , null , BasicType.getTVoid() , 0, false);
def(_new , "new" , "bii" , null , BasicType.getTObject() , 1, true );
def(_getstatic , "getstatic" , "bJJ" , null , BasicType.getTIllegal(), 1, true );
def(_putstatic , "putstatic" , "bJJ" , null , BasicType.getTIllegal(), -1, true );
def(_getfield , "getfield" , "bJJ" , null , BasicType.getTIllegal(), 0, true );
def(_putfield , "putfield" , "bJJ" , null , BasicType.getTIllegal(), -2, true );
def(_invokevirtual , "invokevirtual" , "bJJ" , null , BasicType.getTIllegal(), -1, true );
def(_invokespecial , "invokespecial" , "bJJ" , null , BasicType.getTIllegal(), -1, true );
def(_invokestatic , "invokestatic" , "bJJ" , null , BasicType.getTIllegal(), 0, true );
def(_invokeinterface , "invokeinterface" , "bJJ__", null , BasicType.getTIllegal(), -1, true );
def(_invokedynamic , "invokedynamic" , "bJJJJ", null , BasicType.getTIllegal(), -1, true );
def(_new , "new" , "bkk" , null , BasicType.getTObject() , 1, true );
def(_newarray , "newarray" , "bc" , null , BasicType.getTObject() , 0, true );
def(_anewarray , "anewarray" , "bii" , null , BasicType.getTObject() , 0, true );
def(_anewarray , "anewarray" , "bkk" , null , BasicType.getTObject() , 0, true );
def(_arraylength , "arraylength" , "b" , null , BasicType.getTVoid() , 0, true );
def(_athrow , "athrow" , "b" , null , BasicType.getTVoid() , -1, true );
def(_checkcast , "checkcast" , "bii" , null , BasicType.getTObject() , 0, true );
def(_instanceof , "instanceof" , "bii" , null , BasicType.getTInt() , 0, true );
def(_checkcast , "checkcast" , "bkk" , null , BasicType.getTObject() , 0, true );
def(_instanceof , "instanceof" , "bkk" , null , BasicType.getTInt() , 0, true );
def(_monitorenter , "monitorenter" , "b" , null , BasicType.getTVoid() , -1, true );
def(_monitorexit , "monitorexit" , "b" , null , BasicType.getTVoid() , -1, true );
def(_wide , "wide" , "" , null , BasicType.getTVoid() , 0, false);
def(_multianewarray , "multianewarray" , "biic" , null , BasicType.getTObject() , 1, true );
def(_multianewarray , "multianewarray" , "bkkc" , null , BasicType.getTObject() , 1, true );
def(_ifnull , "ifnull" , "boo" , null , BasicType.getTVoid() , -1, false);
def(_ifnonnull , "ifnonnull" , "boo" , null , BasicType.getTVoid() , -1, false);
def(_goto_w , "goto_w" , "boooo", null , BasicType.getTVoid() , 0, false);
@@ -646,38 +649,44 @@ public class Bytecodes {
// JVM bytecodes
// bytecode bytecode name format wide f. result tp stk traps std code
def(_fast_agetfield , "fast_agetfield" , "bjj" , null , BasicType.getTObject() , 0, true , _getfield );
def(_fast_bgetfield , "fast_bgetfield" , "bjj" , null , BasicType.getTInt() , 0, true , _getfield );
def(_fast_cgetfield , "fast_cgetfield" , "bjj" , null , BasicType.getTChar() , 0, true , _getfield );
def(_fast_dgetfield , "fast_dgetfield" , "bjj" , null , BasicType.getTDouble() , 0, true , _getfield );
def(_fast_fgetfield , "fast_fgetfield" , "bjj" , null , BasicType.getTFloat() , 0, true , _getfield );
def(_fast_igetfield , "fast_igetfield" , "bjj" , null , BasicType.getTInt() , 0, true , _getfield );
def(_fast_lgetfield , "fast_lgetfield" , "bjj" , null , BasicType.getTLong() , 0, true , _getfield );
def(_fast_sgetfield , "fast_sgetfield" , "bjj" , null , BasicType.getTShort() , 0, true , _getfield );
def(_fast_agetfield , "fast_agetfield" , "bJJ" , null , BasicType.getTObject() , 0, true , _getfield );
def(_fast_bgetfield , "fast_bgetfield" , "bJJ" , null , BasicType.getTInt() , 0, true , _getfield );
def(_fast_cgetfield , "fast_cgetfield" , "bJJ" , null , BasicType.getTChar() , 0, true , _getfield );
def(_fast_dgetfield , "fast_dgetfield" , "bJJ" , null , BasicType.getTDouble() , 0, true , _getfield );
def(_fast_fgetfield , "fast_fgetfield" , "bJJ" , null , BasicType.getTFloat() , 0, true , _getfield );
def(_fast_igetfield , "fast_igetfield" , "bJJ" , null , BasicType.getTInt() , 0, true , _getfield );
def(_fast_lgetfield , "fast_lgetfield" , "bJJ" , null , BasicType.getTLong() , 0, true , _getfield );
def(_fast_sgetfield , "fast_sgetfield" , "bJJ" , null , BasicType.getTShort() , 0, true , _getfield );
def(_fast_aputfield , "fast_aputfield" , "bjj" , null , BasicType.getTObject() , 0, true , _putfield );
def(_fast_bputfield , "fast_bputfield" , "bjj" , null , BasicType.getTInt() , 0, true , _putfield );
def(_fast_cputfield , "fast_cputfield" , "bjj" , null , BasicType.getTChar() , 0, true , _putfield );
def(_fast_dputfield , "fast_dputfield" , "bjj" , null , BasicType.getTDouble() , 0, true , _putfield );
def(_fast_fputfield , "fast_fputfield" , "bjj" , null , BasicType.getTFloat() , 0, true , _putfield );
def(_fast_iputfield , "fast_iputfield" , "bjj" , null , BasicType.getTInt() , 0, true , _putfield );
def(_fast_lputfield , "fast_lputfield" , "bjj" , null , BasicType.getTLong() , 0, true , _putfield );
def(_fast_sputfield , "fast_sputfield" , "bjj" , null , BasicType.getTShort() , 0, true , _putfield );
def(_fast_aputfield , "fast_aputfield" , "bJJ" , null , BasicType.getTObject() , 0, true , _putfield );
def(_fast_bputfield , "fast_bputfield" , "bJJ" , null , BasicType.getTInt() , 0, true , _putfield );
def(_fast_cputfield , "fast_cputfield" , "bJJ" , null , BasicType.getTChar() , 0, true , _putfield );
def(_fast_dputfield , "fast_dputfield" , "bJJ" , null , BasicType.getTDouble() , 0, true , _putfield );
def(_fast_fputfield , "fast_fputfield" , "bJJ" , null , BasicType.getTFloat() , 0, true , _putfield );
def(_fast_iputfield , "fast_iputfield" , "bJJ" , null , BasicType.getTInt() , 0, true , _putfield );
def(_fast_lputfield , "fast_lputfield" , "bJJ" , null , BasicType.getTLong() , 0, true , _putfield );
def(_fast_sputfield , "fast_sputfield" , "bJJ" , null , BasicType.getTShort() , 0, true , _putfield );
def(_fast_aload_0 , "fast_aload_0" , "b" , null , BasicType.getTObject() , 1, true , _aload_0 );
def(_fast_iaccess_0 , "fast_iaccess_0" , "b_jj" , null , BasicType.getTInt() , 1, true , _aload_0 );
def(_fast_aaccess_0 , "fast_aaccess_0" , "b_jj" , null , BasicType.getTObject() , 1, true , _aload_0 );
def(_fast_faccess_0 , "fast_faccess_0" , "b_jj" , null , BasicType.getTObject() , 1, true , _aload_0 );
def(_fast_iaccess_0 , "fast_iaccess_0" , "b_JJ" , null , BasicType.getTInt() , 1, true , _aload_0 );
def(_fast_aaccess_0 , "fast_aaccess_0" , "b_JJ" , null , BasicType.getTObject() , 1, true , _aload_0 );
def(_fast_faccess_0 , "fast_faccess_0" , "b_JJ" , null , BasicType.getTObject() , 1, true , _aload_0 );
def(_fast_iload , "fast_iload" , "bi" , null , BasicType.getTInt() , 1, false, _iload);
def(_fast_iload2 , "fast_iload2" , "bi_i" , null , BasicType.getTInt() , 2, false, _iload);
def(_fast_icaload , "fast_icaload" , "bi_" , null , BasicType.getTInt() , 0, false, _iload);
// Faster method invocation.
def(_fast_invokevfinal , "fast_invokevfinal" , "bjj" , null , BasicType.getTIllegal(), -1, true, _invokevirtual);
def(_fast_invokevfinal , "fast_invokevfinal" , "bJJ" , null , BasicType.getTIllegal(), -1, true, _invokevirtual);
def(_fast_linearswitch , "fast_linearswitch" , "" , null , BasicType.getTVoid() , -1, false, _lookupswitch );
def(_fast_binaryswitch , "fast_binaryswitch" , "" , null , BasicType.getTVoid() , -1, false, _lookupswitch );
def(_return_register_finalizer, "return_register_finalizer", "b" , null , BasicType.getTVoid() , 0, true, _return );
def(_fast_aldc , "fast_aldc" , "bj" , null , BasicType.getTObject(), 1, true, _ldc );
def(_fast_aldc_w , "fast_aldc_w" , "bJJ" , null , BasicType.getTObject(), 1, true, _ldc_w );
def(_shouldnotreachhere , "_shouldnotreachhere" , "b" , null , BasicType.getTVoid() , 0, false);
if (Assert.ASSERTS_ENABLED) {

View File

@@ -73,18 +73,11 @@ public class CompactibleFreeListSpace extends CompactibleSpace {
public CompactibleFreeListSpace(Address addr) {
super(addr);
if ( VM.getVM().isLP64() ) {
heapWordSize = 8;
IndexSetStart = 1;
IndexSetStride = 1;
}
else {
heapWordSize = 4;
IndexSetStart = 2;
IndexSetStride = 2;
}
IndexSetSize = 257;
VM vm = VM.getVM();
heapWordSize = vm.getHeapWordSize();
IndexSetStart = vm.getMinObjAlignmentInBytes() / heapWordSize;
IndexSetStride = IndexSetStart;
IndexSetSize = 257;
}
// Accessing block offset table

View File

@@ -152,7 +152,7 @@ public class ConstantPool extends Oop implements ClassConstants {
return res;
}
public int getNameAndTypeAt(int which) {
public int[] getNameAndTypeAt(int which) {
if (Assert.ASSERTS_ENABLED) {
Assert.that(getTagAt(which).isNameAndType(), "Corrupted constant pool");
}
@@ -160,18 +160,16 @@ public class ConstantPool extends Oop implements ClassConstants {
if (DEBUG) {
System.err.println("ConstantPool.getNameAndTypeAt(" + which + "): result = " + i);
}
return i;
return new int[] { extractLowShortFromInt(i), extractHighShortFromInt(i) };
}
public Symbol getNameRefAt(int which) {
int refIndex = getNameAndTypeAt(getNameAndTypeRefIndexAt(which));
int nameIndex = extractLowShortFromInt(refIndex);
int nameIndex = getNameAndTypeAt(getNameAndTypeRefIndexAt(which))[0];
return getSymbolAt(nameIndex);
}
public Symbol getSignatureRefAt(int which) {
int refIndex = getNameAndTypeAt(getNameAndTypeRefIndexAt(which));
int sigIndex = extractHighShortFromInt(refIndex);
int sigIndex = getNameAndTypeAt(getNameAndTypeRefIndexAt(which))[1];
return getSymbolAt(sigIndex);
}
@@ -220,11 +218,11 @@ public class ConstantPool extends Oop implements ClassConstants {
/** Lookup for entries consisting of (name_index, signature_index) */
public int getNameRefIndexAt(int index) {
int refIndex = getNameAndTypeAt(index);
int[] refIndex = getNameAndTypeAt(index);
if (DEBUG) {
System.err.println("ConstantPool.getNameRefIndexAt(" + index + "): refIndex = " + refIndex);
System.err.println("ConstantPool.getNameRefIndexAt(" + index + "): refIndex = " + refIndex[0]+"/"+refIndex[1]);
}
int i = extractLowShortFromInt(refIndex);
int i = refIndex[0];
if (DEBUG) {
System.err.println("ConstantPool.getNameRefIndexAt(" + index + "): result = " + i);
}
@@ -233,17 +231,53 @@ public class ConstantPool extends Oop implements ClassConstants {
/** Lookup for entries consisting of (name_index, signature_index) */
public int getSignatureRefIndexAt(int index) {
int refIndex = getNameAndTypeAt(index);
int[] refIndex = getNameAndTypeAt(index);
if (DEBUG) {
System.err.println("ConstantPool.getSignatureRefIndexAt(" + index + "): refIndex = " + refIndex);
System.err.println("ConstantPool.getSignatureRefIndexAt(" + index + "): refIndex = " + refIndex[0]+"/"+refIndex[1]);
}
int i = extractHighShortFromInt(refIndex);
int i = refIndex[1];
if (DEBUG) {
System.err.println("ConstantPool.getSignatureRefIndexAt(" + index + "): result = " + i);
}
return i;
}
/** Lookup for MethodHandle entries. */
public int getMethodHandleIndexAt(int i) {
if (Assert.ASSERTS_ENABLED) {
Assert.that(getTagAt(i).isMethodHandle(), "Corrupted constant pool");
}
int res = extractHighShortFromInt(getIntAt(i));
if (DEBUG) {
System.err.println("ConstantPool.getMethodHandleIndexAt(" + i + "): result = " + res);
}
return res;
}
/** Lookup for MethodHandle entries. */
public int getMethodHandleRefKindAt(int i) {
if (Assert.ASSERTS_ENABLED) {
Assert.that(getTagAt(i).isMethodHandle(), "Corrupted constant pool");
}
int res = extractLowShortFromInt(getIntAt(i));
if (DEBUG) {
System.err.println("ConstantPool.getMethodHandleRefKindAt(" + i + "): result = " + res);
}
return res;
}
/** Lookup for MethodType entries. */
public int getMethodTypeIndexAt(int i) {
if (Assert.ASSERTS_ENABLED) {
Assert.that(getTagAt(i).isMethodType(), "Corrupted constant pool");
}
int res = getIntAt(i);
if (DEBUG) {
System.err.println("ConstantPool.getMethodHandleTypeAt(" + i + "): result = " + res);
}
return res;
}
final private static String[] nameForTag = new String[] {
};
@@ -261,6 +295,9 @@ public class ConstantPool extends Oop implements ClassConstants {
case JVM_CONSTANT_Methodref: return "JVM_CONSTANT_Methodref";
case JVM_CONSTANT_InterfaceMethodref: return "JVM_CONSTANT_InterfaceMethodref";
case JVM_CONSTANT_NameAndType: return "JVM_CONSTANT_NameAndType";
case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle";
case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType";
case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic";
case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid";
case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass";
case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError";
@@ -317,6 +354,9 @@ public class ConstantPool extends Oop implements ClassConstants {
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_InterfaceMethodref:
case JVM_CONSTANT_NameAndType:
case JVM_CONSTANT_MethodHandle:
case JVM_CONSTANT_MethodType:
case JVM_CONSTANT_InvokeDynamic:
visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true);
break;
}
@@ -467,6 +507,30 @@ public class ConstantPool extends Oop implements ClassConstants {
+ ", type = " + signatureIndex);
break;
}
case JVM_CONSTANT_MethodHandle: {
dos.writeByte(cpConstType);
int value = getIntAt(ci);
short nameIndex = (short) extractLowShortFromInt(value);
short signatureIndex = (short) extractHighShortFromInt(value);
dos.writeShort(nameIndex);
dos.writeShort(signatureIndex);
if (DEBUG) debugMessage("CP[" + ci + "] = N&T name = " + nameIndex
+ ", type = " + signatureIndex);
break;
}
case JVM_CONSTANT_InvokeDynamic: {
dos.writeByte(cpConstType);
int value = getIntAt(ci);
short bootstrapMethodIndex = (short) extractLowShortFromInt(value);
short nameAndTypeIndex = (short) extractHighShortFromInt(value);
dos.writeShort(bootstrapMethodIndex);
dos.writeShort(nameAndTypeIndex);
if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " + bootstrapMethodIndex
+ ", N&T = " + nameAndTypeIndex);
break;
}
default:
throw new InternalError("unknown tag: " + cpConstType);
} // switch
@@ -488,10 +552,12 @@ public class ConstantPool extends Oop implements ClassConstants {
//
private static int extractHighShortFromInt(int val) {
// must stay in sync with constantPoolOopDesc::name_and_type_at_put, method_at_put, etc.
return (val >> 16) & 0xFFFF;
}
private static int extractLowShortFromInt(int val) {
// must stay in sync with constantPoolOopDesc::name_and_type_at_put, method_at_put, etc.
return val & 0xFFFF;
}
}

View File

@@ -78,6 +78,31 @@ public class ConstantPoolCache extends Oop {
return new ConstantPoolCacheEntry(this, i);
}
public static boolean isSecondaryIndex(int i) { return (i < 0); }
public static int decodeSecondaryIndex(int i) { return isSecondaryIndex(i) ? ~i : i; }
public static int encodeSecondaryIndex(int i) { return !isSecondaryIndex(i) ? ~i : i; }
// secondary entries hold invokedynamic call site bindings
public ConstantPoolCacheEntry getSecondaryEntryAt(int i) {
ConstantPoolCacheEntry e = new ConstantPoolCacheEntry(this, decodeSecondaryIndex(i));
if (Assert.ASSERTS_ENABLED) {
Assert.that(e.isSecondaryEntry(), "must be a secondary entry");
}
return e;
}
public ConstantPoolCacheEntry getMainEntryAt(int i) {
if (isSecondaryIndex(i)) {
// run through an extra level of indirection:
i = getSecondaryEntryAt(i).getMainEntryIndex();
}
ConstantPoolCacheEntry e = new ConstantPoolCacheEntry(this, i);
if (Assert.ASSERTS_ENABLED) {
Assert.that(!e.isSecondaryEntry(), "must not be a secondary entry");
}
return e;
}
public int getIntAt(int entry, int fld) {
//alignObjectSize ?
long offset = baseOffset + /*alignObjectSize*/entry * elementSize + fld* getHeap().getIntSize();

View File

@@ -28,6 +28,7 @@ import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.types.*;
import sun.jvm.hotspot.utilities.*;
public class ConstantPoolCacheEntry {
private static long size;
@@ -67,9 +68,23 @@ public class ConstantPoolCacheEntry {
}
public int getConstantPoolIndex() {
if (Assert.ASSERTS_ENABLED) {
Assert.that(!isSecondaryEntry(), "must not be a secondary CP entry");
}
return (int) (getIndices() & 0xFFFF);
}
public boolean isSecondaryEntry() {
return (getIndices() & 0xFFFF) == 0;
}
public int getMainEntryIndex() {
if (Assert.ASSERTS_ENABLED) {
Assert.that(isSecondaryEntry(), "must be a secondary CP entry");
}
return (int) (getIndices() >>> 16);
}
private long getIndices() {
return cp.getHandle().getCIntegerAt(indices.getOffset() + offset, indices.getSize(), indices.isUnsigned());
}

View File

@@ -566,6 +566,7 @@ public class GenerateOopMap {
case Bytecodes._invokespecial:
case Bytecodes._invokestatic:
case Bytecodes._invokeinterface:
case Bytecodes._invokedynamic:
// FIXME: print signature of referenced method (need more
// accessors in ConstantPool and ConstantPoolCache)
int idx = currentBC.getIndexBig();
@@ -605,6 +606,7 @@ public class GenerateOopMap {
case Bytecodes._invokespecial:
case Bytecodes._invokestatic:
case Bytecodes._invokeinterface:
case Bytecodes._invokedynamic:
// FIXME: print signature of referenced method (need more
// accessors in ConstantPool and ConstantPoolCache)
int idx = currentBC.getIndexBig();
@@ -1134,6 +1136,7 @@ public class GenerateOopMap {
case Bytecodes._invokespecial:
case Bytecodes._invokestatic:
case Bytecodes._invokeinterface:
case Bytecodes._invokedynamic:
_itr_send = itr;
_report_result_for_send = true;
break;
@@ -1379,6 +1382,7 @@ public class GenerateOopMap {
case Bytecodes._invokevirtual:
case Bytecodes._invokespecial: doMethod(false, false, itr.getIndexBig(), itr.bci()); break;
case Bytecodes._invokestatic: doMethod(true, false, itr.getIndexBig(), itr.bci()); break;
case Bytecodes._invokedynamic: doMethod(false, true, itr.getIndexBig(), itr.bci()); break;
case Bytecodes._invokeinterface: doMethod(false, true, itr.getIndexBig(), itr.bci()); break;
case Bytecodes._newarray:
case Bytecodes._anewarray: ppNewRef(vCTS, itr.bci()); break;
@@ -1725,7 +1729,7 @@ public class GenerateOopMap {
void doMethod (boolean is_static, boolean is_interface, int idx, int bci) {
// Dig up signature for field in constant pool
ConstantPool cp = _method.getConstants();
int nameAndTypeIdx = cp.getNameAndTypeRefIndexAt(idx);
int nameAndTypeIdx = cp.getTagAt(idx).isNameAndType() ? idx : cp.getNameAndTypeRefIndexAt(idx);
int signatureIdx = cp.getSignatureRefIndexAt(nameAndTypeIdx);
Symbol signature = cp.getSymbolAt(signatureIdx);

View File

@@ -128,7 +128,7 @@ public class Oop {
// Align the object size.
public static long alignObjectSize(long size) {
return VM.getVM().alignUp(size, VM.getVM().getMinObjAlignment());
return VM.getVM().alignUp(size, VM.getVM().getMinObjAlignmentInBytes());
}
// All vm's align longs, so pad out certain offsets.

View File

@@ -40,6 +40,20 @@ public interface ClassConstants
public static final int JVM_CONSTANT_Methodref = 10;
public static final int JVM_CONSTANT_InterfaceMethodref = 11;
public static final int JVM_CONSTANT_NameAndType = 12;
public static final int JVM_CONSTANT_MethodHandle = 15;
public static final int JVM_CONSTANT_MethodType = 16;
public static final int JVM_CONSTANT_InvokeDynamic = 17;
// JVM_CONSTANT_MethodHandle subtypes
public static final int JVM_REF_getField = 1;
public static final int JVM_REF_getStatic = 2;
public static final int JVM_REF_putField = 3;
public static final int JVM_REF_putStatic = 4;
public static final int JVM_REF_invokeVirtual = 5;
public static final int JVM_REF_invokeStatic = 6;
public static final int JVM_REF_invokeSpecial = 7;
public static final int JVM_REF_newInvokeSpecial = 8;
public static final int JVM_REF_invokeInterface = 9;
// HotSpot specific constant pool constant types.

View File

@@ -93,6 +93,7 @@ public class VM {
/** alignment constants */
private boolean isLP64;
private int bytesPerLong;
private int objectAlignmentInBytes;
private int minObjAlignmentInBytes;
private int logMinObjAlignmentInBytes;
private int heapWordSize;
@@ -313,9 +314,6 @@ public class VM {
isLP64 = debugger.getMachineDescription().isLP64();
}
bytesPerLong = db.lookupIntConstant("BytesPerLong").intValue();
minObjAlignmentInBytes = db.lookupIntConstant("MinObjAlignmentInBytes").intValue();
// minObjAlignment = db.lookupIntConstant("MinObjAlignment").intValue();
logMinObjAlignmentInBytes = db.lookupIntConstant("LogMinObjAlignmentInBytes").intValue();
heapWordSize = db.lookupIntConstant("HeapWordSize").intValue();
oopSize = db.lookupIntConstant("oopSize").intValue();
@@ -323,6 +321,15 @@ public class VM {
uintxType = db.lookupType("uintx");
boolType = (CIntegerType) db.lookupType("bool");
minObjAlignmentInBytes = getObjectAlignmentInBytes();
if (minObjAlignmentInBytes == 8) {
logMinObjAlignmentInBytes = 3;
} else if (minObjAlignmentInBytes == 16) {
logMinObjAlignmentInBytes = 4;
} else {
throw new RuntimeException("Object alignment " + minObjAlignmentInBytes + " not yet supported");
}
if (isCompressedOopsEnabled()) {
// Size info for oops within java objects is fixed
heapOopSize = (int)getIntSize();
@@ -492,10 +499,6 @@ public class VM {
}
/** Get minimum object alignment in bytes. */
public int getMinObjAlignment() {
return minObjAlignmentInBytes;
}
public int getMinObjAlignmentInBytes() {
return minObjAlignmentInBytes;
}
@@ -754,6 +757,14 @@ public class VM {
return compressedOopsEnabled.booleanValue();
}
public int getObjectAlignmentInBytes() {
if (objectAlignmentInBytes == 0) {
Flag flag = getCommandLineFlag("ObjectAlignmentInBytes");
objectAlignmentInBytes = (flag == null) ? 8 : (int)flag.getIntx();
}
return objectAlignmentInBytes;
}
// returns null, if not available.
public Flag[] getCommandLineFlags() {
if (commandLineFlags == null) {

View File

@@ -54,14 +54,34 @@ public class ByteCodeRewriter
}
protected short getConstantPoolIndex(int bci) {
protected short getConstantPoolIndex(int rawcode, int bci) {
// get ConstantPool index from ConstantPoolCacheIndex at given bci
short cpCacheIndex = method.getBytecodeShortArg(bci);
String fmt = Bytecodes.format(rawcode);
int cpCacheIndex;
switch (fmt.length()) {
case 2: cpCacheIndex = method.getBytecodeByteArg(bci); break;
case 3: cpCacheIndex = method.getBytecodeShortArg(bci); break;
case 5:
if (fmt.indexOf("__") >= 0)
cpCacheIndex = method.getBytecodeShortArg(bci);
else
cpCacheIndex = method.getBytecodeIntArg(bci);
break;
default: throw new IllegalArgumentException();
}
if (cpCache == null) {
return cpCacheIndex;
} else {
return (short) cpCacheIndex;
} else if (fmt.indexOf("JJJJ") >= 0) {
// change byte-ordering and go via secondary cache entry
return (short) cpCache.getMainEntryAt(bytes.swapInt(cpCacheIndex)).getConstantPoolIndex();
} else if (fmt.indexOf("JJ") >= 0) {
// change byte-ordering and go via cache
return (short) cpCache.getEntryAt((int) (0xFFFF & bytes.swapShort(cpCacheIndex))).getConstantPoolIndex();
return (short) cpCache.getEntryAt((int) (0xFFFF & bytes.swapShort((short)cpCacheIndex))).getConstantPoolIndex();
} else if (fmt.indexOf("j") >= 0) {
// go via cache
return (short) cpCache.getEntryAt((int) (0xFF & cpCacheIndex)).getConstantPoolIndex();
} else {
return (short) cpCacheIndex;
}
}
@@ -100,10 +120,31 @@ public class ByteCodeRewriter
case Bytecodes._invokespecial:
case Bytecodes._invokestatic:
case Bytecodes._invokeinterface: {
cpoolIndex = getConstantPoolIndex(bci + 1);
cpoolIndex = getConstantPoolIndex(hotspotcode, bci + 1);
writeShort(code, bci + 1, cpoolIndex);
break;
}
case Bytecodes._invokedynamic:
cpoolIndex = getConstantPoolIndex(hotspotcode, bci + 1);
writeShort(code, bci + 1, cpoolIndex);
writeShort(code, bci + 3, (short)0); // clear out trailing bytes
break;
case Bytecodes._ldc_w:
if (hotspotcode != bytecode) {
// fast_aldc_w puts constant in CP cache
cpoolIndex = getConstantPoolIndex(hotspotcode, bci + 1);
writeShort(code, bci + 1, cpoolIndex);
}
break;
case Bytecodes._ldc:
if (hotspotcode != bytecode) {
// fast_aldc puts constant in CP cache
cpoolIndex = getConstantPoolIndex(hotspotcode, bci + 1);
code[bci + 1] = (byte)(cpoolIndex);
}
break;
}
len = Bytecodes.lengthFor(bytecode);

View File

@@ -61,10 +61,12 @@ public class ClassWriter implements /* imports */ ClassConstants
protected short _signatureIndex;
protected static int extractHighShortFromInt(int val) {
// must stay in sync with constantPoolOopDesc::name_and_type_at_put, method_at_put, etc.
return (val >> 16) & 0xFFFF;
}
protected static int extractLowShortFromInt(int val) {
// must stay in sync with constantPoolOopDesc::name_and_type_at_put, method_at_put, etc.
return val & 0xFFFF;
}
@@ -297,6 +299,37 @@ public class ClassWriter implements /* imports */ ClassConstants
+ ", type = " + signatureIndex);
break;
}
case JVM_CONSTANT_MethodHandle: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);
short bootstrapMethodIndex = (short) extractLowShortFromInt(value);
short nameAndTypeIndex = (short) extractHighShortFromInt(value);
dos.writeShort(bootstrapMethodIndex);
dos.writeShort(nameAndTypeIndex);
if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " +
bootstrapMethodIndex + ", N&T = " + nameAndTypeIndex);
break;
}
case JVM_CONSTANT_MethodType: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);
short refIndex = (short) value;
dos.writeShort(refIndex);
if (DEBUG) debugMessage("CP[" + ci + "] = MT index = " + refIndex);
break;
}
case JVM_CONSTANT_InvokeDynamic: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);
short refIndex = (short) value;
dos.writeShort(refIndex);
if (DEBUG) debugMessage("CP[" + ci + "] = MT index = " + refIndex);
break;
}
default:
throw new InternalError("Unknown tag: " + cpConstType);
} // switch

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 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
@@ -190,11 +190,11 @@ public class FindInCodeCachePanel extends SAPanel {
private void reportResult(StringBuffer result, CodeBlob blob) {
result.append("<a href='blob:");
result.append(blob.instructionsBegin().toString());
result.append(blob.contentBegin().toString());
result.append("'>");
result.append(blob.getName());
result.append("@");
result.append(blob.instructionsBegin());
result.append(blob.contentBegin());
result.append("</a><br>");
}

View File

@@ -572,6 +572,21 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
buf.cell(Integer.toString(cpool.getIntAt(index)));
break;
case JVM_CONSTANT_MethodHandle:
buf.cell("JVM_CONSTANT_MethodHandle");
buf.cell(genLowHighShort(cpool.getIntAt(index)));
break;
case JVM_CONSTANT_MethodType:
buf.cell("JVM_CONSTANT_MethodType");
buf.cell(Integer.toString(cpool.getIntAt(index)));
break;
case JVM_CONSTANT_InvokeDynamic:
buf.cell("JVM_CONSTANT_InvokeDynamic");
buf.cell(genLowHighShort(cpool.getIntAt(index)));
break;
default:
throw new InternalError("unknown tag: " + ctag);
}
@@ -1400,13 +1415,13 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
buf.append(genMethodAndKlassLink(nmethod.getMethod()));
buf.h3("Compiled Code");
sun.jvm.hotspot.debugger.Address codeBegin = nmethod.codeBegin();
sun.jvm.hotspot.debugger.Address codeEnd = nmethod.codeEnd();
final int codeSize = (int)codeEnd.minus(codeBegin);
final long startPc = addressToLong(codeBegin);
final byte[] code = new byte[codeSize];
sun.jvm.hotspot.debugger.Address instsBegin = nmethod.instsBegin();
sun.jvm.hotspot.debugger.Address instsEnd = nmethod.instsEnd();
final int instsSize = nmethod.instsSize();
final long startPc = addressToLong(instsBegin);
final byte[] code = new byte[instsSize];
for (int i=0; i < code.length; i++)
code[i] = codeBegin.getJByteAt(i);
code[i] = instsBegin.getJByteAt(i);
final long verifiedEntryPoint = addressToLong(nmethod.getVerifiedEntryPoint());
final long entryPoint = addressToLong(nmethod.getEntryPoint());
@@ -1484,8 +1499,8 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
buf.h3("CodeBlob");
buf.h3("Compiled Code");
final sun.jvm.hotspot.debugger.Address codeBegin = blob.instructionsBegin();
final int codeSize = blob.getInstructionsSize();
final sun.jvm.hotspot.debugger.Address codeBegin = blob.codeBegin();
final int codeSize = blob.getCodeSize();
final long startPc = addressToLong(codeBegin);
final byte[] code = new byte[codeSize];
for (int i=0; i < code.length; i++)

View File

@@ -38,12 +38,27 @@ public class ConstantTag {
private static int JVM_CONSTANT_Methodref = 10;
private static int JVM_CONSTANT_InterfaceMethodref = 11;
private static int JVM_CONSTANT_NameAndType = 12;
private static int JVM_CONSTANT_MethodHandle = 15; // JSR 292
private static int JVM_CONSTANT_MethodType = 16; // JSR 292
private static int JVM_CONSTANT_InvokeDynamic = 17; // JSR 292
private static int JVM_CONSTANT_Invalid = 0; // For bad value initialization
private static int JVM_CONSTANT_UnresolvedClass = 100; // Temporary tag until actual use
private static int JVM_CONSTANT_ClassIndex = 101; // Temporary tag while constructing constant pool
private static int JVM_CONSTANT_UnresolvedString = 102; // Temporary tag until actual use
private static int JVM_CONSTANT_StringIndex = 103; // Temporary tag while constructing constant pool
private static int JVM_CONSTANT_UnresolvedClassInError = 104; // Resolution failed
private static int JVM_CONSTANT_Object = 105; // Required for BoundMethodHandle arguments.
// JVM_CONSTANT_MethodHandle subtypes //FIXME: connect these to data structure
private static int JVM_REF_getField = 1;
private static int JVM_REF_getStatic = 2;
private static int JVM_REF_putField = 3;
private static int JVM_REF_putStatic = 4;
private static int JVM_REF_invokeVirtual = 5;
private static int JVM_REF_invokeStatic = 6;
private static int JVM_REF_invokeSpecial = 7;
private static int JVM_REF_newInvokeSpecial = 8;
private static int JVM_REF_invokeInterface = 9;
private byte tag;
@@ -62,6 +77,9 @@ public class ConstantTag {
public boolean isDouble() { return tag == JVM_CONSTANT_Double; }
public boolean isNameAndType() { return tag == JVM_CONSTANT_NameAndType; }
public boolean isUtf8() { return tag == JVM_CONSTANT_Utf8; }
public boolean isMethodHandle() { return tag == JVM_CONSTANT_MethodHandle; }
public boolean isMethodType() { return tag == JVM_CONSTANT_MethodType; }
public boolean isInvokeDynamic() { return tag == JVM_CONSTANT_InvokeDynamic; }
public boolean isInvalid() { return tag == JVM_CONSTANT_Invalid; }
@@ -73,6 +91,8 @@ public class ConstantTag {
public boolean isUnresolvedString() { return tag == JVM_CONSTANT_UnresolvedString; }
public boolean isStringIndex() { return tag == JVM_CONSTANT_StringIndex; }
public boolean isObject() { return tag == JVM_CONSTANT_Object; }
public boolean isKlassReference() { return isKlassIndex() || isUnresolvedKlass(); }
public boolean isFieldOrMethod() { return isField() || isMethod() || isInterfaceMethod(); }
public boolean isSymbol() { return isUtf8(); }

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -96,10 +96,15 @@ public class PointerFinder {
if (Assert.ASSERTS_ENABLED) {
Assert.that(loc.blob != null, "Should have found CodeBlob");
}
loc.inBlobInstructions = loc.blob.instructionsContains(a);
loc.inBlobData = loc.blob.dataContains(a);
loc.inBlobOops = loc.blob.oopsContains(a);
loc.inBlobUnknownLocation = (!(loc.inBlobInstructions ||
loc.inBlobCode = loc.blob.codeContains(a);
loc.inBlobData = loc.blob.dataContains(a);
if (loc.blob.isNMethod()) {
NMethod nm = (NMethod) loc.blob;
loc.inBlobOops = nm.oopsContains(a);
}
loc.inBlobUnknownLocation = (!(loc.inBlobCode ||
loc.inBlobData ||
loc.inBlobOops));
return loc;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -65,7 +65,7 @@ public class PointerLocation {
InterpreterCodelet interpreterCodelet;
CodeBlob blob;
// FIXME: add more detail about CodeBlob
boolean inBlobInstructions;
boolean inBlobCode;
boolean inBlobData;
boolean inBlobOops;
boolean inBlobUnknownLocation;
@@ -142,8 +142,8 @@ public class PointerLocation {
return blob;
}
public boolean isInBlobInstructions() {
return inBlobInstructions;
public boolean isInBlobCode() {
return inBlobCode;
}
public boolean isInBlobData() {
@@ -233,8 +233,8 @@ public class PointerLocation {
} else if (isInCodeCache()) {
CodeBlob b = getCodeBlob();
tty.print("In ");
if (isInBlobInstructions()) {
tty.print("instructions");
if (isInBlobCode()) {
tty.print("code");
} else if (isInBlobData()) {
tty.print("data");
} else if (isInBlobOops()) {

View File

@@ -825,6 +825,8 @@ function jdis(method) {
}
writeln("");
disAsm.decode(new sapkg.interpreter.BytecodeVisitor() {
prologue: function(method) { },
epilogue: function() { },
visit: function(bytecode) {
if (hasLines) {
var line = method.getLineNumberFromBCI(bci);

View File

@@ -85,14 +85,21 @@ C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1
C2_VM_TARGETS=product fastdebug optimized jvmg
KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel
ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark
# JDK directory list
JDK_DIRS=bin include jre lib demo
all: all_product all_fastdebug
ifndef BUILD_CLIENT_ONLY
all_product: product product1 productkernel docs export_product
all_fastdebug: fastdebug fastdebug1 fastdebugkernel docs export_fastdebug
all_debug: jvmg jvmg1 jvmgkernel docs export_debug
else
all_product: product1 docs export_product
all_fastdebug: fastdebug1 docs export_fastdebug
all_debug: jvmg1 docs export_debug
endif
all_optimized: optimized optimized1 optimizedkernel docs export_optimized
allzero: all_productzero all_fastdebugzero
@@ -101,6 +108,12 @@ all_fastdebugzero: fastdebugzero docs export_fastdebug
all_debugzero: jvmgzero docs export_debug
all_optimizedzero: optimizedzero docs export_optimized
allshark: all_productshark all_fastdebugshark
all_productshark: productshark docs export_product
all_fastdebugshark: fastdebugshark docs export_fastdebug
all_debugshark: jvmgshark docs export_debug
all_optimizedshark: optimizedshark docs export_optimized
# Do everything
world: all create_jdk
@@ -131,6 +144,10 @@ $(ZERO_VM_TARGETS):
$(CD) $(GAMMADIR)/make; \
$(MAKE) VM_TARGET=$@ generic_buildzero $(ALT_OUT)
$(SHARK_VM_TARGETS):
$(CD) $(GAMMADIR)/make; \
$(MAKE) VM_TARGET=$@ generic_buildshark $(ALT_OUT)
# Build compiler1 (client) rule, different for platforms
generic_build1:
$(MKDIR) -p $(OUTPUTDIR)
@@ -197,6 +214,12 @@ generic_buildzero:
$(MAKE) -f $(ABS_OS_MAKEFILE) \
$(MAKE_ARGS) $(VM_TARGET)
generic_buildshark:
$(MKDIR) -p $(OUTPUTDIR)
$(CD) $(OUTPUTDIR); \
$(MAKE) -f $(ABS_OS_MAKEFILE) \
$(MAKE_ARGS) $(VM_TARGET)
# Export file rule
generic_export: $(EXPORT_LIST)
export_product:
@@ -228,15 +251,22 @@ C1_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler1
C2_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler2
KERNEL_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_kernel
ZERO_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_zero
SHARK_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_shark
C1_DIR=$(C1_BASE_DIR)/$(VM_SUBDIR)
C2_DIR=$(C2_BASE_DIR)/$(VM_SUBDIR)
KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR)
ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR)
SHARK_DIR=$(SHARK_BASE_DIR)/$(VM_SUBDIR)
# Misc files and generated files need to come from C1 or C2 area
ifeq ($(ZERO_BUILD), true)
ifeq ($(SHARK_BUILD), true)
MISC_DIR=$(SHARK_DIR)
GEN_DIR=$(SHARK_BASE_DIR)/generated
else
MISC_DIR=$(ZERO_DIR)
GEN_DIR=$(ZERO_BASE_DIR)/generated
endif
else
ifeq ($(ARCH_DATA_MODEL), 32)
MISC_DIR=$(C1_DIR)
@@ -290,11 +320,20 @@ endif
# Shared Library
ifneq ($(OSNAME),windows)
ifeq ($(ZERO_BUILD), true)
ifeq ($(SHARK_BUILD), true)
$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(SHARK_DIR)/%.so
$(install-file)
$(EXPORT_SERVER_DIR)/%.so: $(SHARK_DIR)/%.so
$(install-file)
else
$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(ZERO_DIR)/%.so
$(install-file)
$(EXPORT_SERVER_DIR)/%.so: $(ZERO_DIR)/%.so
$(install-file)
endif
else
$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(C1_DIR)/%.so
$(install-file)
$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(C2_DIR)/%.so
$(install-file)
$(EXPORT_CLIENT_DIR)/%.so: $(C1_DIR)/%.so
@@ -348,6 +387,7 @@ clean_build:
$(RM) -r $(C2_DIR)
$(RM) -r $(KERNEL_DIR)
$(RM) -r $(ZERO_DIR)
$(RM) -r $(SHARK_DIR)
clean_export:
$(RM) -r $(EXPORT_PATH)
clean_jdk:

View File

@@ -192,13 +192,16 @@ ifneq ($(OSNAME),windows)
# Use uname output for SRCARCH, but deal with platform differences. If ARCH
# is not explicitly listed below, it is treated as x86.
SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 zero,$(ARCH)))
SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc zero,$(ARCH)))
ARCH/ = x86
ARCH/sparc = sparc
ARCH/sparc64= sparc
ARCH/ia64 = ia64
ARCH/amd64 = x86
ARCH/x86_64 = x86
ARCH/ppc64 = ppc
ARCH/ppc = ppc
ARCH/arm = arm
ARCH/zero = zero
# BUILDARCH is usually the same as SRCARCH, except for sparcv9
@@ -223,6 +226,9 @@ ifneq ($(OSNAME),windows)
LIBARCH/sparc = sparc
LIBARCH/sparcv9 = sparcv9
LIBARCH/ia64 = ia64
LIBARCH/ppc64 = ppc
LIBARCH/ppc = ppc
LIBARCH/arm = arm
LIBARCH/zero = $(ZERO_LIBARCH)
LP64_ARCH = sparcv9 amd64 ia64 zero

View File

@@ -33,9 +33,9 @@
# Don't put quotes (fail windows build).
HOTSPOT_VM_COPYRIGHT=Copyright 2010
HS_MAJOR_VER=19
HS_MAJOR_VER=20
HS_MINOR_VER=0
HS_BUILD_NUMBER=02
HS_BUILD_NUMBER=01
JDK_MAJOR_VER=1
JDK_MINOR_VER=7

View File

@@ -47,6 +47,8 @@ jprt.sync.push=false
# Define the Solaris platforms we want for the various releases
jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10
jprt.my.solaris.sparc.jdk7b107=solaris_sparc_5.10
jprt.my.solaris.sparc.jdk7temp=solaris_sparc_5.10
jprt.my.solaris.sparc.jdk6=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6perf=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8
@@ -56,6 +58,8 @@ jprt.my.solaris.sparc.jdk6u20=solaris_sparc_5.8
jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}}
jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10
jprt.my.solaris.sparcv9.jdk7b107=solaris_sparcv9_5.10
jprt.my.solaris.sparcv9.jdk7temp=solaris_sparcv9_5.10
jprt.my.solaris.sparcv9.jdk6=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6perf=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8
@@ -65,6 +69,8 @@ jprt.my.solaris.sparcv9.jdk6u20=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}}
jprt.my.solaris.i586.jdk7=solaris_i586_5.10
jprt.my.solaris.i586.jdk7b107=solaris_i586_5.10
jprt.my.solaris.i586.jdk7temp=solaris_i586_5.10
jprt.my.solaris.i586.jdk6=solaris_i586_5.8
jprt.my.solaris.i586.jdk6perf=solaris_i586_5.8
jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8
@@ -74,6 +80,8 @@ jprt.my.solaris.i586.jdk6u20=solaris_i586_5.8
jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}}
jprt.my.solaris.x64.jdk7=solaris_x64_5.10
jprt.my.solaris.x64.jdk7b107=solaris_x64_5.10
jprt.my.solaris.x64.jdk7temp=solaris_x64_5.10
jprt.my.solaris.x64.jdk6=solaris_x64_5.10
jprt.my.solaris.x64.jdk6perf=solaris_x64_5.10
jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10
@@ -83,6 +91,8 @@ jprt.my.solaris.x64.jdk6u20=solaris_x64_5.10
jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}}
jprt.my.linux.i586.jdk7=linux_i586_2.6
jprt.my.linux.i586.jdk7b107=linux_i586_2.6
jprt.my.linux.i586.jdk7temp=linux_i586_2.6
jprt.my.linux.i586.jdk6=linux_i586_2.4
jprt.my.linux.i586.jdk6perf=linux_i586_2.4
jprt.my.linux.i586.jdk6u10=linux_i586_2.4
@@ -92,6 +102,8 @@ jprt.my.linux.i586.jdk6u20=linux_i586_2.4
jprt.my.linux.i586=${jprt.my.linux.i586.${jprt.tools.default.release}}
jprt.my.linux.x64.jdk7=linux_x64_2.6
jprt.my.linux.x64.jdk7b107=linux_x64_2.6
jprt.my.linux.x64.jdk7temp=linux_x64_2.6
jprt.my.linux.x64.jdk6=linux_x64_2.4
jprt.my.linux.x64.jdk6perf=linux_x64_2.4
jprt.my.linux.x64.jdk6u10=linux_x64_2.4
@@ -100,7 +112,9 @@ jprt.my.linux.x64.jdk6u18=linux_x64_2.4
jprt.my.linux.x64.jdk6u20=linux_x64_2.4
jprt.my.linux.x64=${jprt.my.linux.x64.${jprt.tools.default.release}}
jprt.my.windows.i586.jdk7=windows_i586_5.0
jprt.my.windows.i586.jdk7=windows_i586_5.1
jprt.my.windows.i586.jdk7b107=windows_i586_5.0
jprt.my.windows.i586.jdk7temp=windows_i586_5.0
jprt.my.windows.i586.jdk6=windows_i586_5.0
jprt.my.windows.i586.jdk6perf=windows_i586_5.0
jprt.my.windows.i586.jdk6u10=windows_i586_5.0
@@ -110,6 +124,8 @@ jprt.my.windows.i586.jdk6u20=windows_i586_5.0
jprt.my.windows.i586=${jprt.my.windows.i586.${jprt.tools.default.release}}
jprt.my.windows.x64.jdk7=windows_x64_5.2
jprt.my.windows.x64.jdk7b107=windows_x64_5.2
jprt.my.windows.x64.jdk7temp=windows_x64_5.2
jprt.my.windows.x64.jdk6=windows_x64_5.2
jprt.my.windows.x64.jdk6perf=windows_x64_5.2
jprt.my.windows.x64.jdk6u10=windows_x64_5.2

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
# 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
@@ -19,7 +19,7 @@
# 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.
#
#
#
# This makefile creates a build tree and lights off a build.
@@ -45,13 +45,13 @@
#
# make REMOTE="rsh -l me myotherlinuxbox"
# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
# JDI binding on SA produces two binaries:
# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
# JDI binding on SA produces two binaries:
# 1. sa-jdi.jar - This is build before building libjvm[_g].so
# Please refer to ./makefiles/sa.make
# 2. libsa[_g].so - Native library for SA - This is built after
# libjsig[_g].so (signal interposition library)
# Please refer to ./makefiles/vm.make
# Please refer to ./makefiles/vm.make
# If $(GAMMADIR)/agent dir is not present, SA components are not built.
ifeq ($(GAMMADIR),)
@@ -61,11 +61,9 @@ include $(GAMMADIR)/make/defs.make
endif
include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make
ifndef LP64
ifndef CC_INTERP
FORCE_TIERED=1
endif
endif
ifdef LP64
ifeq ("$(filter $(LP64_ARCH),$(BUILDARCH))","")
@@ -168,6 +166,13 @@ VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH))
# profiledzero zero <os>_<arch>_zero/profiled
# productzero zero <os>_<arch>_zero/product
#
# debugshark shark <os>_<arch>_shark/debug
# fastdebugshark shark <os>_<arch>_shark/fastdebug
# jvmgshark shark <os>_<arch>_shark/jvmg
# optimizedshark shark <os>_<arch>_shark/optimized
# profiledshark shark <os>_<arch>_shark/profiled
# productshark shark <os>_<arch>_shark/product
#
# What you get with each target:
#
# debug* - "thin" libjvm_g - debug info linked into the gamma_g launcher
@@ -191,12 +196,14 @@ SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS))
SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS))
SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS))
SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS))
SUBDIRS_SHARK = $(addprefix $(OSNAME)_$(VARIANTARCH)_shark/,$(TARGETS))
TARGETS_C2 = $(TARGETS)
TARGETS_C1 = $(addsuffix 1,$(TARGETS))
TARGETS_TIERED = $(addsuffix tiered,$(TARGETS))
TARGETS_CORE = $(addsuffix core,$(TARGETS))
TARGETS_ZERO = $(addsuffix zero,$(TARGETS))
TARGETS_SHARK = $(addsuffix shark,$(TARGETS))
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
@@ -213,6 +220,7 @@ all:
@echo " $(TARGETS_C1)"
@echo " $(TARGETS_CORE)"
@echo " $(TARGETS_ZERO)"
@echo " $(TARGETS_SHARK)"
checks: check_os_version check_j2se_version
@@ -266,6 +274,10 @@ $(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero
$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
$(BUILDTREE) VARIANT=zero VARIANTARCH=$(VARIANTARCH)
$(SUBDIRS_SHARK): $(BUILDTREE_MAKE) platform_zero
$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
$(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
@@ -306,11 +318,19 @@ ifdef INSTALL
cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install
endif
$(TARGETS_SHARK): $(SUBDIRS_SHARK)
cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS)
cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && ./test_gamma
ifdef INSTALL
cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) install
endif
# Just build the tree, and nothing else:
tree: $(SUBDIRS_C2)
tree1: $(SUBDIRS_C1)
treecore: $(SUBDIRS_CORE)
treezero: $(SUBDIRS_ZERO)
treeshark: $(SUBDIRS_SHARK)
# Doc target. This is the same for all build options.
# Hence create a docs directory beside ...$(ARCH)_[...]
@@ -327,20 +347,22 @@ core: jvmgcore productcore
zero: jvmgzero productzero
shark: jvmgshark productshark
clean_docs:
rm -rf $(SUBDIR_DOCS)
clean_compiler1 clean_compiler2 clean_core clean_zero:
clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark:
rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@)
clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_docs
clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_shark clean_docs
include $(GAMMADIR)/make/$(OSNAME)/makefiles/cscope.make
#-------------------------------------------------------------------------------
.PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO)
.PHONY: tree tree1 treecore treezero
.PHONY: all compiler1 compiler2 core zero
.PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero docs clean_docs
.PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) $(TARGETS_SHARK)
.PHONY: tree tree1 treecore treezero treeshark
.PHONY: all compiler1 compiler2 core zero shark
.PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark docs clean_docs
.PHONY: checks check_os_version check_j2se_version

View File

@@ -138,7 +138,11 @@ ADLCFLAGS += -q -T
# Normally, debugging is done directly on the ad_<arch>*.cpp files.
# But -g will put #line directives in those files pointing back to <arch>.ad.
# Some builds of gcc 3.2 have a bug that gets tickled by the extra #line directives
# so skip it for 3.2 and ealier.
ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
ADLCFLAGS += -g
endif
ifdef LP64
ADLCFLAGS += -D_LP64

View File

@@ -1,5 +1,12 @@
#!/bin/sh
nm --defined-only $* | awk '
# If we're cross compiling use that path for nm
if [ "$ALT_COMPILER_PATH" != "" ]; then
NM=$ALT_COMPILER_PATH/nm
else
NM=nm
fi
$NM --defined-only $* | awk '
{ if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 ";" }
'

View File

@@ -339,12 +339,16 @@ JAVA_FLAG/64 = -d64
WRONG_DATA_MODE_MSG = \
echo "JAVA_HOME must point to $(DATA_MODE)bit JDK."
CROSS_COMPILING_MSG = \
echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
@echo Creating $@ ...
$(QUIETLY) ( \
echo '#!/bin/sh'; \
$(BUILDTREE_COMMENT); \
echo '. ./env.sh'; \
echo "if [ \"$(CROSS_COMPILE_ARCH)\" != \"\" ]; then { $(CROSS_COMPILING_MSG); exit 0; }; fi"; \
echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \
echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \
echo "then"; \

View File

@@ -98,6 +98,22 @@ ifeq ($(ARCH), i686)
HS_ARCH = x86
endif
# ARM
ifeq ($(ARCH), arm)
ARCH_DATA_MODEL = 32
PLATFORM = linux-arm
VM_PLATFORM = linux_arm
HS_ARCH = arm
endif
# PPC
ifeq ($(ARCH), ppc)
ARCH_DATA_MODEL = 32
PLATFORM = linux-ppc
VM_PLATFORM = linux_ppc
HS_ARCH = ppc
endif
JDK_INCLUDE_SUBDIR=linux
# FIXUP: The subdirectory for a debug build is NOT the same on all platforms
@@ -107,22 +123,32 @@ EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
# client and server subdirectories have symbolic links to ../libjsig.so
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.so
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
ifndef BUILD_CLIENT_ONLY
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so
endif
ifneq ($(ZERO_BUILD), true)
ifeq ($(ARCH_DATA_MODEL), 32)
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so
EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
else
ifeq ($(ARCH),ia64)
else
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so
EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
endif
endif
endif
# Serviceability Binaries
# No SA Support for PPC, IA64, ARM or zero
ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
$(EXPORT_LIB_DIR)/sa-jdi.jar
ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
$(EXPORT_LIB_DIR)/sa-jdi.jar
ADD_SA_BINARIES/ppc =
ADD_SA_BINARIES/ia64 =
ADD_SA_BINARIES/arm =
ADD_SA_BINARIES/zero =
EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
# 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
@@ -25,8 +25,14 @@
#------------------------------------------------------------------------
# CC, CPP & AS
ifdef ALT_COMPILER_PATH
CPP = $(ALT_COMPILER_PATH)/g++
CC = $(ALT_COMPILER_PATH)/gcc
else
CPP = g++
CC = gcc
endif
AS = $(CC) -c
# -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only
@@ -55,6 +61,9 @@ VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO))
ifeq ($(ZERO_BUILD), true)
CFLAGS += $(LIBFFI_CFLAGS)
endif
ifeq ($(SHARK_BUILD), true)
CFLAGS += $(LLVM_CFLAGS)
endif
CFLAGS += $(VM_PICFLAG)
CFLAGS += -fno-rtti
CFLAGS += -fno-exceptions
@@ -67,18 +76,31 @@ ARCHFLAG/amd64 = -m64
ARCHFLAG/ia64 =
ARCHFLAG/sparc = -m32 -mcpu=v9
ARCHFLAG/sparcv9 = -m64 -mcpu=v9
ARCHFLAG/arm = -fsigned-char
ARCHFLAG/zero = $(ZERO_ARCHFLAG)
ifndef E500V2
ARCHFLAG/ppc = -mcpu=powerpc
endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
LFLAGS += $(ARCHFLAG)
ASFLAGS += $(ARCHFLAG)
ifdef E500V2
CFLAGS += -DE500V2
endif
# Use C++ Interpreter
ifdef CC_INTERP
CFLAGS += -DCC_INTERP
endif
# Build for embedded targets
ifdef JAVASE_EMBEDDED
CFLAGS += -DJAVASE_EMBEDDED
endif
# Keep temporary files (.ii, .s)
ifdef NEED_ASM
CFLAGS += -save-temps
@@ -171,6 +193,8 @@ AOUT_FLAGS += -export-dynamic
# Note: The Itanium gcc compiler crashes when using -gstabs.
DEBUG_CFLAGS/ia64 = -g
DEBUG_CFLAGS/amd64 = -g
DEBUG_CFLAGS/arm = -g
DEBUG_CFLAGS/ppc = -g
DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
DEBUG_CFLAGS += -gstabs
@@ -181,3 +205,15 @@ ifeq ($(DEBUG_BINARIES), true)
DEBUG_CFLAGS = -g
CFLAGS += $(DEBUG_CFLAGS)
endif
# If we are building HEADLESS, pass on to VM
# so it can set the java.awt.headless property
ifdef HEADLESS
CFLAGS += -DHEADLESS
endif
# We are building Embedded for a small device
# favor code space over speed
ifdef MINIMIZE_RAM_USAGE
CFLAGS += -DMINIMIZE_RAM_USAGE
endif

View File

@@ -46,7 +46,11 @@ VERSION = optimized
# use -g to strip library as -x will discard its symbol table; -x is fine for
# executables.
STRIP = strip
ifdef CROSS_COMPILE_ARCH
STRIP = $(ALT_COMPILER_PATH)/strip
else
STRIP = strip
endif
STRIP_LIBJVM = $(STRIP) -g $@ || exit 1;
STRIP_AOUT = $(STRIP) -x $@ || exit 1;

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2003, 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
@@ -40,11 +40,17 @@ GENERATED = $(TOPDIR)/../generated
# tools.jar is needed by the JDI - SA binding
SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
# TODO: if it's a modules image, check if SA module is installed.
MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
# gnumake 3.78.1 does not accept the *s that
# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
AGENT_FILES1_LIST := $(GENERATED)/agent1.classes.list
AGENT_FILES2_LIST := $(GENERATED)/agent2.classes.list
SA_CLASSDIR = $(GENERATED)/saclasses
SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
@@ -52,10 +58,13 @@ SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VE
SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
# if $(AGENT_DIR) does not exist, we don't build SA
# also, we don't build SA on Itanium or zero.
# also, we don't build SA on Itanium, PowerPC, ARM or zero.
all:
if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "zero" ] ; then \
if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
-a "$(SRCARCH)" != "arm" \
-a "$(SRCARCH)" != "ppc" \
-a "$(SRCARCH)" != "zero" ] ; then \
$(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
fi
@@ -65,7 +74,7 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
exit 1; \
fi
$(QUIETLY) if [ ! -f $(SA_CLASSPATH) ] ; then \
$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
echo ""; \
exit 1; \
@@ -73,10 +82,24 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
mkdir -p $(SA_CLASSDIR); \
fi
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
# Note: When indented, make tries to execute the '$(shell' comment.
# In some environments, cmd processors have limited line length.
# To prevent the javac invocation in the next block from using
# a very long cmd line, we use javac's @file-list option. We
# generate the file lists using make's built-in 'foreach' control
# flow which also avoids cmd processor line length issues. Since
# the 'foreach' is done as part of make's macro expansion phase,
# the initialization of the lists is also done in the same phase
# using '$(shell rm ...' instead of using the more traditional
# 'rm ...' rule.
$(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
$(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
@@ -95,3 +118,4 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
clean:
rm -rf $(SA_CLASSDIR)
rm -rf $(GENERATED)/sa-jdi.jar
rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)

View File

@@ -53,10 +53,10 @@ ifeq ($(DEBUG_BINARIES), true)
endif
# if $(AGENT_DIR) does not exist, we don't build SA
# also, we don't build SA on Itanium or zero.
# also, we don't build SA on Itanium, PPC, ARM or zero.
checkAndBuildSA:
$(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "zero" ] ; then \
$(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "arm" -a "$(SRCARCH)" != "ppc" -a "$(SRCARCH)" != "zero" ] ; then \
$(MAKE) -f vm.make $(LIBSAPROC); \
fi

View File

@@ -0,0 +1,32 @@
#
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
# Copyright 2008, 2010 Red Hat, Inc.
# 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.
#
#
# Sets make macros for making Shark version of VM
TYPE = SHARK
VM_SUBDIR = server
CFLAGS += -DSHARK

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
# 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
@@ -75,6 +75,7 @@ Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1
Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2
Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2
Include_DBs/ZERO = $(Include_DBs/CORE) $(VM)/includeDB_zero
Include_DBs/SHARK = $(Include_DBs/ZERO) $(VM)/includeDB_shark
Include_DBs = $(Include_DBs/$(TYPE))
Cached_plat = $(GENERATED)/platform.current

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
# 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
@@ -98,6 +98,7 @@ CFLAGS += $(CFLAGS/NOEX)
# Extra flags from gnumake's invocation or environment
CFLAGS += $(EXTRA_CFLAGS)
LFLAGS += $(EXTRA_CFLAGS)
LIBS += -lm -ldl -lpthread
@@ -136,10 +137,14 @@ mapfile_reorder : mapfile $(REORDERFILE)
vm.def: $(Res_Files) $(Obj_Files)
sh $(GAMMADIR)/make/linux/makefiles/build_vm_def.sh *.o > $@
ifeq ($(ZERO_LIBARCH), ppc64)
ifeq ($(SHARK_BUILD), true)
STATIC_CXX = false
else
STATIC_CXX = true
ifeq ($(ZERO_LIBARCH), ppc64)
STATIC_CXX = false
else
STATIC_CXX = true
endif
endif
ifeq ($(LINK_INTO),AOUT)
@@ -167,6 +172,10 @@ endif
ifeq ($(ZERO_BUILD), true)
LIBS_VM += $(LIBFFI_LIBS)
endif
ifeq ($(SHARK_BUILD), true)
LFLAGS_VM += $(LLVM_LDFLAGS)
LIBS_VM += $(LLVM_LIBS)
endif
LINK_VM = $(LINK_LIB.c)
@@ -210,15 +219,17 @@ $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
$(LINK_LIB.CC/POST_HOOK) \
rm -f $@.1; ln -s $@ $@.1; \
[ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
if [ -x /usr/sbin/selinuxenabled ] ; then \
/usr/sbin/selinuxenabled; \
if [ $$? = 0 ] ; then \
/usr/bin/chcon -t textrel_shlib_t $@; \
if [ $$? != 0 ]; then \
echo "ERROR: Cannot chcon $@"; \
fi \
fi \
fi \
if [ \"$(CROSS_COMPILE_ARCH)\" = \"\" ] ; then \
if [ -x /usr/sbin/selinuxenabled ] ; then \
/usr/sbin/selinuxenabled; \
if [ $$? = 0 ] ; then \
/usr/bin/chcon -t textrel_shlib_t $@; \
if [ $$? != 0 ]; then \
echo "ERROR: Cannot chcon $@"; \
fi \
fi \
fi \
fi \
}
DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1998, 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
@@ -19,7 +19,7 @@
# 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.
#
#
#
# This makefile creates a build tree and lights off a build.
@@ -36,13 +36,13 @@
# or BOOTDIR has to be set. We do *not* search javac, javah, rmic etc.
# from the PATH.
# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
# JDI binding on SA produces two binaries:
# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
# JDI binding on SA produces two binaries:
# 1. sa-jdi.jar - This is build before building libjvm[_g].so
# Please refer to ./makefiles/sa.make
# 2. libsaproc[_g].so - Native library for SA - This is built after
# libjsig[_g].so (signal interposition library)
# Please refer to ./makefiles/vm.make
# Please refer to ./makefiles/vm.make
# If $(GAMMADIR)/agent dir is not present, SA components are not built.
ifeq ($(GAMMADIR),)
@@ -52,11 +52,9 @@ include $(GAMMADIR)/make/defs.make
endif
include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make
ifndef LP64
ifndef CC_INTERP
FORCE_TIERED=1
endif
endif
ifdef LP64
ifeq ("$(filter $(LP64_ARCH),$(BUILDARCH))","")

View File

@@ -70,21 +70,23 @@ EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.so
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
ifneq ($(BUILD_CLIENT_ONLY),true)
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.so
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.so
endif
ifeq ($(ARCH_DATA_MODEL), 32)
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.so
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.so
ifeq ($(ARCH),sparc)
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.so
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.so
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.so
ifneq ($(BUILD_CLIENT_ONLY), true)
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.so
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.so
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.so
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.so
endif
endif

View File

@@ -165,7 +165,7 @@ $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
$(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
@echo Compiling $(DTRACE).d
$(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -o $@ -s $(DTRACE).d \
$(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -xlazyload -o $@ -s $(DTRACE).d \
$(DTraced_Files) ||\
STATUS=$$?;\
if [ x"$$STATUS" = x"1" -a \

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2003, 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
@@ -36,11 +36,17 @@ GENERATED = ../generated
# tools.jar is needed by the JDI - SA binding
SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
# TODO: if it's a modules image, check if SA module is installed.
MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
# gnumake 3.78.1 does not accept the *s that
# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
AGENT_FILES1_LIST := $(GENERATED)/agent1.classes.list
AGENT_FILES2_LIST := $(GENERATED)/agent2.classes.list
SA_CLASSDIR = $(GENERATED)/saclasses
SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
@@ -59,7 +65,7 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
exit 1; \
fi
$(QUIETLY) if [ ! -f $(SA_CLASSPATH) ] ; then \
$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
echo ""; \
exit 1; \
@@ -67,8 +73,23 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
mkdir -p $(SA_CLASSDIR); \
fi
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
# Note: When indented, make tries to execute the '$(shell' comment.
# In some environments, cmd processors have limited line length.
# To prevent the javac invocation in the next block from using
# a very long cmd line, we use javac's @file-list option. We
# generate the file lists using make's built-in 'foreach' control
# flow which also avoids cmd processor line length issues. Since
# the 'foreach' is done as part of make's macro expansion phase,
# the initialization of the lists is also done in the same phase
# using '$(shell rm ...' instead of using the more traditional
# 'rm ...' rule.
$(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
$(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
@@ -85,3 +106,4 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
clean:
rm -rf $(SA_CLASSDIR)
rm -rf $(GENERATED)/sa-jdi.jar
rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)

View File

@@ -145,11 +145,20 @@ OPT_CFLAGS/SLOWER=-xO3
OPT_CFLAGS/O2=-xO2
OPT_CFLAGS/NOOPT=-xO1
#################################################
# Begin current (>=5.9) Forte compiler options #
#################################################
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
ifeq ($(Platform_arch), x86)
OPT_CFLAGS/NO_TAIL_CALL_OPT = -Wu,-O~yz
OPT_CCFLAGS/NO_TAIL_CALL_OPT = -Qoption ube -O~yz
OPT_CFLAGS/stubGenerator_x86_32.o = $(OPT_CFLAGS) -xspace
OPT_CFLAGS/stubGenerator_x86_64.o = $(OPT_CFLAGS) -xspace
endif # Platform_arch == x86
ifeq ("${Platform_arch}", "sparc")
OPT_CFLAGS/stubGenerator_sparc.o = $(OPT_CFLAGS) -xspace
endif
endif # COMPILER_REV_NUMERIC >= 509
#################################################

View File

@@ -1,4 +1,4 @@
Copyright %YEARS% Oracle and/or its affiliates. All rights reserved.
Copyright (c) %YEARS%, Oracle and/or its affiliates. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions

View File

@@ -1,4 +1,4 @@
Copyright %YEARS% Oracle and/or its affiliates. All rights reserved.
Copyright (c) %YEARS%, 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

View File

@@ -1,4 +1,4 @@
Copyright %YEARS% Oracle and/or its affiliates. All rights reserved.
Copyright (c) %YEARS%, 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

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1998, 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
@@ -19,7 +19,7 @@
# 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.
#
#
#
# Note: this makefile is invoked both from build.bat and from the J2SE
@@ -72,13 +72,11 @@ BUILDARCH=ia64
!endif
!endif
!if "$(BUILDARCH)" != "amd64"
!if "$(BUILDARCH)" != "ia64"
!ifndef CC_INTERP
FORCE_TIERED=1
!endif
!endif
!endif
!if "$(BUILDARCH)" == "amd64"
Platform_arch=x86
@@ -135,7 +133,7 @@ VARIANT_TEXT=Kernel
# We can have update versions like "01a", but Windows requires
# we use only integers in the file version field. So:
# JDK_UPDATE_VER = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
#
#
JDK_UPDATE_VER=0
JDK_BUILD_NUMBER=0
@@ -148,7 +146,7 @@ HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(ARCH_TEXT) $(VARIANT_TEXT) VM
# 1.6.0_01a-b02 will be 6.0.11.2
#
# JDK_* variables are defined in make/hotspot_version or on command line
#
#
JDK_VER=$(JDK_MINOR_VER),$(JDK_MICRO_VER),$(JDK_UPDATE_VER),$(JDK_BUILD_NUMBER)
JDK_DOTVER=$(JDK_MINOR_VER).$(JDK_MICRO_VER).$(JDK_UPDATE_VER).$(JDK_BUILD_NUMBER)
!if "$(JRE_RELEASE_VERSION)" == ""
@@ -162,7 +160,7 @@ JDK_MKTG_VERSION=$(JDK_MINOR_VER).$(JDK_MICRO_VER)
# Hotspot Express VM FileVersion:
# 10.0-b<yz> will have DLL version 10.0.0.yz (need 4 numbers).
#
#
# HS_* variables are defined in make/hotspot_version
#
HS_VER=$(HS_MAJOR_VER),$(HS_MINOR_VER),0,$(HS_BUILD_NUMBER)
@@ -182,7 +180,7 @@ HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
# We don't support SA on ia64, and we can't
# build it if we are using a version of Vis Studio
# build it if we are using a version of Vis Studio
# older than .Net 2003.
# SA_INCLUDE and SA_LIB are hold-overs from a previous
# implementation in which we could build SA using

View File

@@ -32,6 +32,17 @@ SLASH_JAVA ?= J:
PATH_SEP = ;
# Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
ifeq ($(ARCH_DATA_MODEL),32)
ARCH_DATA_MODEL=32
PLATFORM=windows-i586
VM_PLATFORM=windows_i486
HS_ARCH=x86
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=i486
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_32
endif
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) x86),)
ARCH_DATA_MODEL=32
PLATFORM=windows-i586
@@ -43,55 +54,57 @@ ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) x86),)
MAKE_ARGS += Platform_arch_model=x86_32
endif
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) ia64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-ia64
VM_PLATFORM=windows_ia64
HS_ARCH=ia64
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=ia64
MAKE_ARGS += BUILDARCH=ia64
MAKE_ARGS += Platform_arch=ia64
MAKE_ARGS += Platform_arch_model=ia64
endif
ifneq ($(ARCH_DATA_MODEL),32)
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) ia64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-ia64
VM_PLATFORM=windows_ia64
HS_ARCH=ia64
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=ia64
MAKE_ARGS += BUILDARCH=ia64
MAKE_ARGS += Platform_arch=ia64
MAKE_ARGS += Platform_arch_model=ia64
endif
# http://support.microsoft.com/kb/888731 : this can be either
# AMD64 for AMD, or EM64T for Intel chips.
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
VM_PLATFORM=windows_amd64
HS_ARCH=x86
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=amd64
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_64
endif
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
VM_PLATFORM=windows_amd64
HS_ARCH=x86
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=amd64
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_64
endif
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) EM64T),)
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
VM_PLATFORM=windows_amd64
HS_ARCH=x86
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=amd64
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_64
endif
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
VM_PLATFORM=windows_amd64
HS_ARCH=x86
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=amd64
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_64
endif
# NB later OS versions than 2003 may report "Intel64"
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) Intel64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
VM_PLATFORM=windows_amd64
HS_ARCH=x86
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=amd64
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_64
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) Intel64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
VM_PLATFORM=windows_amd64
HS_ARCH=x86
MAKE_ARGS += LP64=1
MAKE_ARGS += ARCH=x86
MAKE_ARGS += BUILDARCH=amd64
MAKE_ARGS += Platform_arch=x86
MAKE_ARGS += Platform_arch_model=x86_64
endif
endif
JDK_INCLUDE_SUBDIR=win32

View File

@@ -626,7 +626,7 @@ void MacroAssembler::jmp(Register r1, int offset, const char* file, int line ) {
}
// This code sequence is relocatable to any address, even on LP64.
void MacroAssembler::jumpl(AddressLiteral& addrlit, Register temp, Register d, int offset, const char* file, int line) {
void MacroAssembler::jumpl(const AddressLiteral& addrlit, Register temp, Register d, int offset, const char* file, int line) {
assert_not_delayed();
// Force fixed length sethi because NativeJump and NativeFarCall don't handle
// variable length instruction streams.
@@ -672,7 +672,7 @@ void MacroAssembler::jumpl(AddressLiteral& addrlit, Register temp, Register d, i
}
}
void MacroAssembler::jump(AddressLiteral& addrlit, Register temp, int offset, const char* file, int line) {
void MacroAssembler::jump(const AddressLiteral& addrlit, Register temp, int offset, const char* file, int line) {
jumpl(addrlit, temp, G0, offset, file, line);
}
@@ -4192,7 +4192,7 @@ static void check_index(int ind) {
static void generate_satb_log_enqueue(bool with_frame) {
BufferBlob* bb = BufferBlob::create("enqueue_with_frame", EnqueueCodeSize);
CodeBuffer buf(bb->instructions_begin(), bb->instructions_size());
CodeBuffer buf(bb);
MacroAssembler masm(&buf);
address start = masm.pc();
Register pre_val;
@@ -4421,7 +4421,7 @@ static u_char* dirty_card_log_enqueue_end = 0;
// This gets to assume that o0 contains the object address.
static void generate_dirty_card_log_enqueue(jbyte* byte_map_base) {
BufferBlob* bb = BufferBlob::create("dirty_card_enqueue", EnqueueCodeSize*2);
CodeBuffer buf(bb->instructions_begin(), bb->instructions_size());
CodeBuffer buf(bb);
MacroAssembler masm(&buf);
address start = masm.pc();

View File

@@ -87,6 +87,7 @@ REGISTER_DECLARATION(Register, Gtemp , G5);
// JSR 292 fixed register usages:
REGISTER_DECLARATION(Register, G5_method_type , G5);
REGISTER_DECLARATION(Register, G3_method_handle , G3);
REGISTER_DECLARATION(Register, L7_mh_SP_save , L7);
// The compiler requires that G5_megamorphic_method is G5_inline_cache_klass,
// because a single patchable "set" instruction (NativeMovConstReg,
@@ -1973,12 +1974,12 @@ public:
// address pseudos: make these names unlike instruction names to avoid confusion
inline intptr_t load_pc_address( Register reg, int bytes_to_skip );
inline void load_contents(AddressLiteral& addrlit, Register d, int offset = 0);
inline void load_ptr_contents(AddressLiteral& addrlit, Register d, int offset = 0);
inline void store_contents(Register s, AddressLiteral& addrlit, Register temp, int offset = 0);
inline void store_ptr_contents(Register s, AddressLiteral& addrlit, Register temp, int offset = 0);
inline void jumpl_to(AddressLiteral& addrlit, Register temp, Register d, int offset = 0);
inline void jump_to(AddressLiteral& addrlit, Register temp, int offset = 0);
inline void load_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
inline void load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
inline void store_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
inline void store_ptr_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
inline void jumpl_to(const AddressLiteral& addrlit, Register temp, Register d, int offset = 0);
inline void jump_to(const AddressLiteral& addrlit, Register temp, int offset = 0);
inline void jump_indirect_to(Address& a, Register temp, int ld_offset = 0, int jmp_offset = 0);
// ring buffer traceable jumps
@@ -1986,8 +1987,8 @@ public:
void jmp2( Register r1, Register r2, const char* file, int line );
void jmp ( Register r1, int offset, const char* file, int line );
void jumpl(AddressLiteral& addrlit, Register temp, Register d, int offset, const char* file, int line);
void jump (AddressLiteral& addrlit, Register temp, int offset, const char* file, int line);
void jumpl(const AddressLiteral& addrlit, Register temp, Register d, int offset, const char* file, int line);
void jump (const AddressLiteral& addrlit, Register temp, int offset, const char* file, int line);
// argument pseudos:

View File

@@ -650,28 +650,28 @@ inline intptr_t MacroAssembler::load_pc_address( Register reg, int bytes_to_skip
}
inline void MacroAssembler::load_contents(AddressLiteral& addrlit, Register d, int offset) {
inline void MacroAssembler::load_contents(const AddressLiteral& addrlit, Register d, int offset) {
assert_not_delayed();
sethi(addrlit, d);
ld(d, addrlit.low10() + offset, d);
}
inline void MacroAssembler::load_ptr_contents(AddressLiteral& addrlit, Register d, int offset) {
inline void MacroAssembler::load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset) {
assert_not_delayed();
sethi(addrlit, d);
ld_ptr(d, addrlit.low10() + offset, d);
}
inline void MacroAssembler::store_contents(Register s, AddressLiteral& addrlit, Register temp, int offset) {
inline void MacroAssembler::store_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset) {
assert_not_delayed();
sethi(addrlit, temp);
st(s, temp, addrlit.low10() + offset);
}
inline void MacroAssembler::store_ptr_contents(Register s, AddressLiteral& addrlit, Register temp, int offset) {
inline void MacroAssembler::store_ptr_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset) {
assert_not_delayed();
sethi(addrlit, temp);
st_ptr(s, temp, addrlit.low10() + offset);
@@ -679,7 +679,7 @@ inline void MacroAssembler::store_ptr_contents(Register s, AddressLiteral& addrl
// This code sequence is relocatable to any address, even on LP64.
inline void MacroAssembler::jumpl_to(AddressLiteral& addrlit, Register temp, Register d, int offset) {
inline void MacroAssembler::jumpl_to(const AddressLiteral& addrlit, Register temp, Register d, int offset) {
assert_not_delayed();
// Force fixed length sethi because NativeJump and NativeFarCall don't handle
// variable length instruction streams.
@@ -688,7 +688,7 @@ inline void MacroAssembler::jumpl_to(AddressLiteral& addrlit, Register temp, Reg
}
inline void MacroAssembler::jump_to(AddressLiteral& addrlit, Register temp, int offset) {
inline void MacroAssembler::jump_to(const AddressLiteral& addrlit, Register temp, int offset) {
jumpl_to(addrlit, temp, G0, offset);
}

View File

@@ -236,19 +236,19 @@ inline jint BytecodeInterpreter::VMintRem(jint op1, jint op2) {
}
inline jint BytecodeInterpreter::VMintShl(jint op1, jint op2) {
return op1 << op2;
return op1 << (op2 & 0x1f);
}
inline jint BytecodeInterpreter::VMintShr(jint op1, jint op2) {
return op1 >> op2; // QQ op2 & 0x1f??
return op1 >> (op2 & 0x1f);
}
inline jint BytecodeInterpreter::VMintSub(jint op1, jint op2) {
return op1 - op2;
}
inline jint BytecodeInterpreter::VMintUshr(jint op1, jint op2) {
return ((juint) op1) >> op2; // QQ op2 & 0x1f??
inline juint BytecodeInterpreter::VMintUshr(jint op1, jint op2) {
return ((juint) op1) >> (op2 & 0x1f);
}
inline jint BytecodeInterpreter::VMintXor(jint op1, jint op2) {

View File

@@ -57,13 +57,12 @@ void RangeCheckStub::emit_code(LIR_Assembler* ce) {
#endif
}
#ifdef TIERED
void CounterOverflowStub::emit_code(LIR_Assembler* ce) {
__ bind(_entry);
__ set(_bci, G4);
__ call(Runtime1::entry_for(Runtime1::counter_overflow_id), relocInfo::runtime_call_type);
__ delayed()->nop();
__ delayed()->mov_or_nop(_method->as_register(), G5);
ce->add_call_info_here(_info);
ce->verify_oop_map(_info);
@@ -71,7 +70,6 @@ void CounterOverflowStub::emit_code(LIR_Assembler* ce) {
__ delayed()->nop();
}
#endif // TIERED
void DivByZeroStub::emit_code(LIR_Assembler* ce) {
if (_offset != -1) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
* 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
@@ -73,6 +73,7 @@ FloatRegister FrameMap::_fpu_regs [FrameMap::nof_fpu_regs];
// some useful constant RInfo's:
LIR_Opr FrameMap::in_long_opr;
LIR_Opr FrameMap::out_long_opr;
LIR_Opr FrameMap::g1_long_single_opr;
LIR_Opr FrameMap::F0_opr;
LIR_Opr FrameMap::F0_double_opr;
@@ -181,8 +182,8 @@ bool FrameMap::is_caller_save_register (Register r) {
}
void FrameMap::init () {
if (_init_done) return;
void FrameMap::initialize() {
assert(!_init_done, "once");
int i=0;
// Register usage:
@@ -238,6 +239,7 @@ void FrameMap::init () {
in_long_opr = as_long_opr(I0);
out_long_opr = as_long_opr(O0);
g1_long_single_opr = as_long_single_opr(G1);
G0_opr = as_opr(G0);
G1_opr = as_opr(G1);
@@ -345,6 +347,13 @@ LIR_Opr FrameMap::stack_pointer() {
}
// JSR 292
LIR_Opr FrameMap::method_handle_invoke_SP_save_opr() {
assert(L7 == L7_mh_SP_save, "must be same register");
return L7_opr;
}
bool FrameMap::validate_frame() {
int max_offset = in_bytes(framesize_in_bytes());
int java_index = 0;

View File

@@ -103,6 +103,7 @@
static LIR_Opr in_long_opr;
static LIR_Opr out_long_opr;
static LIR_Opr g1_long_single_opr;
static LIR_Opr F0_opr;
static LIR_Opr F0_double_opr;
@@ -113,18 +114,25 @@
private:
static FloatRegister _fpu_regs [nof_fpu_regs];
static LIR_Opr as_long_single_opr(Register r) {
return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r));
}
static LIR_Opr as_long_pair_opr(Register r) {
return LIR_OprFact::double_cpu(cpu_reg2rnr(r->successor()), cpu_reg2rnr(r));
}
public:
#ifdef _LP64
static LIR_Opr as_long_opr(Register r) {
return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r));
return as_long_single_opr(r);
}
static LIR_Opr as_pointer_opr(Register r) {
return LIR_OprFact::double_cpu(cpu_reg2rnr(r), cpu_reg2rnr(r));
return as_long_single_opr(r);
}
#else
static LIR_Opr as_long_opr(Register r) {
return LIR_OprFact::double_cpu(cpu_reg2rnr(r->successor()), cpu_reg2rnr(r));
return as_long_pair_opr(r);
}
static LIR_Opr as_pointer_opr(Register r) {
return as_opr(r);
@@ -143,6 +151,3 @@
static bool is_caller_save_register (LIR_Opr reg);
static bool is_caller_save_register (Register r);
// JSR 292
static LIR_Opr& method_handle_invoke_SP_save_opr() { return L7_opr; }

View File

@@ -736,7 +736,8 @@ void LIR_Assembler::align_call(LIR_Code) {
void LIR_Assembler::call(LIR_OpJavaCall* op, relocInfo::relocType rtype) {
__ call(op->addr(), rtype);
// the peephole pass fills the delay slot
// The peephole pass fills the delay slot, add_call_info is done in
// LIR_Assembler::emit_delay.
}
@@ -745,7 +746,8 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
__ set_oop((jobject)Universe::non_oop_word(), G5_inline_cache_reg);
__ relocate(rspec);
__ call(op->addr(), relocInfo::none);
// the peephole pass fills the delay slot
// The peephole pass fills the delay slot, add_call_info is done in
// LIR_Assembler::emit_delay.
}
@@ -766,16 +768,6 @@ void LIR_Assembler::vtable_call(LIR_OpJavaCall* op) {
}
void LIR_Assembler::preserve_SP(LIR_OpJavaCall* op) {
Unimplemented();
}
void LIR_Assembler::restore_SP(LIR_OpJavaCall* op) {
Unimplemented();
}
// load with 32-bit displacement
int LIR_Assembler::load(Register s, int disp, Register d, BasicType ld_type, CodeEmitInfo *info) {
int load_offset = code_offset();
@@ -1633,13 +1625,18 @@ void LIR_Assembler::reg2mem(LIR_Opr from_reg, LIR_Opr dest, BasicType type,
void LIR_Assembler::return_op(LIR_Opr result) {
// the poll may need a register so just pick one that isn't the return register
#ifdef TIERED
#if defined(TIERED) && !defined(_LP64)
if (result->type_field() == LIR_OprDesc::long_type) {
// Must move the result to G1
// Must leave proper result in O0,O1 and G1 (TIERED only)
__ sllx(I0, 32, G1); // Shift bits into high G1
__ srl (I1, 0, I1); // Zero extend O1 (harmless?)
__ or3 (I1, G1, G1); // OR 64 bits into G1
#ifdef ASSERT
// mangle it so any problems will show up
__ set(0xdeadbeef, I0);
__ set(0xdeadbeef, I1);
#endif
}
#endif // TIERED
__ set((intptr_t)os::get_polling_page(), L0);
@@ -2432,6 +2429,192 @@ void LIR_Assembler::emit_alloc_array(LIR_OpAllocArray* op) {
}
void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
ciMethodData *md, ciProfileData *data,
Register recv, Register tmp1, Label* update_done) {
uint i;
for (i = 0; i < VirtualCallData::row_limit(); i++) {
Label next_test;
// See if the receiver is receiver[n].
Address receiver_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i)) -
mdo_offset_bias);
__ ld_ptr(receiver_addr, tmp1);
__ verify_oop(tmp1);
__ cmp(recv, tmp1);
__ brx(Assembler::notEqual, false, Assembler::pt, next_test);
__ delayed()->nop();
Address data_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_count_offset(i)) -
mdo_offset_bias);
__ ld_ptr(data_addr, tmp1);
__ add(tmp1, DataLayout::counter_increment, tmp1);
__ st_ptr(tmp1, data_addr);
__ ba(false, *update_done);
__ delayed()->nop();
__ bind(next_test);
}
// Didn't find receiver; find next empty slot and fill it in
for (i = 0; i < VirtualCallData::row_limit(); i++) {
Label next_test;
Address recv_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i)) -
mdo_offset_bias);
load(recv_addr, tmp1, T_OBJECT);
__ br_notnull(tmp1, false, Assembler::pt, next_test);
__ delayed()->nop();
__ st_ptr(recv, recv_addr);
__ set(DataLayout::counter_increment, tmp1);
__ st_ptr(tmp1, mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_count_offset(i)) -
mdo_offset_bias);
__ ba(false, *update_done);
__ delayed()->nop();
__ bind(next_test);
}
}
void LIR_Assembler::setup_md_access(ciMethod* method, int bci,
ciMethodData*& md, ciProfileData*& data, int& mdo_offset_bias) {
md = method->method_data();
if (md == NULL) {
bailout("out of memory building methodDataOop");
return;
}
data = md->bci_to_data(bci);
assert(data != NULL, "need data for checkcast");
assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
if (!Assembler::is_simm13(md->byte_offset_of_slot(data, DataLayout::header_offset()) + data->size_in_bytes())) {
// The offset is large so bias the mdo by the base of the slot so
// that the ld can use simm13s to reference the slots of the data
mdo_offset_bias = md->byte_offset_of_slot(data, DataLayout::header_offset());
}
}
void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, Label* failure, Label* obj_is_null) {
// we always need a stub for the failure case.
CodeStub* stub = op->stub();
Register obj = op->object()->as_register();
Register k_RInfo = op->tmp1()->as_register();
Register klass_RInfo = op->tmp2()->as_register();
Register dst = op->result_opr()->as_register();
Register Rtmp1 = op->tmp3()->as_register();
ciKlass* k = op->klass();
if (obj == k_RInfo) {
k_RInfo = klass_RInfo;
klass_RInfo = obj;
}
ciMethodData* md;
ciProfileData* data;
int mdo_offset_bias = 0;
if (op->should_profile()) {
ciMethod* method = op->profiled_method();
assert(method != NULL, "Should have method");
setup_md_access(method, op->profiled_bci(), md, data, mdo_offset_bias);
Label not_null;
__ br_notnull(obj, false, Assembler::pn, not_null);
__ delayed()->nop();
Register mdo = k_RInfo;
Register data_val = Rtmp1;
jobject2reg(md->constant_encoding(), mdo);
if (mdo_offset_bias > 0) {
__ set(mdo_offset_bias, data_val);
__ add(mdo, data_val, mdo);
}
Address flags_addr(mdo, md->byte_offset_of_slot(data, DataLayout::flags_offset()) - mdo_offset_bias);
__ ldub(flags_addr, data_val);
__ or3(data_val, BitData::null_seen_byte_constant(), data_val);
__ stb(data_val, flags_addr);
__ ba(false, *obj_is_null);
__ delayed()->nop();
__ bind(not_null);
} else {
__ br_null(obj, false, Assembler::pn, *obj_is_null);
__ delayed()->nop();
}
Label profile_cast_failure, profile_cast_success;
Label *failure_target = op->should_profile() ? &profile_cast_failure : failure;
Label *success_target = op->should_profile() ? &profile_cast_success : success;
// patching may screw with our temporaries on sparc,
// so let's do it before loading the class
if (k->is_loaded()) {
jobject2reg(k->constant_encoding(), k_RInfo);
} else {
jobject2reg_with_patching(k_RInfo, op->info_for_patch());
}
assert(obj != k_RInfo, "must be different");
// get object class
// not a safepoint as obj null check happens earlier
load(obj, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
if (op->fast_check()) {
assert_different_registers(klass_RInfo, k_RInfo);
__ cmp(k_RInfo, klass_RInfo);
__ brx(Assembler::notEqual, false, Assembler::pt, *failure_target);
__ delayed()->nop();
} else {
bool need_slow_path = true;
if (k->is_loaded()) {
if (k->super_check_offset() != sizeof(oopDesc) + Klass::secondary_super_cache_offset_in_bytes())
need_slow_path = false;
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, noreg,
(need_slow_path ? success_target : NULL),
failure_target, NULL,
RegisterOrConstant(k->super_check_offset()));
} else {
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7, success_target,
failure_target, NULL);
}
if (need_slow_path) {
// call out-of-line instance of __ check_klass_subtype_slow_path(...):
assert(klass_RInfo == G3 && k_RInfo == G1, "incorrect call setup");
__ call(Runtime1::entry_for(Runtime1::slow_subtype_check_id), relocInfo::runtime_call_type);
__ delayed()->nop();
__ cmp(G3, 0);
__ br(Assembler::equal, false, Assembler::pn, *failure_target);
__ delayed()->nop();
// Fall through to success case
}
}
if (op->should_profile()) {
Register mdo = klass_RInfo, recv = k_RInfo, tmp1 = Rtmp1;
assert_different_registers(obj, mdo, recv, tmp1);
__ bind(profile_cast_success);
jobject2reg(md->constant_encoding(), mdo);
if (mdo_offset_bias > 0) {
__ set(mdo_offset_bias, tmp1);
__ add(mdo, tmp1, mdo);
}
load(Address(obj, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, success);
// Jump over the failure case
__ ba(false, *success);
__ delayed()->nop();
// Cast failure case
__ bind(profile_cast_failure);
jobject2reg(md->constant_encoding(), mdo);
if (mdo_offset_bias > 0) {
__ set(mdo_offset_bias, tmp1);
__ add(mdo, tmp1, mdo);
}
Address data_addr(mdo, md->byte_offset_of_slot(data, CounterData::count_offset()) - mdo_offset_bias);
__ ld_ptr(data_addr, tmp1);
__ sub(tmp1, DataLayout::counter_increment, tmp1);
__ st_ptr(tmp1, data_addr);
__ ba(false, *failure);
__ delayed()->nop();
}
__ ba(false, *success);
__ delayed()->nop();
}
void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
LIR_Code code = op->code();
if (code == lir_store_check) {
@@ -2442,193 +2625,106 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
Register Rtmp1 = op->tmp3()->as_register();
__ verify_oop(value);
CodeStub* stub = op->stub();
Label done;
__ cmp(value, 0);
__ br(Assembler::equal, false, Assembler::pn, done);
__ delayed()->nop();
// check if it needs to be profiled
ciMethodData* md;
ciProfileData* data;
int mdo_offset_bias = 0;
if (op->should_profile()) {
ciMethod* method = op->profiled_method();
assert(method != NULL, "Should have method");
setup_md_access(method, op->profiled_bci(), md, data, mdo_offset_bias);
}
Label profile_cast_success, profile_cast_failure, done;
Label *success_target = op->should_profile() ? &profile_cast_success : &done;
Label *failure_target = op->should_profile() ? &profile_cast_failure : stub->entry();
if (op->should_profile()) {
Label not_null;
__ br_notnull(value, false, Assembler::pn, not_null);
__ delayed()->nop();
Register mdo = k_RInfo;
Register data_val = Rtmp1;
jobject2reg(md->constant_encoding(), mdo);
if (mdo_offset_bias > 0) {
__ set(mdo_offset_bias, data_val);
__ add(mdo, data_val, mdo);
}
Address flags_addr(mdo, md->byte_offset_of_slot(data, DataLayout::flags_offset()) - mdo_offset_bias);
__ ldub(flags_addr, data_val);
__ or3(data_val, BitData::null_seen_byte_constant(), data_val);
__ stb(data_val, flags_addr);
__ ba(false, done);
__ delayed()->nop();
__ bind(not_null);
} else {
__ br_null(value, false, Assembler::pn, done);
__ delayed()->nop();
}
load(array, oopDesc::klass_offset_in_bytes(), k_RInfo, T_OBJECT, op->info_for_exception());
load(value, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
// get instance klass
load(k_RInfo, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc), k_RInfo, T_OBJECT, NULL);
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7, &done, stub->entry(), NULL);
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7, success_target, failure_target, NULL);
// call out-of-line instance of __ check_klass_subtype_slow_path(...):
assert(klass_RInfo == G3 && k_RInfo == G1, "incorrect call setup");
__ call(Runtime1::entry_for(Runtime1::slow_subtype_check_id), relocInfo::runtime_call_type);
__ delayed()->nop();
__ cmp(G3, 0);
__ br(Assembler::equal, false, Assembler::pn, *stub->entry());
__ br(Assembler::equal, false, Assembler::pn, *failure_target);
__ delayed()->nop();
__ bind(done);
} else if (op->code() == lir_checkcast) {
// we always need a stub for the failure case.
CodeStub* stub = op->stub();
Register obj = op->object()->as_register();
Register k_RInfo = op->tmp1()->as_register();
Register klass_RInfo = op->tmp2()->as_register();
Register dst = op->result_opr()->as_register();
Register Rtmp1 = op->tmp3()->as_register();
ciKlass* k = op->klass();
// fall through to the success case
if (obj == k_RInfo) {
k_RInfo = klass_RInfo;
klass_RInfo = obj;
}
if (op->profiled_method() != NULL) {
ciMethod* method = op->profiled_method();
int bci = op->profiled_bci();
// We need two temporaries to perform this operation on SPARC,
// so to keep things simple we perform a redundant test here
Label profile_done;
__ cmp(obj, 0);
__ br(Assembler::notEqual, false, Assembler::pn, profile_done);
__ delayed()->nop();
// Object is null; update methodDataOop
ciMethodData* md = method->method_data();
if (md == NULL) {
bailout("out of memory building methodDataOop");
return;
}
ciProfileData* data = md->bci_to_data(bci);
assert(data != NULL, "need data for checkcast");
assert(data->is_BitData(), "need BitData for checkcast");
Register mdo = k_RInfo;
Register data_val = Rtmp1;
if (op->should_profile()) {
Register mdo = klass_RInfo, recv = k_RInfo, tmp1 = Rtmp1;
assert_different_registers(value, mdo, recv, tmp1);
__ bind(profile_cast_success);
jobject2reg(md->constant_encoding(), mdo);
int mdo_offset_bias = 0;
if (!Assembler::is_simm13(md->byte_offset_of_slot(data, DataLayout::header_offset()) + data->size_in_bytes())) {
// The offset is large so bias the mdo by the base of the slot so
// that the ld can use simm13s to reference the slots of the data
mdo_offset_bias = md->byte_offset_of_slot(data, DataLayout::header_offset());
__ set(mdo_offset_bias, data_val);
__ add(mdo, data_val, mdo);
if (mdo_offset_bias > 0) {
__ set(mdo_offset_bias, tmp1);
__ add(mdo, tmp1, mdo);
}
Address flags_addr(mdo, md->byte_offset_of_slot(data, DataLayout::flags_offset()) - mdo_offset_bias);
__ ldub(flags_addr, data_val);
__ or3(data_val, BitData::null_seen_byte_constant(), data_val);
__ stb(data_val, flags_addr);
__ bind(profile_done);
}
Label done;
// patching may screw with our temporaries on sparc,
// so let's do it before loading the class
if (k->is_loaded()) {
jobject2reg(k->constant_encoding(), k_RInfo);
} else {
jobject2reg_with_patching(k_RInfo, op->info_for_patch());
}
assert(obj != k_RInfo, "must be different");
__ cmp(obj, 0);
__ br(Assembler::equal, false, Assembler::pn, done);
__ delayed()->nop();
// get object class
// not a safepoint as obj null check happens earlier
load(obj, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
if (op->fast_check()) {
assert_different_registers(klass_RInfo, k_RInfo);
__ cmp(k_RInfo, klass_RInfo);
__ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
load(Address(value, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &done);
__ ba(false, done);
__ delayed()->nop();
__ bind(done);
} else {
bool need_slow_path = true;
if (k->is_loaded()) {
if (k->super_check_offset() != sizeof(oopDesc) + Klass::secondary_super_cache_offset_in_bytes())
need_slow_path = false;
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, noreg,
(need_slow_path ? &done : NULL),
stub->entry(), NULL,
RegisterOrConstant(k->super_check_offset()));
} else {
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7,
&done, stub->entry(), NULL);
// Cast failure case
__ bind(profile_cast_failure);
jobject2reg(md->constant_encoding(), mdo);
if (mdo_offset_bias > 0) {
__ set(mdo_offset_bias, tmp1);
__ add(mdo, tmp1, mdo);
}
if (need_slow_path) {
// call out-of-line instance of __ check_klass_subtype_slow_path(...):
assert(klass_RInfo == G3 && k_RInfo == G1, "incorrect call setup");
__ call(Runtime1::entry_for(Runtime1::slow_subtype_check_id), relocInfo::runtime_call_type);
__ delayed()->nop();
__ cmp(G3, 0);
__ br(Assembler::equal, false, Assembler::pn, *stub->entry());
__ delayed()->nop();
}
__ bind(done);
Address data_addr(mdo, md->byte_offset_of_slot(data, CounterData::count_offset()) - mdo_offset_bias);
__ ld_ptr(data_addr, tmp1);
__ sub(tmp1, DataLayout::counter_increment, tmp1);
__ st_ptr(tmp1, data_addr);
__ ba(false, *stub->entry());
__ delayed()->nop();
}
__ bind(done);
} else if (code == lir_checkcast) {
Register obj = op->object()->as_register();
Register dst = op->result_opr()->as_register();
Label success;
emit_typecheck_helper(op, &success, op->stub()->entry(), &success);
__ bind(success);
__ mov(obj, dst);
} else if (code == lir_instanceof) {
Register obj = op->object()->as_register();
Register k_RInfo = op->tmp1()->as_register();
Register klass_RInfo = op->tmp2()->as_register();
Register dst = op->result_opr()->as_register();
Register Rtmp1 = op->tmp3()->as_register();
ciKlass* k = op->klass();
Label done;
if (obj == k_RInfo) {
k_RInfo = klass_RInfo;
klass_RInfo = obj;
}
// patching may screw with our temporaries on sparc,
// so let's do it before loading the class
if (k->is_loaded()) {
jobject2reg(k->constant_encoding(), k_RInfo);
} else {
jobject2reg_with_patching(k_RInfo, op->info_for_patch());
}
assert(obj != k_RInfo, "must be different");
__ cmp(obj, 0);
__ br(Assembler::equal, true, Assembler::pn, done);
__ delayed()->set(0, dst);
// get object class
// not a safepoint as obj null check happens earlier
load(obj, oopDesc::klass_offset_in_bytes(), klass_RInfo, T_OBJECT, NULL);
if (op->fast_check()) {
__ cmp(k_RInfo, klass_RInfo);
__ br(Assembler::equal, true, Assembler::pt, done);
__ delayed()->set(1, dst);
__ set(0, dst);
__ bind(done);
} else {
bool need_slow_path = true;
if (k->is_loaded()) {
if (k->super_check_offset() != sizeof(oopDesc) + Klass::secondary_super_cache_offset_in_bytes())
need_slow_path = false;
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, O7, noreg,
(need_slow_path ? &done : NULL),
(need_slow_path ? &done : NULL), NULL,
RegisterOrConstant(k->super_check_offset()),
dst);
} else {
assert(dst != klass_RInfo && dst != k_RInfo, "need 3 registers");
// perform the fast part of the checking logic
__ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, O7, dst,
&done, &done, NULL,
RegisterOrConstant(-1),
dst);
}
if (need_slow_path) {
// call out-of-line instance of __ check_klass_subtype_slow_path(...):
assert(klass_RInfo == G3 && k_RInfo == G1, "incorrect call setup");
__ call(Runtime1::entry_for(Runtime1::slow_subtype_check_id), relocInfo::runtime_call_type);
__ delayed()->nop();
__ mov(G3, dst);
}
__ bind(done);
}
Label success, failure, done;
emit_typecheck_helper(op, &success, &failure, &failure);
__ bind(failure);
__ set(0, dst);
__ ba(false, done);
__ delayed()->nop();
__ bind(success);
__ set(1, dst);
__ bind(done);
} else {
ShouldNotReachHere();
}
@@ -2784,9 +2880,14 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
ciProfileData* data = md->bci_to_data(bci);
assert(data->is_CounterData(), "need CounterData for calls");
assert(op->mdo()->is_single_cpu(), "mdo must be allocated");
assert(op->tmp1()->is_single_cpu(), "tmp1 must be allocated");
Register mdo = op->mdo()->as_register();
#ifdef _LP64
assert(op->tmp1()->is_double_cpu(), "tmp1 must be allocated");
Register tmp1 = op->tmp1()->as_register_lo();
#else
assert(op->tmp1()->is_single_cpu(), "tmp1 must be allocated");
Register tmp1 = op->tmp1()->as_register();
#endif
jobject2reg(md->constant_encoding(), mdo);
int mdo_offset_bias = 0;
if (!Assembler::is_simm13(md->byte_offset_of_slot(data, CounterData::count_offset()) +
@@ -2803,13 +2904,13 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
// Perform additional virtual call profiling for invokevirtual and
// invokeinterface bytecodes
if ((bc == Bytecodes::_invokevirtual || bc == Bytecodes::_invokeinterface) &&
Tier1ProfileVirtualCalls) {
C1ProfileVirtualCalls) {
assert(op->recv()->is_single_cpu(), "recv must be allocated");
Register recv = op->recv()->as_register();
assert_different_registers(mdo, tmp1, recv);
assert(data->is_VirtualCallData(), "need VirtualCallData for virtual calls");
ciKlass* known_klass = op->known_holder();
if (Tier1OptimizeVirtualCallProfiling && known_klass != NULL) {
if (C1OptimizeVirtualCallProfiling && known_klass != NULL) {
// We know the type that will be seen at this call site; we can
// statically update the methodDataOop rather than needing to do
// dynamic tests on the receiver type
@@ -2824,9 +2925,9 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
Address data_addr(mdo, md->byte_offset_of_slot(data,
VirtualCallData::receiver_count_offset(i)) -
mdo_offset_bias);
__ lduw(data_addr, tmp1);
__ ld_ptr(data_addr, tmp1);
__ add(tmp1, DataLayout::counter_increment, tmp1);
__ stw(tmp1, data_addr);
__ st_ptr(tmp1, data_addr);
return;
}
}
@@ -2845,70 +2946,32 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
__ st_ptr(tmp1, recv_addr);
Address data_addr(mdo, md->byte_offset_of_slot(data, VirtualCallData::receiver_count_offset(i)) -
mdo_offset_bias);
__ lduw(data_addr, tmp1);
__ ld_ptr(data_addr, tmp1);
__ add(tmp1, DataLayout::counter_increment, tmp1);
__ stw(tmp1, data_addr);
__ st_ptr(tmp1, data_addr);
return;
}
}
} else {
load(Address(recv, oopDesc::klass_offset_in_bytes()), recv, T_OBJECT);
Label update_done;
uint i;
for (i = 0; i < VirtualCallData::row_limit(); i++) {
Label next_test;
// See if the receiver is receiver[n].
Address receiver_addr(mdo, md->byte_offset_of_slot(data, VirtualCallData::receiver_offset(i)) -
mdo_offset_bias);
__ ld_ptr(receiver_addr, tmp1);
__ verify_oop(tmp1);
__ cmp(recv, tmp1);
__ brx(Assembler::notEqual, false, Assembler::pt, next_test);
__ delayed()->nop();
Address data_addr(mdo, md->byte_offset_of_slot(data, VirtualCallData::receiver_count_offset(i)) -
mdo_offset_bias);
__ lduw(data_addr, tmp1);
__ add(tmp1, DataLayout::counter_increment, tmp1);
__ stw(tmp1, data_addr);
__ br(Assembler::always, false, Assembler::pt, update_done);
__ delayed()->nop();
__ bind(next_test);
}
// Didn't find receiver; find next empty slot and fill it in
for (i = 0; i < VirtualCallData::row_limit(); i++) {
Label next_test;
Address recv_addr(mdo, md->byte_offset_of_slot(data, VirtualCallData::receiver_offset(i)) -
mdo_offset_bias);
load(recv_addr, tmp1, T_OBJECT);
__ tst(tmp1);
__ brx(Assembler::notEqual, false, Assembler::pt, next_test);
__ delayed()->nop();
__ st_ptr(recv, recv_addr);
__ set(DataLayout::counter_increment, tmp1);
__ st_ptr(tmp1, mdo, md->byte_offset_of_slot(data, VirtualCallData::receiver_count_offset(i)) -
mdo_offset_bias);
__ br(Assembler::always, false, Assembler::pt, update_done);
__ delayed()->nop();
__ bind(next_test);
}
type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &update_done);
// Receiver did not match any saved receiver and there is no empty row for it.
// Increment total counter to indicate polymorphic case.
__ lduw(counter_addr, tmp1);
__ ld_ptr(counter_addr, tmp1);
__ add(tmp1, DataLayout::counter_increment, tmp1);
__ stw(tmp1, counter_addr);
__ st_ptr(tmp1, counter_addr);
__ bind(update_done);
}
} else {
// Static call
__ lduw(counter_addr, tmp1);
__ ld_ptr(counter_addr, tmp1);
__ add(tmp1, DataLayout::counter_increment, tmp1);
__ stw(tmp1, counter_addr);
__ st_ptr(tmp1, counter_addr);
}
}
void LIR_Assembler::align_backward_branch_target() {
__ align(OptoLoopAlignment);
}
@@ -2934,7 +2997,7 @@ void LIR_Assembler::emit_delay(LIR_OpDelay* op) {
// we may also be emitting the call info for the instruction
// which we are the delay slot of.
CodeEmitInfo * call_info = op->call_info();
CodeEmitInfo* call_info = op->call_info();
if (call_info) {
add_call_info(code_offset(), call_info);
}
@@ -3101,31 +3164,36 @@ void LIR_Assembler::membar_release() {
// no-op on TSO
}
// Macro to Pack two sequential registers containing 32 bit values
// Pack two sequential registers containing 32 bit values
// into a single 64 bit register.
// rs and rs->successor() are packed into rd
// rd and rs may be the same register.
// Note: rs and rs->successor() are destroyed.
void LIR_Assembler::pack64( Register rs, Register rd ) {
// src and src->successor() are packed into dst
// src and dst may be the same register.
// Note: src is destroyed
void LIR_Assembler::pack64(LIR_Opr src, LIR_Opr dst) {
Register rs = src->as_register();
Register rd = dst->as_register_lo();
__ sllx(rs, 32, rs);
__ srl(rs->successor(), 0, rs->successor());
__ or3(rs, rs->successor(), rd);
}
// Macro to unpack a 64 bit value in a register into
// Unpack a 64 bit value in a register into
// two sequential registers.
// rd is unpacked into rd and rd->successor()
void LIR_Assembler::unpack64( Register rd ) {
__ mov(rd, rd->successor());
__ srax(rd, 32, rd);
__ sra(rd->successor(), 0, rd->successor());
// src is unpacked into dst and dst->successor()
void LIR_Assembler::unpack64(LIR_Opr src, LIR_Opr dst) {
Register rs = src->as_register_lo();
Register rd = dst->as_register_hi();
assert_different_registers(rs, rd, rd->successor());
__ srlx(rs, 32, rd);
__ srl (rs, 0, rd->successor());
}
void LIR_Assembler::leal(LIR_Opr addr_opr, LIR_Opr dest) {
LIR_Address* addr = addr_opr->as_address_ptr();
assert(addr->index()->is_illegal() && addr->scale() == LIR_Address::times_1 && Assembler::is_simm13(addr->disp()), "can't handle complex addresses yet");
__ add(addr->base()->as_register(), addr->disp(), dest->as_register());
__ add(addr->base()->as_pointer_register(), addr->disp(), dest->as_pointer_register());
}
@@ -3159,6 +3227,7 @@ void LIR_Assembler::peephole(LIR_List* lir) {
tty->print_cr("delayed");
inst->at(i - 1)->print();
inst->at(i)->print();
tty->cr();
}
#endif
continue;
@@ -3174,8 +3243,8 @@ void LIR_Assembler::peephole(LIR_List* lir) {
case lir_static_call:
case lir_virtual_call:
case lir_icvirtual_call:
case lir_optvirtual_call: {
LIR_Op* delay_op = NULL;
case lir_optvirtual_call:
case lir_dynamic_call: {
LIR_Op* prev = inst->at(i - 1);
if (LIRFillDelaySlots && prev && prev->code() == lir_move && prev->info() == NULL &&
(op->code() != lir_virtual_call ||
@@ -3192,15 +3261,39 @@ void LIR_Assembler::peephole(LIR_List* lir) {
tty->print_cr("delayed");
inst->at(i - 1)->print();
inst->at(i)->print();
tty->cr();
}
#endif
continue;
} else {
LIR_Op* delay_op = new LIR_OpDelay(new LIR_Op0(lir_nop), op->as_OpJavaCall()->info());
inst->insert_before(i + 1, delay_op);
i++;
}
if (!delay_op) {
delay_op = new LIR_OpDelay(new LIR_Op0(lir_nop), op->as_OpJavaCall()->info());
inst->insert_before(i + 1, delay_op);
#if defined(TIERED) && !defined(_LP64)
// fixup the return value from G1 to O0/O1 for long returns.
// It's done here instead of in LIRGenerator because there's
// such a mismatch between the single reg and double reg
// calling convention.
LIR_OpJavaCall* callop = op->as_OpJavaCall();
if (callop->result_opr() == FrameMap::out_long_opr) {
LIR_OpJavaCall* call;
LIR_OprList* arguments = new LIR_OprList(callop->arguments()->length());
for (int a = 0; a < arguments->length(); a++) {
arguments[a] = callop->arguments()[a];
}
if (op->code() == lir_virtual_call) {
call = new LIR_OpJavaCall(op->code(), callop->method(), callop->receiver(), FrameMap::g1_long_single_opr,
callop->vtable_offset(), arguments, callop->info());
} else {
call = new LIR_OpJavaCall(op->code(), callop->method(), callop->receiver(), FrameMap::g1_long_single_opr,
callop->addr(), arguments, callop->info());
}
inst->at_put(i - 1, call);
inst->insert_before(i + 1, new LIR_Op1(lir_unpack64, FrameMap::g1_long_single_opr, callop->result_opr(),
T_LONG, lir_patch_none, NULL));
}
#endif
break;
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -71,9 +71,16 @@
static bool is_single_instruction(LIR_Op* op);
// Record the type of the receiver in ReceiverTypeData
void type_profile_helper(Register mdo, int mdo_offset_bias,
ciMethodData *md, ciProfileData *data,
Register recv, Register tmp1, Label* update_done);
// Setup pointers to MDO, MDO slot, also compute offset bias to access the slot.
void setup_md_access(ciMethod* method, int bci,
ciMethodData*& md, ciProfileData*& data, int& mdo_offset_bias);
public:
void pack64( Register rs, Register rd );
void unpack64( Register rd );
void pack64(LIR_Opr src, LIR_Opr dst);
void unpack64(LIR_Opr src, LIR_Opr dst);
enum {
#ifdef _LP64

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 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
@@ -221,35 +221,43 @@ LIR_Address* LIRGenerator::emit_array_address(LIR_Opr array_opr, LIR_Opr index_o
if (needs_card_mark) {
LIR_Opr ptr = new_pointer_register();
__ add(base_opr, LIR_OprFact::intptrConst(offset), ptr);
return new LIR_Address(ptr, 0, type);
return new LIR_Address(ptr, type);
} else {
return new LIR_Address(base_opr, offset, type);
}
}
LIR_Opr LIRGenerator::load_immediate(int x, BasicType type) {
LIR_Opr r;
if (type == T_LONG) {
r = LIR_OprFact::longConst(x);
} else if (type == T_INT) {
r = LIR_OprFact::intConst(x);
} else {
ShouldNotReachHere();
}
if (!Assembler::is_simm13(x)) {
LIR_Opr tmp = new_register(type);
__ move(r, tmp);
return tmp;
}
return r;
}
void LIRGenerator::increment_counter(address counter, int step) {
void LIRGenerator::increment_counter(address counter, BasicType type, int step) {
LIR_Opr pointer = new_pointer_register();
__ move(LIR_OprFact::intptrConst(counter), pointer);
LIR_Address* addr = new LIR_Address(pointer, 0, T_INT);
LIR_Address* addr = new LIR_Address(pointer, type);
increment_counter(addr, step);
}
void LIRGenerator::increment_counter(LIR_Address* addr, int step) {
LIR_Opr temp = new_register(T_INT);
LIR_Opr temp = new_register(addr->type());
__ move(addr, temp);
LIR_Opr c = LIR_OprFact::intConst(step);
if (Assembler::is_simm13(step)) {
__ add(temp, c, temp);
} else {
LIR_Opr temp2 = new_register(T_INT);
__ move(c, temp2);
__ add(temp, temp2, temp);
}
__ add(temp, load_immediate(step, addr->type()), temp);
__ move(temp, addr);
}
void LIRGenerator::cmp_mem_int(LIR_Condition condition, LIR_Opr base, int disp, int c, CodeEmitInfo* info) {
LIR_Opr o7opr = FrameMap::O7_opr;
__ load(new LIR_Address(base, disp, T_INT), o7opr, info);
@@ -409,7 +417,7 @@ void LIRGenerator::do_MonitorExit(MonitorExit* x) {
LIR_Opr lock = FrameMap::G1_opr;
LIR_Opr hdr = FrameMap::G3_opr;
LIR_Opr obj_temp = FrameMap::G4_opr;
monitor_exit(obj_temp, lock, hdr, x->monitor_no());
monitor_exit(obj_temp, lock, hdr, LIR_OprFact::illegalOpr, x->monitor_no());
}
@@ -611,7 +619,6 @@ void LIRGenerator::do_CompareOp(CompareOp* x) {
left.load_item();
right.load_item();
LIR_Opr reg = rlock_result(x);
if (x->x()->type()->is_float_kind()) {
Bytecodes::Code code = x->op();
__ fcmp2int(left.result(), right.result(), reg, (code == Bytecodes::_fcmpl || code == Bytecodes::_dcmpl));
@@ -1040,7 +1047,9 @@ void LIRGenerator::do_InstanceOf(InstanceOf* x) {
LIR_Opr tmp1 = FrameMap::G1_oop_opr;
LIR_Opr tmp2 = FrameMap::G3_oop_opr;
LIR_Opr tmp3 = FrameMap::G4_oop_opr;
__ instanceof(out_reg, obj.result(), x->klass(), tmp1, tmp2, tmp3, x->direct_compare(), patching_info);
__ instanceof(out_reg, obj.result(), x->klass(), tmp1, tmp2, tmp3,
x->direct_compare(), patching_info,
x->profiled_method(), x->profiled_bci());
}
@@ -1089,12 +1098,12 @@ void LIRGenerator::do_If(If* x) {
// add safepoint before generating condition code so it can be recomputed
if (x->is_safepoint()) {
// increment backedge counter if needed
increment_backedge_counter(state_for(x, x->state_before()));
increment_backedge_counter(state_for(x, x->state_before()), x->profiled_bci());
__ safepoint(new_register(T_INT), state_for(x, x->state_before()));
}
__ cmp(lir_cond(cond), left, right);
// Generate branch profiling. Profiling code doesn't kill flags.
profile_branch(x, cond);
move_to_phi(x->state());
if (x->x()->type()->is_float_kind()) {
@@ -1159,7 +1168,7 @@ void LIRGenerator::put_Object_unsafe(LIR_Opr src, LIR_Opr offset, LIR_Opr data,
if (type == T_ARRAY || type == T_OBJECT) {
LIR_Opr tmp = new_pointer_register();
__ add(base_op, index_op, tmp);
addr = new LIR_Address(tmp, 0, type);
addr = new LIR_Address(tmp, type);
} else {
addr = new LIR_Address(base_op, index_op, type);
}

View File

@@ -465,12 +465,10 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
break;
#ifdef TIERED
case counter_overflow_id:
// G4 contains bci
oop_maps = generate_stub_call(sasm, noreg, CAST_FROM_FN_PTR(address, counter_overflow), G4);
// G4 contains bci, G5 contains method
oop_maps = generate_stub_call(sasm, noreg, CAST_FROM_FN_PTR(address, counter_overflow), G4, G5);
break;
#endif // TIERED
case new_type_array_id:
case new_object_array_id:
@@ -679,8 +677,15 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__ call_VM_leaf(L7_thread_cache, CAST_FROM_FN_PTR(address, SharedRuntime::exception_handler_for_return_address),
G2_thread, Oissuing_pc->after_save());
__ verify_not_null_oop(Oexception->after_save());
__ jmp(O0, 0);
__ delayed()->restore();
// Restore SP from L7 if the exception PC is a MethodHandle call site.
__ mov(O0, G5); // Save the target address.
__ lduw(Address(G2_thread, JavaThread::is_method_handle_return_offset()), L0);
__ tst(L0); // Condition codes are preserved over the restore.
__ restore();
__ jmp(G5, 0);
__ delayed()->movcc(Assembler::notZero, false, Assembler::icc, L7_mh_SP_save, SP); // Restore SP if required.
}
break;
@@ -1024,3 +1029,7 @@ void Runtime1::generate_handle_exception(StubAssembler* sasm, OopMapSet* oop_map
#undef __
#define __ masm->
const char *Runtime1::pd_name_for_address(address entry) {
return "<unknown function>";
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -34,14 +34,7 @@ define_pd_global(bool, ProfileTraps, false);
define_pd_global(bool, UseOnStackReplacement, true );
define_pd_global(bool, TieredCompilation, false);
define_pd_global(intx, CompileThreshold, 1000 ); // Design center runs on 1.3.1
define_pd_global(intx, Tier2CompileThreshold, 1500 );
define_pd_global(intx, Tier3CompileThreshold, 2000 );
define_pd_global(intx, Tier4CompileThreshold, 2500 );
define_pd_global(intx, BackEdgeThreshold, 100000);
define_pd_global(intx, Tier2BackEdgeThreshold, 100000);
define_pd_global(intx, Tier3BackEdgeThreshold, 100000);
define_pd_global(intx, Tier4BackEdgeThreshold, 100000);
define_pd_global(intx, OnStackReplacePercentage, 1400 );
define_pd_global(bool, UseTLAB, true );

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@@ -37,21 +37,8 @@ define_pd_global(bool, ProfileInterpreter, false);
define_pd_global(bool, ProfileInterpreter, true);
#endif // CC_INTERP
define_pd_global(bool, TieredCompilation, false);
#ifdef TIERED
define_pd_global(intx, CompileThreshold, 1000);
define_pd_global(intx, BackEdgeThreshold, 14000);
#else
define_pd_global(intx, CompileThreshold, 10000);
define_pd_global(intx, BackEdgeThreshold, 140000);
#endif // TIERED
define_pd_global(intx, Tier2CompileThreshold, 10000); // unused level
define_pd_global(intx, Tier3CompileThreshold, 10000);
define_pd_global(intx, Tier4CompileThreshold, 40000);
define_pd_global(intx, Tier2BackEdgeThreshold, 100000);
define_pd_global(intx, Tier3BackEdgeThreshold, 100000);
define_pd_global(intx, Tier4BackEdgeThreshold, 100000);
define_pd_global(intx, OnStackReplacePercentage, 140);
define_pd_global(intx, ConditionalMoveLimit, 4);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 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
@@ -30,5 +30,5 @@ public:
// Heuristic for pre-packing the pt/pn bit of a predicted branch.
bool is_backward_branch(Label& L) {
return L.is_bound() && code_end() <= locator_address(L.loc());
return L.is_bound() && insts_end() <= locator_address(L.loc());
}

View File

@@ -154,7 +154,7 @@ static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) {
}
static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value) {
assert(MinObjAlignmentInBytes == BytesPerLong, "need alternate implementation");
assert(MinObjAlignmentInBytes >= BytesPerLong, "need alternate implementation");
julong* to = (julong*)tohw;
julong v = ((julong)value << 32) | value;
@@ -162,7 +162,7 @@ static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value)
// and be equal to 0 on 64-bit platform.
size_t odd = count % (BytesPerLong / HeapWordSize) ;
size_t aligned_count = align_object_size(count - odd) / HeapWordsPerLong;
size_t aligned_count = align_object_offset(count - odd) / HeapWordsPerLong;
julong* end = ((julong*)tohw) + aligned_count - 1;
while (to <= end) {
DEBUG_ONLY(count -= BytesPerLong / HeapWordSize ;)

Some files were not shown because too many files have changed in this diff Show More