Compare commits

...

1384 Commits

Author SHA1 Message Date
J. Duke
ef906c89ce Merge 2017-07-05 18:43:09 +02:00
J. Duke
97a6b4b6e8 Merge 2017-07-05 18:43:05 +02:00
J. Duke
b5abced08b Merge 2017-07-05 18:43:01 +02:00
J. Duke
59726118ff Merge 2017-07-05 18:42:57 +02:00
J. Duke
9425da39e5 Merge 2017-07-05 18:42:53 +02:00
J. Duke
38c494e569 Merge 2017-07-05 18:42:49 +02:00
J. Duke
77a4ce5569 Merge 2017-07-05 18:42:42 +02:00
J. Duke
6750549bb0 Added tag jdk8-b79 for changeset a1313a8d90d1 2017-07-05 18:42:22 +02:00
J. Duke
950ddf6143 Merge 2017-07-05 18:42:22 +02:00
J. Duke
8ce6a3fbf9 Merge 2017-07-05 18:42:17 +02:00
J. Duke
356fb57e35 Merge 2017-07-05 18:42:13 +02:00
J. Duke
4fa873392e Merge 2017-07-05 18:42:09 +02:00
J. Duke
d9b7356004 Merge 2017-07-05 18:42:05 +02:00
J. Duke
f75bc2e199 Merge 2017-07-05 18:42:00 +02:00
J. Duke
eb80cad549 Merge 2017-07-05 18:41:55 +02:00
J. Duke
713c85dda8 Added tag jdk8-b78 for changeset 6d3dcd34b5b9 2017-07-05 18:41:34 +02:00
J. Duke
93a052bab3 Merge 2017-07-05 18:41:33 +02:00
J. Duke
2414951dd3 Merge 2017-07-05 18:41:29 +02:00
J. Duke
050eb5168e Merge 2017-07-05 18:41:19 +02:00
J. Duke
b72b8e194e Merge 2017-07-05 18:41:15 +02:00
J. Duke
b74c7b3808 Merge 2017-07-05 18:41:10 +02:00
J. Duke
7cd6e230ea Merge 2017-07-05 18:41:05 +02:00
J. Duke
8911e12adf Merge 2017-07-05 18:40:46 +02:00
J. Duke
ae06986c80 Added tag jdk8-b77 for changeset d17eb2e13e36 2017-07-05 18:40:21 +02:00
J. Duke
7ba83041b1 Merge 2017-07-05 18:40:20 +02:00
J. Duke
171e39a058 Merge 2017-07-05 18:40:16 +02:00
J. Duke
d0a89bf0ce Merge 2017-07-05 18:40:08 +02:00
J. Duke
86b46f2113 Merge 2017-07-05 18:40:04 +02:00
J. Duke
94d3e22c87 Merge 2017-07-05 18:39:58 +02:00
J. Duke
2907a0c10f Merge 2017-07-05 18:39:54 +02:00
J. Duke
d053ad2a28 Merge 2017-07-05 18:39:42 +02:00
J. Duke
918f015f18 Added tag jdk8-b76 for changeset f407160c280d 2017-07-05 18:39:14 +02:00
J. Duke
9a87fa5db9 Merge 2017-07-05 18:39:13 +02:00
J. Duke
89d052603d Merge 2017-07-05 18:39:09 +02:00
J. Duke
236fc341a2 Merge 2017-07-05 18:39:05 +02:00
J. Duke
154d04e929 Merge 2017-07-05 18:39:00 +02:00
J. Duke
b3c7ed26d3 Merge 2017-07-05 18:38:56 +02:00
J. Duke
421567fdaa Merge 2017-07-05 18:38:51 +02:00
J. Duke
511a59c696 Merge 2017-07-05 18:38:46 +02:00
J. Duke
828d2063d2 Added tag jdk8-b75 for changeset f1478a6d25fd 2017-07-05 18:38:33 +02:00
J. Duke
5f0d1aff63 Merge 2017-07-05 18:38:32 +02:00
J. Duke
25414e9507 Merge 2017-07-05 18:38:28 +02:00
J. Duke
64e10ad1ad Merge 2017-07-05 18:38:17 +02:00
J. Duke
4bd5ee8bdb Merge 2017-07-05 18:38:13 +02:00
J. Duke
80de74d575 Merge 2017-07-05 18:38:07 +02:00
J. Duke
12898a0d25 Merge 2017-07-05 18:38:03 +02:00
J. Duke
568e4e56e0 Merge 2017-07-05 18:37:42 +02:00
J. Duke
8a530c580d Added tag jdk8-b74 for changeset f627eff81962 2017-07-05 18:37:14 +02:00
J. Duke
75c48b0d1b Merge 2017-07-05 18:37:13 +02:00
J. Duke
bed477d90d Merge 2017-07-05 18:37:09 +02:00
J. Duke
0c10a5d7eb Merge 2017-07-05 18:37:04 +02:00
J. Duke
6c2dcf473c Merge 2017-07-05 18:36:58 +02:00
J. Duke
05154fcb04 Merge 2017-07-05 18:36:52 +02:00
J. Duke
a894ac0ae7 Merge 2017-07-05 18:36:48 +02:00
J. Duke
f0dc1b9881 Merge 2017-07-05 18:36:38 +02:00
J. Duke
7d55c30765 Added tag jdk8-b73 for changeset fe94b40ffd93 2017-07-05 18:36:12 +02:00
J. Duke
1c11f83e92 Merge 2017-07-05 18:36:11 +02:00
J. Duke
16753c9198 Merge 2017-07-05 18:36:08 +02:00
J. Duke
dd65c08868 Merge 2017-07-05 18:36:01 +02:00
J. Duke
0b803c8b53 Merge 2017-07-05 18:35:57 +02:00
J. Duke
0a22e173d6 Merge 2017-07-05 18:35:53 +02:00
J. Duke
3d2f01879c Merge 2017-07-05 18:35:49 +02:00
J. Duke
8cbe3d2743 Merge 2017-07-05 18:35:38 +02:00
J. Duke
be76fc517f Added tag jdk8-b72 for changeset 6725b3961f98 2017-07-05 18:35:27 +02:00
J. Duke
8261ee6da3 Merge 2017-07-05 18:35:26 +02:00
J. Duke
9c1e33d08c Merge 2017-07-05 18:35:22 +02:00
J. Duke
77fb006441 Merge 2017-07-05 18:35:18 +02:00
J. Duke
7d50a99bd8 Merge 2017-07-05 18:35:14 +02:00
J. Duke
c430497460 Merge 2017-07-05 18:35:11 +02:00
J. Duke
b975e9076b Merge 2017-07-05 18:35:07 +02:00
J. Duke
ad5c81704c Merge 2017-07-05 18:35:03 +02:00
J. Duke
f62e421be4 Added tag jdk8-b71 for changeset a41ada2ed4ef 2017-07-05 18:34:52 +02:00
J. Duke
e7187d14db Merge 2017-07-05 18:34:52 +02:00
J. Duke
404d7476b9 Merge 2017-07-05 18:34:47 +02:00
J. Duke
b390a90275 Merge 2017-07-05 18:34:39 +02:00
J. Duke
28e7395a79 Merge 2017-07-05 18:34:35 +02:00
J. Duke
7c037a69a2 Merge 2017-07-05 18:34:29 +02:00
J. Duke
caab605a3c Merge 2017-07-05 18:34:24 +02:00
J. Duke
30e0acc2eb Merge 2017-07-05 18:34:10 +02:00
J. Duke
ad2d6c7304 Added tag jdk8-b70 for changeset 0d625373c69e 2017-07-05 18:33:59 +02:00
J. Duke
78bc845d66 Merge 2017-07-05 18:33:58 +02:00
J. Duke
15c1ac891b Merge 2017-07-05 18:33:53 +02:00
J. Duke
5defb71047 Merge 2017-07-05 18:33:48 +02:00
J. Duke
922add969a Merge 2017-07-05 18:33:44 +02:00
J. Duke
5e32cc4aa1 Merge 2017-07-05 18:33:40 +02:00
J. Duke
9666b7da3f Merge 2017-07-05 18:33:36 +02:00
J. Duke
18c668e87a Merge 2017-07-05 18:33:29 +02:00
J. Duke
fe3ab5fb83 Added tag jdk8-b69 for changeset adb5171c554e 2017-07-05 18:33:13 +02:00
J. Duke
902594c3e6 Merge 2017-07-05 18:33:13 +02:00
J. Duke
4f99e62a5c Merge 2017-07-05 18:33:09 +02:00
J. Duke
167e25a35a Merge 2017-07-05 18:33:03 +02:00
J. Duke
9dfb5d8720 Merge 2017-07-05 18:32:59 +02:00
J. Duke
ee4833d707 Merge 2017-07-05 18:32:55 +02:00
J. Duke
a6b48817ff Merge 2017-07-05 18:32:51 +02:00
J. Duke
8ecb1333e7 Merge 2017-07-05 18:32:40 +02:00
J. Duke
5426c55692 Added tag jdk8-b68 for changeset cb33628d4e8f 2017-07-05 18:32:27 +02:00
J. Duke
faaa074af7 Merge 2017-07-05 18:32:26 +02:00
J. Duke
156097f517 Merge 2017-07-05 18:32:22 +02:00
J. Duke
35d6f09bb4 Merge 2017-07-05 18:32:16 +02:00
J. Duke
b8790e0e70 Merge 2017-07-05 18:32:12 +02:00
J. Duke
5ebc8f4779 Merge 2017-07-05 18:32:08 +02:00
J. Duke
1faf4f7e32 Merge 2017-07-05 18:32:03 +02:00
J. Duke
ce594a00c5 Merge 2017-07-05 18:31:45 +02:00
J. Duke
b2bf35c6d8 Added tag jdk8-b67 for changeset 76cc9bd3ece4 2017-07-05 18:31:28 +02:00
J. Duke
924beaaf2c Merge 2017-07-05 18:31:27 +02:00
J. Duke
90cbbab800 Merge 2017-07-05 18:31:23 +02:00
J. Duke
04266857c4 Merge 2017-07-05 18:31:19 +02:00
J. Duke
91c5b72633 Merge 2017-07-05 18:31:15 +02:00
J. Duke
5229273660 Merge 2017-07-05 18:31:12 +02:00
J. Duke
57c273a689 Merge 2017-07-05 18:31:08 +02:00
J. Duke
ab4646a034 Merge 2017-07-05 18:31:05 +02:00
J. Duke
b94c2e86de Added tag jdk8-b66 for changeset 17820b958ae8 2017-07-05 18:30:51 +02:00
J. Duke
81ecd2932e Merge 2017-07-05 18:30:50 +02:00
J. Duke
eedb7e6e6d Merge 2017-07-05 18:30:46 +02:00
J. Duke
594390779b Merge 2017-07-05 18:30:37 +02:00
J. Duke
4374464e64 Merge 2017-07-05 18:30:33 +02:00
J. Duke
160ee581b2 Merge 2017-07-05 18:30:29 +02:00
J. Duke
1113ececbf Merge 2017-07-05 18:30:25 +02:00
J. Duke
57b4c14b54 Merge 2017-07-05 18:30:15 +02:00
J. Duke
c7ff8ac152 Added tag jdk8-b65 for changeset a2cf4d4a4843 2017-07-05 18:29:57 +02:00
Erik Joelsson
737b863ce4 8004352: build-infra: Limit JOBS on large machines
Reviewed-by: mduigou
2013-03-04 16:45:07 +01:00
Alejandro Murillo
f3236a879e Added tag hs25-b21 for changeset 972d3f095a95 2013-03-01 04:45:51 -08:00
Alejandro Murillo
0960629d28 Merge 2013-03-01 04:45:51 -08:00
David Katleman
9ae41399f1 Merge 2013-02-28 20:30:34 -08:00
David Katleman
817e260afc Merge 2013-02-28 20:29:19 -08:00
David Katleman
86b53b9dd7 8009196: install doesn't define $(AR) as /usr/ccs/bin/ar, results in ar: Command not found
Reviewed-by: tbell
2013-02-28 19:30:43 -08:00
Vladimir Ivanov
528aec3f18 Merge 2013-02-28 15:31:03 -08:00
David Katleman
f21ded8eea Added tag jdk8-b79 for changeset eef229ae322b 2013-02-28 10:43:03 -08:00
David Katleman
0bd26c4c5b Added tag jdk8-b79 for changeset 630e3bc5b729 2013-02-28 10:42:40 -08:00
David Katleman
0eab6d54ad Added tag jdk8-b79 for changeset b258a0e45b83 2013-02-28 10:42:28 -08:00
David Katleman
14d7f14432 Added tag jdk8-b79 for changeset 1f581fc39f6b 2013-02-28 10:42:23 -08:00
David Katleman
c2043f5ac9 Added tag jdk8-b79 for changeset f2f591a26d5f 2013-02-28 10:42:09 -08:00
David Katleman
ae0385ccc0 Added tag jdk8-b79 for changeset 6cecdca1115d 2013-02-28 10:41:58 -08:00
David Katleman
ae5f0fafc4 Added tag jdk8-b79 for changeset 31943a427b7d 2013-02-28 10:41:46 -08:00
Bengt Rutisson
02472faab5 Merge 2013-02-28 09:01:08 +01:00
David Katleman
aaac35b3d7 Merge 2013-02-27 13:10:30 -08:00
Serguei Spitsyn
c26ee9d321 Merge 2013-02-27 12:20:34 -08:00
Vladimir Ivanov
3b1ccee969 Merge 2013-02-27 08:03:10 -08:00
Igor Ignatyev
50efb858e0 8007439: C2: adding successful message of inlining
Reviewed-by: kvn, vlivanov
2013-02-27 05:58:48 -08:00
David Chase
899bcf76ae 8007776: Test6852078.java timeouts
If more than 100 seconds and more than 100 iterations have both passed, then exit is allowed.

Reviewed-by: kvn
2013-02-26 15:38:24 -08:00
David Katleman
bed9464bce Merge 2013-02-26 13:23:55 -08:00
David Katleman
98d3004bd9 Merge 2013-02-26 13:23:06 -08:00
Rickard Bäckman
1a74b23a2f 8008340: [sampling] assert(upper->pc_offset() >= pc_offset) failed: sanity
Reviewed-by: kvn, sla
2013-02-26 14:09:52 +01:00
Roland Westrelin
c84424d4af 8007722: C2: "assert(tp->base() != Type::AnyPtr) failed: not a bare pointer" at machnode.cpp:376
GetAndSetP's MachNode should capture bottom type.

Reviewed-by: kvn
2013-02-26 12:18:30 +01:00
Dmitry Cherepanov
8936d472bd Merge 2013-02-26 12:54:39 +04:00
Roland Westrelin
fe92862089 8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
InitializeNode::can_capture_store() must check that the captured store doesn't overwrite a memory location that is loaded before the store.

Reviewed-by: kvn
2013-02-25 14:13:04 +01:00
Kelly O'Hair
2ff5bb1c92 8004712: build-infra: Move user guide from web pages to repository
Just the initial work, will need more changes.

Reviewed-by: tbell
2013-02-23 10:47:01 -08:00
Serguei Spitsyn
f85789e68a Merge 2013-02-22 10:16:51 -08:00
Alejandro Murillo
c444c1faea 8008692: new hotspot build - hs25-b21
Reviewed-by: jcoomes
2013-02-22 10:12:00 -08:00
Alejandro Murillo
96dbc17346 Added tag hs25-b20 for changeset 93430469429d 2013-02-22 10:02:06 -08:00
Alejandro Murillo
73094fada5 Merge 2013-02-22 10:02:06 -08:00
Coleen Phillimore
b8b9434a9f 8000797: NPG: is_pseudo_string_at() doesn't work
Zero Symbol* for constant pool strings to indicate pseudo_strings (objects that aren't strings).  Clean up JVM_CONSTANT_Object and unused flags.

Reviewed-by: sspitsyn, jrose
2013-02-22 08:36:42 -05:00
Staffan Larsen
3e1c15cc0a 7165259: Remove BugSpot
Reviewed-by: coleenp, mgronlun
2013-02-22 10:03:02 +01:00
Thomas Ng
7a31c1d5f3 8008691: Build failure (NEWBUILD=false) on Mac
Reviewed-by: art, anthony
2013-02-21 17:55:33 -08:00
Vladimir Danushevsky
b799a85392 Merge 2013-02-21 11:39:24 -08:00
David Katleman
60f0c3f6fc Added tag jdk8-b78 for changeset 27bb87e628ae 2013-02-21 11:13:58 -08:00
David Katleman
410fa3840e Added tag jdk8-b78 for changeset 3cd100d3bd6b 2013-02-21 11:13:23 -08:00
David Katleman
b08ac437b7 Added tag jdk8-b78 for changeset bfa2a6f233d5 2013-02-21 11:13:10 -08:00
David Katleman
fbc01baf4a Added tag jdk8-b78 for changeset 909304be06a3 2013-02-21 11:13:04 -08:00
David Katleman
4e3d30888f Added tag jdk8-b78 for changeset e3645986b98a 2013-02-21 11:12:50 -08:00
David Katleman
4b358696a6 Added tag jdk8-b78 for changeset 23887ff7a8ee 2013-02-21 11:12:38 -08:00
David Katleman
9946dda799 Added tag jdk8-b78 for changeset e29ed094b804 2013-02-21 11:12:21 -08:00
Vladimir Danushevsky
5a8e8cf6b4 Merge 2013-02-21 09:08:04 -08:00
Vladimir Ivanov
1a03134bc8 Merge 2013-02-21 06:29:43 -08:00
Erik Joelsson
53ae53637d 8007903: 8005583's changes to make/install-rules.gmk need to made to jdk/make/closed/InstallWrapper.gmk
Reviewed-by: tbell, ohair
2013-02-21 14:23:12 +01:00
Erik Joelsson
b70f9bfef4 8008451: Make mac builds on 10.8 work on 10.7
Reviewed-by: ohair, ddehaven
2013-02-21 14:16:56 +01:00
Erik Joelsson
d56a0e26bf 8008451: Make mac builds on 10.8 work on 10.7
Reviewed-by: ohair, ddehaven
2013-02-21 14:16:15 +01:00
Erik Joelsson
11cd94d40b 8007387: "sed: RE error: illegal byte sequence" when building images on Mac
Reviewed-by: tbell
2013-02-21 14:14:59 +01:00
Zhengyu Gu
7b43f3402c 8008071: Crashed in promote_malloc_records() with Kitchensink after 19 days
Added NULL pointer check for arena size record

Reviewed-by: sspitsyn, dholmes
2013-02-21 07:50:48 -05:00
Bengt Rutisson
88ec03b622 Merge 2013-02-21 13:13:22 +01:00
Bill Pittore
e3f64880d0 Merge 2013-02-20 23:29:26 -05:00
Ron Durbin
9ff6dfb849 6799919: Recursive calls to report_vm_out_of_memory are handled incorrectly
Report_vm_out_of_memory() should allow VMError.report_and_die() to handle multiple out of native memory errors.

Reviewed-by: dcubed, dholmes, coleenp, acorn
2013-02-20 19:36:25 -08:00
John Cuthbertson
1d1641be2f 8008188: Add regression test for 8005875
Add regression test for crash seen in 8005875. Test is run with G1 and PGCT=0 and issues "jcmd <pid> Thread.print" against itself. Without the fix for 8005875 the test will crash.

Reviewed-by: brutisso
2013-02-20 12:52:13 -08:00
Serguei Spitsyn
78a1d5e64b Merge 2013-02-20 08:51:44 -08:00
Harold Seigel
2f3d1da4f6 Merge 2013-02-20 07:42:01 -05:00
Harold Seigel
2d47fd6658 8004495: [parfait] False positive Buffer overflow in hotspot/src/os/linux/vm/os_linux.cpp
Delete the questionable source code because it is for no-longer supported versions of Linux.

Reviewed-by: mikael, coleenp
2013-02-20 07:16:23 -05:00
Filipp Zhinkin
bfe250c236 8006628: NEED_TEST for JDK-8002870
Regression test for 8000311. Verifies that PLABStats works with zero parallel GC threads.

Reviewed-by: jmasa, johnc
2013-02-19 16:22:28 -08:00
David Holmes
345e7e8175 8008481: Dependency analyzer needs exclusion for profile builds with JFR disabled
Reviewed-by: alanb
2013-02-19 17:32:10 -05:00
Coleen Phillimore
99fa0d1e99 Merge 2013-02-19 13:33:39 -05:00
Mikael Gerdin
1d468be4b1 8006753: fix failed for JDK-8002415 White box testing API for HotSpot
Modify WhiteBoxAPI to use interface classes from test/testlibrary instead, add ClassFileInstaller to resolve the boot class path issue

Reviewed-by: ctornqvi, dsamersoff, coleenp, kvn
2013-02-19 18:45:49 +01:00
Eric McCorkle
b56b3bc9aa 8007153: Ensure that MethodParameters API works properly with RedefineClasses
Adds code to HotSpot to properly update MethodParameter attributes' constant pool indexes when redefineClasses is called

Reviewed-by: coleenp, sspitsyn
2013-02-19 11:36:52 -05:00
Harold Seigel
301152ddb7 6749267: Signal handler should save/restore errno
Save errno before processing signal, then restore it.

Reviewed-by: acorn, sspitsyn
2013-02-19 08:51:56 -05:00
Alan Bateman
48fbf1ca88 Merge 2013-02-19 11:32:46 +00:00
David Holmes
8c52b75d0f 8008424: Isolate PROFILE make variable from incidental setting in the environment
Reviewed-by: erikj, alanb
2013-02-19 06:27:20 -05:00
Alan Bateman
8bb4f96911 8007097: (profiles) Build needs test to ensure that profile definitions are updated
Reviewed-by: dholmes, erikj
2013-02-19 11:08:43 +00:00
Vladimir Kozlov
656949d014 8004867: VM crashing with assert "share/vm/opto/node.hpp:357 - assert(i < _max) failed: oob"
Added few checks and early bailout from Superword optimization to avoid such cases in a future.

Reviewed-by: roland, twisti
2013-02-18 16:47:15 -08:00
David Chase
8d2496d7de 7102300: performance warnings cause results diff failure in Test6890943
Strip lines matching the performance warning from the output before diff.

Reviewed-by: kvn
2013-02-18 15:08:39 -08:00
David Chase
d867a3f9a8 8008180: Several tests in compiler/5091921 need more time to run
Added an explicit timeouts.

Reviewed-by: kvn, twisti
2013-02-18 14:29:16 -08:00
David Holmes
aa38d46a14 Merge 2013-02-18 15:35:57 -05:00
David Holmes
25c1411706 Merge 2013-02-18 15:35:05 -05:00
Staffan Larsen
1439d121c2 8007779: os::die() on solaris should generate core file
Reviewed-by: dholmes, rbackman
2013-02-18 12:49:53 +01:00
Erik Joelsson
7e8a3b3d11 8008295: build-infra: Cleanup in Import.gmk
Reviewed-by: ohrstrom, tbell
2013-02-18 11:27:43 +01:00
Erik Joelsson
bf12ddea85 8008294: build-infra: Build-infra closed fails on solaris 11.1
Reviewed-by: ohrstrom, dholmes, tbell
2013-02-18 11:26:23 +01:00
Erik Joelsson
2a904298d2 Merge 2013-02-18 10:48:51 +01:00
Erik Joelsson
b6f45f1098 Merge 2013-02-18 10:46:22 +01:00
Staffan Larsen
5265514689 8007901: SA: Don't read flag values as constants
Reviewed-by: dholmes, mikael
2013-02-18 10:43:07 +01:00
Alan Bateman
3a353cb8e0 8007436: (profiles) Add JSR-310 to Compact Profiles contents
Reviewed-by: dholmes, erikj
2013-02-18 08:57:06 +00:00
Roland Westrelin
260e822459 8007959: Use expensive node logic for more math nodes
Use expensive node logic for other more math nodes.

Reviewed-by: kvn
2013-02-18 09:06:24 +01:00
David Holmes
e57875e8ab Merge 2013-02-17 16:44:55 -05:00
David Holmes
e0ece27387 Merge 2013-02-17 16:44:28 -05:00
David Holmes
390cc1d7a1 Merge 2013-02-17 16:44:19 -05:00
Bill Pittore
51da3d1337 Merge 2013-02-15 21:53:55 -05:00
Alejandro Murillo
5159c925af 8008286: new hotspot build - hs25-b20
Reviewed-by: jcoomes
2013-02-15 13:36:56 -08:00
Alejandro Murillo
96300f3ad9 Added tag hs25-b19 for changeset 9895f0eb0c56 2013-02-15 13:27:21 -08:00
Alejandro Murillo
3611e527c8 Merge 2013-02-15 13:27:20 -08:00
Joseph Provino
8d24b760cd Merge 2013-02-15 14:42:37 -05:00
Dmitry Samersoff
dd9a6fc8eb Merge 2013-02-15 10:29:23 -08:00
Erik Joelsson
7dc8dad176 8005879: Add -DMAC_OS_X_VERSION_MAX_ALLOWED=1070 to builds on Mac
Reviewed-by: ohair
2013-02-15 10:41:15 +01:00
Erik Joelsson
d49ae7856e 8005879: Add -DMAC_OS_X_VERSION_MAX_ALLOWED=1070 to builds on Mac
Reviewed-by: ohair
2013-02-15 10:40:46 +01:00
Staffan Larsen
c023aba8f4 Merge 2013-02-15 10:08:25 +01:00
Staffan Larsen
19f22d8bbc 8008102: SA on OS X does not stop the attached process
Reviewed-by: dholmes, rbackman
2013-02-15 08:54:12 +01:00
Lana Steuck
12ac02b1d3 Merge 2013-02-14 22:12:15 -08:00
Lana Steuck
e2244526fa Merge 2013-02-14 22:11:58 -08:00
Lana Steuck
b6991ff139 Merge 2013-02-14 22:11:49 -08:00
Tao Mao
95bd43cd0a 8007764: Wrong initialized value of max_gc_pause_sec for an instance of class AdaptiveSizePolicy
This is a fix of an initialization mistake for class AdaptiveSizePolicy.

Reviewed-by: jmasa
2013-02-14 14:43:01 -08:00
Mikael Vidstedt
d258e2c069 8007639: Workaround for ccache in vm.make is incorrect
Fixed makefile logic to correctly special case JRE_RELEASE_VERSION and vm_version.o

Reviewed-by: dholmes, erikj
2013-02-14 12:36:07 -08:00
David Katleman
32bced14f5 Added tag jdk8-b77 for changeset d97b73add494 2013-02-14 11:44:21 -08:00
David Katleman
14251d6480 Added tag jdk8-b77 for changeset e587650e9aa6 2013-02-14 11:44:09 -08:00
David Katleman
08c118806c Added tag jdk8-b77 for changeset 9df84d06d040 2013-02-14 11:43:54 -08:00
David Katleman
827f8f788b Added tag jdk8-b77 for changeset bd0373289b63 2013-02-14 11:43:52 -08:00
David Katleman
2e048c5ce6 Added tag jdk8-b77 for changeset 739a5754a11e 2013-02-14 11:43:44 -08:00
David Katleman
78687c4aaf Added tag jdk8-b77 for changeset e637fdab418c 2013-02-14 11:43:36 -08:00
David Katleman
0b69873d73 Added tag jdk8-b77 for changeset b2c2a48dae5c 2013-02-14 11:43:27 -08:00
Bharadwaj Yadavalli
ff4bbcd501 8007736: VerifyError for static method in interface
Reviewed-by: dholmes, acorn
2013-02-14 14:33:35 -05:00
Joseph Provino
469a44bcd6 8003581: UseG1GC is not properly accounted for by INCLUDE_ALTERNATE_GCS
Fix warning messages when selected garbage collectors are excluded from the minimal jvm.

Reviewed-by: dholmes, cjplummer
2013-02-14 11:08:58 -05:00
Joseph Provino
1db22b304c 8006878: Some non-existent GC source files are in the minimalVM exclude list
CmsPermGen.cpp, psPermGen.cpp have been removed.  yieldWorkingGroup.cpp typo is fixed. immutableSpace.cpp was in the list twice.

Reviewed-by: dholmes, jmasa
2013-02-14 11:07:24 -05:00
Vladimir Ivanov
8952875c84 Merge 2013-02-14 05:36:59 -08:00
Staffan Larsen
bf91374f3f 8004840: Jstack seems to output unnecessary information in 7u9
Reviewed-by: dholmes, coleenp, sspitsyn, rbackman
2013-02-14 13:08:15 +01:00
Bengt Rutisson
20bc6a3d8c Merge 2013-02-14 11:01:05 +01:00
Bengt Rutisson
c2f4ba73be 8006398: Add regression tests for deprectated GCs
Reviewed-by: ehelin, jwilhelm, jmasa
2013-02-14 09:11:43 +01:00
Lana Steuck
9b523dc375 Merge 2013-02-13 17:57:31 -08:00
Lana Steuck
187c4688e0 Merge 2013-02-13 17:55:44 -08:00
Jia-Hong Chen
20987e6144 8008017: The fix for 8005129 does not build on Windows
Reviewed-by: prr, jgodinez
2013-02-13 15:06:47 -08:00
Karen Kinnear
a8dfb771d1 Merge 2013-02-13 16:15:09 -05:00
Daniel D. Daugherty
ba9cf66b48 8007935: java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh should use $COMPILEJAVA for javac
Reviewed-by: sspitsyn, alanb
2013-02-13 13:22:31 -08:00
Bharadwaj Yadavalli
db31a896d8 8007888: jdk fix default method: VerifyError: Illegal use of nonvirtual
Recognize VM generated method in old verifier. With 8004967

Reviewed-by: coleenp, acorn
2013-02-13 16:09:13 -05:00
Lana Steuck
61363dfe99 Merge 2013-02-13 13:01:16 -08:00
Kumar Srinivasan
4c2a4c9b4a 8005750: [parfait] Memory leak at jdk/src/share/bin/parse_manifest.c
Reviewed-by: jjh
2013-02-13 12:56:46 -08:00
Lana Steuck
56014d30fc Merge 2013-02-13 12:38:28 -08:00
Lana Steuck
0691bb6c06 Merge 2013-02-13 11:57:59 -08:00
Xueming Shen
48a592be5a 8008161: Regression: j.u.TimeZone.getAvailableIDs(rawOffset) returns non-sorted list
To return a sorted list

Reviewed-by: lancea, naoto
2013-02-13 11:49:34 -08:00
Vinnie Ryan
8f58ebc261 8007755: Support the logical grouping of keystores
Reviewed-by: mullan
2013-02-13 19:40:51 +00:00
Lana Steuck
3bfd774a99 Merge 2013-02-13 11:25:58 -08:00
Lana Steuck
264f4dbe27 Merge 2013-02-13 11:25:14 -08:00
Lana Steuck
21e48ed16d Merge 2013-02-13 11:21:14 -08:00
Dmitry Samersoff
403e23ec70 8008095: TEST_BUG: JDK-8002048 one more testcase failure on Solaris
Fixed couple of more Solaris shell incompatibilities

Reviewed-by: chegar
2013-02-13 21:06:30 +04:00
Eric Mccorkle
8ccde1a96e 8006345: Report Synthesized Parameters in java.lang.reflect.Parameter API
8006896: ClassReader doesn't see MethodParameters attr for method of anon inner class
8007098: Output Synthesized Parameters to MethodParameters Attributes

Correctly report synthesized and mandated parameters

Reviewed-by: mcimadamore, jjg
2013-02-13 17:04:21 +00:00
Serguei Spitsyn
a89fa83b32 Merge 2013-02-13 08:42:03 -08:00
Igor Ignatyev
034705ee13 8006683: Add WhiteBox API to testing of compiler
Reviewed-by: kvn, vlivanov
2013-02-13 08:29:04 -08:00
Vinnie Ryan
fdcad628a4 Merge 2013-02-13 16:03:24 +00:00
Vinnie Ryan
3d55cc1e02 8007934: algorithm parameters for PBE Scheme 2 not decoded correctly in PKCS12 keystore
Reviewed-by: mullan
2013-02-13 16:01:26 +00:00
Petr Pchelko
959ddfce4a 8005629: javac warnings compiling java.awt.EventDispatchThread and sun.awt.X11.XIconWindow
Removed macosx specific workaround from shared code and made macosx use public API

Reviewed-by: art, serb
2013-02-13 15:32:50 +00:00
Petr Pchelko
42b8720bef 7079260: InputContext leaks memory
Replaced strong refs with weak refs

Reviewed-by: art, serb
2013-02-13 15:27:29 +00:00
Vladislav Karnaukhov
f44592861c 4199622: RFE: JComboBox shouldn't sending ActionEvents for keyboard navigation
Reviewed-by: alexp, alexsch
2013-02-13 19:23:09 +04:00
Vera Akulova
dfdd79f3ee 7132383: [macosx] bug6596966.java should be adapted for Mac
Reviewed-by: serb, alexsch
2013-02-13 19:06:31 +04:00
Vera Akulova
30a25e41d2 7161759: TEST_BUG: java/awt/Frame/WindowDragTest/WindowDragTest.java fails to compile, should be modified
Added @build Util jtreg tag

Reviewed-by: serb, alexsch
2013-02-13 18:01:18 +04:00
Joel Borggrén-Franck
e0eba88c1b 8007278: Rename j.l.r.AnnotatedElement.getAnnotations(Class) to getAnnotationsByType(Class)
Reviewed-by: darcy, abuckley
2013-02-13 10:36:36 +01:00
Joel Borggrén-Franck
14c0c8eed8 8007279: Rename javax.l.model.element.Element.getAnnotations(Class) to getAnnotationsByType(Class)
Reviewed-by: darcy, abuckley
2013-02-13 10:33:13 +01:00
Rickard Bäckman
05d4ff0383 8008088: SA can hang the VM
Reviewed-by: mgronlun, sla, dholmes
2013-02-13 09:46:19 +01:00
Markus Grönlund
7d28698730 8007312: null check signal semaphore in os::signal_notify windows
Reviewed-by: dholmes, sla
2013-02-13 11:23:46 +01:00
Werner Dietl
464abcb4fa 8008077: update reference impl for type-annotations
Reviewed-by: jjg
2013-02-12 17:15:29 -08:00
Krystal Mo
13c5c423d6 Merge 2013-02-12 14:33:19 -08:00
Zhengyu Gu
4e7de85e4d 8006691: Remove jvm_version_info->is_kernel_jvm field
Remove is_kernel_jvm field in jvm_version_info structure, as kernel VM has been deprecated

Reviewed-by: mchung
2013-02-12 14:47:36 -05:00
Maurizio Cimadamore
1ec5dfafe0 8007464: Add graph inference support
Add support for more aggressive type-inference scheme

Reviewed-by: jjg
2013-02-12 19:25:09 +00:00
Phil Race
7ca3c9dd84 8007748: MacOSX build error : cast of type 'SEL' to 'uintptr_t' (aka 'unsigned long') is deprecated; use sel_getName instead
Reviewed-by: anthony
2013-02-12 09:58:21 -08:00
Stephen Colebourne
e7cdd4a93a 8007392: JSR 310: DateTime API Updates
Integration of JSR310 Date/Time API for M7

Co-authored-by: Roger Riggs <roger.riggs@oracle.com>
Co-authored-by: Masayoshi Okutsu <masayoshi.okutsu@oracle.com>
Co-authored-by: Patrick Zhang <patrick.zhang@oracle.com>
Reviewed-by: darcy, alanb, naoto
2013-02-12 09:27:48 -08:00
Stephen Colebourne
73c043f49e 8007392: JSR 310: DateTime API Updates
8007520: Update date/time classes in j.util and j.sql packages
8007572: Replace existing jdk timezone data at <java.home>/lib/zi with JSR310's tzdb

Integration of JSR310 Date/Time API for M7

Co-authored-by: Roger Riggs <roger.riggs@oracle.com>
Co-authored-by: Masayoshi Okutsu <masayoshi.okutsu@oracle.com>
Co-authored-by: Patrick Zhang <patrick.zhang@oracle.com>
Reviewed-by: darcy, alanb, naoto
2013-02-12 09:25:43 -08:00
Zhengyu Gu
ef7aa05f20 8007950: Undo hs_file permission change
Reverse hs_err file permission back to 0666, as early push was premature

Reviewed-by: dsamersoff, dcubed, acorn
2013-02-12 12:19:28 -05:00
Krystal Mo
851ae93451 8002169: TEST_BUG: compiler/7009359/Test7009359.java sometimes times out
Make the test less prone to timeout by reducing the amount of iteration and allowing main to be compiled

Reviewed-by: jrose
2013-02-12 07:39:42 -08:00
Vicente Romero
9bdfca5e56 8006334: javap, JavapTask constructor breaks with null pointer exception if parameter options is null
Reviewed-by: jjg
2013-02-12 13:36:56 +00:00
Dmitry Samersoff
232b814f68 8007786: JDK-8002048 testcase doesn't work on Solaris
Test built in into Solaris shell doesn't have -e operator

Reviewed-by: sla, sspitsyn
2013-02-12 16:02:14 +04:00
Roland Westrelin
c401bf065d 7197327: 40% regression on 8 b41 comp 8 b40 on specjvm2008.mpegaudio on oob
Add support for expensive nodes.

Reviewed-by: kvn
2013-02-12 12:56:11 +01:00
Matherey Nunez
024075fabb 8004822: RFE to write language model API tests for repeating annotations based on the spec updates
Reviewed-by: jjg, abuckley
2013-02-12 11:28:45 +01:00
Lana Steuck
e8d53ad94a Merge 2013-02-11 16:15:09 -08:00
Lana Steuck
048185ef4c Merge 2013-02-11 16:14:27 -08:00
Lana Steuck
b21082a545 Merge 2013-02-11 16:12:53 -08:00
Morris Meyer
527b0d661a 8003252: PPC: move MacroAssembler into separate file
Moved MacroAssembler into separate file

Reviewed-by: twisti, kvn, dlong
2013-02-11 14:47:04 -08:00
Joe Darcy
44e3518c32 8007574: Provide isFunctionalInterface in javax.lang.model
Reviewed-by: jjg
2013-02-11 13:37:41 -08:00
Coleen Phillimore
faea95b8d3 8007320: NPG: move method annotations
Allocate method annotations and attach to ConstMethod if present

Reviewed-by: dcubed, jiangli, sspitsyn, iklam
2013-02-11 14:06:22 -05:00
Morris Meyer
46677b6d86 8003251: ARM: move MacroAssembler into separate file
Moved MacroAssembler into separate file

Reviewed-by: twisti, kvn, dlong
2013-02-11 10:38:11 -08:00
Krystal Mo
212f30a18e 8006430: TraceTypeProfile is a product flag while it should be a diagnostic flag
Make sure all diagnostic and experimental flag kinds are checked in Flag::is_unlocked()

Reviewed-by: kvn
2013-02-10 22:35:38 -08:00
David Chase
43c01fd8b6 8007402: Code cleanup to remove Parfait false positive
Add array access range check

Reviewed-by: kvn
2013-02-09 12:55:09 -08:00
Jonathan Gibbons
b30e5c6313 8007610: javadoc doclint does not work with -private
Reviewed-by: darcy
2013-02-08 17:35:16 -08:00
Zhengyu Gu
ee53020f94 Merge 2013-02-08 16:56:03 -08:00
Morris Meyer
6a910ea8f2 8006851: When TieredCompilation is set, max code cache should be bumped to 256mb
Set ReservedCodeCacheSize to (default value)*5 when TieredCompilation is on.

Reviewed-by: kvn, twisti
2013-02-08 15:39:43 -08:00
Vladimir Kozlov
231bbf39f4 8007708: compiler/6855215 assert(VM_Version::supports_sse4_2())
Added missing UseSSE42 check. Also added missing avx2 assert for vpermq instruction.

Reviewed-by: roland, twisti
2013-02-08 15:07:17 -08:00
Zhengyu Gu
1e2b7bcabb Merge 2013-02-08 14:32:13 -08:00
Zhengyu Gu
15d1949971 Merge 2013-02-08 13:55:41 -08:00
Zhengyu Gu
ef59a25f71 8006691: Remove jvm_version_info.is_kernel_jvm field
Removed is_kernel_jvm from jvm_version_info as Kernel VM has been deprecated

Reviewed-by: mchung, coleenp
2013-02-08 16:31:48 -05:00
Zhengyu Gu
4e766f0ef1 8007791: More Restricted hs_err file permission
Enforce more restricted hs_file permission

Reviewed-by: acorn, dcubed, dsamersoff
2013-02-08 14:49:01 -05:00
Jia-Hong Chen
c3e1c6d07b 8005261: [parfait] #415 sun/java2d/opengl/GLXSurfaceData.c Memory leak of pointer 'glxsdo' allocated with malloc
Reviewed-by: prr, vadim
2013-02-08 11:36:18 -08:00
Jia-Hong Chen
410876d0ee 8005129: [parfait] #1122 - #1130 native/sun/awt/medialib/mlib_Image*.c Memory leak of pointer 'k' allocated with mlib_malloc
Reviewed-by: prr, vadim
2013-02-08 11:25:42 -08:00
Mikhail Cherkasov
fc6a9c2d07 8005932: Java 7 on mac os x only provides text clipboard formats
Reviewed-by: alexp, denis
2013-02-08 22:08:10 +04:00
Serguei Spitsyn
6ff685b4c8 Merge 2013-02-08 09:14:06 -08:00
Alejandro Murillo
2fd28ebb43 8007801: new hotspot build - hs25-b19
Reviewed-by: jcoomes
2013-02-08 08:16:00 -08:00
Alejandro Murillo
59bf14707f Added tag hs25-b18 for changeset f3f52401a78c 2013-02-08 08:07:07 -08:00
Alejandro Murillo
6c172dae73 Merge 2013-02-08 08:07:06 -08:00
Staffan Larsen
a6fefc1cae Merge 2013-02-08 14:05:36 +01:00
Staffan Larsen
e563c0ecf4 8006423: SA: NullPointerException in sun.jvm.hotspot.debugger.bsd.BsdThread.getContext(BsdThread.java:67)
Do not rely on mach thread port names to identify threads from SA

Reviewed-by: dholmes, minqi, rbackman
2013-02-08 12:48:24 +01:00
Christian Tornqvist
92053d4fb2 8007434: Write tests for 8006298
Four tests written for 8006298

Reviewed-by: mgerdin, coleenp
2013-02-08 10:42:24 +01:00
Vicente Romero
59318f1b2e 7167125: Two variables after the same operation in a inner class return different results
Reviewed-by: jjg, mcimadamore
2013-02-08 09:21:19 +00:00
Vicente Romero
561631ea44 8005931: javac doesn't set ACC_STRICT for classes with package access
Reviewed-by: mcimadamore
2013-02-08 09:15:27 +00:00
Vicente Romero
bba9417038 7166455: javac doesn't set ACC_STRICT bit on <clinit> for strictfp class
Reviewed-by: mcimadamore
2013-02-08 09:12:37 +00:00
Bengt Rutisson
8cf98587f7 Merge 2013-02-08 10:08:40 +01:00
Sonali Goel
f1442d8261 7195131: Update 2 compiler combo tests for repeating annotations to include package and default use cases
Reviewed-by: darcy
2013-02-07 20:47:06 -08:00
Vladimir Danushevsky
ac1a75df8c Merge 2013-02-07 20:40:14 -05:00
Bill Pittore
9cad40fca6 Merge 2013-02-07 16:05:48 -05:00
David Katleman
4f0f5861ed Added tag jdk8-b76 for changeset aa274a6f970a 2013-02-07 12:33:21 -08:00
David Katleman
45f09caa8d Added tag jdk8-b76 for changeset 0da59c40187c 2013-02-07 12:33:10 -08:00
David Katleman
2683bbdf2f Added tag jdk8-b76 for changeset 95266e83c5e7 2013-02-07 12:33:01 -08:00
David Katleman
b0b7e821de Added tag jdk8-b76 for changeset 503de5a7b5ef 2013-02-07 12:32:59 -08:00
David Katleman
2ac871a5a1 Added tag jdk8-b76 for changeset faf3f7a9a86f 2013-02-07 12:32:50 -08:00
David Katleman
a68198e6bc Added tag jdk8-b76 for changeset 2fea158ee664 2013-02-07 12:32:39 -08:00
David Katleman
0813162608 Added tag jdk8-b76 for changeset 6bb57fea1027 2013-02-07 12:32:32 -08:00
Vladimir Ivanov
268a4d605c Merge 2013-02-07 12:23:51 -08:00
Daniel D. Daugherty
d5cad58ba3 Merge 2013-02-06 15:22:32 -08:00
Jim Holmlund
c88c3bb683 8007698: jtreg test T6306137.java won't compile with ASCII encoding
Reviewed-by: ksrini
2013-02-06 23:10:35 +00:00
Jia-Hong Chen
fb6927c36c 8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc()
Reviewed-by: prr, vadim
2013-02-06 14:45:02 -08:00
Daniel D. Daugherty
8ef946f380 7182152: Instrumentation hot swap test incorrect monitor count
Add/refine new tracing support using -XX:TraceRedefineClasses=16384.

Reviewed-by: coleenp, acorn, sspitsyn
2013-02-06 14:31:37 -08:00
Volker Simonis
285249963c 8006807: C2 crash due to out of bounds array access in Parse::do_multianewarray
Check ndimensions before accessing length[i] element

Reviewed-by: kvn
2013-02-06 11:33:49 -08:00
Mike Duigou
62b85e6a17 8006594: Add jdk_core target to jdk/test/Makefile
Reviewed-by: alanb
2013-02-06 11:28:25 -08:00
Alan Bateman
b74073c0db 8007405: Update java.lang.reflect API to replace SYNTHESIZED with MANDATED
Reviewed-by: darcy
2013-02-11 20:16:18 +00:00
Daniel D. Daugherty
249b55b573 8007420: add test for 6805864 to com/sun/jdi, add test for 7182152 to java/lang/instrument
Reviewed-by: coleenp, sspitsyn
2013-02-11 10:07:01 -08:00
Dmitry Samersoff
be1edfbb6f 8007536: Incorrect copyright header in JDP files
Copyright header in JDP files missed the "classpath exception" rule.

Reviewed-by: mikael
2013-02-11 18:44:22 +04:00
Kumar Srinivasan
83b9b38fc5 8007902: [unpack200] incorrect BootstrapMethods attribute
Reviewed-by: jjh
2013-02-10 08:49:39 -08:00
Kumar Srinivasan
8a4107ab64 8007519: [unpack200] produces bad class files when producing BootstrapMethods attribute
Reviewed-by: alanb
2013-02-10 08:07:59 -08:00
Weijun Wang
76953b4d1e 8007761: NTLM coding errors
Reviewed-by: chegar
2013-02-09 16:43:58 +08:00
Weijun Wang
d8233ec657 8001104: Unbound SASL service: the GSSAPI/krb5 mech
Reviewed-by: valeriep
2013-02-09 16:43:49 +08:00
Doug Lea
724f325f44 8005697: Add StampedLock
Reviewed-by: chegar, alanb, dice, martin
2013-02-09 08:35:57 +00:00
Joe Darcy
826105d548 8005623: Retrofit FunctionalInterface annotations to core platform interfaces
Reviewed-by: mduigou, chegar, alanb
2013-02-08 16:00:23 -08:00
Naoto Sato
ea5819f8d3 8007038: ArrayIndexOutOfBoundsException on calling localizedDateTime().print() with JapaneseChrono
Reviewed-by: okutsu
2013-02-08 09:35:14 -08:00
Katja Kantserova
19982b2e80 8007142: Add utility classes for writing better multiprocess tests in jtreg
Reviewed-by: alanb, rbackman
2013-02-07 11:22:04 +01:00
Martin Buchholz
925fe9142b 8006995: java launcher fails to open executable JAR > 2GB
Use O_LARGEFILE consistently when opening jar files

Reviewed-by: alanb, sherman
2013-02-06 17:59:54 -08:00
Lance Andersen
218dc713ff 8006505: additional changes for JSR 310 support
Reviewed-by: naoto, ulfzibis
2013-02-06 14:15:05 -05:00
Mike Duigou
58d8702881 8006595: Use jdk/test/Makefile targets in preference to local definitions
Reviewed-by: alanb
2013-02-06 11:12:46 -08:00
Mike Duigou
574897c629 8004726: Link bug ids to jbs rather than monaco
Reviewed-by: ohair, chegar, katleman
2013-02-06 11:09:24 -08:00
Jonathan Gibbons
305cf1f98b 8007566: DocLint too aggressive with not allowed here: <p>
Reviewed-by: mcimadamore
2013-02-06 07:49:31 -08:00
Alexander Scherbatiy
ac96c41fe8 8000326: Focus unable to traverse in the menubar
Reviewed-by: alexsch, malenkov
2013-02-06 18:25:06 +04:00
Maurizio Cimadamore
681e6c377e 8007479: Refactor DeferredAttrContext so that it points to parent context
Move DeferredAttrNode out of DeferredAttrContext; add support for nested deferred contexts

Reviewed-by: jjg
2013-02-06 14:04:43 +00:00
Maurizio Cimadamore
0336a57511 8007463: Cleanup inference related classes
Make Infer.InferenceContext an inner class; adjust bound replacement logic in Type.UndetVar

Reviewed-by: jjg
2013-02-06 14:03:39 +00:00
Dmitry Samersoff
c572f25040 8007277: JDK-8002048 testcase fails to compile
Sun.* classes is not included to ct.sym file and symbol file have to be ignored

Reviewed-by: alanb
2013-02-06 16:53:47 +04:00
Chris Hegarty
dab327e501 8007625: race with nested repos in /common/bin/hgforest.sh
Reviewed-by: dholmes, ohair, ohrstrom
2013-02-06 11:36:19 +00:00
Erik Helin
919ef8e0df 8004924: NPG: jmap -heap output should contain ClassMetaspaceSize value
Reviewed-by: stefank, mgerdin
2013-02-06 07:48:02 +01:00
Erik Helin
8f73f7d041 Merge 2013-02-26 22:31:35 +01:00
Poonam Bajaj
3720c9565f Merge 2013-02-26 08:58:20 -08:00
Bengt Rutisson
2023570fb1 Merge 2013-02-26 11:52:06 +01:00
Poonam Bajaj
62634823f9 Merge 2013-02-23 17:40:33 -08:00
John Cuthbertson
fb8617f293 8007221: G1: concurrent phase durations do not state the time units ("secs")
Add timer units to concurrent marking phases where the units were missing.

Reviewed-by: jmasa, ysr
2013-02-22 11:01:01 -08:00
Vladimir Kempik
050d7c9d90 8008546: Wrong G1ConfidencePercent results in GUARANTEE(VARIANCE() > -1.0) FAILED
Reviewed-by: brutisso, johnc
2013-02-21 23:58:05 -08:00
Jesper Wilhelmsson
ceb2baae92 8008314: Unimplemented() Atomic::load breaks the applications
Jlong atomics isn't fully implemented om all 32-bit platforms so we try to avoid it. In this case the atomic add wasn't needed.

Reviewed-by: dholmes, dlong
2013-02-21 11:16:50 +01:00
Erik Helin
2a4bf8ddd8 8008536: Add HotSpot support for printing class loader statistics for JMap
Reviewed-by: sla, brutisso
2013-02-20 16:41:23 +01:00
John Cuthbertson
ce66b0aad0 Merge 2013-02-05 22:24:36 -08:00
Jonathan Gibbons
23ca241597 8007485: test creates .class files in the test/ directory
Reviewed-by: mcimadamore
2013-02-05 21:55:41 -08:00
David Katleman
36a5ccb73f Merge 2013-02-05 18:55:24 -08:00
David Katleman
873c276a26 Merge 2013-02-05 18:54:59 -08:00
David Katleman
a0a52a2b85 Merge 2013-02-05 18:54:27 -08:00
David Katleman
67dea32d8c Merge 2013-02-05 18:54:24 -08:00
David Katleman
d9a61c7ea3 Merge 2013-02-05 18:54:11 -08:00
David Katleman
076aeb3106 Merge 2013-02-05 18:54:09 -08:00
Lana Steuck
bab241d2e7 Merge 2013-02-05 11:11:53 -08:00
Lana Steuck
750e587f23 Merge 2013-02-05 11:10:07 -08:00
Jim Holmlund
8985a7c2ac 8007504: Remove @ignore from tests that no longer need it
Reviewed-by: mcimadamore
2013-02-05 18:55:13 +00:00
John Cuthbertson
c2bb152e6c 8005032: G1: Cleanup serial reference processing closures in concurrent marking
Reuse the parallel reference processing oop closures during serial reference processing.

Reviewed-by: brutisso
2013-02-05 09:13:05 -08:00
Igor Ignatyev
014d9489bb 8006613: adding reason to made_not_compilable
Reviewed-by: kvn, vlivanov
2013-02-05 08:25:51 -08:00
Erik Joelsson
99468dc6c0 8007524: build-infra: Incremental build of tools.jar broken
Reviewed-by: tbell
2013-02-05 16:50:05 +01:00
Eric McCorkle
3d09f6b621 8007389: Remove uses of _ as identifier in jaxp
Reviewed-by: lancea, joehw
2013-02-05 14:56:34 +00:00
Vinnie Ryan
85c0519ca6 8007483: attributes are ignored when loading keys from a PKCS12 keystore
Reviewed-by: mullan
2013-02-05 14:25:47 +00:00
Jaroslav Bachorik
631c9a9bad 8005791: Remove java.beans.* imports from com.sun.jmx.mbeanserver.Introspector
Reviewed-by: rbackman
2013-02-05 12:36:32 +01:00
Jaroslav Bachorik
d1a58e452a 7170447: Intermittent DeadListenerTest.java failure
Due to asynchronous nature of processing server notifications it may happen that an "unregister" notification ha$

Reviewed-by: sjiang
2013-02-05 12:28:47 +01:00
David Holmes
de47c5722f Merge 2013-02-05 00:59:40 -08:00
Coleen Phillimore
6101f88a80 Merge 2013-02-04 22:59:45 -08:00
Lana Steuck
dea2648931 Merge 2013-02-04 22:38:11 -08:00
Lana Steuck
7a0ded349d Merge 2013-02-04 22:37:44 -08:00
Jeremy Manson
329bc97900 8006508: Wrong frame constructor is called in os_linux_x86.cpp
Reviewed-by: dholmes, coleenp
2013-02-04 23:53:10 -05:00
John Cuthbertson
ea33ae6c4d Merge 2013-02-04 19:40:27 -08:00
Jonathan Gibbons
05a047b442 8007492: DocumentationTool cannot locate standard doclet when invoked from JRE
Reviewed-by: darcy
2013-02-04 18:14:24 -08:00
Joe Darcy
920d11993c 8007113: Upgrade AnnotatedElement.isAnnotionPresent to be a default method
Reviewed-by: chegar, jfranck
2013-02-04 17:56:29 -08:00
Jonathan Gibbons
4d8014cefa 8007490: NPE from DocumentationTool.run
Reviewed-by: darcy
2013-02-04 15:30:10 -08:00
David Holmes
581f36e1cc Merge 2013-02-04 18:08:53 -05:00
David Holmes
eb1726c151 Merge 2013-02-04 18:08:50 -05:00
David Holmes
2cc65f1eb7 Merge 2013-02-04 18:08:42 -05:00
Coleen Phillimore
3b65d23bc8 Merge 2013-02-04 13:51:01 -08:00
Jon Masamitsu
0b84b16b84 Merge 2013-02-04 13:26:04 -08:00
John Cuthbertson
1333948266 8001384: G1: assert(!is_null(v)) failed: narrow oop value can never be zero
Flush any deferred card mark before a Java thread exits.

Reviewed-by: brutisso, jmasa
2013-02-04 13:24:57 -08:00
Jon Masamitsu
e13466742d Merge 2013-02-04 12:51:25 -08:00
Jia-Hong Chen
78b547afa7 8005052: [parfait] #416 X11SurfaceData.c UNINITIALISED OR MISSING RETURN VALUE
8005054: [parfait] #417 X11SurfaceData.c UNINITIALISED OR MISSING RETURN VALUE

Reviewed-by: prr, vadim
2013-02-04 12:04:38 -08:00
Jon Masamitsu
83473ea55d Merge 2013-02-04 12:01:07 -08:00
Xueming Shen
db8ced219f 8006295: Base64.Decoder.wrap(java.io.InputStream) returns InputStream which throws unspecified IOException on attempt to decode invalid Base64 byte stream
8006315: Base64.Decoder decoding methods are not consistent in treating non-padded data
8006530: Base64.getMimeDecoder().decode() throws exception for non-base64 character after adding =

Updated the spec to describe the expected behave explicitly and the implementation to follow

Reviewed-by: alanb, chegar, lancea
2013-02-04 11:58:43 -08:00
Volker Simonis
37d83019d0 8007475: Memory stomp with UseMallocOnly
Fix off-by-one error

Reviewed-by: coleenp, hseigel
2013-02-04 13:14:12 -05:00
Eric McCorkle
16990e896a 8006949: Update hotspot for MethodParameters format change
8006907: Hotspot should reject classfiles with multiple MethodParameters attributes

Update to Hotspot's processing of MethodParameters attributes in classfiles

Reviewed-by: coleenp, jrose
2013-02-04 13:05:32 -05:00
Vinnie Ryan
ddbfa5fe53 8006994: Cleanup PKCS12 tests to ensure streams get closed
Reviewed-by: mullan
2013-02-04 17:20:26 +00:00
Konstantin Shefov
5712b216b4 7077259: [TEST_BUG] [macosx] Test work correctly only when default L&F is Metal
Reviewed-by: serb, alexsch
2013-02-04 16:01:06 +00:00
Sergey Bylokhov
7add1f152d 8004821: Graphics2D.drawPolygon() fails with IllegalPathStateException
Reviewed-by: prr, flar
2013-02-04 19:50:06 +04:00
Petr Pchelko
ab34438938 8005405: [macosx] Drag and Drop: wrong animation when dropped outside any drop target
Changed the calculation of the drag image offset

Reviewed-by: serb, kizune
2013-02-04 13:54:53 +00:00
Harold Seigel
1831def9cc 8000968: NPG: UseCompressedKlassPointers asserts with ObjectAlignmentInBytes for > 32G CompressedOops
Pick a base that works for both CompressedOpps alignment and CompressedKlassPtrs alignment.

Reviewed-by: kvn, roland
2013-02-04 08:26:02 -05:00
Roland Westrelin
da5499f4ed 8007144: Incremental inlining mistakes some call sites for dead ones and doesn't inline them
Wrong detection for dead call sites.

Reviewed-by: kvn
2013-02-04 11:30:37 +01:00
Mikael Vidstedt
eaa663b241 8007403: Incorrect format arguments in adlparse.cpp
Reviewed-by: kvn, twisti
2013-02-04 10:28:39 -08:00
Erik Joelsson
2b800f01d9 8007275: build-infra: Create final-images target
Reviewed-by: tbell
2013-02-04 11:02:03 +01:00
Erik Joelsson
fe5aed65c2 8007268: build-infra: configure reports Solaris needs gcc for deploy, but logs don't indicate it's used
Reviewed-by: tbell, katleman
2013-02-04 10:58:26 +01:00
Erik Joelsson
2708349f7c 8007093: build-infra: Make should fail if spec is older than configure files
Reviewed-by: tbell
2013-02-04 10:53:38 +01:00
Roland Westrelin
f13dbb00cf 8005114: VM is crashing in ciKlass*ciObjArrayKlass::element_klass() if metaspaces are full
Missing test for loaded klass in c1

Reviewed-by: kvn
2013-02-04 09:11:21 +01:00
Harold Seigel
6c6a537471 Merge 2013-02-03 17:12:31 -05:00
Harold Seigel
812262d16b 7197672: There are issues with shared data on windows
On Windows, set rw protection on the CDS file just before removing it.

Reviewed-by: dcubed, iklam
2013-02-03 16:49:16 -05:00
Dmitry Samersoff
302a583c08 8002048: Protocol to discovery of manageable Java processes on a network
Introduce a protocol to discover manageble Java instances across a network subnet, JDP

Reviewed-by: sla, dfuchs
2013-02-03 22:28:08 +04:00
Dmitry Samersoff
eea117f3e5 8002048: Protocol to discovery of manageable Java processes on a network
Introduce a protocol to discover manageble Java instances across a network subnet, JDP

Reviewed-by: sla, dfuchs
2013-02-03 21:39:58 +04:00
Brian Burkhalter
3f02516d3e 6471906: java.lang.NegativeArraySizeException in tenToThe
Reviewed-by: darcy
2013-02-03 18:20:24 +04:00
Vicente Romero
a4a897ce52 7199823: javac generates inner class that can't be verified
Reviewed-by: jjg, mcimadamore
2013-02-03 02:31:30 +00:00
Vicente Romero
a9f424c887 8005075: Pool.Method, and Pool.Variable redundant Symbol field should be removed
Reviewed-by: jjg
2013-02-02 21:04:56 +00:00
Ragini Prasad
e618b1556c 8007135: tools/launcher/VersionCheck.java failing with new tool jabswitch
Reviewed-by: ksrini, mduigou
2013-02-02 12:08:43 -08:00
Christian Tornqvist
898965f458 8000363: runtime/7158988/FieldMonitor.java fails with exception
Removed unnecessary shell script in the test.

Reviewed-by: coleenp, sla
2013-02-02 20:13:27 +01:00
Chris Hegarty
b61bb15030 8007322: untangle ftp protocol from general networking URL tests
Reviewed-by: alanb
2013-02-02 17:15:13 +00:00
Christian Tornqvist
8734c66d55 8005013: Add NMT tests
Add tests for the Native Memory Tracking feature, includes regression tests for 8005936 and 8004802

Reviewed-by: zgu, coleenp
2013-02-02 16:34:10 +01:00
Yumin Qi
82206bd7f5 Merge 2013-02-02 03:51:01 -08:00
Christian Tornqvist
ac8a131b61 Merge 2013-02-02 08:46:48 +01:00
Yumin Qi
4bc9ed2c1f Merge 2013-02-01 22:41:34 -08:00
Christian Tornqvist
2195d1d5e4 Merge 2013-02-02 07:24:29 +01:00
Kumar Srinivasan
8da1d4a40c 8007428: [launcher] add tools/launcher/FXLauncherTest.java to ProblemList.txt
Reviewed-by: mchung
2013-02-01 22:18:18 -08:00
Kumar Srinivasan
81a6d7fb01 8003549: (pack200) assertion errors when processing lambda class files with IMethods
Add more check for opcode, sketch provided by jrose

Reviewed-by: jrose
2013-02-01 22:12:52 -08:00
Jiangli Zhou
7eb8af5534 Merge 2013-02-01 19:36:55 -08:00
Joe Darcy
0050c5b4fb 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder
Reviewed-by: shade
2013-02-01 19:30:02 -08:00
Mikael Vidstedt
26b2bbe306 8007257: NPG: metaspace.cpp: Incorrect arguments in calls to err_msg
Fix size checks in assert and corrected some print formats. Also reviewed by vitalyd@gmail.com.

Reviewed-by: coleenp, sspitsyn
2013-02-01 17:21:53 -08:00
Christian Tornqvist
111ddcc827 8005012: Add WB APIs to better support NMT testing
Add WB API functions to enable better NMT testing

Reviewed-by: dholmes, zgu
2013-02-01 23:48:08 +01:00
Yumin Qi
bae6c82c7a Merge 2013-02-01 14:42:43 -08:00
John Cuthbertson
d701ede8bb 8006894: G1: Number of marking threads missing from PrintFlagsFinal output
Set ConcGCThreads to the calculated number of marking threads.

Reviewed-by: jmasa, ysr
2013-02-01 13:17:04 -08:00
Brian Burkhalter
854e269f20 5035569: Formatter should document that %a conversion unsupported for BigDecimal args
Reviewed-by: darcy
2013-02-01 21:01:44 +00:00
Joe Darcy
c2e77030a1 8001614: Include annotation type to documented supported-ness
Reviewed-by: alanb, jjg, tbell
2013-02-01 13:01:26 -08:00
Jiangli Zhou
7cadb57785 Merge 2013-02-01 15:25:37 -05:00
Jonathan Gibbons
8f90cd0025 8007344: javac may not make tree end positions and/or doc comments available to processors and listeners
Reviewed-by: darcy
2013-02-01 12:01:03 -08:00
Yumin Qi
d907dfa21e Merge 2013-02-01 10:57:06 -08:00
Harold Seigel
4a1c674d5b Merge 2013-02-01 13:30:12 -05:00
Harold Seigel
a2966dd62d 8006298: Specifying malformed JFR options (-XX:+FlightRecorderOptions) outputs non-sensical error
Change error messages for malformed options so the messages are more useful.

Reviewed-by: mikael, kvn, nloodin
2013-02-01 14:14:54 -05:00
Tim Bell
6b4b68a145 8006808: mapfile use check in jdk/make/common/shared/Defs-solaris.gmk is throwing 'egrep: syntax error'
Use a valid egrep expression in the non-SPARC case

Reviewed-by: dholmes
2013-02-01 09:16:19 -08:00
Jonathan Gibbons
7ee6242d0c 8007305: DPrinter: provide better usage message
Reviewed-by: mcimadamore
2013-02-01 08:36:15 -08:00
Jonathan Gibbons
81e9d881ca 8007306: DPrinter: improve display of impl-class, internal tag/kind, and external tag/kind
Reviewed-by: mcimadamore
2013-02-01 08:33:48 -08:00
Andrew Brygin
01ea5d17ec 8004801: The image of BufferedImage.TYPE_INT_ARGB is blank
Reviewed-by: prr
2013-02-01 20:06:27 +04:00
Jayashree Viswanathan
38f3a59c9a 8006536: [launcher] removes trailing slashes on arguments
Reviewed-by: ksrini, akhil
2013-02-01 07:25:51 -08:00
Fredrik Öhrström
97d1424b48 Merge 2013-02-01 11:22:41 +01:00
Chris Hegarty
d0830009e8 8006395: Race in async socket close on Linux
Reviewed-by: alanb, dsamersoff
2013-02-01 06:51:37 +00:00
Serguei Spitsyn
932c29e08e 8006731: JSR 292: the VM_RedefineClasses::rewrite_cp_refs_in_method() must support invokedynamic
The invokedynamic bytecode ref to a CP entry needs to be checked and fixed as well.

Reviewed-by: coleenp, twisti
2013-01-31 20:11:14 -08:00
Serguei Spitsyn
da8ccb9375 8006546: JSR 292: typos in the ConstantPool::copy_cp_impl()
Simple typos that need to be fixed

Reviewed-by: coleenp, twisti
2013-01-31 20:09:16 -08:00
Serguei Spitsyn
823c749bd1 8006542: JSR 292: the VM_RedefineClasses::append_entry() must support invokedynamic entry kinds
Need a support for invokedynamic entry kinds when new and old constant pools are merged.

Reviewed-by: coleenp, twisti
2013-01-31 20:07:18 -08:00
Roger Riggs
9bf4d2f978 8004353: Generated html is wrong for overview.html; content has incorrect css footer class
Reviewed-by: jjg
2013-01-31 19:31:37 -08:00
Jonathan Gibbons
64ef3bfccc 8007329: minor issues in impl class hierarchry for DCTree.* classes
Reviewed-by: darcy
2013-01-31 19:19:40 -08:00
Joe Darcy
71b457cb97 8007351: Malformed copyright statements in typeAnnotations test directory
Reviewed-by: jjg
2013-01-31 18:58:17 -08:00
Yumin Qi
b543c19bac 8000973: SA on windows thread inspection is broken
After bug 7161732, On Windows SA could not find correct address of thread_id of OSThread since _thread_id moved to end of the class . The presupposition of the address is following thread handle no longer stands. Fix by adding thread_id field to OSThread and getting the  address directly from OSThread.

Reviewed-by: nloodin, sspitsyn
2013-01-31 17:43:01 -08:00
David Katleman
2ccecb9e10 Added tag jdk8-b75 for changeset dbafd8b0d8a2 2013-01-31 17:04:55 -08:00
David Katleman
79896f3eaf Added tag jdk8-b75 for changeset cfe93cb07f19 2013-01-31 17:04:47 -08:00
David Katleman
7c22c50e9e Added tag jdk8-b75 for changeset bef9d985cc1c 2013-01-31 17:04:40 -08:00
David Katleman
34d99c6b39 Added tag jdk8-b75 for changeset 504959da18bb 2013-01-31 17:04:37 -08:00
David Katleman
545ef0e5fe Added tag jdk8-b75 for changeset 3b129a5ff9fd 2013-01-31 17:04:28 -08:00
David Katleman
7ecc657cee Added tag jdk8-b75 for changeset 5aa96ebbc95e 2013-01-31 17:04:24 -08:00
David Katleman
f9329eb66f Added tag jdk8-b75 for changeset a86f171d15a1 2013-01-31 17:04:19 -08:00
Weijun Wang
0c6cb9cdc2 8006564: Test sun/security/util/Oid/S11N.sh fails with timeout on Linux 32-bit
Reviewed-by: alanb
2013-02-01 07:39:41 +08:00
Brian Burkhalter
f7f0768c22 6355704: (fmt) %f formatting of BigDecimals is incorrect
Reviewed-by: darcy
2013-01-31 14:29:19 -08:00
Lana Steuck
15cde403c4 Merge 2013-01-31 14:10:14 -08:00
Lana Steuck
ad121b14cb Merge 2013-01-31 14:10:02 -08:00
Tim Bell
6b6febce98 8006933: Need to use nawk on Solaris to avoid awk limitations
Reviewed-by: erikj, dholmes, dsamersoff
2013-01-31 13:31:30 -08:00
Mike Duigou
665fca9d60 8006709: Add minimal support of MacOSX platform for NetBeans Projects
Adds support for MacOSX platform and architecture detection. Other minor updates (-source/target 1.8)

Reviewed-by: ohair
2013-01-31 13:27:04 -08:00
Xueming Shen
320ce960ce 8007298: Base64.getMimeDecoder().decode() throws IAE for a single non-base64 character
8006526: Base64.Decoder.decode(String) spec contains a copy-paste mistake

To ignore single non-base64 char in mime decoding

Reviewed-by: alanb
2013-01-31 13:13:14 -08:00
Joe Darcy
757d9cdeb9 8007115: Refactor regression tests for java.lang.reflect.Parameter
Reviewed-by: emc
2013-01-31 12:23:04 -08:00
Joe Darcy
4484857b50 8007313: Remove use of {ContainerFor/ContainedBy} from langtools
Reviewed-by: jjg
2013-01-31 12:16:03 -08:00
Joe Darcy
9101ca61f5 8005832: Remove java.lang.annotation.{ContainedBy, ContainerFor} annotation types
Reviewed-by: mduigou
2013-01-31 12:13:21 -08:00
Xueming Shen
907f0724ce 8005394: Base64.Decoder/Encoder.wrap(XStream) don't throw NPE for null args passed
To check null for dec/enc.wrap methods

Reviewed-by: alanb
2013-01-31 11:09:36 -08:00
David Buck
b3fa7187ae 7042126: (alt-rt) HashMap.clone implementation should be re-examined
Test case for cr7042126. Issue only found in OracleJDK, but test case is valid for OpenJDK as well

Reviewed-by: mduigou
2013-01-31 10:55:15 -08:00
John Cuthbertson
7d2ccf3a21 8005875: G1: Kitchensink fails with ParallelGCThreads=0
Check that the concurrent marking worker gang exists in ConcurrentMark::print_worker_threads_on(). Changes were also reviewed by Vitaly Davidovich <vitalyd@gmail.com>.

Reviewed-by: brutisso
2013-01-31 10:45:09 -08:00
Lana Steuck
c78a8aad38 Merge 2013-01-31 10:23:49 -08:00
Lana Steuck
40c0ad3990 Merge 2013-01-31 10:22:25 -08:00
Pete Brunet
018fbffe54 7179482: Component.accessibleContext and JComponent.accessibleContext refactoring
Reviewed-by: art, anthony, alexsch
2013-01-31 18:51:17 +04:00
Leonid Romanov
d843dec3b7 8007006: [macosx] Closing subwindow loses main window menus
Reviewed-by: anthony
2013-01-31 18:25:59 +04:00
Fredrik Öhrström
2b389730e2 8006872: Stop creating four jars with identical content in the new build system
Reviewed-by: erikj
2013-01-31 14:03:42 +01:00
Fredrik Öhrström
c2b707c559 8006872: Stop creating four jars with identical content in the new build system
Reviewed-by: erikj
2013-01-31 14:02:58 +01:00
Fredrik Öhrström
ba0917c531 8006872: Stop creating four jars with identical content in the new build system
Reviewed-by: erikj
2013-01-31 14:02:44 +01:00
Fredrik Öhrström
676769c08f 8006872: Stop creating four jars with identical content in the new build system
Reviewed-by: erikj
2013-01-31 14:02:29 +01:00
Fredrik Öhrström
45c58805e7 8006872: Stop creating four jars with identical content in the new build system
Reviewed-by: erikj
2013-01-31 14:01:45 +01:00
Fredrik Öhrström
9f5b40123d 8006872: Stop creating four jars with identical content in the new build system
Reviewed-by: erikj
2013-01-31 14:00:09 +01:00
Joel Borggrén-Franck
34e1726860 8005712: Simplify support for repeating annotations in j.l.r.AnnotatedElement
8004919: AnnotationSupport uses possibly half-constructed AnnotationType instances

Implements the simplified semantics for repeating annotations and removes the incorrect obtaining of an AnnotationType

Reviewed-by: darcy, abuckley
2013-01-31 10:10:34 +01:00
David Katleman
9af4557880 Merge 2013-01-30 13:39:23 -08:00
David Katleman
5725cfdc73 Merge 2013-01-30 13:04:22 -08:00
Alejandro Murillo
294ab2b404 Merge 2013-01-30 10:18:33 -08:00
Jonathan Gibbons
c3cd43825b 8007034: debug printer for javac internals
Reviewed-by: mcimadamore
2013-01-30 09:47:12 -08:00
Jonathan Gibbons
ebc0ebf54d 8007096: DocLint parsing problems with some comments
Reviewed-by: mcimadamore
2013-01-30 09:40:54 -08:00
Lana Steuck
58717e9087 Merge 2013-01-29 20:19:48 -08:00
Lana Steuck
b034f7ca19 Merge 2013-01-29 20:16:12 -08:00
Erik Joelsson
a1d7653c19 8006873: SWAT-b74 msvcr100.dll does not have the permission for all
Reviewed-by: alanb, tbell
2013-01-29 16:35:24 +01:00
Stefan Karlsson
e8860a177b 8004710: NPG: jmap could throw sun.jvm.hotspot.types.WrongTypeException after PermGen removal
When calculating live object regions, make sure that the alignment reserve, at the end of a TLAB, is excluded.

Reviewed-by: jmasa, brutisso
2013-01-29 10:51:33 +01:00
Joel Borggrén-Franck
b29b479461 8004698: Implement Core Reflection for Type Annotations
Reviewed-by: darcy
2013-01-29 10:32:49 +01:00
Karen Kinnear
733d5fdd65 Merge 2013-01-28 09:33:55 -08:00
Bharadwaj Yadavelli
cb255a0269 8004967: Default method cause VerifyError: Illegal use of nonvirtual
Recognize VM generated method in old verifier

Reviewed-by: acorn, coleenp
2013-01-28 10:55:30 -05:00
Karen Kinnear
b28f16c910 Merge 2013-01-28 10:34:07 -05:00
Jesper Wilhelmsson
2447f369f6 6348447: Specifying -XX:OldSize crashes 64-bit VMs
Heap size will be set to allow for OldSize to fit. Also reviewed by vitalyd@gmail.com

Reviewed-by: ehelin, jmasa
2013-01-28 15:41:45 +01:00
Erik Joelsson
7d75509a22 Merge 2013-01-28 14:23:20 +01:00
Erik Joelsson
8be9f14166 Merge 2013-01-28 14:23:09 +01:00
Karen Kinnear
3f92d0764c Merge 2013-01-27 21:58:34 -05:00
Vicente Romero
b5148d30e2 8006944: javac, combo tests should print out the number of threads used
Reviewed-by: mcimadamore
2013-01-27 19:38:44 +00:00
Dean Long
0a2347e0ba Merge 2013-01-27 01:07:09 -08:00
Lana Steuck
f018e9352d Merge 2013-01-26 19:24:46 -08:00
Lana Steuck
f76350f541 Merge 2013-01-26 19:22:51 -08:00
Lana Steuck
d6e0250020 Merge 2013-01-26 18:25:33 -08:00
Lana Steuck
739b41a21e Merge 2013-01-26 18:24:49 -08:00
Eric Mccorkle
c2419823c8 8006503: JVM_PrintStackTrace is not used in JDK
Reviewed-by: alanb, darcy
2013-01-26 16:57:02 +00:00
Morris Meyer
7d8f623180 6518907: cleanup IA64 specific code in Hotspot
Removed unused IA64 specific code

Reviewed-by: twisti, kvn, dholmes
2013-01-25 16:50:33 -08:00
David Chase
89b8658977 8006500: compiler/8004741/Test8004741.java fails intermediately
Rewrote the test to be more reliable, add test for invalid size exception

Reviewed-by: kvn
2013-01-25 16:09:14 -08:00
Morris Meyer
6c80586b40 8005811: Turn off TierdCompilation in JDK8 trunk for all platforms
Disable tiered compilation in jdk8 because of CodeCache and performance anomalies

Reviewed-by: kvn, twisti
2013-01-25 16:31:47 -08:00
Igor Ignatyev
1a9e6be809 8005439: no message about inline method if it specifed by CompileCommand
Reviewed-by: kvn, vlivanov
2013-02-01 03:02:01 -08:00
Igor Ignatyev
a25db953cc 8006410: allocating without ResourceMark when CompileCommand was specified
Reviewed-by: kvn, vlivanov
2013-02-01 02:50:23 -08:00
Yumin Qi
fe8363948e Merge 2013-01-25 13:47:52 -08:00
Ioi Lam
93b845e21b 6479360: PrintClassHistogram improvements
Jcmd <pid> GC.class_stats (UnlockDiagnosticVMOptions)

Reviewed-by: coleenp, hseigel, sla, acorn
2013-01-25 15:06:18 -05:00
Zhengyu Gu
fc0efc91c8 8000692: Remove old KERNEL code
Removed depreciated kernel VM source code from hotspot VM

Reviewed-by: dholmes, acorn
2013-01-25 10:04:08 -05:00
Yumin Qi
f3c57efb11 Merge 2013-01-25 04:23:49 -08:00
Alejandro Murillo
0c7d523859 8006827: new hotspot build - hs25-b18
Reviewed-by: jcoomes
2013-01-25 03:03:23 -08:00
Alejandro Murillo
bf0716e7e4 Merge 2013-01-25 03:02:56 -08:00
Alejandro Murillo
6e9aeb3520 Added tag hs25-b17 for changeset f767fc368725 2013-01-25 02:36:28 -08:00
Alejandro Murillo
d7fb5addc5 Merge 2013-01-25 02:36:28 -08:00
Christian Tornqvist
25189c1a6a 8006413: Add utility classes for writing better multiprocess tests in jtreg
Add a few utility classes to test/testlibrary to support multi process testing in jtreg tests. Added a test case for one of the utility classes. Also reviewed by Vitaly Davidovich

Reviewed-by: brutisso, dholmes, vlivanov, nloodin, mgerdin
2013-01-25 10:14:22 +01:00
Yunda
19303cc71d 8005278: Serviceability Agent: jmap -heap and jstack -m fail
BinaryTreeDictionary is typedef'ed as AFLBinaryTreeDictionary in vmStructs and in SA we still use old name for that. FreeList now is a template based class which is not reflect in SA type library. When SA does calculation of heap for CMS, the former will cause failure to retrieve BinaryTreeDictionary  sine the rename. The later will fail wherever it is used in SA.

Reviewed-by: dholmes, sla, coleenp
2013-01-24 23:30:45 -08:00
Serguei Spitsyn
020fe75e67 8005128: JSR 292: the mlvm redefineClassInBootstrap test crashes in ConstantPool::compare_entry_to
When constant pool is copied in merge_constant_pools the invokedynamic operands must be copied before.

Reviewed-by: coleenp, twisti
2013-01-24 22:13:32 -08:00
David Katleman
90c6fdd506 Added tag jdk8-b74 for changeset 2d74b1d7456b 2013-01-24 16:49:37 -08:00
David Katleman
686adf319b Added tag jdk8-b74 for changeset 64054e252871 2013-01-24 16:49:20 -08:00
David Katleman
bdd8df2f1b Added tag jdk8-b74 for changeset f0f3e46c8780 2013-01-24 16:49:01 -08:00
David Katleman
23ff2911e3 Added tag jdk8-b74 for changeset 6ab75b6a0432 2013-01-24 16:48:57 -08:00
David Katleman
86f89a0768 Added tag jdk8-b74 for changeset 8d54b69d4504 2013-01-24 16:48:45 -08:00
David Katleman
ad11d38f92 Added tag jdk8-b74 for changeset 5a4f1fb4c6ef 2013-01-24 16:48:39 -08:00
David Katleman
5288b84f0a Added tag jdk8-b74 for changeset dde885cc8685 2013-01-24 16:48:33 -08:00
Ioi Lam
27c881b2fb 8006280: Need to reorder metadata structures to reduce size (64-bit)
Reordered Klass, InstanceKlass and Method to save 8 bytes each

Reviewed-by: coleenp, jiangli
2013-01-24 10:57:38 -08:00
Bill Pittore
deceb833bf 8005722: Assert in c1_LIR.hpp incorrect wrt to number of register operands
In LIR_OpVisitState::visit() the receiver operand is processed twice

Reviewed-by: roland, vladidan
2013-01-24 13:27:54 -05:00
Vladimir Kozlov
4de970006b Merge 2013-02-12 09:54:34 -08:00
Bill Pittore
9bb5656e4b Merge 2013-02-08 16:08:17 -05:00
Joseph Provino
83321b989a 8003539: Minimal VM don't react to -Dcom.sun.management and -XX:+ManagementServer
A warning message should be displayed if these options are used with the Minimal VM.

Reviewed-by: dholmes, dsamersoff
2013-02-05 13:32:34 -05:00
Krystal Mo
c06a8276fe Merge 2013-01-24 09:06:16 -08:00
Sergey Malenkov
601fc96c27 8003400: JTree scrolling problem when using large model in WindowsLookAndFeel
Reviewed-by: alexsch
2013-01-24 18:06:24 +04:00
Jon Masamitsu
354116da47 Merge 2013-01-24 06:04:43 -08:00
Sergey Malenkov
6d5f0df029 8005138: test/java/beans/Introspector/TestTypeResolver.java fails
Reviewed-by: alexsch
2013-01-24 17:57:02 +04:00
Sergey Bylokhov
2c1808e68d 8003173: [macosx] Fullscreen on Mac leaves an empty rectangle
Reviewed-by: anthony, alexsch
2013-01-24 17:50:03 +04:00
Sergey Malenkov
d22b9b7149 6817933: Setting the background of an HTML Widget changes the native Windows JFileChooser
Reviewed-by: alexsch
2013-01-24 17:26:32 +04:00
Alexander Zuev
c41878d46d 7143768: [macosx] Unexpected NullPointerException and java.io.IOException during DnD
Reviewed-by: alexp
2013-01-24 16:09:48 +04:00
Petr Pchelko
3f2ea7f894 8005997: [macosx] Printer Dialog opens an additional title bar
Reviewed-by: anthony, art
2013-01-24 15:55:04 +04:00
Alexander Potochkin
6eb458d364 7132793: [macosx] setWheelScrollEnabled action reversed
Reviewed-by: serb, art
2013-01-24 15:52:25 +04:00
Alexander Potochkin
7782e252f1 7147078: [macosx] Echo char set in TextField doesn't prevent word jumping
Reviewed-by: art
2013-01-24 15:26:40 +04:00
Krystal Mo
ae1a2f5e3c 8006758: LinkResolver assertion (caused by @Contended changes)
Treat anonymous classes as privileged code to restore the special handling for @Compiled during class file parsing

Reviewed-by: jrose, coleenp, kvn, dholmes
2013-01-24 02:03:38 -08:00
Erik Joelsson
24c9534dd7 Merge 2013-01-24 09:17:26 +01:00
Joe Darcy
6b27e06701 8006264: Add explanation of why default methods cannot be used in JDK 8 javax.lang.model
Reviewed-by: jjg
2013-01-23 20:11:07 -08:00
Jon Masamitsu
c727c73cce 8005452: NPG: Create new flags for Metaspace resizing policy
Reviewed-by: johnc, jwilhelm, coleenp, stefank
2013-01-23 19:08:04 -08:00
John Cuthbertson
251a9ff39c 8007772: G1: assert(!hr->isHumongous() || mr.start() == hr->bottom()) failed: the start of HeapRegion and MemRegion should be consistent for humongous regions
In do_marking_step(), we should always give up current region after scanning the object, if the region is humongous.

Reviewed-by: brutisso, jwilhelm, tamao
2013-02-11 15:24:48 -08:00
Bengt Rutisson
77ebf3cbc1 8002144: G1: large number of evacuation failures may lead to large c heap memory usage
Use Stack<> instead of GrowableArray to keep track of preserved marks. Also reviewed by vitalyd@gmail.com.

Reviewed-by: johnc, jcoomes
2013-02-10 21:15:16 +01:00
Bengt Rutisson
ff7575383f Merge 2013-02-07 18:40:45 -08:00
Bengt Rutisson
e39be2cb45 Merge 2013-02-07 22:04:17 +01:00
Jesper Wilhelmsson
2c17d50a8b 8006432: Ratio flags should be unsigned
Flags changed to be of uintx type

Reviewed-by: johnc, tamao
2013-02-07 15:51:25 +01:00
Tao Mao
63fd60257c 7052429: G1: Avoid unnecessary scanning of humongous regions during concurrent marking
Skip unnecessary scanning of bitmap for unmarked humongous objects/regions.

Reviewed-by: jwilhelm, johnc
2013-02-06 14:50:37 -08:00
David Katleman
f884e97af2 Merge 2013-01-23 15:40:21 -08:00
Vladimir Kozlov
8915295560 8003878: compiler/7196199 test failed on OS X since 8b54, jdk7u12b01
Limit vectors size to 16 bytes on BSD until the problem is fixed

Reviewed-by: twisti
2013-01-23 15:11:03 -08:00
Tim Bell
3fcddbbea2 8006797: build-infra JPRT builds need JPRT_ARCHIVE_INSTALL_BUNDLE in common/makefiles/Jprt.gmk
Reviewed-by: ohair
2013-01-23 13:30:11 -08:00
Michael Ernst
659a96edf9 8006775: JSR 308: Compiler changes in JDK8
Co-authored-by: Werner Dietl <wmdietl@cs.washington.edu>
Co-authored-by: Matt Papi <mpapi@csail.mit.edu>
Co-authored-by: Mahmood Ali <mahmood@notnoop.com>
Reviewed-by: jjg
2013-01-23 13:27:24 -08:00
Maurizio Cimadamore
5b1a78dc92 8006694: temporarily workaround combo tests are causing time out in several platforms
Reviewed-by: jjg
2013-01-23 20:57:40 +00:00
Vladimir Kozlov
f1cf6ff588 8006799: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() (jdk part of 6896617)
Move hot loop in ISO_8859_1$Encode.encodeArrayLoop() into separate method encodeISOArray() to be replaced by JVM JIT compiler with optimized intrinsic code.

Reviewed-by: alanb, sherman
2013-01-23 11:47:07 -08:00
Joseph Provino
698fba94ef 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
Rename INCLUDE_ALTERNATE_GCS to INCLUDE_ALL_GCS and replace SERIALGC with INCLUDE_ALL_GCS.

Reviewed-by: coleenp, stefank
2013-01-23 13:02:39 -05:00
Coleen Phillimore
99039568f9 8006040: NPG: on_stack processing wastes space in ConstantPool
Added on_stack bit to flags.  Also MetadataMarkOnStack is used for more than JVMTI so had to be moved.

Reviewed-by: dholmes, stefank
2013-01-23 10:34:29 -05:00
Maurizio Cimadamore
eb646f3c09 8006692: jdk/test/java/util/Collections/BigBinarySearch.java fails to compile
Missing boxing cause spurious inference failure

Reviewed-by: jjg
2013-01-23 15:08:03 +00:00
Christopher Gruszka
ac591918e0 Merge 2013-01-23 08:50:19 -05:00
Erik Joelsson
af4998b10e 8006658: build-infra: Make MILESTONE behave the same as JDK_BUILD_NUMBER
Reviewed-by: ohrstrom, dholmes, tbell
2013-01-23 11:42:29 +01:00
Erik Joelsson
0a44d7bfec 8006663: build-infra: Compare two arbitrary zip/jar files with compare.sh
Reviewed-by: tbell
2013-01-23 11:41:06 +01:00
Erik Joelsson
036eecdd79 8005855: build-infra: Remove -R flag when cross compiling
Reviewed-by: dholmes, tbell
2013-01-23 11:37:36 +01:00
Stephen Colebourne
4b926cfd51 8003680: JSR 310 Date/Time API
Integration of JSR310 Date/Time API for M6

Co-authored-by: Roger Riggs <roger.riggs@oracle.com>
Co-authored-by: Richard Warburton <richard.warburton@gmail.com>
Co-authored-by: Michael Nascimento <misterm@gmail.com>
Reviewed-by: alanb, naoto, dholmes
2013-01-22 21:02:06 -08:00
Jonathan Gibbons
ef9719425e Merge 2013-01-22 19:07:20 -08:00
Jonathan Gibbons
cac8147988 8006728: temporarily workaround jtreg problems for doclint tests in othervm
Reviewed-by: jjh
2013-01-22 19:06:05 -08:00
Jonathan Gibbons
7bdddc8471 8006723: sjavac test fails to compile on clean build
Reviewed-by: ksrini
2013-01-22 18:43:22 -08:00
David Holmes
26936d0600 8006667: Merge issue: Profile attribute need to be examined before custom attributes
Swap profile checking and FXHelper checking

Reviewed-by: alanb
2013-01-22 20:04:15 -05:00
David Holmes
8b799721ae Merge 2013-01-22 19:31:02 -05:00
David Holmes
dfb3ff9459 Merge 2013-01-22 19:30:52 -05:00
Vladimir Kozlov
9e0c61f822 6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.

Reviewed-by: roland
2013-01-22 15:34:16 -08:00
Zhengyu Gu
4d81507a36 Merge 2013-01-22 11:54:16 -08:00
Goetz Lindenmaier
44cdae9a57 8005055: pass outputStream to more opto debug routines
Pass the output stream to node->dump() and everything reachable from there

Reviewed-by: kvn
2013-01-22 11:31:25 -08:00
Zhengyu Gu
080750fe65 6871190: Don't terminate JVM if it is running in a non-interactive session
Don't handle CTRL_LOGOFF_EVENT event when the process is running in a non-interactive session

Reviewed-by: ctornqvi, acorn
2013-01-22 14:27:41 -05:00
Maurizio Cimadamore
1f8b2abf80 8006684: Compiler produces java.lang.VerifyError: Bad type on operand stack
Lambda desugaring generates spurious references to 'this' in static contexts

Reviewed-by: jjg
2013-01-22 16:39:51 +00:00
Maurizio Cimadamore
948888218b 8006673: TargetType52 fails because of bad golden file
Fix golden file in negative test

Reviewed-by: jjg
2013-01-22 16:23:35 +00:00
Jim Gish
43b8609138 4247235: (spec str) StringBuffer.insert(int, char[]) specification is inconsistent
Add blanket null-handling statement to StringBuilder and StringBuffer

Reviewed-by: mduigou
2013-01-22 11:14:13 -05:00
Akhil Arora
5dc4c11b2b 8004201: Add static utility methods to primitives to be used for redution operations
Reviewed-by: darcy, mduigou, briangoetz, dholmes
2013-01-25 16:13:39 -08:00
Henry Jen
293df92991 8005632: Extend java.util.Logger to use Supplier<String> for messages
Reviewed-by: briangoetz, mduigou
2013-01-25 16:13:32 -08:00
Kurchi Subhra Hazra
3e5a0c70ab 7017962: Obsolete link is used in URL class level spec
Change the link to an archived document

Reviewed-by: chegar, mduigou
2013-01-25 11:52:10 -08:00
Vinnie Ryan
2add9b3fcf 8006951: Avoid storing duplicate PKCS12 attributes
Reviewed-by: mullan
2013-01-25 17:47:37 +00:00
Vinnie Ryan
241fc73e25 8006946: PKCS12 test failure due to incorrect alias name
Reviewed-by: mullan
2013-01-25 16:19:39 +00:00
Alan Bateman
355fea6f2a 8006565: java.lang.instrument specification should make it clear that -javaagent is optional
Reviewed-by: sla, dcubed, mchung
2013-01-25 13:09:47 +00:00
Frank Ding
e349682e3d 7183373: URLClassloader.close() does not close JAR files whose resources have been loaded via getResource()
Reviewed-by: chegar
2013-01-25 17:00:18 +08:00
Joe Darcy
3807bcee8b 8006895: Clarify that FunctionalInferface is only informative
Reviewed-by: briangoetz
2013-01-24 16:54:11 -08:00
Vinnie Ryan
546eee6d15 8006863: javadoc cleanup for 8005408
Reviewed-by: alanb
2013-01-24 18:21:09 +00:00
Kumar Srinivasan
183657c9ab 8006850: [pack200] disable pack200 tests until JSR-308 is implemented
Reviewed-by: alanb
2013-01-24 09:34:07 -08:00
Vinnie Ryan
3727e751f6 8006855: PKCS12 test failures due to unsupported algorithm
Reviewed-by: mullan
2013-01-24 16:44:15 +00:00
Alan Bateman
a1d5ea2b9d 8006524: JSR-3: Allows java.beans to be optional
Reviewed-by: dfuchs, mchung
2013-01-24 09:47:09 +00:00
Sean Mullan
930299d58c 8006813: Compilation error in PKCS12KeyStore.java
Reviewed-by: valeriep
2013-01-23 20:46:39 -05:00
Vinnie Ryan
b680bc8ca7 8005408: KeyStore API enhancements
Reviewed-by: mullan
2013-01-23 23:13:54 +00:00
Vinnie Ryan
7dcd0b38a8 8006591: Protect keystore entries using stronger PBE algorithms
Reviewed-by: mullan
2013-01-23 21:25:49 +00:00
Xueming Shen
60e625f275 Merge 2013-01-23 10:31:10 -08:00
Xueming Shen
c3343fdb49 8006773: test/java/util/zip/ZipFile/FinalizeZipFile.java failing intermittently
Fixed the test case

Reviewed-by: alanb
2013-01-23 10:29:50 -08:00
Rob McKenna
6c5679d418 8004729: Add java.lang.reflect.Parameter and related changes for parameter reflection
Reviewed-by: darcy, forax, psandoz, dholmes, tbell
2013-01-23 17:54:34 +00:00
Alan Bateman
5f7ebf8d51 8006764: FunctionalInterface missing from rt.jar (old build)
Reviewed-by: lancea, forax
2013-01-23 15:12:28 +00:00
Chris Hegarty
12e480040a 8006669: sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh fails on mac
Reviewed-by: alanb
2013-01-23 14:45:44 +00:00
Alexey Utkin
3b0f760747 6519127: user.home property not set correctly
Registry-based approach was changed to SHGetKnownFolderPath/SHGetFolderPathW

Reviewed-by: alanb, anthony
2013-01-23 15:06:49 +04:00
Vinnie Ryan
cd509df8b6 8006741: javadoc cleanup for 6263419
Reviewed-by: alanb
2013-01-23 09:49:10 +00:00
Stephen Colebourne
df4d235c1f 8003680: JSR 310 Date/Time API
Integration of JSR310 Date/Time API for M6

Co-authored-by: Roger Riggs <roger.riggs@oracle.com>
Co-authored-by: Richard Warburton <richard.warburton@gmail.com>
Co-authored-by: Michael Nascimento <misterm@gmail.com>
Reviewed-by: alanb, naoto, dholmes
2013-01-22 20:59:21 -08:00
Stuart Marks
54752a2afe 8005646: TEST_BUG: java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup leaves process running
Reviewed-by: mchung
2013-01-22 18:30:49 -08:00
Vinnie Ryan
995a0dc1b8 6263419: No way to clean the memory for a java.security.Key
Reviewed-by: mullan
2013-01-22 23:32:15 +00:00
Karen Kinnear
bc751c3469 8004903: VMThread::execute() calls Thread::check_for_valid_safepoint_state() on concurrent VM ops
Check_for_valid_safepoint_state() only applies to blocking VM ops

Reviewed-by: acorn, dholmes, dice, sspitsyn
2013-01-22 05:57:18 -08:00
Dave Dice
98c357abf8 8004902: correctness fixes motivated by contended locking work (6607129)
Misc correctness fixes

Reviewed-by: acorn, dholmes, dice, sspitsyn
2013-01-22 05:56:42 -08:00
Karen Kinnear
8f1dc20874 6444286: Possible naked oop related to biased locking revocation safepoint in jni_exit()
Add missing Handle.

Reviewed-by: acorn, dholmes, dice, sspitsyn
2013-01-22 05:55:04 -08:00
Mikael Gerdin
ad7544b47c 8004147: test/Makefile jtreg_tests target does not work with cygwin
Reviewed-by: ctornqvi, brutisso
2013-01-22 13:42:39 +01:00
Erik Joelsson
cd451cc955 8004151: build-infra: Generating X11 wrapper offset file is not cross compilable
Reviewed-by: dholmes, ohrstrom
2013-01-22 09:01:35 +01:00
Alan Bateman
a23a1a942b 8004502: Compact Profiles contents
Reviewed-by: dholmes, mchung
2013-01-21 23:35:36 -05:00
Alan Bateman
3ca765dfbd 8004931: add/removePropertyChangeListener should not exist in subset Profiles of Java SE
Reviewed-by: dholmes, mchung, ksrini
2013-01-21 23:23:12 -05:00
Alan Bateman
50ccbb6018 8003256: (profiles) Add support for profile identification
Reviewed-by: dholmes, mchung, ksrini
2013-01-21 23:21:15 -05:00
Alan Bateman
99f3285106 8003255: (profiles) Update JAR file specification to support profiles
Reviewed-by: dholmes, mchung, ksrini
2013-01-21 23:20:42 -05:00
David Holmes
945d6e8f23 8004265: Add build support for Compact Profiles
Reviewed-by: erikj, ohair
2013-01-21 23:17:58 -05:00
David Holmes
08f31d5198 8006651: build-infra: Import.gmk needs to add support for the minimal VM
Reviewed-by: erikj, ohair
2013-01-21 21:54:51 -05:00
Karen Kinnear
706efde6df Merge 2013-01-21 16:11:24 -05:00
Maurizio Cimadamore
3054ea5580 8005166: Add support for static interface methods
Support public static interface methods

Reviewed-by: jjg
2013-01-21 20:19:53 +00:00
Maurizio Cimadamore
a6fc182d40 8005851: Remove support for synchronized interface methods
Synchronized default methods are no longer supported

Reviewed-by: jjg
2013-01-21 20:15:16 +00:00
Maurizio Cimadamore
422c8bd914 8006566: Remove transient lambda-related guards from JavacParser
Remove transitional internal flag for allowing intersection types in cast

Reviewed-by: jjg
2013-01-21 20:14:39 +00:00
Maurizio Cimadamore
442154dcf9 8005244: Implement overload resolution as per latest spec EDR
Add support for stuck expressions and provisional applicability

Reviewed-by: jjg
2013-01-21 20:13:56 +00:00
Lana Steuck
8c4608f165 Merge 2013-01-21 11:16:36 -08:00
Lana Steuck
e5aa886e8b Merge 2013-01-21 11:16:28 -08:00
Lance Andersen
11e010320c 8006642: Fix javadoc warnings due to Integer.MAX_VALUE
Reviewed-by: alanb
2013-01-21 14:08:39 -05:00
Jonathan Gibbons
f251cc24ca 8006251: doclint: incorrect position for diagnostic for illegal text in tags
Reviewed-by: mcimadamore
2013-01-21 10:07:37 -08:00
Peter Jensen
7967c92db0 8006263: Supplementary test cases needed for doclint
Reviewed-by: mcimadamore
2013-01-21 10:00:46 -08:00
Erik Joelsson
ece23e1bac 8006579: build-infra: In jvm.cfg, alias -server to -client when no server jvm is built
Reviewed-by: tbell
2013-01-21 14:58:23 +01:00
Alexander Scherbatiy
14d1261536 8004298: NPE in WindowsTreeUI.ensureRowsAreVisible
Reviewed-by: serb
2013-01-21 17:55:31 +04:00
Doug Lea
3f14786363 8005311: Add Scalable Updatable Variables, DoubleAccumulator, DoubleAdder, LongAccumulator, LongAdder
Reviewed-by: chegar, darcy, goetz
2013-01-21 13:50:05 +00:00
Erik Joelsson
94b0107f2e Merge 2013-01-21 11:42:31 +01:00
Erik Joelsson
dab7afc69f 8006583: build-infra: Remove /javax/swing/SwingBeanInfoBase.java from src.zip
Reviewed-by: tbell
2013-01-21 11:42:17 +01:00
Bengt Rutisson
cfbcddfb0f 8006431: os::Bsd::initialize_system_info() sets _physical_memory too large
Use HW_MEMSIZE instead of HW_USERMEM to get a 64 bit value of the physical memory on the machine. Also reviewed by vitalyd@gmail.com.

Reviewed-by: sla, dholmes, dlong, mikael
2013-01-21 09:00:04 +01:00
Lana Steuck
f466a4f675 Merge 2013-01-20 23:39:11 -08:00
Lana Steuck
444cf2ed48 Merge 2013-01-20 23:38:27 -08:00
Lana Steuck
8e565b0c0e Merge 2013-01-20 23:37:21 -08:00
Lana Steuck
aa42a1616b Merge 2013-01-20 23:35:25 -08:00
Jason Uh
3d92cb12a6 8006092: SecurityPermission: printIdentity doesn't exist
Reviewed-by: weijun
2013-01-21 15:05:49 +08:00
David Holmes
2f7185008f 8004265: Add build support for Compact Profiles
Reviewed-by: erikj, ohair
2013-01-21 01:50:40 -05:00
Alan Bateman
c4c9a281f3 8004182: Add support for profiles in javac
Reviewed-by: dholmes
2013-01-21 01:46:31 -05:00
Masayoshi Okutsu
6bc0d6d200 8004489: Add support for Minguo and Hijrah calendars to CalendarNameProvider SPI
8006509: Add more calendar symbol names from CLDR

Reviewed-by: peytoia
2013-01-21 15:41:30 +09:00
Jonathan Gibbons
caf667de05 8004182: Add support for profiles in javac
Reviewed-by: mcimadamore
2013-01-21 01:27:42 -05:00
Bhavesh Patel
bd4ebc07d8 8006124: javadoc/doclet should be updated to support profiles
Reviewed-by: jjg
2013-01-21 00:45:35 -05:00
Bhavesh Patel
2c52089918 8006124: javadoc/doclet should be updated to support profiles
Reviewed-by: jjg, dholmes
2013-01-21 00:31:34 -05:00
Bhavesh Patel
2b742e4081 8006124: javadoc/doclet should be updated to support profiles
Reviewed-by: jjg, dholmes
2013-01-21 00:29:59 -05:00
Masayoshi Okutsu
f9d0dd3d72 4745761: (cal) RFE: Support builder for constructing Calendar
Reviewed-by: peytoia
2013-01-21 12:04:55 +09:00
Chris Hegarty
6b32c387f1 8006560: java/net/ipv6tests/B6521014.java fails intermittently
Reviewed-by: khazra, wetmore
2013-01-20 09:37:51 +00:00
Lance Andersen
69757a1c92 8005080: JDBC 4.2 Core changes
Reviewed-by: naoto
2013-01-19 10:53:14 -05:00
Lance Andersen
c98a554aaf 8006139: add missing methods to javax.sql.rowset.serial.SQLInputImpl, SQLOutputImpl
Reviewed-by: naoto, ulfzibis, alanb
2013-01-19 10:11:19 -05:00
Mark Sheppard
4e11f499f4 8006568: HTTP protocol handler NLTM Authentication should use Base64 API
Reviewed-by: chegar, alanb
2013-01-19 08:39:20 +00:00
Ragini Prasad
435bcab6c4 8000839: Integrate the Java Access Bridge with Java Runtime
Reviewed-by: ptbrunet, erikj
2013-01-18 11:33:31 -08:00
Ragini Prasad
a9080d9ab2 8000839: Integrate the Java Access Bridge with Java Runtime
Reviewed-by: ptbrunet, erikj
2013-01-18 11:31:33 -08:00
Alan Bateman
69b0c6aad4 6939260: (fs) BasicFileAttributes.lastModifiedTime() should return last modified time with higher precision
Reviewed-by: chegar
2013-01-18 18:48:44 +00:00
Staffan Larsen
091328ba71 Merge 2013-01-18 19:13:41 +01:00
John Zavgren
9bad85cb03 8005120: Compiler warnings in socket transport native code
Reviewed-by: chegar, dsamersoff
2013-01-18 17:34:40 +00:00
Erik Joelsson
8b7552a616 8003693: build-infra: bridgeBuild should allow for partial build (no hotspot)
Reviewed-by: tbell
2013-01-18 16:48:25 +01:00
Erik Joelsson
52b64fa9dc 8006567: jre/lib/applet missing from Mac JDK installation
Reviewed-by: tbell
2013-01-18 16:44:07 +01:00
Maurizio Cimadamore
00ae27b2cf 8006561: Langtools test failure: missing diags/examples
Forgot to hg add tests

Reviewed-by: jjg
2013-01-18 15:38:14 +00:00
Anton Litvinov
ca94a86847 8006417: JComboBox.showPopup(), hidePopup() fails in JRE 1.7 on OS X
Reviewed-by: art, serb
2013-01-18 18:34:46 +04:00
Petr Pchelko
db0f450d53 7179050: [macosx] Make LWAWT be able to run on AppKit thread
Removed irrelevant assertions from the LWAWT native methods

Reviewed-by: serb, anthony
2013-01-18 18:17:02 +04:00
Alejandro Murillo
1c9730cfb8 8006511: new hotspot build - hs25-b17
Reviewed-by: jcoomes
2013-01-18 05:33:32 -08:00
Alejandro Murillo
ab8570e77f Added tag hs25-b16 for changeset bf71fcc9d682 2013-01-18 05:19:07 -08:00
Alejandro Murillo
6e59c39db8 Merge 2013-01-18 05:19:06 -08:00
Staffan Larsen
c3d91fec59 Merge 2013-01-18 14:15:51 +01:00
Anthony Petrov
04fc62c5ed 8005465: [macosx] Evaluate if checking for the -XstartOnFirstThread is still needed in awt.m
Allow one to start AWT on the main thread w/o exceptions

Reviewed-by: art, serb
2013-01-18 14:17:11 +04:00
Bengt Rutisson
f3576a18a9 Merge 2013-01-18 11:03:15 +01:00
Erik Joelsson
272e33b245 8006520: build-infra: Fix sparkle-framework configure parameter
Reviewed-by: tbell, ohair
2013-01-18 09:58:23 +01:00
Coleen Phillimore
833b7fcfff 8006548: version wrong in new constantPool code
Fix increment problem with saved_version

Reviewed-by: dholmes
2013-01-17 22:11:57 -05:00
Jon Masamitsu
59f0209008 8006537: Assert when dumping archive with default methods
Reviewed-by: coleenp
2013-01-17 19:04:48 -08:00
Vladimir Kozlov
3eb6582f4b Merge 2013-01-17 18:47:36 -08:00
Fredrik Öhrström
3d5f55b851 8004658: Add internal smart javac wrapper to solve JEP 139
Reviewed-by: jjg
2013-01-18 00:16:21 +01:00
Jim Gish
a7f43eaad5 8006534: CLONE - TestLibrary.getUnusedRandomPort() fails intermittently-doesn't retry enough times
Increase number of retries to twice the number of ports in the reserved range

Reviewed-by: mduigou
2013-01-17 15:09:46 -05:00
Kurchi Subhra Hazra
8f2bd71dc9 7171415: java.net.URI.equals/hashCode not consistent for some URIs
Rewrite URI.hashCode() to consider encoded characters, also reviewed by vitalyd@gmail.com, schlosna@gmail.com

Reviewed-by: chegar
2013-01-17 14:50:02 -08:00
Brian Burkhalter
fe16fc39d6 8006090: Formatter asserts with -esa
Removed the offending assert

Reviewed-by: alanb, darcy
2013-01-17 12:49:33 -08:00
Coleen Phillimore
e508ba9b0b 7174978: NPG: Fix bactrace builder for class redefinition
Remove Method* from backtrace but save version so redefine classes doesn't give inaccurate line numbers.  Removed old Merlin API with duplicate code.

Reviewed-by: dholmes, sspitsyn
2013-01-17 13:40:31 -05:00
Maurizio Cimadamore
0a95b1d28c 8005852: Treatment of '_' as identifier
Warn when '_' is found in an identifier position

Reviewed-by: jjg
2013-01-17 18:15:20 +00:00
Harold Seigel
68f3dd76c9 7102489: RFE: cleanup jlong typedef on __APPLE__and _LLP64 systems
Define jlong as long on all LP64 platforms and add JLONG_FORMAT macro.

Reviewed-by: dholmes, coleenp, mikael, kvn
2013-01-17 10:25:16 -05:00
Konstantin Shefov
b7bcfe73b1 7124209: [macosx] SpringLayout issue. BASELINE is not in the range: [NORTH, SOUTH]
Reviewed-by: serb, alexsch
2013-01-17 15:08:08 +00:00
Stefan Karlsson
6799149f7d 8006513: Null pointer in DefaultMethods::generate_default_methods when merging annotations
Reviewed-by: brutisso, jfranck
2013-01-17 11:39:48 +01:00
Yong Jeffrey Huang
a4c3f06259 Merge 2013-01-16 23:08:12 -08:00
Dean Long
6e8916cdbb Merge 2013-01-17 01:27:02 -05:00
David Katleman
b8e0cde9e1 Merge 2013-01-16 22:21:30 -08:00
David Katleman
c9583f70f7 Merge 2013-01-16 22:17:39 -08:00
David Katleman
d67df37b2b Merge 2013-01-16 22:17:36 -08:00
David Katleman
675e3578b4 Merge 2013-01-16 22:16:51 -08:00
David Katleman
f421c295bd Merge 2013-01-16 20:53:05 -08:00
Jonathan Gibbons
7b493a180e 8006228: Doclint doesn't detect <code> {@code nested inline} </code>
Reviewed-by: darcy
2013-01-16 20:41:14 -08:00
Yong Jeffrey Huang
73f88f3896 Merge 2013-01-16 19:05:13 -08:00
Lana Steuck
270d599981 Merge 2013-01-16 15:57:25 -08:00
Karen Kinnear
4ce43bafa5 Merge 2013-01-16 18:23:37 -05:00
David Chase
c803a77fa8 8006204: please JTREGify test/compiler/7190310/Test7190310.java
Add proper jtreg annotations in the preceding comment, including an explicit timeout.

Reviewed-by: kvn, twisti
2013-01-16 14:55:18 -08:00
Joe Darcy
e942cdde81 8006283: Change to Class.cast() in javax.lang.model implementation for repeating annotations
Reviewed-by: jjg
2013-01-16 13:22:09 -08:00
Lana Steuck
b11bbbe239 Merge 2013-01-16 12:14:29 -08:00
Lana Steuck
7026f02404 Merge 2013-01-16 12:07:32 -08:00
Lana Steuck
65b346ba67 Merge 2013-01-16 12:06:39 -08:00
David Katleman
2062fc003c Added tag jdk8-b73 for changeset b568005e66bd 2013-01-16 12:00:21 -08:00
David Katleman
656c28326c Added tag jdk8-b73 for changeset 24d25ecda7ce 2013-01-16 12:00:10 -08:00
David Katleman
4598fecb7c Added tag jdk8-b73 for changeset a7dead2f55ef 2013-01-16 11:59:59 -08:00
David Katleman
41ec1cb065 Added tag jdk8-b73 for changeset 4c46a5207766 2013-01-16 11:59:54 -08:00
David Katleman
c5c2fe5f14 Added tag jdk8-b73 for changeset b63b5628ae56 2013-01-16 11:59:44 -08:00
David Katleman
7716c3be5e Added tag jdk8-b73 for changeset 8268581591da 2013-01-16 11:59:38 -08:00
David Katleman
15750269ce Added tag jdk8-b73 for changeset e6f9cd2122f9 2013-01-16 11:59:37 -08:00
Lana Steuck
2c1924638e Merge 2013-01-16 11:58:15 -08:00
Jason Uh
5d2a6972af 8005939: sun/security/x509/{X509CRLImplX509CertImpl}/Verify.java fail in confusing way when some providers not present
Reviewed-by: mullan, weijun
2013-01-16 13:35:17 -05:00
Jonathan Gibbons
17ebfc350d 8006236: doclint: structural issue hidden
Reviewed-by: darcy
2013-01-16 10:29:52 -08:00
Maurizio Cimadamore
5a60f56dbe 8005964: Regression: difference in error recovery after ambiguity causes JCK test failure
Wrong implementation of ResolveError.access in AmbiguityError

Reviewed-by: jjh
2013-01-16 17:40:28 +00:00
Maurizio Cimadamore
3b3feb3853 8005299: Add FunctionalInterface checking to javac
Javac should check that types annotated with @FunctionalInterface are indeed functional interfaces

Reviewed-by: jjg
2013-01-16 16:30:11 +00:00
Maurizio Cimadamore
d19bc80ca1 8005854: Add support for array constructor references
Support constructor references of the kind int[]::new

Reviewed-by: jjg
2013-01-16 16:27:01 +00:00
Erik Joelsson
fbb2e494a8 8006385: build-infra: linux and solaris *-debuginfo-*.zip file created from the new makefile has extra HUDSON direcotry in jre/lib/i386/server
Reviewed-by: tbell
2013-01-16 16:40:16 +01:00
Aleksey Shipilev
07e2e8803a 8006403: Regression: jstack failed due to the FieldInfo regression in SA
Reviewed-by: sla, dholmes
2013-01-16 16:30:04 +01:00
Jason Uh
68eb431db8 8005389: Backout fix for JDK-6500133
Reviewed-by: mullan
2013-01-16 09:51:21 -05:00
Mikhail Cherkasov
9a4e15eaf6 8005492: Reduce number of warnings in sun/awt/* classes
Reviewed-by: art, anthony
2013-01-16 17:26:41 +04:00
Doug Lea
dcc8fbec72 8001666: Add lambda-compatible atomics and accumulators to the ActomicXXX classes
Co-authored-by: Chris Hegarty <chris.hegarty@oracle.com>
Reviewed-by: dl, chegar, darcy, goetz
2013-01-16 12:09:35 +00:00
Bengt Rutisson
38f6de7a0c 8006242: G1: WorkerDataArray<T>::verify() too strict for double calculations
Also reviewed by vitalyd@gmail.com.

Reviewed-by: johnc, mgerdin
2013-01-16 12:46:27 +01:00
Doug Lea
7062898817 8005926: Merge ThreadLocalRandom state into java.lang.Thread
Reviewed-by: shade, chegar
2013-01-16 10:14:09 +00:00
Yong Jeffrey Huang
ef774a39f7 Merge 2013-01-15 19:08:34 -08:00
David Chase
cc15237ca5 8005821: C2: -XX:+PrintIntrinsics is broken
Check all print inlining flags when processing inlining list.

Reviewed-by: kvn, twisti
2013-01-15 14:45:12 -08:00
Ioi Lam
84fce989dd 8005467: CDS size information is incorrect and unfriendly
Changed words to bytes, and added usage percentage information

Reviewed-by: coleenp, twisti
2013-01-15 17:05:53 -05:00
Jonathan Gibbons
f8b61f9b0c 8006224: Doclint NPE for attribute with no value
Reviewed-by: darcy
2013-01-15 13:03:11 -08:00
Chris Hegarty
b60eabe813 8006344: Broken javadoc link in javax.lang.model.element.Element
Reviewed-by: lancea, alanb, jfranck
2013-01-15 20:38:39 +00:00
John Cuthbertson
b3b1b412b1 8001425: G1: Change the default values for certain G1 specific flags
Changes to default and ergonomic flag values recommended by performance team. Changes were also reviewed by Monica Beckwith <monica.beckwith@oracle.com>.

Reviewed-by: brutisso, huntch
2013-01-15 12:32:26 -08:00
Christian Thalinger
5dda34f798 8006109: test/java/util/AbstractSequentialList/AddAll.java fails: assert(rtype == ctype) failed: mismatched return types
Reviewed-by: kvn
2013-01-15 12:06:18 -08:00
Rob McKenna
bdca3e8f8c 8005618: TEST_BUG: java/lang/ProcessBuilder/Basic.java failing intermittently
Reviewed-by: alanb, martin, dholmes
2013-01-15 19:58:22 +00:00
David Katleman
7f6891593a Merge 2013-01-15 10:08:04 -08:00
David Katleman
f3d016ffd9 Merge 2013-01-15 10:07:26 -08:00
David Katleman
43cad4a619 Merge 2013-01-15 10:07:22 -08:00
David Katleman
a3ef57ec3c Merge 2013-01-15 10:06:59 -08:00
Sergey Bylokhov
08f29b04df 7124525: [macosx] No animation on certain Swing components in Aqua LaF
Reviewed-by: alexsch, swingler
2013-01-15 21:57:47 +04:00
Erik Joelsson
492a251bdb 8006296: build-infra: Unsigned sunmscapi.jar is missing manifest
Reviewed-by: alanb, tbell
2013-01-15 16:50:22 +01:00
Mark Sheppard
cb7b639e6a 8005406: HTTP server implementation should use Base64 API
Reviewed-by: khazra, alanb, chegar
2013-01-15 11:44:20 +00:00
Alexey Utkin
5bd5533490 8005250: Downgrade normative references to ${java.home}/lib folder from Java client code
Javadoc was changed in accordance with CCC-8005250 request.

Reviewed-by: alanb, amenkov
2013-01-15 14:26:59 +04:00
Stefan Karlsson
9d65c6d24f 8005994: Method annotations are allocated unnecessarily during class file parsing
Also reviewed by: vitalyd@gmail.com

Reviewed-by: coleenp, acorn
2013-01-15 10:09:45 +01:00
Stefan Karlsson
67fc68ea7f 8005590: java_lang_Class injected field resolved_constructor appears unused
Reviewed-by: coleenp, dholmes
2013-01-15 13:32:13 +01:00
Erik Joelsson
9ea953b481 Merge 2013-01-15 09:50:47 +01:00
Alexander Scherbatiy
97013ba028 8003978: closed/javax/swing/JRootPane/bug4670486.java fails since jdk7u12b01 on macosx
Reviewed-by: serb, leonidr
2013-01-15 12:49:03 +04:00
Xue-Lei Andrew Fan
40039951b8 8006265: Add test SSLEngineDeadlock.java to ProblemList
Reviewed-by: weijun
2013-01-14 18:31:48 -08:00
Kelly O'Hair
c79f62bb7d 8005284: build-infra: nonstandard copyright headers under common/autoconf/build-aux
Reviewed-by: katleman
2013-01-14 16:38:25 -08:00
Kumar Srinivasan
a788c5b6b8 8005252: pack200 should support MethodParameters
Reviewed-by: jrose
2013-01-14 15:46:54 -08:00
Jonathan Gibbons
f92bbd3311 8006241: Test DocRootSlash.java fails
Reviewed-by: darcy
2013-01-14 14:17:25 -08:00
Jonathan Gibbons
a2f594bf74 8006119: update javac to follow latest spec for repeatable annotations
Reviewed-by: darcy
2013-01-14 13:50:01 -08:00
Bengt Rutisson
33b7cd7cae 8005972: ParNew should not update the tenuring threshold when promotion failed has occurred
Reviewed-by: ysr, johnc, jwilhelm
2013-01-14 21:30:45 +01:00
Christopher Gruszka
c882c29132 Merge 2013-01-14 14:40:58 -05:00
Naoto Sato
9fa2377054 7162007: Clean up i18n related caches
Reviewed-by: okutsu, ohair
2013-01-14 11:09:53 -08:00
Mikael Vidstedt
b4546eb428 8005592: ClassLoaderDataGraph::_unloading incorrectly defined as nonstatic in vmStructs
Added assertion to catch problem earlier and removed the unused field

Reviewed-by: dholmes, acorn
2013-01-14 11:00:56 -08:00
Joel Borggrén-Franck
9e3a121357 7193719: Support repeating annotations in javax.lang.model
Reviewed-by: jjg
2013-01-14 19:52:36 +01:00
Alexander Harlap
95cbed6639 8005204: Code Cache Reduction: command line options implementation
Adding more detailed output on CodeCache usage

Reviewed-by: kvn, vladidan
2013-01-14 13:52:08 -05:00
Alexander Harlap
5613847626 8005639: Move InlineSynchronizedMethods flag from develop to product
Move InlineSynchronizedMethods flag from develop to product

Reviewed-by: kvn, vladidan
2013-01-14 13:44:49 -05:00
Coleen Phillimore
6972d9ff95 Merge 2013-01-14 08:37:14 -08:00
Vladimir Ivanov
f8b9f3900c 8006095: C1: SIGSEGV w/ -XX:+LogCompilation
Avoid printing inlining decision when compilation fails

Reviewed-by: kvn, roland
2013-01-14 08:22:32 -08:00
Eric Mccorkle
be0c8e9f08 8006005: Fix constant pool index validation and alignment trap for method parameter reflection
This patch addresses an alignment trap due to the storage format of method parameters data in constMethod.  It also adds code to validate constant pool indexes for method parameters data.

Reviewed-by: jrose, dholmes
2013-01-14 11:01:39 -05:00
Erik Joelsson
efc2bb8cee 8006100: build-infra: Bundle up the correct images in jprt
Reviewed-by: tbell
2013-01-14 15:30:22 +01:00
Aleksey Shipilev
0614ed6542 8003985: Support @Contended Annotation - JEP 142
HotSpot changes to support @Contended annotation.

Reviewed-by: coleenp, kvn, jrose
2013-01-14 15:17:47 +01:00
Alexander Scherbatiy
73b452e941 7166409: bug4331515.java fail with NullPointerException on ubuntu10.04-x86 for JDK8
Reviewed-by: serb
2013-01-14 08:32:29 -05:00
Erik Joelsson
7510da3514 8006074: build-infra: Configure fails to find SetEnv.Cmd in microsoft sdk
Reviewed-by: tbell, ohair
2013-01-14 13:09:59 +01:00
Erik Helin
a3639fdea1 8004018: Remove old initialization flags
Reviewed-by: dholmes, stefank
2013-01-14 09:58:52 +01:00
Yong Jeffrey Huang
48aff5a267 7114053: [sq] Inproper tanslation for iso lanugage of Albanian
Reviewed-by: naoto
2013-01-13 18:45:43 -08:00
Peter Levart
e912773451 8005232: (JEP-149) Class Instance size reduction
Moved the fields for cached reflection objects into a seperate ReflectionData object to reduce dynamic footprint.

Reviewed-by: dholmes, mchung, shade
2013-01-13 19:57:06 -05:00
Mark Sheppard
7a8ddfee99 8006153: HTTP protocol handler authenication should use Base64 API
Reviewed-by: chegar, alanb
2013-01-13 22:09:50 +00:00
Xueming Shen
c7c2bd14d7 Merge 2013-01-11 22:45:42 -08:00
Ioi Lam
7428b2f902 8005466: JAR file entry hash table uses too much memory (zlib_util.c)
Realign the fields of jzcell struct

Reviewed-by: sherman
2013-01-11 22:43:29 -08:00
Christian Thalinger
827930b510 8006127: remove printing code added with 8006031
Reviewed-by: kvn
2013-01-11 20:01:16 -08:00
Aleksey Shipilev
fb60d01e36 8006123: Support @Contended Annotation - JEP 142 (jdk part)
Jdk changes for 8003895.

Reviewed-by: darcy, jrose, coleenp, dholmes, kvn
2013-01-11 16:50:34 -08:00
Roman Kennke
b17ebac5b5 8005820: Shark: enable JSR292 support
Reviewed-by: twisti
2013-01-11 16:47:23 -08:00
Roman Kennke
ba649f4203 8005818: Shark: fix OSR for non-empty incoming stack
Reviewed-by: twisti
2013-01-11 16:47:23 -08:00
Roman Kennke
a0a0d0b65e 8005817: Shark: implement deoptimization support
Reviewed-by: twisti
2013-01-11 16:47:23 -08:00
Roman Kennke
a42478ecf4 8005816: Shark: fix volatile float field access
Reviewed-by: twisti
2013-01-11 16:47:23 -08:00
Olivier Lagneau
546e2eb164 7131459: [Fmt-De] DecimalFormat produces wrong format() results when close to a tie
Reviewed-by: darcy
2013-01-11 15:39:08 -08:00
Christian Thalinger
6c57a4b9f8 8006031: LibraryCallKit::inline_array_copyOf disabled unintentionally with 7172640
Reviewed-by: kvn
2013-01-11 14:07:09 -08:00
Jiangli Zhou
2cbabcea4a 8005895: Inefficient InstanceKlass field packing wasts memory
Pack _misc_has_default_methods into the _misc_flags, move _idnum_allocated_count.

Reviewed-by: coleenp, shade
2013-01-11 16:55:07 -05:00
Alan Bateman
c12b624078 8005978: shell tests need to use the $COMPILEJDK for javac, jar and other tools
Reviewed-by: chegar
2013-01-11 20:19:55 +00:00
Zhengyu Gu
ae35dfeeec Merge 2013-01-11 09:53:24 -08:00
Zhengyu Gu
93d2366337 8005936: PrintNMTStatistics doesn't work for normal JVM exit
Moved NMT shutdown code to JVM exit handler to ensure NMT statistics is printed when PrintNMTStatistics is enabled

Reviewed-by: acorn, dholmes, coleenp
2013-01-11 12:30:54 -05:00
Alan Bateman
36e2ef2ba8 8005566: (fs) test/java/nio/file/Files/Misc.java failing (sol)
Reviewed-by: chegar
2013-01-11 12:27:57 +00:00
Alejandro Murillo
d06c06026a 8006034: new hotspot build - hs25-b16
Reviewed-by: jcoomes
2013-01-11 02:02:51 -08:00
Erik Joelsson
ad4210a395 8005850: build-infra: Make --enable-openjdk-only really disable custom
Reviewed-by: ohair, dholmes
2013-01-11 10:46:59 +01:00
Alejandro Murillo
95d6d393e9 Added tag hs25-b15 for changeset 8bac833614e0 2013-01-11 01:43:10 -08:00
Alejandro Murillo
54489e4ba1 Merge 2013-01-11 01:43:09 -08:00
Joe Darcy
3dfc6b7512 8006062: Add @Repeatable to repeating annotations regression tests in JDK repo
Reviewed-by: jjg
2013-01-10 21:12:27 -08:00
David Buck
8f70550080 8003147: port fix for BCEL bug 39695
Added support for Local Variable Type Table so that BCEL library can be used to modify methods with generics-related debug data without violating class file format

Reviewed-by: lancea
2013-01-10 20:26:00 -08:00
Jonathan Gibbons
7518dede81 8004834: Add doclint support into javadoc
Reviewed-by: darcy
2013-01-10 19:38:57 -08:00
Jonathan Gibbons
56dd0c2a5c Merge 2013-01-10 19:37:26 -08:00
Jonathan Gibbons
4837a1c13d 8004834: Add doclint support into javadoc
Reviewed-by: erikj, tbell
2013-01-10 19:36:36 -08:00
Jonathan Gibbons
ce51b6ebee 8004834: Add doclint support into javadoc
Reviewed-by: erikj, tbell
2013-01-10 19:36:13 -08:00
Jeremy Manson
cac8a55fb2 8005921: Memory leaks in vmStructs.cpp
Reviewed-by: dholmes, mikael, rasbold
2013-01-10 21:00:11 -05:00
Mikael Vidstedt
e7e6443c6d 8004747: Remove last_entry from VM_STRUCT macros
Instead of passing in last_entry to all the VM_ macros just expand it in the main vmStructs.cpp file.

Reviewed-by: dholmes, sspitsyn, minqi
2013-01-10 17:06:26 -08:00
Lana Steuck
3475f97172 Merge 2013-01-10 15:53:02 -08:00
Lana Steuck
2af47c361c Merge 2013-01-10 15:52:12 -08:00
Lana Steuck
ce7e25b7ad Merge 2013-01-10 15:49:34 -08:00
Lana Steuck
543d0a4abe Merge 2013-01-10 15:49:12 -08:00
Jonathan Gibbons
80a7fb0bb4 8006033: bug in Pretty.toSimpleString
Reviewed-by: darcy
2013-01-10 15:48:46 -08:00
Karen Kinnear
472004ca58 7199207: NPG: Crash in PlaceholderTable::verify after StackOverflow
Reduce scope of placeholder table entries to improve cleanup

Reviewed-by: dholmes, coleenp
2013-01-10 17:38:20 -05:00
Jonathan Gibbons
ca5da47efc 8006037: extra space in javac -help for -J and @ options
Reviewed-by: darcy
2013-01-10 14:09:33 -08:00
Chris Hegarty
a2dea4d9f4 8006007: j.u.c.atomic classes should use intrinsic getAndXXX provided by 7023898
Reviewed-by: dl, shade
2013-01-10 21:52:38 +00:00
Jim Gish
5c5820e950 8005582: java/lang/Runtime/exec/WinCommand.java intermittent test failures
Remove file-deletion code at cleanup which conflicts with jtreg cleanup

Reviewed-by: chegar
2013-01-10 15:09:45 -05:00
Brent Christian
f7eb6cd556 8005962: TEST_BUG: java/util/Properties/MacJNUEncoding can fail in certain environments
Test script now sets LC_ALL, other small changes, relocate test

Reviewed-by: naoto, alanb
2013-01-10 10:21:44 -08:00
Vladimir Kozlov
91c93084cb Merge 2013-01-10 10:00:43 -08:00
David Katleman
bd2402428b Added tag jdk8-b72 for changeset e905c5894743 2013-01-10 09:56:09 -08:00
David Katleman
49feba985e Added tag jdk8-b72 for changeset 21fe12436601 2013-01-10 09:55:58 -08:00
David Katleman
28f35575da Added tag jdk8-b72 for changeset 1cd43fe99320 2013-01-10 09:55:52 -08:00
David Katleman
09e823e002 Added tag jdk8-b72 for changeset c65f0fb0d9de 2013-01-10 09:55:43 -08:00
David Katleman
0adc452e4f Added tag jdk8-b72 for changeset 371ef2925907 2013-01-10 09:55:30 -08:00
David Katleman
714ada87e7 Added tag jdk8-b72 for changeset e927c8725ba4 2013-01-10 09:55:26 -08:00
David Katleman
d696ea84e6 Added tag jdk8-b72 for changeset a521fc006ff6 2013-01-10 09:55:25 -08:00
Jon Masamitsu
be38ea68e5 Merge 2013-01-10 07:32:32 -08:00
Fredrik Ohrstrom
a1118e2d86 8005856: build-infra: Remove special handling of base module classes header generation
Reviewed-by: alanb, tbell, ohair
2013-01-10 12:23:15 +01:00
Erik Joelsson
4ed6eedb66 8005858: build-infra: Add missed comparison of sec-windows-bin.zip and friends to compare.sh
Reviewed-by: tbell, ohair
2013-01-10 12:20:16 +01:00
Joe Darcy
f2c492220c 8005713: Simplify library support for repeating annotations in java.lang.annotation
Reviewed-by: abuckley
2013-01-09 20:20:21 -08:00
Joe Darcy
51e7243003 8004730: Add language model support for parameter reflection
Reviewed-by: abuckley
2013-01-09 20:02:53 -08:00
Dean Long
f1bd82ba8f Merge 2013-01-09 21:18:52 -05:00
Brian Burkhalter
af27b8c59d 7103957: NegativeArraySizeException while initializing class IntegerCache
Reviewed-by: darcy, mchung
2013-01-09 16:58:47 -08:00
Christian Thalinger
a55305503e 8005418: JSR 292: virtual dispatch bug in 292 impl
Reviewed-by: jrose, kvn
2013-01-09 15:37:23 -08:00
Karen Kinnear
9cc0c0af8b Merge 2013-01-09 18:06:34 -05:00
Zhengyu Gu
e6db535078 Merge 2013-01-09 12:10:25 -08:00
Zhengyu Gu
030fa5107d 7152671: RFE: Windows decoder should add some std dirs to the symbol search path
Added JRE/JDK bin directories to decoder's symbol search path

Reviewed-by: dcubed, sla
2013-01-09 14:46:55 -05:00
Jonathan Gibbons
4779676ac1 8005644: set default max errs and max warns
Reviewed-by: darcy
2013-01-09 10:26:58 -08:00
Bharadwaj Yadavalli
8762d54e63 8005689: InterfaceAccessFlagsTest failures in Lambda-JDK tests
Fix verifier for new interface access flags

Reviewed-by: acorn, kvn
2013-01-09 11:39:30 -05:00
Erik Joelsson
45b5d84c8f 8005903: build-infra: bad symlink: j2sdk-bundle/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
Reviewed-by: tbell
2013-01-09 16:13:29 +01:00
Sean Mullan
86b40c8697 Merge 2013-01-09 08:59:58 -05:00
Alexander Scherbatiy
19b3fdf5ee 8005019: JTable passes row index instead of length when inserts selection interval
Reviewed-by: serb, denis
2013-01-09 16:52:08 +04:00
Fredrik Öhrström
33f2917473 8005096: Move a few source files in swing/beaninfo and in a demo
Reviewed-by: ohair, erikj, malenkov
2013-01-09 13:33:52 +01:00
Bengt Rutisson
0f2c37ea4a 8005489: VM hangs during GC with ParallelGC and ParallelGCThreads=0
Print an error message and exit the VM if UseParallalGC is combined with ParllelGCThreads==0. Also reviewed by vitalyd@gmail.com.

Reviewed-by: stefank, ehelin
2013-01-09 09:48:58 +01:00
Tim Bell
3c8b65b820 8005794: in new infra, how do we change java -version?
Added configure parameter --with-user-release-suffix

Reviewed-by: ohair, tbell
2013-01-08 16:23:45 -08:00
Joe Darcy
df5b548d02 8005298: Add FunctionalInterface type to the core libraries
Reviewed-by: mduigou
2013-01-08 16:08:29 -08:00
Sean Mullan
d01edb0815 Merge 2013-01-08 19:02:55 -05:00
Sean Mullan
b492dc9bac 7019834: Eliminate dependency from PolicyFile to com.sun.security.auth.PrincipalComparator
Add new java.security.Principal.implies method

Reviewed-by: alanb
2013-01-08 19:00:12 -05:00
Zhengyu Gu
f4da82981d Merge 2013-01-08 15:47:23 -08:00
Coleen Phillimore
3296803650 Merge 2013-01-08 13:44:10 -08:00
David Katleman
908a847808 Merge 2013-01-08 13:15:54 -08:00
David Katleman
7426677a62 Merge 2013-01-08 13:14:45 -08:00
David Katleman
70ec9b9666 Merge 2013-01-08 13:14:42 -08:00
David Katleman
d6b52d13ee Merge 2013-01-08 13:14:22 -08:00
Valerie Peng
91510ba8ea Merge 2013-01-08 13:06:22 -08:00
Dan Xu
6cc211f4e1 8002306: (se) Selector.open fails if invoked with thread interrupt status set [win]
Reviewed-by: alanb
2013-01-08 20:37:27 +00:00
Valerie Peng
c6f02e06f0 8004044: Lazily instantiate SunJCE.RANDOM
Replace the static initialization of SunJCE.RANDOM object w/ lazy initialization

Reviewed-by: mchung
2013-01-08 11:55:21 -08:00
Zhengyu Gu
db4cfa5011 Merge 2013-01-08 11:39:53 -08:00
Vladimir Kozlov
38c81fb411 8005419: Improve intrinsics code performance on x86 by using AVX2
Use 256bit vpxor,vptest instructions in String.compareTo() and equals() intrinsics.

Reviewed-by: twisti
2013-01-08 11:30:51 -08:00
Zhengyu Gu
5c6318e816 8005048: NMT: #loaded classes needs to just show the # defined classes
Count number of instance classes so that it matches class metadata size

Reviewed-by: coleenp, acorn
2013-01-08 14:04:25 -05:00
Eric Mccorkle
be968245ec 8004728: Add hotspot support for parameter reflection
Add hotspot support for parameter reflection

Reviewed-by: acorn, jrose, coleenp
2013-01-08 14:01:36 -05:00
Harold Seigel
cfea76669a 8005076: Creating a CDS archive with one alignment and running another causes a crash
Save the alignment when writing the CDS and compare it when reading the CDS.

Reviewed-by: kvn, coleenp
2013-01-08 13:38:11 -05:00
Jiangli Zhou
8d91f983e0 8001341: SIGSEGV in methodOopDesc::fast_exception_handler_bci_for(KlassHandle,int,Thread*)+0x3e9
Use methodHandle.

Reviewed-by: coleenp, acorn, twisti, sspitsyn
2013-01-08 13:01:19 -05:00
Vicente Romero
9d4f6a0ebe 8005167: execution time of combo tests in javac should be improved
Reviewed-by: jjg, jjh
2013-01-08 13:47:57 +00:00
Maurizio Cimadamore
5ee942d5a8 8005184: Restructure DeferredAttr to allow pluggable deferred type completers
Add hooks to generalize deferred type completion via custom helper objects

Reviewed-by: jjg
2013-01-08 10:17:29 +01:00
Maurizio Cimadamore
c932023b04 8005179: Cleanup Resolve.AmbiguityError
Linearize nested ambiguity errors

Reviewed-by: jjg
2013-01-08 10:16:26 +01:00
Maurizio Cimadamore
159b251085 8005243: Restructure method check code to allow pluggable checkers
Add interface to perform a method check - to be implemented by helper classes

Reviewed-by: jjg
2013-01-08 10:15:30 +01:00
Weijun Wang
d9c892c9fd 8005447: default principal should act as anyone
Reviewed-by: valeriep
2013-01-08 14:54:56 +08:00
Stuart Marks
f660de4e1e 7187882: TEST_BUG: java/rmi/activation/checkusage/CheckUsage.java fails intermittently
Tighten up JavaVM test library API, and adjust tests to match.

Reviewed-by: mchung, dmocek
2013-01-07 18:09:07 -08:00
Valerie Peng
2edaf46a3d Merge 2013-01-07 14:40:07 -08:00
Morris Meyer
b3fe91a803 8004537: replace AbstractAssembler emit_long with emit_int32
Reviewed-by: jrose, kvn, twisti
2013-01-07 14:08:28 -08:00
Tim Bell
cd3ceb4771 8005442: autogen.sh sets DATE_WHEN_GENERATED to empty string on Solaris version 11 or later
Reviewed-by: ohair
2013-01-07 14:01:09 -08:00
Brent Christian
b21bc8e16d 8003228: (props) sun.jnu.encoding should be set to UTF-8 [macosx]
Hard-code sun.jnu.encoding to UTF-8 on Mac

Reviewed-by: naoto
2013-01-07 13:19:03 -08:00
Harold Seigel
89e575df23 8003705: CDS failed on Windows: can not map in the CDS
Map memory only once to prevent 'already mapped' failures.

Reviewed-by: acorn, zgu
2013-01-07 15:32:51 -05:00
Valerie Peng
96c5499439 6996769: support AEAD cipher
Added implementation for GCM mode under AES cipher

Reviewed-by: weijun
2013-01-07 11:11:54 -08:00
David Dehaven
1381be8b23 8004547: Extend JavaFX launcher support to allow full JavaFX launch feature set
Reviewed-by: mchung, kcr, ksrini
2013-01-07 09:58:48 -08:00
Jim Holmlund
259f5d7cc8 8005647: langtools/test/tools/javap/MethodParameters.java fails on windows
Fix javap to not output \r\r\n

Reviewed-by: jjg
2013-01-07 17:51:05 +00:00
Chris Hegarty
f4c27e0ba1 8005709: Add at since tags to new FJP getCommonPoolParallelism and commonPool
Reviewed-by: dl
2013-01-05 17:06:54 +00:00
Bhavesh Patel
d0ff55ec00 8005092: javadoc should check for synthesized bit on an annotation
Reviewed-by: jjg
2013-01-05 00:55:53 -08:00
Bhavesh Patel
1dbfb160ba 8004891: Check for abstract method in javadoc does not conform to the language model
Reviewed-by: jjg
2013-01-04 23:06:05 -08:00
Kelly O'Hair
ec348edbe6 8004229: build-infra: Umbrella for switch of default "make" to new makefiles
Reviewed-by: erikj, tbell
2013-01-04 21:04:03 -08:00
Jon Masamitsu
7fb60025ee 8005672: Clean up some changes to GC logging with GCCause's
Reviewed-by: johnc, ysr
2013-01-04 17:04:46 -08:00
Jon Masamitsu
cca092892b 8000325: Change default for CMSClassUnloadingEnabled to true
Reviewed-by: stefank, ysr
2013-01-04 17:04:25 -08:00
Amy Lu
6ae79cff82 8005683: ProblemList.txt updates (01/2013)
Reviewed-by: mchung, alanb
2013-01-04 16:10:14 -08:00
Erik Joelsson
02d2100562 8005723: build-infra: in new infra build, sec-windows-bin-zip and jgss-windows-*-bin.zip are missing
Reviewed-by: tbell
2013-01-04 22:43:32 +01:00
Erik Joelsson
174782e022 8005723: build-infra: in new infra build, sec-windows-bin-zip and jgss-windows-*-bin.zip are missing
Reviewed-by: tbell
2013-01-04 22:43:13 +01:00
Bengt Rutisson
2574114b01 8003822: Deprecate the incremental mode of CMS
Reviewed-by: johnc, jwilhelm
2013-01-04 21:33:22 +01:00
Christopher Gruszka
7695a75883 Merge 2013-01-04 13:11:42 -05:00
Erik Joelsson
a4434fe7db 8005654: build-infra: Create sec-bin.zip
Reviewed-by: tbell
2013-01-04 17:09:10 +01:00
Erik Joelsson
e92b3e716e 8005654: build-infra: Create sec-bin.zip
Reviewed-by: tbell
2013-01-04 17:08:33 +01:00
Erik Joelsson
260c554c06 8005597: build-infra: bridgeBuild broken for pure openjdk build
Reviewed-by: tbell
2013-01-04 17:05:13 +01:00
Erik Joelsson
839f973de6 8005692: build-infra: Target "all" should do the right thing
Reviewed-by: tbell
2013-01-04 16:56:37 +01:00
Erik Joelsson
df61de8df2 8005694: build-infra: Cleanup of misc changes in build-infra
Reviewed-by: tbell
2013-01-04 16:54:41 +01:00
Chris Hegarty
c994d9bc0e 8005638: Less secure Authentication schemes should work when more secure schemes are not available
Reviewed-by: alanb
2013-01-04 11:34:17 +00:00
Chris Hegarty
6061c09cab 8005659: Add tools/pack200/AttributeTests.java to exclude list (ProblemList.txt) until pack200 updated to support method parameters
Reviewed-by: mchung, ksrini
2013-01-04 11:18:00 +00:00
Erik Joelsson
c7144600bf 8005575: build-infra: Three JCK tests fails on Solaris with new RE Autoconf-Based build
Reviewed-by: ohair
2013-01-04 11:31:32 +01:00
Erik Joelsson
24f8d04828 8005575: build-infra: Three JCK tests fails on Solaris with new RE Autoconf-Based build
Reviewed-by: ohair
2013-01-04 11:31:16 +01:00
Erik Joelsson
a393578bcc 8005575: build-infra: Three JCK tests fails on Solaris with new RE Autoconf-Based build
Reviewed-by: ohair
2013-01-04 11:31:00 +01:00
Bengt Rutisson
2cd5c87cb9 8003820: Deprecate untested and rarely used GC combinations
Log warning messages for DefNew+CMS and ParNew+SerialOld

Reviewed-by: ysr, jwilhelm, jcoomes
2013-01-04 11:10:17 +01:00
Vladimir Kozlov
7b9133b99c 8005544: Use 256bit YMM registers in arraycopy stubs on x86
Use YMM registers in arraycopy and array_fill stubs.

Reviewed-by: roland, twisti
2013-01-03 16:30:47 -08:00
Vladimir Kozlov
cfcd28fd9d 8005522: use fast-string instructions on x86 for zeroing
Use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.

Reviewed-by: twisti, roland
2013-01-03 15:09:55 -08:00
Jon Masamitsu
6f5991fa38 8004895: NPG: JMapPermCore test failure caused by warnings about missing field
Reviewed-by: johnc
2013-01-03 15:03:27 -08:00
David Katleman
696db0f4f7 Added tag jdk8-b71 for changeset 3849a5b1c05c 2013-01-03 12:44:58 -08:00
David Katleman
36dee83516 Added tag jdk8-b71 for changeset 8c4241503c02 2013-01-03 12:44:50 -08:00
David Katleman
240cfb1ef1 Added tag jdk8-b71 for changeset 25285d2ea668 2013-01-03 12:44:47 -08:00
David Katleman
98f5be72c4 Added tag jdk8-b71 for changeset c27887135b51 2013-01-03 12:44:46 -08:00
David Katleman
54b645a88b Added tag jdk8-b71 for changeset 03dafcea1815 2013-01-03 12:44:39 -08:00
David Katleman
1c2cee9c68 Added tag jdk8-b71 for changeset 9d40ca78a623 2013-01-03 12:44:34 -08:00
David Katleman
37f63f5f8a Added tag jdk8-b71 for changeset 456ba4f4c541 2013-01-03 12:44:32 -08:00
Bill Pittore
782ef982f6 8004051: assert(_oprs_len[mode] < maxNumberOfOperands) failed: array overflow
Assert is triggered when number of register based arguments passed to a java method exceeds 16.

Reviewed-by: roland, vladidan
2013-01-03 15:08:43 -05:00
Erik Joelsson
9ff32c288e 8005635: build-infra: Support building install in jprt
Co-authored-by: Tim Bell <tim.bell@oracle.com>
Reviewed-by: ohair
2013-01-03 20:55:52 +01:00
Erik Joelsson
f2fab62173 8005635: build-infra: Support building install in jprt
Co-authored-by: Tim Bell <tim.bell@oracle.com>
Reviewed-by: ohair
2013-01-03 20:54:38 +01:00
Chris Hegarty
83223ad4ac 8005634: tools/launcher/VersionCheck.java fails version check on jdeps
Add jdeps to the list of tools that do not support '-version'

Reviewed-by: mchung
2013-01-03 10:00:55 +00:00
Coleen Phillimore
64499d9494 8005494: SIGSEGV in Rewriter::relocate_and_link() when testing Weblogic with CompressedOops and KlassPtrs
Relocate functions with jsr's when rewriting so not repeated after reading shared archive

Reviewed-by: twisti, jrose
2013-01-02 20:28:09 -05:00
Christopher Gruszka
282c765e3d Merge 2013-01-02 14:54:58 -05:00
Erik Joelsson
1d85687c30 8005355: build-infra: Java security signing (need a top-level make target)
Reviewed-by: tbell, ohair
2013-01-02 15:36:00 +01:00
Erik Joelsson
55ba91ee3e 8005355: build-infra: Java security signing (need a top-level make target)
Reviewed-by: tbell, ohair
2013-01-02 15:35:12 +01:00
Erik Joelsson
f80cc97adb 8005347: build-infra: Verify 'gnumake source' at the top level works ok
Reviewed-by: tbell, ohair, dholmes
2013-01-02 11:29:29 +01:00
Lana Steuck
87a4453583 Merge 2013-01-01 17:50:29 -08:00
Lana Steuck
cc77f0e79c Merge 2013-01-01 12:47:16 -08:00
Erik Joelsson
36c06a232d 8001895: build-infra: Make JDK_BUILD_NUMBER and MILESTONE customizable
Added configure params

Reviewed-by: ohair
2013-01-01 14:13:18 +01:00
Qi Zuo
8a93671af6 8005583: Install build(gnumake all) failed preventing RE from doing JDK8 combo builds
Reviewed-by: paulk, billyh
2012-12-31 14:52:11 -05:00
Jonathan Gibbons
39734d27f0 8005195: Doclint regression tests fail on windows
Reviewed-by: mcimadamore
2012-12-30 06:17:36 -08:00
Erik Joelsson
75a99396e7 8004490: build-infra: mac: hotspot is always built in product, regardless of --with-debug-level setting
Reviewed-by: tbell
2012-12-30 12:15:02 +01:00
Bengt Rutisson
53cdde9124 8005396: Use ParNew with only one thread instead of DefNew as default for CMS on single CPU machines
Reviewed-by: jmasa, jcoomes
2012-12-30 08:47:52 +01:00
John Cuthbertson
15bae865ac 8004816: G1: Kitchensink failures after marking stack changes
Reset the marking state, including the mark stack overflow flag, in the event of a marking stack overflow during serial reference processing.

Reviewed-by: jmasa
2013-01-03 16:28:22 -08:00
Eric Mccorkle
73b497c12e 8004727: Add compiler support for parameter reflection
Reviewed-by: jjg
2012-12-29 17:33:17 -08:00
Mandy Chung
e8ce882d43 8003562: Provide a CLI tool to analyze class dependencies
Reviewed-by: jjg, alanb, ulfzibis, erikj
2012-12-28 22:25:21 -08:00
Mandy Chung
87ea670a65 8003562: Provide a CLI tool to analyze class dependencies
Reviewed-by: jjg, alanb, ulfzibis, erikj
2012-12-28 22:20:53 -08:00
Lana Steuck
f2c7a7867a Merge 2012-12-28 18:39:09 -08:00
Lana Steuck
b7af263526 Merge 2012-12-28 18:36:41 -08:00
Lana Steuck
5294fa2499 Merge 2012-12-28 18:31:52 -08:00
Lana Steuck
dcbabfcf7b Merge 2012-12-28 18:31:31 -08:00
Lana Steuck
177206a185 Merge 2012-12-28 18:30:56 -08:00
Lana Steuck
46b23b4009 Merge 2012-12-28 18:28:39 -08:00
Stuart Marks
dbdd083e7c Merge 2012-12-28 17:36:41 -08:00
Jim Gish
f933209475 8005594: Fix to 8003265 breaks build
Backout changeset d05f028770b9

Reviewed-by: smarks, wetmore
2012-12-28 18:32:26 -05:00
Jim Gish
2fc01efdd8 8005118: Javadoc styles are inconsistent
Use a common javadoc style in the String classes

Reviewed-by: darcy
2012-12-28 16:56:54 -05:00
Lana Steuck
33a20f586c Merge 2013-01-01 17:49:22 -08:00
Chris Hegarty
c2f4000a6f 8005556: java/net/Socks/SocksV4Test.java is missing @run tag
Reviewed-by: alanb
2012-12-29 11:00:15 +00:00
Mandy Chung
f85705002e 8003562: Provide a CLI tool to analyze class dependencies
Reviewed-by: jjg, alanb, ulfzibis, erikj
2012-12-28 22:21:40 -08:00
Shanliang Jiang
36ae539974 7120365: DiffHBTest.java fails due to ConcurrentModificationException
The problem is from the server notification forwarder, it should use a copy of listener set to do iterate.

Reviewed-by: alanb
2012-12-28 16:44:27 +01:00
Xue-Lei Andrew Fan
a16e8f75d6 8003265: Need to clone array of input/output parameters
Reviewed-by: mullan
2012-12-28 03:50:57 -08:00
Erik Joelsson
e781e203bf 8005549: build-infra: Merge NewMakefile.gmk and common/makefiles/Makefile
Reviewed-by: ohair, tbell
2012-12-28 09:51:46 +01:00
Erik Joelsson
8ae1606066 8005549: build-infra: Merge NewMakefile.gmk and common/makefiles/Makefile
Reviewed-by: ohair, tbell
2012-12-28 09:51:15 +01:00
Xue-Lei Andrew Fan
6d41a58c82 7109274: Restrict the use of certificates with RSA keys less than 1024 bits
This restriction is applied via the Java Security property, "jdk.certpath.disabledAlgorithms". This will impact providers that adhere to this security property.

Reviewed-by: mullan
2012-12-28 00:48:12 -08:00
Masayoshi Okutsu
552c289b79 8005561: typo in Calendar
Reviewed-by: peytoia
2012-12-28 16:39:22 +09:00
Yuka Kamiya
ada3653e48 8005277: Regression in JDK 7 in Bidi implementation
Reviewed-by: okutsu
2012-12-28 15:07:08 +09:00
Masayoshi Okutsu
12ae00bd7d 8005471: DateFormat: Time zone info is not localized when adapter is CLDR
Reviewed-by: peytoia
2012-12-28 14:13:10 +09:00
Joe Wang
c04f299d28 8005473: Warnings compiling jaxp
Clean up compiling warnings.

Reviewed-by: weijun, chegar, forax
2012-12-27 18:17:58 -08:00
Chris Hegarty
d2bce7f267 8003981: Support Parallel Array Sorting - JEP 103
Co-authored-by: David Holmes <david.holmes@oracle.com>
Co-authored-by: Doug Lea <dl@cs.oswego.edu>
Reviewed-by: chegar, forax, dholmes, dl
2012-12-27 21:55:24 +00:00
David Katleman
645890b143 Added tag jdk8-b70 for changeset 08e2eaa7999a 2012-12-27 12:15:17 -08:00
David Katleman
b4bb519963 Added tag jdk8-b70 for changeset ee8e64d2ea04 2012-12-27 12:15:09 -08:00
David Katleman
cea2872b76 Added tag jdk8-b70 for changeset 2981496fa5fa 2012-12-27 12:15:06 -08:00
David Katleman
1ca719243f Added tag jdk8-b70 for changeset 6ca279338b6b 2012-12-27 12:15:03 -08:00
David Katleman
ca417aacd2 Added tag jdk8-b70 for changeset fabcdf88c360 2012-12-27 12:14:58 -08:00
David Katleman
919a2e217f Added tag jdk8-b70 for changeset e6b0cf31279d 2012-12-27 12:14:55 -08:00
David Katleman
ae64839a12 Added tag jdk8-b70 for changeset 5e47d0354a44 2012-12-27 12:14:53 -08:00
Erik Joelsson
9268fe1857 8005548: build-infra: Fix docs target on windows
Fix path sep variable

Reviewed-by: tbell
2012-12-27 20:55:53 +01:00
Erik Joelsson
b9ea1c8108 8005540: build-infra: Improve incremental build speed on windows by caching find results
Reviewed-by: ohair
2012-12-27 20:18:42 +01:00
Erik Joelsson
1ac4606dea 8005540: build-infra: Improve incremental build speed on windows by caching find results
Reviewed-by: ohair
2012-12-27 20:18:21 +01:00
Erik Joelsson
ce4f8fe85b 8001942: build-infra: General permission problems on Windows/cygwin
Added sanity check for file permissions in configure

Reviewed-by: tbell, ohair
2012-12-27 20:15:22 +01:00
Dmitry Cherepanov
d11167de22 8001161: mac: EmbeddedFrame doesn't become active window
Reviewed-by: ant
2012-12-27 16:08:30 +04:00
David Katleman
d9c8359951 Merge 2012-12-26 14:25:03 -08:00
David Katleman
da7613dbbd Merge 2012-12-26 14:24:32 -08:00
David Katleman
8cbd71d7bf Merge 2012-12-26 14:23:58 -08:00
David Katleman
614dd26d3d Merge 2012-12-26 14:23:50 -08:00
David Katleman
23e90c98b2 Merge 2012-12-26 14:23:27 -08:00
Sean Mullan
2826ca39d3 Merge 2012-12-26 10:08:36 -05:00
Sean Mullan
4bc8e6ac87 8005117: Eliminate dependency from ConfigSpiFile to com.sun.security.auth.login.ConfigFile
Reviewed-by: alanb, mchung, weijun
2012-12-26 10:07:00 -05:00
Bhavesh Patel
8a40619e4d 8004893: the javadoc/doclet needs to be updated to accommodate lambda changes
Reviewed-by: jjg
2012-12-25 17:23:59 -08:00
Yumin Qi
a5fbc1aa4d Merge 2012-12-24 11:46:38 -08:00
Andrew Brygin
dfbb5287a9 8005402: Need to provide benchmarks for color management
Reviewed-by: jgodinez, prr
2012-12-24 14:22:23 +04:00
Andrew Brygin
78a555f9e0 7124245: [lcms] ColorConvertOp to color space CS_GRAY apparently converts orange to 244,244,0
Reviewed-by: prr
2012-12-24 14:03:04 +04:00
Yong Jeffrey Huang
2185318b56 Merge 2012-12-23 19:11:15 -08:00
Roland Westrelin
73d6d417be 8005071: Incremental inlining for JSR 292
Post parse inlining driven by number of live nodes.

Reviewed-by: twisti, kvn, jrose
2012-12-23 17:08:22 +01:00
Joe Wang
7dd77a4b62 8005280: (props) Improve test coverage for small XML parser
Added a few more invalid XML files, international characters to LoadAndStore test, and a behavior compatibility test.

Reviewed-by: alanb, lancea
2012-12-21 17:29:23 -08:00
John Cuthbertson
2df5f7cc5a 8001424: G1: Rename certain G1-specific flags
Rename G1DefaultMinNewGenPercent, G1DefaultMaxNewGenPercent, and G1OldCSetRegionLiveThresholdPercent to G1NewSizePercent, G1MaxNewSizePercent, and G1MixedGCLiveThresholdPercent respectively. The previous names are no longer accepted.

Reviewed-by: brutisso, ysr
2012-12-21 11:45:34 -08:00
Tao Mao
7cb614b0e5 8004132: SerialGC: ValidateMarkSweep broken when running GCOld
Remove bit-rotten ValidateMarkSweep functionality and flag.

Reviewed-by: johnc, jmasa
2013-01-02 11:32:41 -08:00
Jon Masamitsu
86dd796322 8005486: NPG: Incorrect assertion in ChunkManager::list_index()
Reviewed-by: coleenp
2012-12-26 15:05:30 -08:00
Alejandro Murillo
52a0bed8f5 8005382: new hotspot build - hs25-b15
Reviewed-by: jcoomes
2012-12-21 10:27:49 -08:00
Alejandro Murillo
11425ca9ff Merge 2012-12-21 10:27:22 -08:00
Alejandro Murillo
0c6644eb2e Added tag hs25-b14 for changeset 2fb5c8602c9f 2012-12-21 10:17:16 -08:00
Alejandro Murillo
fb6df17a6d Merge 2012-12-21 10:17:15 -08:00
Jesper Wilhelmsson
917282a86d Merge 2012-12-21 16:33:22 +01:00
Martin Buchholz
1d3157ac87 8003512: javac doesn't work with jar files with >64k entries
Reviewed-by: jjg, ksrini
2012-12-21 15:27:55 +00:00
Joe Darcy
378571e10e 8005282: Use @library tag with non-relative path for javac tests
Reviewed-by: jjg
2012-12-21 08:45:43 -08:00
Alexander Potochkin
84f4754563 8003982: new test javax/swing/AncestorNotifier/7193219/bug7193219.java failed on macosx
Reviewed-by: anthony, alexsch
2012-12-21 19:11:50 +04:00
Shanliang Jiang
446a481b15 8005325: The script should use TESTVMOPTS
Put back TESTVMOPTS which was removed by mistake.

Reviewed-by: smarks
2012-12-21 10:58:20 +01:00
Roland Westrelin
42c79d741b Merge 2012-12-21 01:39:34 -08:00
Jaroslav Bachorik
ad4080a20a 7146162: javax/management/remote/mandatory/connection/BrokenConnectionTest.java failing intermittently
ClientCommunicatorAdmin should call gotIOException((IOException)e) instead of restart((IOException)e) when detecting a communication error, because the method gotIOException will send a failure notification if necessary.

Reviewed-by: emcmanus, sjiang
2012-12-21 09:27:37 +01:00
Stuart Marks
1fd4da4d29 8005290: remove -showversion from RMI test library subprocess mechanism
Reviewed-by: jgish, chegar, dmocek
2012-12-20 20:11:45 -08:00
Yong Jeffrey Huang
06be28ce8d 7195759: ISO 4217 Amendment 154
Reviewed-by: naoto
2012-12-20 18:53:46 -08:00
Morris Meyer
113e9ab39d 8004250: replace AbstractAssembler a_byte/a_long with emit_int8/emit_int32
Reviewed-by: jrose, kvn, twisti
2012-12-20 18:53:44 -08:00
David Katleman
5dc630b150 8004982: JDK8 source with GPL header errors
Reviewed-by: ohair
2012-12-20 16:24:51 -08:00
David Katleman
306cab1006 8004982: JDK8 source with GPL header errors
Reviewed-by: ohair
2012-12-20 16:24:50 -08:00
David Katleman
8208c844dd 8004982: JDK8 source with GPL header errors
Reviewed-by: ohair
2012-12-20 16:24:18 -08:00
David Katleman
fb31951ddf 8004982: JDK8 source with GPL header errors
Reviewed-by: ohair
2012-12-20 16:23:11 -08:00
David Katleman
b3404d2c71 8004982: JDK8 source with GPL header errors
Reviewed-by: ohair
2012-12-20 16:22:44 -08:00
Jennifer Godinez
9008a63fde 7180359: Assertion in awt_Win32GraphicsDevice.cpp when running specjbb in jprt
Reviewed-by: bae, prr
2012-12-20 14:43:35 -08:00
Aleksey Shipilev
fede1f0216 8004330: Add missing Unsafe entry points for addAndGet() family
Fix java names for getAndSet intrinsics

Reviewed-by: kvn
2012-12-20 14:17:52 -08:00
Alan Bateman
50185a4371 8005281: (props) loadFromXML/storeToXML with small parser is not thread safe
Reviewed-by: mchung
2012-12-20 20:40:04 +00:00
Alan Bateman
27f7bfd9f0 8001048: JSR-160: Allow IIOP transport to be optional
Reviewed-by: dsamersoff, dfuchs, mchung
2012-12-20 20:29:59 +00:00
Doug Lea
f2c8fd3d1a 8004330: Add missing Unsafe entry points for addAndGet() family
Add Unsafe addAndGet() methods which have intrinsics in Hotspot (7023898)

Reviewed-by: alanb, kvn
2012-12-20 12:24:52 -08:00
Christian Thalinger
d8b54b1219 8005345: JSR 292: JDK performance tweaks
Reviewed-by: kvn, jrose
2012-12-20 11:16:14 -08:00
Jonathan Gibbons
e2bd09e6f6 8005307: fix missing @bug tags
Reviewed-by: jjh
2012-12-20 17:59:46 +00:00
David Katleman
16bb0e7a81 Added tag jdk8-b69 for changeset ec5621e36729 2012-12-20 09:18:36 -08:00
David Katleman
b2724c11c4 Added tag jdk8-b69 for changeset 5dfed9cbd6cf 2012-12-20 09:18:20 -08:00
David Katleman
553bf8aba9 Added tag jdk8-b69 for changeset d703e9dcfdfd 2012-12-20 09:18:10 -08:00
David Katleman
11dfefe252 Added tag jdk8-b69 for changeset 2d4530f2c281 2012-12-20 09:18:07 -08:00
David Katleman
5f74f40caa Added tag jdk8-b69 for changeset 72008e0da092 2012-12-20 09:17:47 -08:00
David Katleman
4630ee07bb Added tag jdk8-b69 for changeset 554224849d39 2012-12-20 09:17:38 -08:00
David Katleman
d571173bc7 Added tag jdk8-b69 for changeset 0798861b8903 2012-12-20 09:17:34 -08:00
Jaroslav Bachorik
96c02bccd3 8005309: Missed tests for 6783290,6937053,7009998
Missed tests for 6783290,6937053,7009998

Reviewed-by: sjiang, emcmanus
2012-12-20 20:12:32 +04:00
Chris Hegarty
6d67de55fa 8005306: Redundant cast warning in KeepAliveStream.java
Reviewed-by: alanb
2012-12-20 15:04:53 +00:00
Doug Lea
a3f6c5ebeb 8002356: Add ForkJoin common pool and CountedCompleter
Reviewed-by: chegar, mduigou
2012-12-20 13:44:06 +00:00
Jaroslav Bachorik
199a9c32b2 7009998: JMX synchronization during connection restart is faulty
Add a return statement after the re-connecting has finished and the state is CONNECTED

Reviewed-by: sjiang
2012-12-20 17:24:56 +04:00
Jaroslav Bachorik
bba9907d2a 6937053: RMI unmarshalling errors in ClientNotifForwarder cause silent failure
The catch block in the fetchNotifs() method is extended to expect UnmarshalException

Reviewed-by: emcmanus
2012-12-20 16:56:33 +04:00
Erik Joelsson
8c190945b9 8005178: build-infra: Dependency on libfdlibm on mac is broken
Reviewed-by: tbell, ohair
2012-12-20 13:05:21 +01:00
Jaroslav Bachorik
28979bd7a2 6783290: MBeanInfo/MBeanFeatureInfo has inconsistent readObject/writeObject
Call readObject in all cases

Reviewed-by: emcmanus
2012-12-20 16:02:42 +04:00
Joel Borggren-Franck
6ed6cb5375 8004823: Add VM support for type annotation reflection
Reviewed-by: dholmes, coleenp
2012-12-20 10:22:19 +01:00
David Holmes
2a45536ba1 7190137: Add support for JVM_VARIANT minimal1
Allow configuration of minimal1 as a target VM along with client and server

Reviewed-by: ohair, erikj
2012-12-20 01:44:02 -05:00
Erik Helin
5bac85fc66 8004691: Add a jtreg test that exercises the ExecuteInternalVMTests flag
Reviewed-by: stefank, brutisso, kvn, ctornqvi
2012-12-20 05:31:40 +01:00
Vladimir Kozlov
e508acf372 8004741: Missing compiled exception handle table entry for multidimensional array allocation
Added missing exception path for multidimensional array allocation and use Throwable type instead of OutOfMemoryError for allocation's exception.

Reviewed-by: twisti
2012-12-19 19:21:15 -08:00
Yumin Qi
ddb2b5d004 Merge 2012-12-19 16:10:19 -08:00
Vladimir Kozlov
960d969ade 8004835: Improve AES intrinsics on x86
Enable AES intrinsics on non-AVX cpus, group together aes instructions in crypto stubs.

Reviewed-by: roland, twisti
2012-12-19 15:40:35 -08:00
Richard Reingruber
ba0d2572eb 8005033: clear high word for integer pop count on SPARC
Reviewed-by: kvn, twisti
2012-12-19 14:44:00 -08:00
David Katleman
6fd78e16c1 Merge 2012-12-19 13:38:05 -08:00
David Katleman
940d0ee783 Merge 2012-12-19 13:36:21 -08:00
Joe Darcy
059b2b67b3 8005097: Tie isSynthetic javadoc to the JLS
Reviewed-by: mduigou
2012-12-19 11:53:52 -08:00
Ron Durbin
9c761152db 8005044: remove crufty '_g' support from HS runtime code
Phase 2 is removing '_g' support from the Runtime code.

Reviewed-by: dcubed, coleenp, hseigel
2012-12-19 10:35:08 -08:00
Alan Bateman
4ce906db2b 8005248: (props) Integrate small footprint parser into Properties
Reviewed-by: joehw, mchung, psandoz, erikj
2012-12-19 14:53:33 +00:00
Joe Wang
122ca6521e 8004371: (props) Properties.loadFromXML needs small footprint XML parser as fallback when JAXP is not present
Reviewed-by: alanb, mchung, psandoz
2012-12-19 12:09:10 +00:00
Shanliang Jiang
679f2eee3f 7158614: JMXStartStopTest.sh failing intermittently
Fixed 3 problems here: 1) checked the lock file too eary 2) never got the process id of a java test 3) some shell commands were not supported in some Solaris machines.

Reviewed-by: dsamersoff, alanb
2012-12-19 11:06:51 +01:00
Erik Joelsson
606197bf4b 8004803: build-infra: Cannot use icedtea as boot for closed build
Set bootclasspath to javac and not the running jvm

Reviewed-by: ohair
2012-12-19 09:46:28 +01:00
Joe Wang
9ee412031f 8003261: static field is public but not final
Add final to fVersion field, and make it a non-compile time constant.

Reviewed-by: hawtin, lancea, dholmes, chegar
2012-12-18 21:11:43 -08:00
Lana Steuck
a0e241952c Merge 2012-12-18 18:14:50 -08:00
Aleksey Shipilev
f39122797e 8004318: JEP-171: Support Unsafe fences intrinsics
Add three memory-ordering intrinsics to the sun.misc.Unsafe class.

Reviewed-by: twisti, kvn
2012-12-18 17:47:50 -08:00
Lana Steuck
f79b7e879f Merge 2012-12-18 17:42:13 -08:00
Aleksey Shipilev
4c293ebcd6 8004318: JEP-171: Support Unsafe fences intrinsics
Add three memory-ordering intrinsics to the sun.misc.Unsafe class.

Reviewed-by: twisti, kvn
2012-12-18 17:37:44 -08:00
Lana Steuck
5c4f1d7778 Merge 2012-12-18 16:14:59 -08:00
Joel Borggren-Franck
6fec53905c 8004699: Add type annotation storage to Constructor, Field and Method
Reviewed-by: darcy, dholmes
2012-12-18 14:49:39 -08:00
Joe Darcy
407aefdc02 8005042: Add Method.isDefault to core reflection
Reviewed-by: alanb, forax, mduigou, jgish, mchung
2012-12-18 14:44:13 -08:00
Morris Meyer
52da261983 8004536: replace AbstractAssembler emit_word with emit_int16
Reviewed-by: jrose, kvn, twisti
2012-12-18 10:47:23 -08:00
Erik Joelsson
a54661714f 8001901: build-infra: Fix "misbehaving" which command on Solaris
Removed all uses of which in configure on solaris.

Reviewed-by: ohair
2012-12-18 17:54:39 +01:00
Vladimir Ivanov
8eb3b25c4f Merge 2012-12-18 08:19:53 -08:00
Konstantin Shefov
f569dcc7e9 7104594: [macosx] Test closed/javax/swing/JFrame/4962534/bug4962534 expects Metal L&F by default
Reviewed-by: yan, alexsch
2012-12-18 15:17:58 +00:00
Vladimir Ivanov
6d08af845e 8003135: HotSpot inlines and hoists the Thread.currentThread().isInterrupted() out of the loop
Make the load of TLS._osthread._interrupted flag in Thread.isInterrupted(Z)Z intrinsic effectively volatile.

Reviewed-by: kvn, jrose
2012-12-18 06:52:00 -08:00
Roland Westrelin
b1c3e5ccc6 8005031: Some cleanup in c2 to prepare for incremental inlining support
Collection of small changes to prepare for incremental inlining.

Reviewed-by: twisti, kvn
2012-12-18 14:55:25 +01:00
Stefan Karlsson
da4c36cdcb 8005108: NPG: MetaspaceAux::used_in_bytes(), capacity_in_bytes() and reserved_in_bytes() return inconsistent numbers
Reverted the changes to these functions from JDK-8000662

Reviewed-by: brutisso, jmasa
2012-12-18 10:40:51 +01:00
Fredrik Öhrström
ccafa0b2e1 8004145: New improved hgforest.sh, ctrl-c now properly terminates mercurial processes
Reviewed-by: ohair, erikj
2012-12-18 09:57:01 +01:00
Martin Buchholz
e046c9d3f5 8004863: Infinite Loop in KeepAliveStream
Reviewed-by: chegar
2012-12-17 18:39:59 -08:00
Bharadwaj Yadavalli
fb74718339 8004548: remove unused AbstractAssembler::print(Label&)
Reviewed-by: kvn, twisti
2012-12-17 11:00:22 -08:00
Zhengyu Gu
934898a792 Merge 2012-12-17 10:40:52 -08:00
Jonathan Gibbons
fe6a78af86 8004832: Add new doclint package
Reviewed-by: erikj, ohair
2012-12-17 10:31:27 -08:00
Zhengyu Gu
c75042e28b 8004802: jcmd VM.native_memory baseline=false crashes VM
NMT has to check option's value also to determine which command to execute

Reviewed-by: acorn, coleenp, hseigel
2012-12-17 13:14:02 -05:00
Mario Torre
d398aa77d7 8005018: X11: focus problems with openjdk 1.7.0 under gnome3 when selected keyboard is not the first in keyboard list
Don't consider extraenous bits when checking button mask, so that grabWindowRef on the window is not confused and released correctly

Reviewed-by: art, anthony
2012-12-17 17:43:21 +01:00
Jonathan Gibbons
d159fff7fd 8005090: Include com.sun.source.doctree in Tree API docs
Reviewed-by: erikj
2012-12-17 08:34:43 -08:00
Jonathan Gibbons
2533b1ce06 8005090: Include com.sun.source.doctree in Tree API docs
Reviewed-by: erikj
2012-12-17 08:34:02 -08:00
Chris Hegarty
00802749ea 8005081: java/util/prefs/PrefsSpi.sh fails on macos-x
Reviewed-by: alanb
2012-12-17 16:27:05 +00:00
Erik Helin
7fc460bae3 8004845: Catch incorrect usage of new and delete during compile time for value objects and stack objects
Makes the "new" and "delete" operator of _ValueObj and StackObj private

Reviewed-by: dholmes, coleenp
2012-12-17 15:25:26 +01:00
Sean Mullan
627cd88eba Merge 2012-12-17 08:30:06 -05:00
Sean Mullan
f458bb3861 8004234: Downgrade normative references to ${java.home}/lib/security/krb5.conf
Reviewed-by: alanb, weijun
2012-12-17 08:28:27 -05:00
Sergey Malenkov
aed660dc95 8005065: [findbugs] reference to mutable array in JavaBeans
Reviewed-by: alexsch
2012-12-17 16:58:56 +04:00
Alexey Utkin
c5c34df7bf 8004928: TEST_BUG: Reduce dependence of CoreLib tests from the AWT subsystem
The tests were refactored to drop AWT dependence where it was possible.

Reviewed-by: alanb, mchung
2012-12-17 14:34:37 +04:00
Bengt Rutisson
a3355065be 7173959: Jvm crashed during coherence exabus (tmb) testing
Mapping of aligned memory needs to be MT safe. Also reviewed by: vitalyd@gmail.com

Reviewed-by: dholmes, coleenp, zgu
2012-12-17 08:49:20 +01:00
Lana Steuck
166cf4fbc1 Merge 2012-12-16 22:09:28 -08:00
Lana Steuck
7aab781edb Merge 2012-12-16 22:05:19 -08:00
Lana Steuck
3855230f7a Merge 2012-12-16 22:02:35 -08:00
Weijun Wang
5ded9d47a1 7197159: accept different kvno if there no match
Reviewed-by: xuelei
2012-12-17 12:18:46 +08:00
Joel Borggrén-Franck
72cbbd7f3b 8005098: Provide isSynthesized() information on Attribute.Compound
Reviewed-by: jjg
2012-12-16 11:09:36 +01:00
Jonathan Gibbons
aee2457cd0 8004833: Integrate doclint support into javac
Reviewed-by: mcimadamore
2012-12-19 11:29:56 +00:00
Lana Steuck
5cf1075de1 Merge 2012-12-18 18:15:47 -08:00
Maurizio Cimadamore
2296453268 8005193: New regression test test/tools/javac/lambda/BadMethodCall2.java fails
Bad golden file in negative test

Reviewed-by: jjh
2012-12-18 22:16:45 +00:00
Fredrik Öhrström
d61f7ca328 8004657: Add hooks to javac to enable reporting dependency information
Reviewed-by: jjg, mcimadamore
2012-12-18 10:23:40 +01:00
Joe Darcy
da02d4f3d5 8005046: Provide checking for a default method in javax.lang.model
Reviewed-by: jjg
2012-12-18 00:24:54 -08:00
Mandy Chung
9f039ad8bd 8005137: Rename DocLint.call to DocLint.init which overrides Plugin.init
Reviewed-by: darcy, jjh
2012-12-17 15:19:38 -08:00
Jonathan Gibbons
3ce1d65326 8004961: rename Plugin.call to Plugin.init
Reviewed-by: mcimadamore
2012-12-17 10:55:40 -08:00
Maurizio Cimadamore
08823b6103 8004099: Bad compiler diagnostic generated when poly expression is passed to non-existent method
Some code paths in resolve do not use methodArguments to correctly format actuals

Reviewed-by: jjg
2012-12-17 16:13:01 +00:00
Jonathan Gibbons
4a3e904c6e 8004832: Add new doclint package
Reviewed-by: mcimadamore
2012-12-17 07:47:05 -08:00
Maurizio Cimadamore
c5acce4569 8004814: javadoc should be able to detect default methods
Reviewed-by: jjg
2012-12-17 14:54:42 +00:00
Lana Steuck
c38e124ed5 Merge 2012-12-16 22:10:52 -08:00
Alan Bateman
29698e6212 8004963: URLConnection, downgrade normative reference to ${java.home}/lib/content-types.properties
Reviewed-by: chegar
2012-12-15 15:07:35 +00:00
Vicente Romero
c1804d6409 8000518: Javac generates duplicate name_and_type constant pool entry for class BinaryOpValueExp.java
Reviewed-by: jjg, mcimadamore
2012-12-15 13:54:51 +00:00
Coleen Phillimore
a7b0cbd4e6 Merge 2012-12-14 16:43:37 -08:00
Alejandro Murillo
b3c9917021 8005036: new hotspot build - hs25-b14
Reviewed-by: jcoomes
2012-12-14 14:27:40 -08:00
Alejandro Murillo
4cb99fc37e Added tag hs25-b13 for changeset a644646e04e5 2012-12-14 14:19:36 -08:00
Alejandro Murillo
e668a7a7a1 Merge 2012-12-14 14:19:35 -08:00
Joe Wang
fd69767808 8003260: [findbug] some fields should be package protected
Change public or protected mutable static fields to private or package private.

Reviewed-by: lancea
2012-12-14 13:24:34 -08:00
Lana Steuck
49be988925 Merge 2012-12-14 13:15:39 -08:00
Lana Steuck
0118983407 Merge 2012-12-14 13:14:33 -08:00
Christian Thalinger
110d953ab2 Merge 2012-12-14 12:11:17 -08:00
Christian Thalinger
40a871f3e9 8003238: JSR 292: intermittent exception failure with java/lang/invoke/CallSiteTest.java
Reviewed-by: jrose, kvn
2012-12-14 12:06:42 -08:00
Gary Collins
11605cf755 Merge 2012-12-14 11:45:55 -08:00
Lana Steuck
25706f6a77 Merge 2012-12-14 11:22:54 -08:00
Lana Steuck
39ddaf8a4b Merge 2012-12-14 11:22:16 -08:00
Lana Steuck
abe9bf1b53 Merge 2012-12-14 11:21:09 -08:00
Ron Durbin
af7cedec67 7153050: remove crufty '_g' support from HotSpot repo makefiles
Phase 1 is removing '_g' support from the Makefiles.

Reviewed-by: dcubed, sspitsyn, coleenp, tbell
2012-12-14 10:06:52 -08:00
Konstantin Shefov
65793d5644 6757986: javax/swing/JInternalFrame/5066752/bug5066752.java needs correction
Reviewed-by: serb, alexsch
2012-12-14 13:32:59 +00:00
Vicente Romero
630bba40bd 8004976: test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java can fail
Reviewed-by: jjg, mcimadamore
2012-12-14 11:16:46 +00:00
David Holmes
516f5d5da2 8003632: HPROF class file version java.lang.RuntimeException errors
Reviewed-by: mchung, lancea
2012-12-13 21:18:27 -05:00
Stefan Karlsson
9d5b19ab0a Merge 2012-12-13 09:06:38 -08:00
David Katleman
f329e18992 Added tag jdk8-b68 for changeset 36e1566efb55 2012-12-13 09:05:43 -08:00
David Katleman
d25f3ac7fb Added tag jdk8-b68 for changeset e56b4a0c1da8 2012-12-13 09:05:35 -08:00
David Katleman
294f5f158e Added tag jdk8-b68 for changeset 461e60cdcd3e 2012-12-13 09:05:31 -08:00
David Katleman
892ca4947b Added tag jdk8-b68 for changeset 0447ec5a0e8c 2012-12-13 09:05:29 -08:00
David Katleman
7b0930ff0e Added tag jdk8-b68 for changeset 9e5f94da743d 2012-12-13 09:05:20 -08:00
David Katleman
dc523aae7a Added tag jdk8-b68 for changeset 9b354f853d8b 2012-12-13 09:05:15 -08:00
David Katleman
e3a5678c3e Added tag jdk8-b68 for changeset 388af7398bc9 2012-12-13 09:05:11 -08:00
Rob McKenna
7524cd99c1 8000525: Java.net.httpcookie api does not support 2-digit year format
Reviewed-by: chegar
2012-12-13 15:28:40 +00:00
Konstantin Shefov
077973261a 7132385: [macosx] IconifyTest of RepaintManager could use some delay
Reviewed-by: serb, alexsch
2012-12-13 15:14:22 +00:00
Mark Sheppard
c9063f559f 8003890: corelibs test scripts should pass TESTVMOPTS
Reviewed-by: chegar, alanb
2012-12-13 14:47:35 +00:00
Sean Mullan
25435d7aa4 Merge 2012-12-13 09:37:29 -05:00
Jason Uh
e3c39dffe5 7193792: sun/security/pkcs11/ec/TestECDSA.java failing intermittently
Reviewed-by: vinnie, wetmore
2012-12-13 09:35:35 -05:00
Chris Hegarty
453bef09b0 8004675: Inet6Address.getHostAddress should use string scope identifier where available
...and some minor stylistic cleanup

Reviewed-by: khazra, dsamersoff, michaelm
2012-12-13 14:33:32 +00:00
Chris Hegarty
2f8cd2937d 8004925: java/net/Socks/SocksV4Test.java failing on all platforms
Reviewed-by: alanb, dsamersoff
2012-12-13 09:55:55 +00:00
Erik Helin
0ed52d16e2 8004661: Comment and function name java_lang_String::toHash is wrong
Renamed to hash_code

Reviewed-by: dholmes, coleenp, brutisso
2012-12-13 10:09:49 +01:00
Volker Simonis
2b3c2f2603 8004674: Add necessary .inline.hpp files to fix non-PCH build
Reviewed-by: stefank, coleenp
2012-12-13 09:28:14 +01:00
Roman Kennke
9032aa3391 8004898: library_call.cpp build error after 7172640 with GCC 4.7.2
Fix opto/library_call.cpp compilation errors

Reviewed-by: twisti, coleenp
2012-12-12 21:40:04 -05:00
Lance Andersen
e57799bc0e 8004357: Implement various methods in SerialBlob/Clob/Array and specify Thread Safety
Reviewed-by: naoto
2012-12-12 20:57:45 -05:00
Weijun Wang
85db8f9602 8004235: Disable native JGSS provider on Mac
Reviewed-by: erikj, valeriep
2012-12-13 08:11:38 +08:00
Jim Gish
3e23931d0c 8004651: TEST: java/util/logging/CheckLockLocationTest.java failed to delete file (win)
Failure to delete test log file should be a warning instead of test failure

Reviewed-by: mduigou, smarks
2012-12-12 15:37:27 -08:00
Stefan Karlsson
47424a5d4d 8005002: Crash because of a raw oop in ClassLoaderData::add_dependency
Move the handelization of 'last' to a point before the GC might enter.

Reviewed-by: dholmes, sspitsyn, coleenp
2012-12-12 22:41:13 +01:00
Paul Nauman
0d7c6381b3 8004713: Stackoverflowerror thrown when thread stack straddles 0x80000000
Use unsigned comparison when checking for stack overflow

Reviewed-by: kvn, twisti
2012-12-13 17:27:55 -08:00
David Katleman
f522d676c3 Merge 2012-12-12 13:21:39 -08:00
David Katleman
4ddb77631b Merge 2012-12-12 13:19:32 -08:00
John Cuthbertson
73843e1140 8001028: Improve GC option handling
If there are not enough native resources to create the ReferenceHandler or Finalizer Java threads, the VM will attempt to throw an OOME before the java.lang.Class class has been initialized. This can result in assertion failures and other crashes. Move the initialization of the java.lang.Class class to just before the initialization of the java.lang.ref.Finalizer class.

Reviewed-by: jwilhelm, dholmes, coleenp
2012-12-12 12:07:32 -08:00
Stuart Marks
38887c7167 8004748: clean up @build tags in RMI tests
Reviewed-by: alanb, darcy, mchung
2012-12-12 09:53:01 -08:00
Coleen Phillimore
54bbf614e8 8004883: NPG: clean up anonymous class fix
Add klass_holder() to return either mirror or class_loader depending on if the class is anonymous or not.

Reviewed-by: stefank, jrose
2012-12-12 11:39:29 -05:00
Rob McKenna
bf46e16bbc 8004337: java/sql tests aren't run in test/Makefile
Reviewed-by: lancea, alanb
2012-12-12 15:57:14 +00:00
Sean Mullan
6d9c854a3d Merge 2012-12-12 09:27:35 -05:00
Sean Mullan
f7ad1c8c98 8004064: Downgrade normative references to ${java.home}/lib/security/java.security
Reviewed-by: alanb, vinnie, xuelei
2012-12-12 09:25:24 -05:00
Alan Bateman
64b0adf837 8004874: Reduce dependency on java.beans to only add/removePropertyChangeListener
Reviewed-by: ksrini, mchung, dholmes
2012-12-12 13:03:05 +00:00
Chris Hegarty
2f710eebba 8004921: Trivial javadoc warnings in Base64
Reviewed-by: darcy
2012-12-12 11:35:18 +00:00
Weijun Wang
c740727efc 8004904: Makefile for ntlm
Reviewed-by: erikj, chegar
2012-12-12 18:39:34 +08:00
Jayashree Viswanathan
2c1f08ea9e 8004316: Printer - tempfile having incorrect extension
Reviewed-by: bae, jgodinez
2012-12-12 13:28:35 +08:00
Mike Duigou
20d79bf440 8004905: Correct license of test to remove classpath exception
Reviewed-by: akhil
2012-12-11 20:49:44 -08:00
Akhil Arora
ee1832fd74 8003246: Add InitialValue Supplier to ThreadLocal
Reviewed-by: mduigou, forax, dl, chegar, briangoetz
2012-12-11 15:33:16 -08:00
Jiangli Zhou
511a9d8982 8004076: Move _max_locals and _size_of_parameters to ConstMethod for better sharing
Move _max_locals and _size_of_parameters to ConstMethod for better sharing.

Reviewed-by: coleenp, minqi, jrose
2012-12-11 12:41:31 -05:00
Petr Pchelko
c745a7e923 7154778: [macosx] NSView-based implementation of sun.awt.EmbeddedFrame
The new implementation of EmbeddedFrame to support SWT_AWT Bridge

Reviewed-by: anthony, serb, leonidr
2012-12-11 19:45:00 +04:00
Erik Joelsson
5695b639f8 8001753: build-infra: mismatch with full debug symbol control for hotspot
Changing boolean values of ENABLE_DEBUG_SYMBOLS.

Reviewed-by: dholmes, ohair
2012-12-11 12:27:34 +01:00
Erik Joelsson
7e37c10bf1 8001753: build-infra: mismatch with full debug symbol control for hotspot
Enabling hotspot to use the FDS settings established at configure time

Reviewed-by: dholmes, ohair
2012-12-11 11:33:34 +01:00
Erik Joelsson
f5fc8bc650 8003945: build-infra: problems finding compiler when using --with-dev-kit
Search all compiler names in dev-kit dir first.

Reviewed-by: tbell
2012-12-11 11:29:58 +01:00
Weijun Wang
2be2f20b65 8004488: wrong permissions checked in krb5
Reviewed-by: xuelei
2012-12-11 13:14:56 +08:00
Lana Steuck
e28423afe9 Merge 2012-12-10 20:59:38 -08:00
Lana Steuck
393e43594b Merge 2012-12-10 20:58:36 -08:00
Lana Steuck
a4c1246b3a Merge 2012-12-10 20:52:08 -08:00
Frank Ding
9cb760fd37 6512101: Incorrect encoding in NetworkInterface.getDisplayName()
Reviewed-by: chegar, dsamersoff
2012-12-11 10:42:24 +08:00
Mandy Chung
e4a502d7f5 4819681: Typo in http://java.sun.com/j2se/1.4.1/docs/api/java/util/logging/LogManager.html
Simple capitalization typo in LogManager() description

Reviewed-by: darcy, mchung
2012-12-10 15:15:57 -08:00
Michael McMahon
5e999034a3 8003948: NTLM/Negotiate authentication problem
Reviewed-by: chegar, weijun
2012-12-10 14:56:44 +00:00
Masayoshi Okutsu
78a8ed73a2 8000983: Support narrow display names for calendar fields
8003267: Support generic time zone names in TimeZoneNameProvider (SPI)

Reviewed-by: naoto
2012-12-10 10:52:11 +09:00
Dan Xu
8be8c66772 7194370: (fs) WatchService fails if volume S/N is 0 [win]
Reviewed-by: alanb, forax
2012-12-09 19:13:08 +00:00
David Dehaven
4698a5c96d 8004042: Arrrghs.java test failed on windows with access error
Reviewed-by: smarks, jjh, ksrini
2012-12-09 07:43:12 -08:00
Bharadwaj Yadavalli
04fee0b792 8004668: Build failure for Zero target
Fixed build failure for Zero target

Reviewed-by: twisti, kvn
2012-12-07 18:13:23 -08:00
John Cuthbertson
1dff0005b9 Merge 2012-12-07 16:08:05 -08:00
Alejandro Murillo
ba2a5a260d 8004724: new hotspot build - hs25-b13
Reviewed-by: jcoomes
2012-12-07 10:55:16 -08:00
Alejandro Murillo
0d262db9b4 Added tag hs25-b12 for changeset 31453af433e7 2012-12-07 10:46:54 -08:00
Alejandro Murillo
b059fdfdb3 Merge 2012-12-07 10:46:53 -08:00
Erik Joelsson
f790d59eca 8004045: build-infra: Error 12 from zip when updating src.zip
Hiding this error from make so that it doesn't fail

Reviewed-by: ohrstrom, dholmes
2012-12-07 17:23:42 +01:00
Jesper Wilhelmsson
6c64f0223c Merge 2012-12-07 07:36:51 -08:00
Roland Westrelin
d8921b191a Merge 2012-12-07 01:09:03 -08:00
Robert Field
846f0f2ded 8003881: Prevent lambda implementing inner classes from allowing the creation of new instances
Lambda implementing inner classes now has private constructor (thanks Kumar)

Reviewed-by: ksrini
2012-12-06 21:55:55 -08:00
Henry Jen
b7f53938ae 8004685: add java.util.function to CORE_PKGS.gmk
Reviewed-by: mduigou
2012-12-06 15:38:31 -08:00
Lance Andersen
fbc76e673a 8004374: CachedRowSetSwriter.writeData reports wrong number of conflicts in SyncProviderException
Reviewed-by: naoto
2012-12-06 15:51:44 -05:00
David Katleman
453c37183c Added tag jdk8-b67 for changeset 68edf7c31a6d 2012-12-06 12:04:44 -08:00
David Katleman
d8eae9f3ec Added tag jdk8-b67 for changeset 558a3373ba7e 2012-12-06 12:04:35 -08:00
David Katleman
8dfc01a8f3 Added tag jdk8-b67 for changeset 8f2ccadbf32b 2012-12-06 12:04:30 -08:00
David Katleman
8afda75ade Added tag jdk8-b67 for changeset 11084bacb67d 2012-12-06 12:04:27 -08:00
David Katleman
d337116170 Added tag jdk8-b67 for changeset af8f87762e23 2012-12-06 12:04:17 -08:00
David Katleman
a3784507bf Added tag jdk8-b67 for changeset 66fb055d7580 2012-12-06 12:04:12 -08:00
David Katleman
dcf65b2a52 Added tag jdk8-b67 for changeset dc59b2c5a701 2012-12-06 12:04:11 -08:00
Christian Thalinger
cd08acf8ea Merge 2012-12-06 11:05:33 -08:00
Christian Thalinger
34733bb83c 8003250: SPARC: move MacroAssembler into separate file
Reviewed-by: jrose, kvn
2012-12-06 09:57:41 -08:00
Nils Eliasson
c44c5e64ed Merge 2012-12-06 14:33:52 +01:00
Erik Joelsson
6fd00f446e 8004104: build-infra: Minor cleanup
Reviewed-by: ohrstrom, tbell
2012-12-06 12:09:33 +01:00
Nils Eliasson
7cd4aaa02d 8003934: Fix generation of malformed options to Projectcreator
Makefile produces unmatched quotes due to nmake bug

Reviewed-by: jwilhelm, brutisso
2012-12-06 09:50:08 +01:00
Jim Gish
aab1dbdc30 8004317: TestLibrary.getUnusedRandomPort() fails intermittently, but exception not reported
Reviewed-by: alanb, dmocek, smarks
2012-12-05 21:08:14 -08:00
David Katleman
7350163053 Merge 2012-12-05 12:53:55 -08:00
David Katleman
c18cb33802 Merge 2012-12-05 12:52:47 -08:00
Erik Joelsson
cbba06982b 8003414: build-infra: fails on on windows
Added extra check that windows sdk is valid.

Reviewed-by: tbell, ohrstrom, ohair
2012-12-05 16:35:25 +01:00
Alan Bateman
f5797a2ffe 8004491: Build breakage on Linux due to 8004188
Reviewed-by: chegar, erikj
2012-12-05 12:20:00 +00:00
Erik Joelsson
6c560d6b09 8004281: build-infra: Move all jar creation to images target and put jars in images/lib
Reviewed-by: ohair, tbell, dholmes
2012-12-05 10:12:57 +01:00
Erik Joelsson
e60836f1d6 8004281: build-infra: Move all jar creation to images target and put jars in images/lib
Fixed bug in setting up make dependencies in SetupArchive.

Reviewed-by: ohair, tbell, dholmes
2012-12-05 10:12:14 +01:00
Erik Joelsson
f148219a1f 8001541: Cannot build on Solaris using softlinks
Fixed softlink resolver macro in configure.

Reviewed-by: tbell, ohair
2012-12-05 09:39:34 +01:00
Jason Uh
a3f91508bd 8004188: Rename src/share/lib/security/java.security to java.security-linux
Reviewed-by: mullan, mchung
2012-12-04 17:40:41 -05:00
Jim Gish
f436d23492 8003596: TEST_BUG: java/util/logging/CheckLockLocationTest.java failing [win]
Reviewed-by: alanb
2012-12-04 20:21:19 +00:00
Lana Steuck
0e089aadcd Merge 2012-12-04 11:46:27 -08:00
Lana Steuck
e7f9c73f87 Merge 2012-12-04 11:41:44 -08:00
Maurizio Cimadamore
01dc08a587 8004360: regression test DefaultMethodRegressionTests fails in langtools
Ignore broken failing test

Reviewed-by: jjg
2012-12-04 17:19:42 +00:00
Krystal Mo
e6ab16c283 8004066: TEST_BUG: test/java/lang/Math/DivModTests.java assumes ArithmeticException message
Reviewed-by: twisti, alanb, dholmes
2012-12-04 15:10:03 +00:00
Dan Xu
00ad2900dd 7142921: (fs) Files.probeContentType reports a MIME type of "text/plain" on Ubuntu 11.04
7144997: (fs) Files.probeContentType returns null on Solaris 64-bit

Reviewed-by: alanb, mduigou
2012-12-04 14:07:30 +00:00
Andrew Haley
0b8ff32553 8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c
Code does not check for JNU_GetEnv returning NULL.

Reviewed-by: anthony
2012-12-04 14:02:08 +00:00
Jayashree Viswanathan
ec15d0a1b0 4631925: JColor Chooser is not fully accessible
Reviewed-by: alexsch
2012-12-04 17:17:45 +04:00
Alexander Scherbatiy
8841803399 8002077: Possible mnemonic issue on JFileChooser Save button on nimbus L&F
Reviewed-by: serb
2012-12-04 16:42:19 +04:00
Jaroslav Tulach
288c935f0d 8003830: NPE at BasicTreeUI$Actions.page:4470
Reviewed-by: serb, alexsch
2012-12-04 15:56:02 +04:00
Alexander Scherbatiy
367e07444a 6671481: NPE at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection
Reviewed-by: serb
2012-12-04 15:26:57 +04:00
Christian Thalinger
c5240e7c53 8004319: test/gc/7168848/HumongousAlloc.java fails after 7172640
Reviewed-by: kvn, johnc
2012-12-03 15:48:49 -08:00
Jon Masamitsu
e8b3b89264 8005082: NPG: Add specialized Metachunk sizes for reflection and anonymous classloaders
Reviewed-by: johnc, coleenp
2012-12-03 15:09:39 -08:00
Jason Uh
e4c0346aa9 7199143: RFE: OCSP revocation checker should provide possibility to specify connection timeout
Added com.sun.security.ocsp.timeout system property to control timeout

Reviewed-by: mullan, vinnie
2012-12-03 11:07:20 -05:00
Xue-Lei Andrew Fan
eb66ce8b2e 8004184: security tests leave JSSEServer running
Use othervm mode to release resources,  and correct the system properties issues in JSSE

Reviewed-by: chegar
2012-12-03 06:00:19 -08:00
Andrew Brygin
0c7b2461a2 7124347: [macosx] java.lang.InternalError: not implemented yet on call Graphics2D.drawRenderedImage
Reviewed-by: prr, flar
2012-12-03 16:26:47 +04:00
Joel Borggrén-Franck
e4c3d2d727 8001114: Container annotation is not checked for semantic correctness
Reviewed-by: jjg
2012-12-03 11:16:32 +01:00
Jan Lahoda
9537c44ca5 8004504: ListBuffer could reuse List.nil() as the sentinel element
ListBuffer.last now points to the last elements with client data, or null if none.

Reviewed-by: jjg, mcimadamore
2012-12-12 20:26:56 +01:00
Jonathan Gibbons
1c8e65a20e 8004828: refactor init of *DocImpl classes
Reviewed-by: darcy
2012-12-11 15:05:55 -08:00
Vicente Romero
8fc2d739bd 8003967: detect and remove all mutable implicit static enum fields in langtools
Reviewed-by: jjg
2012-12-10 16:21:26 +00:00
Maurizio Cimadamore
5c0bff8f21 8004094: Javac compiler error - synthetic method accessor generated with duplicate name
Method clash check logic should skip methods marked with ACC_SYNTHETIC

Reviewed-by: jjg
2012-12-10 12:10:50 +00:00
Erik Joelsson
c4bb9ec3b8 8003819: build-infra: backslashes at end of LIB and INCLUDE in spec.gmk
Removing trailing backslash from LIB and INCLUDE.

Reviewed-by: ohrstrom, ohair
2012-12-03 10:26:55 +01:00
Weijun Wang
fdd109b467 7198507: [TEST_BUG] sun/security/tools/keytool/console.sh should be rewritten
Reviewed-by: xuelei
2012-12-03 17:14:03 +08:00
Bill Pittore
ecdf296456 7200297: agent code does not handle multiple boot library path elements correctly
When bug 6819213 was fixed it enabled sun.boot.library.path property to contain multiple paths. Code in agents does not handle multiple paths when attempting to find dependent shared libs.

Reviewed-by: dholmes, sspitsyn, dsamersoff
2012-12-02 19:16:56 -05:00
Alan Bateman
d2d5213b87 8003846: Override mechanism for currency data should not require creating currency.properties in java.home
Reviewed-by: naoto
2012-12-02 16:37:31 +00:00
Xueming Shen
e78a1eb083 8004212: java.util.Base64 methods decodeArray and decodeBuffer should return the number of bytes written
To return the length instead of position

Reviewed-by: alanb
2012-12-01 11:36:25 -08:00
Lana Steuck
76863b84de Merge 2012-11-30 17:09:05 -08:00
Alejandro Murillo
6a66f24366 8004248: new hotspot build - hs25-b12
Reviewed-by: jcoomes
2012-11-30 17:00:32 -08:00
Alejandro Murillo
1944119a77 Added tag hs25-b11 for changeset 7236115a66ae 2012-11-30 16:45:27 -08:00
Alejandro Murillo
654d3dcd3e Merge 2012-11-30 16:45:26 -08:00
Lana Steuck
cc4aa039e3 Merge 2012-11-30 16:34:51 -08:00
Lana Steuck
351dbc4683 Merge 2012-11-30 16:33:50 -08:00
Lana Steuck
574b90d1c6 Merge 2012-11-30 16:31:13 -08:00
Lana Steuck
ad0ada24a2 Merge 2012-11-30 16:02:00 -08:00
Christian Thalinger
2c2c007448 8003240: x86: move MacroAssembler into separate file
Reviewed-by: kvn
2012-11-30 15:23:16 -08:00
John Cuthbertson
6c0bf79f7a Merge 2012-11-30 12:01:34 -08:00
Kurchi Subhra Hazra
d7cae9afff 7197662: (prefs) java/util/prefs/AddNodeChangeListener.java fails by timeout or by "couldn't get file lock"
Set -Djava.util.prefs.userRoot to current working directory of user in the prefs tests

Reviewed-by: alanb, chegar, weijun, dxu
2012-11-30 12:00:07 -08:00
Bharadwaj Yadavalli
a533392684 8003195: AbstractAssembler should not store code pointers but use the CodeSection directly
Reviewed-by: twisti, kvn
2012-11-30 11:44:05 -08:00
David Chase
98c1b902dd 8001885: JSR 292 classes should use jdk.internal.org.objectweb.asm
Reviewed-by: kvn, jrose, twisti
2012-11-30 11:42:55 -08:00
Maurizio Cimadamore
d7884e5ae2 8002099: Add support for intersection types in cast expression
Add parser and type-checking support for intersection types in cast expressions

Reviewed-by: jjg
2012-11-30 15:14:48 +00:00
Maurizio Cimadamore
c76c08e82a 8004101: Add checks for method reference well-formedness
Bring method reference type-checking in sync with latest EDR

Reviewed-by: jjg
2012-11-30 15:14:36 +00:00
Maurizio Cimadamore
0db60b7bb2 8004102: Add support for generic functional descriptors
Method references are allowed to have a generic functional interface descriptor target

Reviewed-by: jjg
2012-11-30 15:14:25 +00:00
Maurizio Cimadamore
684271da34 8004105: Expression statement lambdas should be void-compatible
Fix lambda compatibility rules as per latest EDR

Reviewed-by: jjg
2012-11-30 15:14:12 +00:00
Konstantin Shefov
792a1f9d72 7124242: [macosx] Test doesn't work because of the frame round corners in the LaF
Reviewed-by: anthony, yan, alexsch
2012-11-30 12:39:37 +00:00
Joel Borggrén-Franck
5b7045b5ba 8004110: Remove debug code form sun/reflect/annotation/AnnotationSupport.java
Reviewed-by: jjg, darcy
2012-11-30 09:47:17 +01:00
Alan Bateman
a42dd61e45 7165762: (aio) Default thread pool should be configured so that threads terminated after a timeout period
Reviewed-by: chegar
2012-11-30 16:29:32 +00:00
Alan Bateman
2f3796af9d 8003949: LogManager, downgrade normative reference to ${java.home}/lib/logging.properties
Reviewed-by: psandoz, mchung
2012-11-30 11:18:16 +00:00
Shi Jun Zhang
4b272f6fdd 8004211: Remove unused dlinfo local variable in launcher code
Reviewed-by: alanb
2012-11-30 17:24:54 +08:00
Andrew Brygin
96a62b95f3 7124223: [macosx] Regression test failure with new exception, when glyph is positioned explicitly
Reviewed-by: jgodinez
2012-11-30 11:32:36 +04:00
Staffan Larsen
c1126e3727 7155168: java/util/TimeZone/Bug6912560.java: expected Asia/Tokyo
Reviewed-by: okutsu
2012-11-30 08:17:02 +01:00
Amy Lu
dd42277862 8004134: More ProblemList.txt updates (11/2012)
Reviewed-by: alanb
2012-11-29 14:43:46 -08:00
Stefan Karlsson
98abf6fb1c 8004199: Change the ASM package for Test8003720
Reviewed-by: kvn, jrose
2012-11-29 23:02:52 +01:00
Chris Plummer
fdf8ceee2d Merge 2012-11-29 13:55:49 -08:00
Coleen Phillimore
7aa43fc5d8 8000662: NPG: nashorn ant clean test262 out-of-memory with Java heap
Add ClassLoaderData object for each anonymous class with metaspaces to allocate in.

Reviewed-by: twisti, jrose, stefank
2012-11-29 16:50:29 -05:00
David Katleman
e21b3cc37b Added tag jdk8-b66 for changeset 4f273518dc3b 2012-11-29 11:31:48 -08:00
David Katleman
32e0bb9c4e Added tag jdk8-b66 for changeset bc93357f4936 2012-11-29 11:31:01 -08:00
David Katleman
1bedcf62af Added tag jdk8-b66 for changeset b2f74901d05c 2012-11-29 11:30:33 -08:00
David Katleman
cc7b34ea06 Added tag jdk8-b66 for changeset bc221bce9150 2012-11-29 11:30:24 -08:00
David Katleman
d926f93877 Added tag jdk8-b66 for changeset fe1a7da1f85c 2012-11-29 11:30:04 -08:00
David Katleman
e0d4a1ff33 Added tag jdk8-b66 for changeset f83c6348160b 2012-11-29 11:29:48 -08:00
David Katleman
484044afec Added tag jdk8-b66 for changeset d31d8682bc9e 2012-11-29 11:29:44 -08:00
John Cuthbertson
defec7ae16 Merge 2012-11-29 11:23:15 -08:00
Jon Masamitsu
e74d551608 8003554: NPG: move Metablock and Metachunk code out of metaspace.cpp
Reviewed-by: coleenp
2012-11-29 10:09:04 -08:00
John Cuthbertson
4e43b88153 8004170: G1: Verbose GC output is not getting flushed to log file using JDK 8
Add flushes to G1CollectedHeap::log_gc_footer() and TraceCPUTime destructor.

Reviewed-by: jwilhelm, azeemj, brutisso
2012-11-30 11:46:17 -08:00
Peter Levart
79727a83aa 8004141: UnsafeStaticFieldAccessorImpl#base should be final
Reviewed-by: chegar, alanb
2012-11-29 17:03:52 +00:00
Alexander Scherbatiy
463528217c 8000423: Diacritic is not applyed to a base letter on Linux
Reviewed-by: anthony, serb
2012-11-29 07:42:23 -05:00
Jim Gish
7aed72aa11 8003380: Compiler warnings in logging test code
Use generics, suppress warnings where appropriate, remove unused imports, etc.

Reviewed-by: lancea, chegar
2012-11-29 12:28:02 +00:00
Michael McMahon
38bcfd05a2 Merge 2012-11-29 09:47:31 +00:00
Vicente Romero
ba3ae37ef0 7153958: add constant pool reference to class containing inlined constants
Reviewed-by: jjg, mcimadamore
2012-11-29 09:41:48 +00:00
Michael McMahon
ab75d799e3 7200720: crash in net.dll during NTLM authentication
Reviewed-by: chegar, dsamersoff
2012-11-29 09:41:20 +00:00
Stuart Marks
2d91430e91 8004131: move jdi tests out of core testset
Reviewed-by: alanb, chegar
2012-11-28 17:31:35 -08:00
Mike Duigou
2a4b35660e 6553074: String{Buffer,Builder}.indexOf(Str, int) contains unnecessary allocation
It is not necessary to extract the value array with toCharArray. The value array can now be used directly.

Reviewed-by: alanb
2012-11-29 14:09:45 -08:00
Mike Duigou
1cf41521cc 7175464: entrySetView field is never updated in NavigableSubMap
The method entrySet() in AscendingSubMap and DescendingSubMap failed to cache the entrySetView.

Reviewed-by: alanb, psandoz
2012-11-29 14:07:47 -08:00
Stuart Marks
f721ac5ad5 8004131: move jdi tests out of core testset
Reviewed-by: alanb, chegar
2012-11-28 17:31:30 -08:00
Coleen Phillimore
6538c5134b 8003635: NPG: AsynchGetCallTrace broken by Method* virtual call
Make metaspace::contains be lock free and used to see if something is in metaspace, also compare Method* with vtbl pointer.

Reviewed-by: dholmes, sspitsyn, dcubed, jmasa
2012-11-28 17:50:21 -05:00
David Katleman
f620e53bca Merge 2012-11-28 14:07:26 -08:00
David Katleman
8a5c8801ab Merge 2012-11-28 14:06:14 -08:00
David Katleman
fb719ffc25 Merge 2012-11-28 14:03:53 -08:00
Mandy Chung
67a70e3b75 8003869: Eliminate java.lang.invoke.InnerClassLambdaMetafactory dependency on java.util.logging
Reviewed-by: alanb, dholmes
2012-11-28 10:50:54 -08:00
Mandy Chung
6c4d705c91 8003851: MethodHandleNatives dependency on java.sql.DriverManager
Reviewed-by: alanb, dholmes
2012-11-28 10:49:15 -08:00
Daniel Fuchs
996befafc2 Merge 2012-11-28 10:08:31 -08:00
Joel Borggrén-Franck
36464f41e2 7154390: Add support for repeating annotations in j.l.r.AnnotatedElement
Reviewed-by: darcy
2012-11-28 09:21:37 -08:00
Coleen Phillimore
696ef20cb4 Merge 2012-11-28 08:43:26 -08:00
Zhengyu Gu
052a8eade3 Merge 2012-11-28 06:42:03 -08:00
Zhengyu Gu
408c9d46f3 8003689: MemTracker::init_tracking_options() reads outside array if commandline argument is empty
Fixed potential buffer overrun when giving empty option to NativeMemoryTracking commandline option

Reviewed-by: ctornqvi, hseigel, kvn
2012-11-28 09:19:38 -05:00
Daniel Fuchs
d1b26bf6dd 8003476: Cleanup warnings in com.sun.jmx.snmp code
Reviewed-by: alanb, smarks
2012-11-28 15:14:47 +01:00
Florian Weimer
a1c151acd0 8004019: Removes unused method HandshakeHash.setCertificateVerifyAlg()
Certification verification in HandshakeHash was abandoned during TLS 1.2 implementation

Reviewed-by: xuelei, weijun
2012-11-28 05:18:57 -08:00
Harold Seigel
ef28e7a277 6924920: Class Data Sharing limit on the java version string can create failures
Truncate the java version string and add a hash value if it is too long.

Reviewed-by: dholmes, coleenp
2012-11-28 08:17:59 -05:00
Erik Joelsson
2f74d6d52e 8003482: build-infra: Use correct manifest in security jars
Reviewed-by: ohair, ohrstrom
2012-11-28 14:10:00 +01:00
Erik Joelsson
861d5c3e01 8003528: build-infra: Diffs in libjava and hotspot libs on solaris
Reorder libraries on link command line to match old build.

Reviewed-by: ohair, ohrstrom
2012-11-28 13:49:33 +01:00
Erik Joelsson
760fa57658 8003528: build-infra: Diffs in libjava and hotspot libs on solaris
Linking against server jvm first if available. Adding filters and exceptions for hotspot lib compare on solaris.

Reviewed-by: ohair, ohrstrom
2012-11-28 13:48:36 +01:00
Erik Joelsson
858cebeb66 8003844: build-infra: docs target isn't working properly
Fixed docs and docs-clean target. Added compare support for docs.

Reviewed-by: ohair, jjg, ohrstrom
2012-11-28 13:40:17 +01:00
Erik Joelsson
29a342dabe 8003844: build-infra: docs target isn't working properly
Adding resources to bootstrap javadoc.jar. Adding missing .js resource suffix

Reviewed-by: ohair, jjg, ohrstrom
2012-11-28 13:37:50 +01:00
Erik Joelsson
bf822bfa13 8003477: build-infra: Remove explicit source file listings for libs when possible
Reviewed-by: ohair, ohrstrom
2012-11-28 13:29:35 +01:00
Erik Joelsson
318015ba7a 8001460: build-infra: Linker warnings on macosx
Remove creation of empty i386 section from fdlibm

Reviewed-by: ohair
2012-11-28 13:20:43 +01:00
Erik Joelsson
fb43b09f46 8001460: build-infra: Linker warnings on macosx
Only linking against jvm variant specific dirs if they are expected to exist.

Reviewed-by: ohair
2012-11-28 13:15:56 +01:00
Andrew Brygin
35183211d7 7064516: ImageIO.read() fails to load an image
Reviewed-by: jgodinez, prr
2012-11-28 14:12:32 +04:00
Erik Joelsson
b197a6ca68 8003960: build-infra: Jarsigner launcher has wrong classname
Fixed package name in launcher

Reviewed-by: alanb, ohair, ohrstrom
2012-11-28 09:47:25 +01:00
Vadim Pakhnushev
17ab9f5969 5082749: GIF stream metadata specification of aspect ratio is incorrect
Reviewed-by: bae, prr
2012-11-28 12:38:43 +04:00
Vadim Pakhnushev
d89c34023b 4649812: GIFImageReader handles transparency incorrectly
Reviewed-by: bae, prr
2012-11-28 12:28:10 +04:00
Xueming Shen
ff1d49bc5b 8004088: hg push for bug#4235519 failed to push all files
Pushed all base64 files

Reviewed-by: alanb, mduigou
2012-11-27 22:07:11 -08:00
Xueming Shen
aad815709f 4235519: Make sun.misc.BASE64{De,En}coder classes public
To add java.util.Base64

Reviewed-by: alanb, mduigou
2012-11-27 21:51:26 -08:00
Goetz Lindenmaier
8e00acca17 8003850: add support for constants in stub code
Remember the code section and switch back to the proper one when adding constants.

Reviewed-by: twisti, kvn
2012-11-27 17:41:38 -08:00
Bharadwaj Yadavalli
2d2532e740 7092905: C2: Keep track of the number of dead nodes
Keep an (almost) accurate running count of the reachable (live) flow graph nodes.

Reviewed-by: kvn, twisti, jrose, vlivanov
2012-11-27 17:24:15 -08:00
Rob McKenna
f0bbdd0834 8003597: TEST_BUG: Eliminate dependency on javaweb from closed net tests
Reviewed-by: chegar
2012-11-28 00:47:38 +00:00
John Cuthbertson
c00c803b89 7194633: G1: Assertion and guarantee failures in block offset table
Add detailed error messages to assertions and guarantees in G1's block offset table.

Reviewed-by: ysr, brutisso
2012-11-27 14:11:37 -08:00
Jiangli Zhou
10f71a3f72 8003848: Make ConstMethod::generic_signature_index optional and move Method::_max_stack to ConstMethod
Make ConstMethod::generic_signature_index optional and move Method::_max_stack to ConstMethod.

Reviewed-by: bdelsart, sspitsyn, coleenp
2012-11-27 17:03:56 -05:00
Roman Kennke
96562be9e5 8003868: fix shark for latest HotSpot and LLVM
Reviewed-by: twisti
2012-11-27 12:48:52 -08:00
Chris Hegarty
24fde021e4 8003833: Spurious NPE from Socket.getIn/OutputStream
Reviewed-by: alanb, dsamersoff
2012-11-27 17:15:19 +00:00
Mikael Vidstedt
8c32bcb315 8003879: Duplicate definitions in vmStructs
Removed duplicate entries

Reviewed-by: dholmes, sspitsyn
2012-11-27 07:57:57 -08:00
Stefan Karlsson
57204d9f34 8003935: Simplify the needed includes for using Thread::current()
Reviewed-by: dholmes, rbackman, coleenp
2012-11-27 14:20:21 +01:00
Sergey Bylokhov
bfc0bfcd8e 8002308: [macosx] 7198229 should be applied to the user action only
Reviewed-by: anthony, skovatch
2012-11-27 17:03:19 +04:00
Stefan Karlsson
3c2f3a321a 8003720: NPG: Method in interpreter stack frame can be deallocated
Pass down a closure during root scanning to keep the class of the method alive.

Reviewed-by: coleenp, jcoomes
2012-11-27 10:13:20 +01:00
Christian Thalinger
31411dbc32 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
2012-11-26 17:25:11 -08:00
Mike Duigou
8288138aac 8001634: Initial set of functional interface types
Add the core functional interfaces used by the JSR335 libraries.

Reviewed-by: dholmes, briangoetz, darcy
2012-11-26 15:08:13 -08:00
Gilles Duboscq
2e2b69e96b 8003722: More gcc 4.7 compilation errors
Add a few more this->qualifications.

Reviewed-by: coleenp, dholmes
2012-11-26 12:31:03 -05:00
Nils Eliasson
42c0192ee6 8003983: LogCompilation tool is broken since c1 support
Fixed emitting and parsing

Reviewed-by: jrose, kvn
2012-11-26 15:11:55 +01:00
Sean Mullan
033919cce4 Merge 2012-11-26 08:34:25 -05:00
Sean Mullan
3f59d3882d Merge 2012-11-26 08:23:20 -05:00
Sean Mullan
c9b91fa45a 7167056: Clarify that BasicPermission names that contain non-wildcard asterisks are not invalid
Reviewed-by: weijun, xuelei
2012-11-26 08:12:19 -05:00
Alexey Utkin
d869bfa179 7162111: TEST_BUG: change tests run in headless mode [macosx] (open)
In problem tests detection of AWT headless mode was introduced or AWT dependence was removed.

Reviewed-by: alanb
2012-11-26 15:54:39 +04:00
Florian Weimer
9eb345a1e4 8003951: Removes unused variables in sun.security.ssl
Reviewed-by: xuelei
2012-11-24 04:27:28 -08:00
Florian Weimer
7363eaae0e 8003950: Adds missing Override annotations and removes unnecessary imports in sun.security.ssl
Reviewed-by: xuelei
2012-11-24 04:09:19 -08:00
Xue-Lei Andrew Fan
a2314ab9ca 8001751: Javadoc warnings in JSSE code
Reviewed-by: alanb
2012-11-24 03:34:27 -08:00
Vicente Romero
9bbd892818 7144981: javac should ignore ignorable characters in input
Reviewed-by: jjg, mcimadamore
2012-11-23 15:13:45 +00:00
Eric Caspole
7fb8379371 8004068: Fix build problems caused by on-demand imports
Reviewed-by: jjg
2012-11-27 13:55:10 -08:00
Alexey Utkin
68a92f6e88 8003898: X11 toolkit can be chosen as the default toolkit
XToolkit is not selected for any values of system-wide environment variables (ex. DISPLAY).

Reviewed-by: anthony, art
2012-11-23 13:07:54 +04:00
David Holmes
68137e4136 Merge 2012-11-21 21:26:12 -05:00
David Holmes
8b54df7773 8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
Reviewed-by: coleenp, kvn
2012-11-21 20:07:52 -05:00
Vicente Romero
1d4cbc27ff 6574624: javax.tools.JavaCompiler spec contains errors in sample code
Reviewed-by: jjg, mcimadamore
2012-11-21 19:09:39 +00:00
Vicente Romero
07e9c8cf27 7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
7109747: (javap) classfile not treating iinc_w correctly

Reviewed-by: jjg, mcimadamore
2012-11-21 18:40:45 +00:00
Mikael Vidstedt
5791b1f1c3 8003690: Example code in JVMTI GetStackTrace documentation is broken
Fixed to minor errors in example code

Reviewed-by: sspitsyn, dholmes
2012-11-21 09:02:13 -08:00
Alexander Zuev
e0eaca5e5a 8003273: Missing testcase for 7171812
Reviewed-by: art, serb
2012-11-21 20:42:54 +04:00
Vladimir Ivanov
7f0d3fe5e7 8001538: hs_err file does not list anymore compiled methods in compilation events
Fixed message buffer size calculation.

Reviewed-by: kvn, twisti
2012-11-21 05:57:12 -08:00
Sergey Bylokhov
55eba1fa2e 7154516: [macosx] Popup menus have no visible borders
Reviewed-by: anthony, denis
2012-11-21 15:58:09 +04:00
Sergey Bylokhov
6a2db1d680 7193214: Consider simplifying CPlatformWindow.setResizable()
Reviewed-by: anthony, denis
2012-11-21 15:54:41 +04:00
Sergey Bylokhov
27d64e18d2 7124552: [macosx] NullPointerException in getBufferStrategy()
7124219: [macosx] Unable to draw images to fullscreen

Reviewed-by: bae, anthony
2012-11-21 15:50:34 +04:00
David Buck
df3c665be3 7198904: (alt-rt) TreeMap.clone is broken
Test case for cr7198904. Issue only found in OracleJDK, but test case is valid for OpenJDK as well

Reviewed-by: mduigou, dholmes
2012-11-20 21:35:18 -08:00
Coleen Phillimore
274b3df2dc Merge 2012-11-20 20:27:40 -05:00
Lana Steuck
c8adadc51c Merge 2012-11-20 11:50:37 -08:00
Lana Steuck
822139baf8 Merge 2012-11-20 11:49:27 -08:00
Lana Steuck
12c1fa1d8b Merge 2012-11-20 11:47:52 -08:00
Lana Steuck
8eed09101d Merge 2012-11-20 11:46:43 -08:00
Robert Field
d1a78e2021 8003639: convert lambda testng tests to jtreg and add them
Reviewed-by: mcimadamore
2012-11-20 09:58:55 -08:00
Maurizio Cimadamore
d1eede168b 8003663: lambda test fails on Windows
Fix path separator issue in test

Reviewed-by: jjg
2012-11-20 15:43:28 +00:00
Jonathan Gibbons
f2fa2a199c 8003650: java.lang.Exception: expected string not found: pkg/package-frame.html
Reviewed-by: ksrini
2012-11-20 07:25:11 -08:00
Jonathan Gibbons
f0fe027b50 8003649: regression/langtools: tools/javac/doctree
Reviewed-by: ksrini
2012-11-20 07:21:07 -08:00
Sergey Malenkov
f19ad0fb5b 8003333: Regression: java/beans/EventHandler/Test6277266.java fails with ACE
Reviewed-by: art
2012-11-20 18:56:01 +04:00
Erik Helin
7e892709bd 7198334: UseNUMA modifies system parameters on non-NUMA system
The flags MinHeapDeltaBytes and UseNUMAInterleaving must be adjusted after the OS have adjusted the UseNUMA flag in the method os::init_2.

Reviewed-by: dholmes, brutisso
2012-11-20 11:40:11 +01:00
Steve Sides
6dfea5e847 8003660: (launcher) 8001533 regression tests
Reviewed-by: ksrini, mchung, kcr, ddehaven
2012-11-19 19:50:39 -08:00
David Dehaven
5f0debc005 8001533: java launcher must launch javafx applications
Reviewed-by: ksrini, mchung, kcr, alanb
2012-11-19 19:49:38 -08:00
John Zavgren
0bb98e7294 8000476: Memory Leaks and uninitialized memory access in PKCS11 and other native code
Reviewed-by: dsamersoff, valeriep, chegar
2012-11-20 09:26:38 +00:00
Jonathan Gibbons
61235e9c09 8003655: Add javac.jvm.ClassFile.V52
Reviewed-by: ksrini
2012-11-19 16:40:54 -08:00
Bhavesh Patel
55e7dd8b71 8002304: Group methods by types in methods summary section
Reviewed-by: jjg
2012-11-19 16:10:34 -08:00
Erik Joelsson
4850bec745 8003300: build-infra: fails on solaris when objcopy is not found
Only call BASIC_FIXUP_EXECUTABLE() if objcopy was found.

Reviewed-by: tbell
2012-11-19 14:06:30 -08:00
Jonathan Gibbons
5a30b6af0c 8001098: Provide a simple light-weight "plug-in" mechanism for javac
Reviewed-by: mcimadamore
2012-11-19 11:38:49 -08:00
Alan Bateman
c94385feb8 8003607: More ProblemList.txt updates (11/2012)
Reviewed-by: lancea
2012-11-19 13:17:40 +00:00
Weijun Wang
2aea4cbc8c 8002344: Krb5LoginModule config class does not return proper KDC list from DNS
Co-authored-by: Severin Gehwolf <sgehwolf@redhat.com>
Reviewed-by: weijun
2012-11-19 11:13:08 +08:00
Florian Weimer
28ca680a31 8003587: Warning cleanup in package javax.net.ssl
Removes unnecessary imports and adds missing Override annotations

Reviewed-by: xuelei
2012-11-18 01:31:44 -08:00
Maurizio Cimadamore
a494f0ab86 8003280: Add lambda tests
Turn on lambda expression, method reference and default method support

Reviewed-by: jjg
2012-11-17 19:01:03 +00:00
Brent Christian
a9594cbceb 7178922: (props) re-visit how os.name is determined on Mac
Reviewed-by: alanb, mchung, skovatch, serb
2012-11-16 17:01:19 -08:00
David Chase
fea11c53eb 7146636: compiler/6865265/StackOverflowBug.java fails due to changed stack minimum
Increase the stack size in the run parameters.

Reviewed-by: kvn
2012-11-16 15:49:46 -08:00
Kurchi Subhra Hazra
ef1950d024 8003518: (prefs) Tests in jdk/test/java/util/prefs should not be run concurrently
Add java/util/prefs to exclusiveAccess.dirs in TEST.ROOT

Reviewed-by: alanb, mchung
2012-11-16 12:28:45 -08:00
Jim Holmlund
c39f1d99b4 8003357: Add support for jtreg -concurrency to langtools/test/Makefile
Reviewed-by: jjg
2012-11-16 18:27:36 +00:00
Alejandro Murillo
a054222634 8003541: new hotspot build - hs25-b11
Reviewed-by: jcoomes
2012-11-16 09:43:43 -08:00
Alejandro Murillo
03311b147c Added tag hs25-b10 for changeset 6d791db85d73 2012-11-16 09:36:41 -08:00
Alejandro Murillo
f3a0849e39 Merge 2012-11-16 09:36:40 -08:00
Coleen Phillimore
ddec2a3aed Merge 2012-11-16 09:19:12 -05:00
Zhengyu Gu
2cb72bf989 8003487: NMT: incorrect assertion in VMMemPointerIterator::remove_released_region method (memSnapshot.cpp)
The assertion is applied to only the region to be released, also performs region integrity checking

Reviewed-by: acorn, coleenp
2012-11-16 09:05:19 -05:00
Nils Eliasson
d055fd81db Merge 2012-11-16 09:59:08 +01:00
Jonathan Gibbons
b3a3f7cdf3 6493690: javadoc should have a javax.tools.Tool service provider installed in tools.jar
Reviewed-by: darcy
2012-11-15 23:07:24 -08:00
Naoto Sato
6c62e2d0f1 7199750: Loading sequence of service provider is changed
Reviewed-by: okutsu
2012-11-15 20:17:05 -08:00
Jonathan Gibbons
6ef527a3e7 8002079: update DocFile to use a JavaFileManager
Reviewed-by: darcy
2012-11-15 19:54:20 -08:00
Weijun Wang
78ff6a33ee 8003263: redundant cast build failure after 8003120
Reviewed-by: alanb
2012-11-16 10:34:14 +08:00
David Katleman
b379df39d9 Added tag jdk8-b65 for changeset 0e685b019743 2012-11-15 15:40:23 -08:00
David Katleman
6e2b60ce65 Added tag jdk8-b65 for changeset 3afebf1aaea2 2012-11-15 15:40:03 -08:00
David Katleman
aa988a211b Added tag jdk8-b65 for changeset 2fbfa728248d 2012-11-15 15:39:45 -08:00
David Katleman
18602b4eed Added tag jdk8-b65 for changeset d94c92ed588c 2012-11-15 15:39:35 -08:00
David Katleman
64bb3ed664 Added tag jdk8-b65 for changeset bbff420f1248 2012-11-15 15:39:02 -08:00
David Katleman
d757cb8b11 Added tag jdk8-b65 for changeset 6bae6642a942 2012-11-15 15:38:38 -08:00
David Katleman
2f70d7a0ff Added tag jdk8-b65 for changeset eb017c6fa58a 2012-11-15 15:38:33 -08:00
Jonathan Gibbons
2aefbba070 8003257: refactor javadoc tool option handling
Reviewed-by: darcy
2012-11-15 14:41:31 -08:00
John Cuthbertson
41ba9aeef2 Merge 2012-11-15 14:29:28 -08:00
Bharadwaj Yadavalli
4b288c8976 8001077: remove ciMethod::will_link
Removed will_link and changed all calls to is_loaded().

Reviewed-by: kvn
2012-11-15 10:42:06 -08:00
Jonathan Gibbons
ed633a2108 8000800: javadoc uses static non-final fields
Reviewed-by: bpatel
2012-11-15 09:18:36 -08:00
Jim Gish
f439018255 6244047: impossible to specify directories to logging FileHandler unless they exist
Reviewed-by: alanb
2012-11-15 13:46:45 +00:00
Peter Levart
bbe12c2488 8003259: NPG: Build with gcc 4.7.2 broken by 7045397
Qualify calls with this pointers to make gcc accept this code.

Reviewed-by: coleenp, andrew
2012-11-14 22:37:38 -05:00
Jonathan Gibbons
c78e1cbfac 7021614: extend com.sun.source API to support parsing javadoc comments
Reviewed-by: ksrini, strarup
2012-11-14 17:23:10 -08:00
Tim Bell
10568b5266 Merge 2012-11-15 00:55:17 +00:00
Tim Bell
19c725d07b Merge 2012-11-15 00:54:54 +00:00
Lana Steuck
d0455982a4 Merge 2012-11-14 16:41:51 -08:00
Lana Steuck
42ad69505d Merge 2012-11-14 16:41:12 -08:00
Erik Joelsson
acd0ee7c35 8001906: build-infra: warning: [path] bad path element on Solaris
Remove unnecesary -cp parameter from compile line

Reviewed-by: ohair, tbell
2012-11-14 10:21:45 -08:00
Erik Joelsson
23c574fe3a 8003327: build-infra: "/bin/sh: : cannot execute" on solaris
Fix quoting inside cut command used in the pipeline

Reviewed-by: ohair, tbell
2012-11-14 10:20:25 -08:00
Erik Joelsson
0f6c2bcdde 8003317: build-infra: Configure fails when current dir is part of a symlink
Call macro for removing symbolic links on a copy of the CURDIR variable before comparing

Reviewed-by: ohair, tbell
2012-11-14 10:18:51 -08:00
Erik Joelsson
9359ccee62 8001941: build-infra: --disable-precompiled-headers does not seem to work
With this fix the flag will do what it advertises

Reviewed-by: ohair, tbell
2012-11-14 10:16:45 -08:00
Chris Plummer
6da2c235bd Merge 2012-11-14 10:13:51 -08:00
Erik Joelsson
5bf5ff8812 8001875: build-infra: We must be able to force static linking of stdc++
Ensure that we build with static linking when requested, or do not build at all

Reviewed-by: ohair, tbell
2012-11-14 10:13:28 -08:00
Jonathan Gibbons
56d387a2ef 8003412: javac needs to understand java.lang.annotation.Native
Reviewed-by: mcimadamore
2012-11-14 10:07:38 -08:00
Erik Joelsson
13e6e19e2c 8002026: build-infra: deploy repository building
Change the compare script to handle deploy build artifacts.

Reviewed-by: ohair, tbell
2012-11-14 10:05:49 -08:00
Anton Litvinov
b05c04c8c0 6789984: JPasswordField can not receive keyboard input
Reviewed-by: naoto, anthony
2012-11-14 18:40:05 +04:00
Konstantin Shefov
f7ee6989a0 7147408: [macosx] Add autodelay to fix a regression test
Reviewed-by: serb, alexsch
2012-11-14 11:37:09 +00:00
Mike Duigou
b2926d9724 7088952: Add size in bytes constant "BYTES" to primitive type wrapper types
Adds a constant BYTES to each of the primitive wrapper classes (Byte, Character, Double, Float, Integer, Long, Short) with the calculation Primitive.SIZE / Byte.SIZE already made.

Reviewed-by: dholmes
2012-11-13 20:02:39 -08:00
Jonathan Gibbons
78499292e1 8000404: rename javax.tools.GenerateNativeHeader to java.lang.annotation.Native
Reviewed-by: alanb
2012-11-14 07:08:50 -08:00
Alan Bateman
8c308db579 8003285: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java fails again [macosx]
Reviewed-by: chegar
2012-11-14 12:56:26 +00:00
Sean Chou
6bb3dd6ea2 7201156: jar tool fails to convert file separation characters for list and extract
Reviewed-by: alanb, chegar, sherman
2012-11-14 13:26:55 +08:00
Mike Duigou
96aa3fad5a 7088913: Add compatible static hashCode(primitive) to primitive wrapper classes
Adds static utility methods to each primitive wrapper class to allow calculation of a hashCode value from an unboxed primitive.

Reviewed-by: darcy, smarks, dholmes
2012-11-13 20:02:48 -08:00
Clemens Eisserer
b873533e98 7105461: Large JTables are not rendered correctly with Xrender pipeline
Reviewed-by: flar, prr
2012-11-13 16:12:10 -08:00
Jonathan Gibbons
4b3c0978fb 8003299: Cleanup javac Log support for deferred diagnostics
Reviewed-by: mcimadamore, jfranck
2012-11-13 15:09:15 -08:00
Coleen Phillimore
033786fbf0 Merge 2012-11-13 15:14:27 -05:00
Robert Field
be815ba8fa 8003306: Compiler crash: calculation of inner class access modifier
Fix binary sense lost in transition to hasTag

Reviewed-by: mcimadamore
2012-11-13 08:06:00 -08:00
Yumin Qi
f712e12f98 6830717: replay of compilations would help with debugging
When java process crashed in compiler thread, repeat the compilation process will help finding root cause. This is done with using SA dump application class data and replay data from core dump, then use debug version of jvm to recompile the problematic java method.

Reviewed-by: kvn, twisti, sspitsyn
2012-11-12 14:03:53 -08:00
Harold Seigel
4aad9b74e7 8001471: Klass::cast() does nothing
Remove function Klass::cast() and calls to it.

Reviewed-by: dholmes, coleenp
2012-11-12 16:15:05 -05:00
Harold Seigel
a28380d97e 7122219: Passed StringTableSize value not verified
Check that the values specified for -XX:StringTableSize are within a certain range.

Reviewed-by: dholmes, coleenp
2012-11-12 15:58:11 -05:00
Masayoshi Okutsu
aaa52056e9 8000986: Split java.util.spi.CalendarDataProvider into week parameters and field names portions
Reviewed-by: naoto
2012-11-12 11:12:29 +09:00
Alan Bateman
86d36e5d55 8003253: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java hang intermittently [win]
Reviewed-by: chegar
2012-11-11 10:05:37 +00:00
Zhengyu Gu
a988fc0968 Merge 2012-11-09 22:22:53 -08:00
Zhengyu Gu
07b3c477fe Merge 2012-11-09 16:45:20 -08:00
Zhengyu Gu
f47de1cb41 8001592: NMT: assertion failed: assert(_amount >= amt) failed: Just check: memBaseline.hpp:180
Fixed NMT that miscounted arena memory when it is used as value or stack object.

Reviewed-by: acorn, coleenp
2012-11-09 19:24:31 -05:00
Zhengyu Gu
ba0e500048 Merge 2012-11-09 11:47:28 -08:00
Chris Plummer
77c6d4fa5f Merge 2012-11-09 09:45:00 -08:00
Alejandro Murillo
8735609a8c 8003231: new hotspot build - hs25-b10
Reviewed-by: jcoomes
2012-11-09 08:36:17 -08:00
Zhengyu Gu
1abc21c310 8002273: NMT to report JNI memory leaks when -Xcheck:jni is on
Allows NMT to report that JNI thread failed to detach from JVM before exiting, which leaks the JavaThread object when check:jni option is on.

Reviewed-by: acorn, dholmes, coleenp, ctornqvi
2012-11-09 11:04:06 -05:00
Yumin Qi
1c4dbc48e5 Merge 2012-11-08 16:48:01 -08:00
Mikael Gerdin
14d6692461 7200229: NPG: possible performance issue exposed by closed/runtime/6559877/Test6559877.java
Reduce the amount of calls to ChunkManager verification code

Reviewed-by: jmasa, coleenp
2012-11-09 00:38:31 +01:00
Bill Pittore
dd5c8eb660 8001185: parsing of sun.boot.library.path in os::dll_build_name somewhat broken
Dll_dir can contain multiple paths, need to parse them correctly when loading agents

Reviewed-by: dholmes, dlong
2012-11-07 17:53:02 -05:00
Serguei Spitsyn
80cc4706a6 7194607: VerifyLocalVariableTableOnRetransformTest.sh fails after JSR-292 merge
Use verifier_max_size instead of max_size to get code attribute max stack size.

Reviewed-by: dcubed, minqi
2012-10-31 16:20:03 -07:00
John Cuthbertson
aac13806ea 8000244: G1: Ergonomically set MarkStackSize and use virtual space for global marking stack
Set the value of MarkStackSize to a value based on the number of parallel marking threads with a reasonable minimum. Expand the marking stack if we have to restart marking due to an overflow up to a reasonable maximum. Allocate the underlying space for the marking stack from virtual memory.

Reviewed-by: jmasa, brutisso
2012-10-01 09:28:13 -07:00
4484 changed files with 362872 additions and 66076 deletions

15
.hgtags
View File

@@ -186,3 +186,18 @@ cdaa6122185f9bf512dcd6600f56bfccc4824e8c jdk8-b61
8d9d430b4244b95f5cf1ebe719f834a1ac5d6cd5 jdk8-b62
21ee1dd7b809639284900a128b9b656a592ebc7a jdk8-b63
70fa4b11f26522e69b51fd652215f60ce350bac3 jdk8-b64
a2cf4d4a484378caea2e827ed604b2bbae58bdba jdk8-b65
17820b958ae84f7c1cc6719319c8e2232f7a4f1d jdk8-b66
76cc9bd3ece407d3a15d3bea537b57927973c5e7 jdk8-b67
cb33628d4e8f11e879c371959e5948b66a53376f jdk8-b68
adb5171c554e14cd86f618b5584f6e3d693d5889 jdk8-b69
0d625373c69e2ad6f546fd88ab50c6c9aad01271 jdk8-b70
a41ada2ed4ef735449531c6ebe6cec593d890a1c jdk8-b71
6725b3961f987cf40f446d1c11cd324a3bec545f jdk8-b72
fe94b40ffd9390f6cffcdf51c0389b0e6dde0c13 jdk8-b73
f627eff819628822a0777af8062244352f2a29cf jdk8-b74
f1478a6d25fddd311a84dcbfac50824cc1858bdd jdk8-b75
f407160c280d1c5b00d314c535441ac26f195fee jdk8-b76
d17eb2e13e362085e866d46235314c50cc4661cc jdk8-b77
6d3dcd34b5b962ea1ef9eed0dafdee9e812401bc jdk8-b78
a1313a8d90d17d363a3b2a645dc4030ec204b168 jdk8-b79

View File

@@ -186,3 +186,18 @@ e07f499b9dccb529ecf74172cf6ac11a195ec57a jdk8-b60
8a3fe0ae06a8cc21347da5a18384b0aa6c2349f5 jdk8-b62
3229597524cab4239325bc3602df6c486397a511 jdk8-b63
1c8370a55b305d35353346202bde042ba9e8a9fd jdk8-b64
b772de306dc24c17f7bd1398531ddeb58723b804 jdk8-b65
13bb8c326e7b7b0b19d78c8088033e3932e3f7ca jdk8-b66
9a6ec97ec45c1a62d5233cefa91e8390e380e13a jdk8-b67
cdb401a60cea6ad5ef3f498725ed1decf8dda1ea jdk8-b68
6ee8080a6efe0639fcd00627a5e0f839bf010481 jdk8-b69
105a25ffa4a4f0af70188d4371b4a0385009b7ce jdk8-b70
51ad2a34342055333eb5f36e2fb514b027895708 jdk8-b71
c1be681d80a1f1c848dc671d664fccb19e046a12 jdk8-b72
93b9664f97eeb6f89397a8842318ebacaac9feb9 jdk8-b73
b43aa5bd8ca5c8121336495382d35ecfa7a71536 jdk8-b74
2a713921952cbd77a1e699626976cb6cdfe3e57e jdk8-b75
278af9fc67e7eba2884936b49ec07345f423aabb jdk8-b76
3933eebc659d58c597aa8cb4b3e58f2250ce3e1a jdk8-b77
fd1a5574cf68af24bfd52decc37ac6361afb278a jdk8-b78
91d35211e74464dca5edf9b66ab01d0d0d8cded7 jdk8-b79

View File

@@ -26,6 +26,11 @@
# If NEWBUILD is defined, use the new build-infra Makefiles and configure.
# See NewMakefile.gmk for more information.
# If not specified, select what the default build is
ifndef NEWBUILD
NEWBUILD=true
endif
ifeq ($(NEWBUILD),true)
# The new top level Makefile

View File

@@ -23,273 +23,110 @@
# questions.
#
# Utilities used in this Makefile
BASENAME=basename
CAT=cat
CD=cd
CMP=cmp
CP=cp
ECHO=echo
MKDIR=mkdir
PRINTF=printf
PWD=pwd
TAR=tar
ifeq ($(PLATFORM),windows)
ZIP=zip
# This must be the first rule
default:
# Inclusion of this pseudo-target will cause make to execute this file
# serially, regardless of -j. Recursively called makefiles will not be
# affected, however. This is required for correct dependency management.
.NOTPARALLEL:
# The shell code below will be executed on /usr/ccs/bin/make on Solaris, but not in GNU make.
# /usr/ccs/bin/make lacks basically every other flow control mechanism.
TEST_FOR_NON_GNUMAKE:sh=echo You are not using GNU make/gmake, this is a requirement. Check your path. 1>&2 && exit 1
# Assume we have GNU make, but check version.
ifeq (,$(findstring 3.81,$(MAKE_VERSION)))
ifeq (,$(findstring 3.82,$(MAKE_VERSION)))
$(error This version of GNU Make is too low ($(MAKE_VERSION)). Check your path, or upgrade to 3.81 or newer.)
endif
endif
# Locate this Makefile
ifeq ($(filter /%,$(lastword $(MAKEFILE_LIST))),)
makefile_path:=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
else
# store symbolic links as the link
ZIP=zip -y
makefile_path:=$(lastword $(MAKEFILE_LIST))
endif
# Insure we have a path that looks like it came from pwd
# (This is mostly for Windows sake and drive letters)
define UnixPath # path
$(shell (cd "$1" && $(PWD)))
endef
root_dir:=$(dir $(makefile_path))
# Current root directory
CURRENT_DIRECTORY := $(shell $(PWD))
# ... and then we can include our helper functions
include $(root_dir)/common/makefiles/MakeHelpers.gmk
# Build directory root
BUILD_DIR_ROOT = $(CURRENT_DIRECTORY)/build
$(eval $(call ParseLogLevel))
$(eval $(call ParseConfAndSpec))
# All configured Makefiles to run
ALL_MAKEFILES = $(wildcard $(BUILD_DIR_ROOT)/*-*/Makefile)
# Now determine if we have zero, one or several configurations to build.
ifeq ($(SPEC),)
# Since we got past ParseConfAndSpec, we must be building a global target. Do nothing.
else
ifeq ($(words $(SPEC)),1)
# We are building a single configuration. This is the normal case. Execute the Main.gmk file.
include $(root_dir)/common/makefiles/Main.gmk
else
# We are building multiple configurations.
# First, find out the valid targets
# Run the makefile with an arbitraty SPEC using -p -q (quiet dry-run and dump rules) to find
# available PHONY targets. Use this list as valid targets to pass on to the repeated calls.
all_phony_targets=$(filter-out $(global_targets), $(strip $(shell \
$(MAKE) -p -q -f common/makefiles SPEC=$(firstword $(SPEC)) | \
grep ^.PHONY: | head -n 1 | cut -d " " -f 2-)))
# All bundles to create
ALL_IMAGE_DIRS = $(wildcard $(BUILD_DIR_ROOT)/*-*/images/*-image)
$(all_phony_targets):
@$(foreach spec,$(SPEC),($(MAKE) -f NewMakefile.gmk SPEC=$(spec) $(VERBOSE) VERBOSE=$(VERBOSE) $@) &&) true
# Build all the standard 'all', 'images', and 'clean' targets
all images clean: checks
@if [ "$(ALL_MAKEFILES)" = "" ] ; then \
$(ECHO) "ERROR: No configurations to build"; exit 1; \
fi
@for bdir in $(dir $(ALL_MAKEFILES)) ; do \
$(ECHO) "$(CD) $${bdir} && $(MAKE) $@" ; \
$(CD) $${bdir} && $(MAKE) $@ ; \
done
# TBD: Deploy input
$(BUILD_DIR_ROOT)/.deploy_input:
@if [ "$(ALL_MAKEFILES)" = "" ] ; then \
$(ECHO) "ERROR: No configurations to build"; exit 1; \
fi
@for bdir in $(dir $(ALL_MAKEFILES)) ; do \
if [ deploy/make/Makefile ] ; then \
echo "Attempting deploy build." ; \
( \
$(RM) -r $${bdir}/deploy_input ; \
$(MKDIR) -p $${bdir}/deploy_input ; \
( $(CD) $${bdir}/images && $(TAR) -cf - j2sdk-image j2re-image ) \
| ( $(CD) $${bdir}/deploy_input && $(TAR) -xf - ) ; \
) ; \
fi; \
done
touch $@
# TBD: Deploy images
deploy: $(BUILD_DIR_ROOT)/.deploy_input
@if [ "$(ALL_MAKEFILES)" = "" ] ; then \
$(ECHO) "ERROR: No configurations to build"; exit 1; \
fi
@for bdir in $(dir $(ALL_MAKEFILES)) ; do \
if [ deploy/make/Makefile ] ; then \
echo "Attempting deploy build." ; \
( \
$(CD) deploy/make && \
$(MAKE) \
ABS_OUTPUTDIR=$${bdir}/deploy_input \
OUTPUTDIR=$${bdir}/deploy_input \
) ; \
fi; \
done
# TBD: Install bundles
install:
# Bundle creation
bundles:
@if [ "$(ALL_IMAGE_DIRS)" = "" ] ; then \
$(ECHO) "ERROR: No images to bundle"; exit 1; \
fi
@for i in $(ALL_IMAGE_DIRS) ; do \
$(MKDIR) -p $${i}/../../bundles && \
$(RM) $${i}/../../bundles/`$(BASENAME) $${i}`.zip && \
$(ECHO) "$(CD) $${i} && $(ZIP) -q -r ../../bundles/`$(BASENAME) $${i}`.zip ." && \
$(CD) $${i} && $(ZIP) -q -r ../../bundles/`$(BASENAME) $${i}`.zip . ; \
done
# Clobber all the built files
clobber::
$(RM) -r $(BUILD_DIR_ROOT)
# Make various checks to insure the build will be successful
# Possibilities:
# * Check that if any closed repo is provided, they all must be.
# * Check that all open repos exist, at least until we are ready for some
# kind of partial build.
checks:
@$(ECHO) "No checks yet"
# Keep track of user targets
USER_TARGETS += all deploy install images clean clobber checks
###########################################################################
# To help in adoption of the new configure&&make build process, a bridge
# build will use the old settings to run configure and do the build.
# Build with the configure bridge
bridgeBuild: bridge2configure images
# Bridge from old Makefile ALT settings to configure options
bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts
bash ./configure $(strip $(shell $(CAT) $<))
# Create a file with configure options created from old Makefile mechanisms.
$(BUILD_DIR_ROOT)/.bridge2configureOpts: $(BUILD_DIR_ROOT)/.bridge2configureOptsLatest
$(RM) $@
$(CP) $< $@
# Use this file to only change when obvious things have changed
$(BUILD_DIR_ROOT)/.bridge2configureOptsLatest: FRC
$(RM) $@.tmp
$(MKDIR) -p $(BUILD_DIR_ROOT)
@$(ECHO) " --with-debug-level=$(if $(DEBUG_LEVEL),$(DEBUG_LEVEL),release) " >> $@.tmp
ifdef ARCH_DATA_MODEL
@$(ECHO) " --with-target-bits=$(ARCH_DATA_MODEL) " >> $@.tmp
endif
ifdef ALT_PARALLEL_COMPILE_JOBS
@$(ECHO) " --with-num-cores=$(ALT_PARALLEL_COMPILE_JOBS) " >> $@.tmp
endif
ifdef ALT_BOOTDIR
@$(ECHO) " --with-boot-jdk=$(call UnixPath,$(ALT_BOOTDIR)) " >> $@.tmp
endif
ifdef ALT_CUPS_HEADERS_PATH
@$(ECHO) " --with-cups-include=$(call UnixPath,$(ALT_CUPS_HEADERS_PATH)) " >> $@.tmp
endif
ifdef ALT_FREETYPE_HEADERS_PATH
@$(ECHO) " --with-freetype=$(call UnixPath,$(ALT_FREETYPE_HEADERS_PATH)/..) " >> $@.tmp
endif
@if [ -f $@ ] ; then \
if ! $(CMP) $@ $@.tmp > /dev/null ; then \
$(CP) $@.tmp $@ ; \
fi ; \
else \
$(CP) $@.tmp $@ ; \
fi
$(RM) $@.tmp
# Clobber all the built files
clobber:: bridge2clobber
bridge2clobber::
$(RM) $(BUILD_DIR_ROOT)/.bridge2*
$(RM) $(BUILD_DIR_ROOT)/.deploy_input
# Keep track of phony targets
PHONY_LIST += bridge2configure bridgeBuild bridge2clobber
###########################################################################
# Sanity checks (history target)
#
sanity: checks
# Keep track of user targets
USER_TARGETS += sanity
###########################################################################
# Javadocs
#
javadocs:
cd common/makefiles && $(MAKE) -f MakefileJavadoc.gmk
# Keep track of user targets
USER_TARGETS += javadocs
###########################################################################
# JPRT targets
ifndef JPRT_ARCHIVE_BUNDLE
JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/j2sdk-image.zip
endif
endif
jprt_build_product: DEBUG_LEVEL=release
jprt_build_product: BUILD_DIRNAME=*-release
jprt_build_product: jprt_build_generic
# Include this after a potential spec file has been included so that the bundles target
# has access to the spec variables.
include $(root_dir)/common/makefiles/Jprt.gmk
jprt_build_fastdebug: DEBUG_LEVEL=fastdebug
jprt_build_fastdebug: BUILD_DIRNAME=*-fastdebug
jprt_build_fastdebug: jprt_build_generic
jprt_build_debug: DEBUG_LEVEL=slowdebug
jprt_build_debug: BUILD_DIRNAME=*-debug
jprt_build_debug: jprt_build_generic
jprt_build_generic: $(JPRT_ARCHIVE_BUNDLE)
$(JPRT_ARCHIVE_BUNDLE): bridgeBuild bundles
$(MKDIR) -p $(@D)
$(RM) $@
$(CP) $(BUILD_DIR_ROOT)/$(BUILD_DIRNAME)/bundles/j2sdk-image.zip $@
# Keep track of phony targets
PHONY_LIST += jprt_build_product jprt_build_fastdebug jprt_build_debug \
jprt_build_generic
###########################################################################
# Help target
HELP_FORMAT=%12s%s\n
# Here are "global" targets, i.e. targets that can be executed without specifying a single configuration.
# If you addd more global targets, please update the variable global_targets in MakeHelpers.
help:
@$(PRINTF) "# JDK Makefile\n"
@$(PRINTF) "#\n"
@$(PRINTF) "# Usage: make [Target]\n"
@$(PRINTF) "#\n"
@$(PRINTF) "# $(HELP_FORMAT)" "Target " "Description"
@$(PRINTF) "# $(HELP_FORMAT)" "------ " "-----------"
@for i in $(USER_TARGETS) ; do \
$(MAKE) help_$${i} ; \
done
@$(PRINTF) "#\n"
$(info )
$(info OpenJDK Makefile help)
$(info =====================)
$(info )
$(info Common make targets)
$(info . make [default] # Compile all product in langtools, hotspot, jaxp, jaxws,)
$(info . # corba and jdk)
$(info . make all # Compile everything, all repos and images)
$(info . make images # Create complete j2sdk and j2re images)
$(info . make overlay-images # Create limited images for sparc 64 bit platforms)
$(info . make profiles # Create complete j2re compact profile images)
$(info . make bootcycle-images # Build images twice, second time with newly build JDK)
$(info . make install # Install the generated images locally)
$(info . make clean # Remove all files generated by make, but not those)
$(info . # generated by configure)
$(info . make dist-clean # Remove all files, including configuration)
$(info . make help # Give some help on using make)
$(info . make test # Run tests, default is all tests (see TEST below))
$(info )
$(info Targets for specific components)
$(info (Component is any of langtools, corba, jaxp, jaxws, hotspot, jdk, images or overlay-images))
$(info . make <component> # Build <component> and everything it depends on. )
$(info . make <component>-only # Build <component> only, without dependencies. This)
$(info . # is faster but can result in incorrect build results!)
$(info . make clean-<component> # Remove files generated by make for <component>)
$(info )
$(info Useful make variables)
$(info . make CONF= # Build all configurations (note, assignment is empty))
$(info . make CONF=<substring> # Build the configuration(s) with a name matching)
$(info . # <substring>)
$(info )
$(info . make LOG=<loglevel> # Change the log level from warn to <loglevel>)
$(info . # Available log levels are:)
$(info . # 'warn' (default), 'info', 'debug' and 'trace')
$(info . # To see executed command lines, use LOG=debug)
$(info )
$(info . make JOBS=<n> # Run <n> parallel make jobs)
$(info . # Note that -jN does not work as expected!)
$(info )
$(info . make test TEST=<test> # Only run the given test or tests, e.g.)
$(info . # make test TEST="jdk_lang jdk_net")
$(info )
help_all:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Build the entire jdk but not the images"
help_images:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Create the jdk images for the builds"
help_deploy:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Create the jdk deploy images from the jdk images"
help_install:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Create the jdk install bundles from the deploy images"
help_clean:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Clean and prepare for a fresh build from scratch"
help_clobber:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Clean and also purge any hidden derived data"
help_checks:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Perform various checks to make sure we can build"
help_sanity:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Same as 'make checks'"
help_javadocs:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Build the javadocs"
help_help:
@$(PRINTF) "# $(HELP_FORMAT)" "$(subst help_,,$@) - " \
"Print out the help messages"
# Keep track of user targets
USER_TARGETS += help
###########################################################################
# Phony targets
.PHONY: $(PHONY_LIST) $(USER_TARGETS)
# Force target
FRC:
.PHONY: help

39
README
View File

@@ -1,45 +1,40 @@
README:
This file should be located at the top of the OpenJDK Mercurial root
repository. This root repository will include a "make" directory,
and a Makefile for building the entire OpenJDK.
A full OpenJDK repository set (forest) should also include the following
6 nested repositories:
repository. A full OpenJDK repository set (forest) should also include
the following 6 nested repositories:
"jdk", "hotspot", "langtools", "corba", "jaxws" and "jaxp".
There are also several source downloads for the jax* repositories that
will be needed.
This one root repository can be obtained with something like:
The root repository can be obtained with something like:
hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8
To make sure you have all the nested repositories, you can run the
get_source.sh script located in the same respository as this file:
You can run the get_source.sh script located in the root repository to get
the other needed repositories:
cd openjdk8 && sh ./get_source.sh
People unfamiliar with Mercurial should read the first few chapters of
the Mercurial book: http://hgbook.red-bean.com/read/
See http://openjdk.java.net/ for more information about the OpenJDK.
See http://openjdk.java.net/ for more information about OpenJDK.
Simple Build Instructions:
0. Get the necessary system software/packages installed on your system, see
http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html
http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
1. If you don't have a jdk6 installed, download and install a JDK 6 from
1. If you don't have a jdk7u7 or newer jdk, download and install it from
http://java.sun.com/javase/downloads/index.jsp
Set the environment variable ALT_BOOTDIR to the location of JDK 6.
Add the /bin directory of this installation to your PATH environment
variable.
2. Check the sanity of doing a build with your current system:
make sanity
See README-builds.html if you run into problems.
2. Configure the build:
bash ./configure
3. Do a complete build of the OpenJDK:
3. Build the OpenJDK:
make all
The resulting JDK image should be found in build/*/j2sdk-image
The resulting JDK image should be found in build/*/images/j2sdk-image
where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually
is 3.81 or newer.
is 3.81 or newer. Note that on Solaris, GNU make is called "gmake".
Complete details are available in README-builds.html.
Complete details are available in the file:
http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html

File diff suppressed because it is too large Load Diff

View File

@@ -24,4 +24,4 @@
# This Makefile was generated by configure @DATE_WHEN_CONFIGURED@
# GENERATED FILE, DO NOT EDIT
SPEC:=@OUTPUT_ROOT@/spec.gmk
include @SRC_ROOT@/common/makefiles/Makefile
include @SRC_ROOT@/NewMakefile.gmk

View File

@@ -26,9 +26,11 @@ script_dir=`dirname $0`
# Create a timestamp as seconds since epoch
if test "x`uname -s`" = "xSunOS"; then
# date +%s is not available on Solaris, use this workaround
# from http://solarisjedi.blogspot.co.uk/2006/06/solaris-date-command-and-epoch-time.html
TIMESTAMP=`/usr/bin/truss /usr/bin/date 2>&1 | nawk -F= '/^time\(\)/ {gsub(/ /,"",$2);print $2}'`
TIMESTAMP=`date +%s`
if test "x$TIMESTAMP" = "x%s"; then
# date +%s not available on this Solaris, use workaround from nawk(1):
TIMESTAMP=`nawk 'BEGIN{print srand()}'`
fi
else
TIMESTAMP=`date +%s`
fi

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -90,13 +90,25 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE],
tmp="$complete EOL"
arguments="${tmp#* }"
new_path=`$WHICH $path 2> /dev/null`
# Cannot rely on the command "which" here since it doesn't always work.
is_absolute_path=`$ECHO "$path" | $GREP ^/`
if test -z "$is_absolute_path"; then
# Path to executable is not absolute. Find it.
IFS_save="$IFS"
IFS=:
for p in $PATH; do
if test -f "$p/$path" && test -x "$p/$path"; then
new_path="$p/$path"
break
fi
done
IFS="$IFS_save"
else
AC_MSG_NOTICE([Resolving $1 (as $path) failed, using $path directly.])
new_path="$path"
fi
if test "x$new_path" = x; then
is_absolute_path=`$ECHO "$path" | $GREP ^/`
if test "x$is_absolute_path" != x; then
AC_MSG_NOTICE([Resolving $1 (as $path) with 'which' failed, using $path directly.])
new_path="$path"
else
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
@@ -104,20 +116,19 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE],
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
fi
fi
# Now join together the path and the arguments once again
if test "x$arguments" != xEOL; then
new_complete="$new_path ${arguments% *}"
else
new_complete="$new_path"
fi
# Now join together the path and the arguments once again
if test "x$arguments" != xEOL; then
new_complete="$new_path ${arguments% *}"
else
new_complete="$new_path"
fi
if test "x$complete" != "x$new_complete"; then
$1="$new_complete"
AC_MSG_NOTICE([Rewriting $1 to "$new_complete"])
fi
$1="$new_complete"
AC_MSG_NOTICE([Rewriting $1 to "$new_complete"])
fi
])
AC_DEFUN([BASIC_REMOVE_SYMBOLIC_LINKS],
@@ -129,7 +140,7 @@ AC_DEFUN([BASIC_REMOVE_SYMBOLIC_LINKS],
if test "x$READLINK_TESTED" != yes; then
# On MacOSX there is a readlink tool with a different
# purpose than the GNU readlink tool. Check the found readlink.
ISGNU=`$READLINK --help 2>&1 | $GREP GNU`
ISGNU=`$READLINK --version 2>&1 | $GREP GNU`
if test "x$ISGNU" = x; then
# A readlink that we do not know how to use.
# Are there other non-GNU readlinks out there?
@@ -141,20 +152,24 @@ AC_DEFUN([BASIC_REMOVE_SYMBOLIC_LINKS],
if test "x$READLINK" != x; then
$1=`$READLINK -f [$]$1`
else
# Save the current directory for restoring afterwards
STARTDIR=$PWD
COUNTER=0
sym_link_dir=`$DIRNAME [$]$1`
sym_link_file=`$BASENAME [$]$1`
# Use the system pwd and not the shell builtin to resolve directory symlinks
cd $sym_link_dir
cd `$THEPWDCMD`
sym_link_dir=`$THEPWDCMD`
# Resolve file symlinks
while test $COUNTER -lt 20; do
ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
if test "x$ISLINK" == x; then
# This is not a symbolic link! We are done!
break
fi
# The link might be relative! We have to use cd to travel safely.
cd $sym_link_dir
# ... and we must get the to the absolute path, not one using symbolic links.
cd `pwd -P`
# Again resolve directory symlinks since the target of the just found
# link could be in a different directory
cd `$DIRNAME $ISLINK`
sym_link_dir=`$THEPWDCMD`
sym_link_file=`$BASENAME $ISLINK`
@@ -219,7 +234,9 @@ BASIC_REQUIRE_PROG(BASH, bash)
BASIC_REQUIRE_PROG(CAT, cat)
BASIC_REQUIRE_PROG(CHMOD, chmod)
BASIC_REQUIRE_PROG(CMP, cmp)
BASIC_REQUIRE_PROG(COMM, comm)
BASIC_REQUIRE_PROG(CP, cp)
BASIC_REQUIRE_PROG(CPIO, cpio)
BASIC_REQUIRE_PROG(CUT, cut)
BASIC_REQUIRE_PROG(DATE, date)
BASIC_REQUIRE_PROG(DIFF, [gdiff diff])
@@ -286,7 +303,7 @@ AUTOCONF_DIR=`cd \`$DIRNAME $SCRIPT\`; $THEPWDCMD`
# Where is the source? It is located two levels above the configure script.
CURDIR="$PWD"
cd "$AUTOCONF_DIR/../.."
SRC_ROOT="`pwd`"
SRC_ROOT="`$THEPWDCMD`"
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
PATH_SEP=";"
@@ -345,7 +362,13 @@ AC_ARG_WITH(conf-name, [AS_HELP_STRING([--with-conf-name],
[ CONF_NAME=${with_conf_name} ])
# Test from where we are running configure, in or outside of src root.
if test "x$CURDIR" = "x$SRC_ROOT" || test "x$CURDIR" = "x$SRC_ROOT/common" || test "x$CURDIR" = "x$SRC_ROOT/common/autoconf" || test "x$CURDIR" = "x$SRC_ROOT/common/makefiles" ; then
# To enable comparison of directories, CURDIR needs to be symlink free
# just like SRC_ROOT already is
NOSYM_CURDIR="$CURDIR"
BASIC_REMOVE_SYMBOLIC_LINKS(NOSYM_CURDIR)
if test "x$NOSYM_CURDIR" = "x$SRC_ROOT" || test "x$NOSYM_CURDIR" = "x$SRC_ROOT/common" \
|| test "x$NOSYM_CURDIR" = "x$SRC_ROOT/common/autoconf" \
|| test "x$NOSYM_CURDIR" = "x$SRC_ROOT/common/makefiles" ; then
# We are running configure from the src root.
# Create a default ./build/target-variant-debuglevel output root.
if test "x${CONF_NAME}" = x; then
@@ -612,6 +635,18 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
fi
])
# Check that source files have basic read permissions set. This might
# not be the case in cygwin in certain conditions.
AC_DEFUN_ONCE([BASIC_CHECK_SRC_PERMS],
[
if test x"$OPENJDK_BUILD_OS" = xwindows; then
file_to_test="$SRC_ROOT/LICENSE"
if test `$STAT -c '%a' "$file_to_test"` -lt 400; then
AC_MSG_ERROR([Bad file permissions on src files. This is usually caused by cloning the repositories with a non cygwin hg in a directory not created in cygwin.])
fi
fi
])
AC_DEFUN_ONCE([BASIC_TEST_USABILITY_ISSUES],
[
@@ -621,6 +656,8 @@ BASIC_CHECK_DIR_ON_LOCAL_DISK($OUTPUT_ROOT,
[OUTPUT_DIR_IS_LOCAL="no"])
AC_MSG_RESULT($OUTPUT_DIR_IS_LOCAL)
BASIC_CHECK_SRC_PERMS
# Check if the user has any old-style ALT_ variables set.
FOUND_ALT_VARIABLES=`env | grep ^ALT_`

View File

@@ -175,7 +175,7 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
# bat and cmd files are not always considered executable in cygwin causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path=`$CYGPATH -u "$path"`
fi
@@ -191,7 +191,7 @@ AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
# bat and cmd files are not always considered executable in cygwin causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path=`$CYGPATH -u "$path"`
fi

View File

@@ -1,4 +1,29 @@
#! /bin/sh
#
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. 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.
#
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008

View File

@@ -1,4 +1,30 @@
#! /bin/sh
#
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. 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.
#
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008

View File

@@ -1,4 +1,30 @@
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
#
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. 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.
#
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
#

View File

@@ -47,10 +47,6 @@ AC_DEFUN([BPERF_CHECK_CORES],
FOUND_CORES=yes
fi
# For c/c++ code we run twice as many concurrent build
# jobs than we have cores, otherwise we will stall on io.
CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
if test "x$FOUND_CORES" = xyes; then
AC_MSG_RESULT([$NUM_CORES])
else
@@ -98,32 +94,62 @@ AC_DEFUN([BPERF_CHECK_MEMORY_SIZE],
AC_DEFUN_ONCE([BPERF_SETUP_BUILD_CORES],
[
# How many cores do we have on this build system?
AC_ARG_WITH(num-cores, [AS_HELP_STRING([--with-num-cores],
# How many cores do we have on this build system?
AC_ARG_WITH(num-cores, [AS_HELP_STRING([--with-num-cores],
[number of cores in the build system, e.g. --with-num-cores=8 @<:@probed@:>@])])
if test "x$with_num_cores" = x; then
if test "x$with_num_cores" = x; then
# The number of cores were not specified, try to probe them.
BPERF_CHECK_CORES
else
else
NUM_CORES=$with_num_cores
CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
fi
AC_SUBST(NUM_CORES)
AC_SUBST(CONCURRENT_BUILD_JOBS)
fi
AC_SUBST(NUM_CORES)
])
AC_DEFUN_ONCE([BPERF_SETUP_BUILD_MEMORY],
[
# How much memory do we have on this build system?
AC_ARG_WITH(memory-size, [AS_HELP_STRING([--with-memory-size],
# How much memory do we have on this build system?
AC_ARG_WITH(memory-size, [AS_HELP_STRING([--with-memory-size],
[memory (in MB) available in the build system, e.g. --with-memory-size=1024 @<:@probed@:>@])])
if test "x$with_memory_size" = x; then
if test "x$with_memory_size" = x; then
# The memory size was not specified, try to probe it.
BPERF_CHECK_MEMORY_SIZE
else
else
MEMORY_SIZE=$with_memory_size
fi
AC_SUBST(MEMORY_SIZE)
fi
AC_SUBST(MEMORY_SIZE)
])
AC_DEFUN_ONCE([BPERF_SETUP_BUILD_JOBS],
[
# Provide a decent default number of parallel jobs for make depending on
# number of cores, amount of memory and machine architecture.
AC_ARG_WITH(jobs, [AS_HELP_STRING([--with-jobs],
[number of parallel jobs to let make run @<:@calculated based on cores and memory@:>@])])
if test "x$with_jobs" = x; then
# Number of jobs was not specified, calculate.
AC_MSG_CHECKING([for appropriate number of jobs to run in parallel])
# Approximate memory in GB, rounding up a bit.
memory_gb=`expr $MEMORY_SIZE / 1100`
# Pick the lowest of memory in gb and number of cores.
if test "$memory_gb" -lt "$NUM_CORES"; then
JOBS="$memory_gb"
else
JOBS="$NUM_CORES"
# On bigger machines, leave some room for other processes to run
if test "$JOBS" -gt "4"; then
JOBS=`expr $JOBS '*' 90 / 100`
fi
fi
# Cap number of jobs to 16
if test "$JOBS" -gt "16"; then
JOBS=16
fi
AC_MSG_RESULT([$JOBS])
else
JOBS=$with_jobs
fi
AC_SUBST(JOBS)
])
AC_DEFUN([BPERF_SETUP_CCACHE],
@@ -204,7 +230,7 @@ AC_DEFUN_ONCE([BPERF_SETUP_PRECOMPILED_HEADERS],
#
AC_ARG_ENABLE([precompiled-headers], [AS_HELP_STRING([--disable-precompiled-headers],
[disable using precompiled headers when compiling C++ @<:@enabled@:>@])],
[ENABLE_PRECOMPH=${enable_precompiled-headers}], [ENABLE_PRECOMPH=yes])
[ENABLE_PRECOMPH=${enable_precompiled_headers}], [ENABLE_PRECOMPH=yes])
USE_PRECOMPILED_HEADER=1
if test "x$ENABLE_PRECOMPH" = xno; then
@@ -214,17 +240,16 @@ fi
if test "x$ENABLE_PRECOMPH" = xyes; then
# Check that the compiler actually supports precomp headers.
if test "x$GCC" = xyes; then
AC_MSG_CHECKING([that precompiled headers work])
AC_MSG_CHECKING([that precompiled headers work])
echo "int alfa();" > conftest.h
$CXX -x c++-header conftest.h -o conftest.hpp.gch
$CXX -x c++-header conftest.h -o conftest.hpp.gch 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD
if test ! -f conftest.hpp.gch; then
echo Precompiled header is not working!
USE_PRECOMPILED_HEADER=0
AC_MSG_RESULT([no])
else
AC_MSG_RESULT([yes])
fi
rm -f conftest.h
rm -f conftest.h conftest.hpp.gch
fi
fi

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2013 Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@ GREP="@GREP@"
JAVAP="@FIXPATH@ @BOOT_JDK@/bin/javap"
LDD="@LDD@"
MKDIR="@MKDIR@"
NAWK="@NAWK@"
NM="@NM@"
OBJDUMP="@OBJDUMP@"
OTOOL="@OTOOL@"

View File

@@ -83,6 +83,9 @@ PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET
BASIC_SETUP_PATHS
BASIC_SETUP_LOGGING
# Check if it's a pure open build or if custom sources are to be used.
JDKOPT_SETUP_OPEN_OR_CUSTOM
# These are needed to be able to create a configuration name (and thus the output directory)
JDKOPT_SETUP_JDK_VARIANT
JDKOPT_SETUP_JVM_VARIANTS
@@ -201,6 +204,7 @@ JDKOPT_SETUP_BUILD_TWEAKS
BPERF_SETUP_BUILD_CORES
BPERF_SETUP_BUILD_MEMORY
BPERF_SETUP_BUILD_JOBS
# Setup smart javac (after cores and memory have been setup)
BPERF_SETUP_SMART_JAVAC

File diff suppressed because it is too large Load Diff

View File

@@ -174,7 +174,7 @@ printf "* C++ Compiler: $CXX_VENDOR version $CXX_VERSION (at $CXX)\n"
printf "\n"
printf "Build performance summary:\n"
printf "* Cores to use: $NUM_CORES\n"
printf "* Cores to use: $JOBS\n"
printf "* Memory limit: $MEMORY_SIZE MB\n"
printf "* ccache status: $CCACHE_STATUS\n"
printf "\n"

View File

@@ -80,7 +80,7 @@ ALT_EXPORT_PATH=$(HOTSPOT_DIST)
HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@ @STATIC_CXX_SETTING@
# This is used from the libjvm build for C/C++ code.
HOTSPOT_BUILD_JOBS:=@CONCURRENT_BUILD_JOBS@
HOTSPOT_BUILD_JOBS:=$(JOBS)
# Control wether Hotspot runs Queens test after building
TEST_IN_BUILD=@TEST_IN_BUILD@
@@ -95,6 +95,26 @@ EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@
EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
USE_PRECOMPILED_HEADER=@USE_PRECOMPILED_HEADER@
# Hotspot expects the variable FULL_DEBUG_SYMBOLS=1/0 to control debug symbols
# creation.
ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
FULL_DEBUG_SYMBOLS=1
# Ensure hotspot uses the objcopy that configure located
ALT_OBJCOPY:=$(OBJCOPY)
else
FULL_DEBUG_SYMBOLS=0
endif
# Hotspot expects the variable ZIP_DEBUGINFO_FILES=1/0 and not true/false.
ifeq ($(ZIP_DEBUGINFO_FILES)$(ENABLE_DEBUG_SYMBOLS), truetrue)
ZIP_DEBUGINFO_FILES:=1
endif
ifeq ($(ZIP_DEBUGINFO_FILES), false)
ZIP_DEBUGINFO_FILES:=0
endif
# Sneak this in via the spec.gmk file, since we don't want to mess around too much with the Hotspot make files.
# This is needed to get the LOG setting to work properly.
include $(SRC_ROOT)/common/makefiles/MakeBase.gmk

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -60,28 +60,30 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS],
# Currently we have:
# server: normal interpreter and a tiered C1/C2 compiler
# client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
# minimal1: reduced form of client with optional VM services and features stripped out
# kernel: kernel footprint JVM that passes the TCK without major performance problems,
# ie normal interpreter and C1, only the serial GC, kernel jvmti etc
# zero: no machine code interpreter, no compiler
# zeroshark: zero interpreter and shark/llvm compiler backend
AC_MSG_CHECKING([which variants of the JVM to build])
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
[JVM variants (separated by commas) to build (server, client, kernel, zero, zeroshark) @<:@server@:>@])])
[JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark) @<:@server@:>@])])
if test "x$with_jvm_variants" = x; then
with_jvm_variants="server"
fi
JVM_VARIANTS=",$with_jvm_variants,"
TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'`
TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'`
if test "x$TEST_VARIANTS" != "x,"; then
AC_MSG_ERROR([The available JVM variants are: server, client, kernel, zero, zeroshark])
AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark])
fi
AC_MSG_RESULT([$with_jvm_variants])
JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'`
JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS" | $SED -e '/,minimal1,/!s/.*/false/g' -e '/,minimal1,/s/.*/true/g'`
JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'`
JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
@@ -96,10 +98,15 @@ if test "x$JVM_VARIANT_KERNEL" = xtrue; then
AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
fi
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
fi
fi
# Replace the commas with AND for use in the build directory name.
ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'`
if test "x$COUNT_VARIANTS" != "x,1"; then
BUILDING_MULTIPLE_JVM_VARIANTS=yes
else
@@ -109,6 +116,7 @@ fi
AC_SUBST(JVM_VARIANTS)
AC_SUBST(JVM_VARIANT_SERVER)
AC_SUBST(JVM_VARIANT_CLIENT)
AC_SUBST(JVM_VARIANT_MINIMAL1)
AC_SUBST(JVM_VARIANT_KERNEL)
AC_SUBST(JVM_VARIANT_ZERO)
AC_SUBST(JVM_VARIANT_ZEROSHARK)
@@ -191,7 +199,9 @@ esac
#####
# Generate the legacy makefile targets for hotspot.
# The hotspot api for selecting the build artifacts, really, needs to be improved.
#
# JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to
# determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc
# But until then ...
HOTSPOT_TARGET=""
if test "x$JVM_VARIANT_SERVER" = xtrue; then
@@ -202,6 +212,10 @@ if test "x$JVM_VARIANT_CLIENT" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
fi
if test "x$JVM_VARIANT_KERNEL" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel "
fi
@@ -221,7 +235,7 @@ HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"
# from configure, but only server is valid anyway. Fix this
# when hotspot makefiles are rewritten.
if test "x$MACOSX_UNIVERSAL" = xtrue; then
HOTSPOT_TARGET=universal_product
HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT}
fi
#####
@@ -233,46 +247,50 @@ AC_SUBST(DEBUG_CLASSFILES)
AC_SUBST(BUILD_VARIANT_RELEASE)
])
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
[
###############################################################################
#
# Should we build only OpenJDK even if closed sources are present?
#
AC_ARG_ENABLE([openjdk-only], [AS_HELP_STRING([--enable-openjdk-only],
[supress building closed source even if present @<:@disabled@:>@])],,[enable_openjdk_only="no"])
AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM],
[
AC_ARG_ENABLE([openjdk-only], [AS_HELP_STRING([--enable-openjdk-only],
[suppress building custom source even if present @<:@disabled@:>@])],,[enable_openjdk_only="no"])
AC_MSG_CHECKING([for presence of closed sources])
if test -d "$SRC_ROOT/jdk/src/closed"; then
AC_MSG_CHECKING([for presence of closed sources])
if test -d "$SRC_ROOT/jdk/src/closed"; then
CLOSED_SOURCE_PRESENT=yes
else
CLOSED_SOURCE_PRESENT=no
fi
AC_MSG_RESULT([$CLOSED_SOURCE_PRESENT])
AC_MSG_CHECKING([if closed source is supressed (openjdk-only)])
SUPRESS_CLOSED_SOURCE="$enable_openjdk_only"
AC_MSG_RESULT([$SUPRESS_CLOSED_SOURCE])
if test "x$CLOSED_SOURCE_PRESENT" = xno; then
OPENJDK=true
if test "x$SUPRESS_CLOSED_SOURCE" = "xyes"; then
AC_MSG_WARN([No closed source present, --enable-openjdk-only makes no sense])
fi
else
if test "x$SUPRESS_CLOSED_SOURCE" = "xyes"; then
OPENJDK=true
else
OPENJDK=false
CLOSED_SOURCE_PRESENT=no
fi
fi
AC_MSG_RESULT([$CLOSED_SOURCE_PRESENT])
if test "x$OPENJDK" = "xtrue"; then
AC_MSG_CHECKING([if closed source is suppressed (openjdk-only)])
SUPPRESS_CLOSED_SOURCE="$enable_openjdk_only"
AC_MSG_RESULT([$SUPPRESS_CLOSED_SOURCE])
if test "x$CLOSED_SOURCE_PRESENT" = xno; then
OPENJDK=true
if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then
AC_MSG_WARN([No closed source present, --enable-openjdk-only makes no sense])
fi
else
if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then
OPENJDK=true
else
OPENJDK=false
fi
fi
if test "x$OPENJDK" = "xtrue"; then
SET_OPENJDK="OPENJDK=true"
fi
fi
AC_SUBST(SET_OPENJDK)
AC_SUBST(SET_OPENJDK)
])
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
[
###############################################################################
#
@@ -355,13 +373,52 @@ COMPRESS_JARS=false
AC_SUBST(COMPRESS_JARS)
])
###############################################################################
#
# Setup version numbers
#
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VERSION_NUMBERS],
[
# Source the version numbers
. $AUTOCONF_DIR/version.numbers
if test "x$OPENJDK" = "xfalse"; then
. $AUTOCONF_DIR/closed.version.numbers
. $AUTOCONF_DIR/version-numbers
# Get the settings from parameters
AC_ARG_WITH(milestone, [AS_HELP_STRING([--with-milestone],
[Set milestone value for build @<:@internal@:>@])])
if test "x$with_milestone" = xyes; then
AC_MSG_ERROR([Milestone must have a value])
elif test "x$with_milestone" != x; then
MILESTONE="$with_milestone"
fi
if test "x$MILESTONE" = x; then
MILESTONE=internal
fi
AC_ARG_WITH(build-number, [AS_HELP_STRING([--with-build-number],
[Set build number value for build @<:@b00@:>@])])
if test "x$with_build_number" = xyes; then
AC_MSG_ERROR([Build number must have a value])
elif test "x$with_build_number" != x; then
JDK_BUILD_NUMBER="$with_build_number"
fi
if test "x$JDK_BUILD_NUMBER" = x; then
JDK_BUILD_NUMBER=b00
fi
AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix],
[Add a custom string to the version string if build number isn't set.@<:@username_builddateb00@:>@])])
if test "x$with_user_release_suffix" = xyes; then
AC_MSG_ERROR([Release suffix must have a value])
elif test "x$with_user_release_suffix" != x; then
USER_RELEASE_SUFFIX="$with_user_release_suffix"
else
BUILD_DATE=`date '+%Y_%m_%d_%H_%M'`
# Avoid [:alnum:] since it depends on the locale.
CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyz0123456789'`
USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
fi
AC_SUBST(USER_RELEASE_SUFFIX)
# Now set the JDK version, milestone, build number etc.
AC_SUBST(JDK_MAJOR_VERSION)
AC_SUBST(JDK_MINOR_VERSION)
@@ -380,34 +437,13 @@ AC_SUBST(MACOSX_BUNDLE_ID_BASE)
COPYRIGHT_YEAR=`date +'%Y'`
AC_SUBST(COPYRIGHT_YEAR)
RUNTIME_NAME="$PRODUCT_NAME $PRODUCT_SUFFIX"
AC_SUBST(RUNTIME_NAME)
if test "x$JDK_UPDATE_VERSION" != x; then
JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}"
JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}"
else
JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}"
JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}"
fi
AC_SUBST(JDK_VERSION)
if test "x$MILESTONE" != x; then
RELEASE="${JDK_VERSION}-${MILESTONE}${BUILD_VARIANT_RELEASE}"
else
RELEASE="${JDK_VERSION}${BUILD_VARIANT_RELEASE}"
fi
AC_SUBST(RELEASE)
if test "x$JDK_BUILD_NUMBER" != x; then
FULL_VERSION="${RELEASE}-${JDK_BUILD_NUMBER}"
else
JDK_BUILD_NUMBER=b00
BUILD_DATE=`date '+%Y_%m_%d_%H_%M'`
# Avoid [:alnum:] since it depends on the locale.
CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyz0123456789'`
USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FULL_VERSION="${RELEASE}-${USER_RELEASE_SUFFIX}-${JDK_BUILD_NUMBER}"
fi
AC_SUBST(FULL_VERSION)
COOKED_BUILD_NUMBER=`$ECHO $JDK_BUILD_NUMBER | $SED -e 's/^b//' -e 's/^0//'`
AC_SUBST(COOKED_BUILD_NUMBER)
])
@@ -420,7 +456,7 @@ AC_SUBST(HOTSPOT_MAKE_ARGS)
# The name of the Service Agent jar.
SALIB_NAME="${LIBRARY_PREFIX}saproc${SHARED_LIBRARY_SUFFIX}"
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
SALIB_NAME="${LIBRARY_PREFIX}sawindbg${SHARED_LIBRARY_SUFFIX}"
SALIB_NAME="${LIBRARY_PREFIX}sawindbg${SHARED_LIBRARY_SUFFIX}"
fi
AC_SUBST(SALIB_NAME)
@@ -432,32 +468,30 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
# ENABLE_DEBUG_SYMBOLS
# This must be done after the toolchain is setup, since we're looking at objcopy.
#
ENABLE_DEBUG_SYMBOLS=default
# default on macosx is no...
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
ENABLE_DEBUG_SYMBOLS=no
fi
AC_ARG_ENABLE([debug-symbols],
[AS_HELP_STRING([--disable-debug-symbols],[disable generation of debug symbols @<:@enabled@:>@])],
[ENABLE_DEBUG_SYMBOLS=${enable_debug_symbols}],
)
[AS_HELP_STRING([--disable-debug-symbols],[disable generation of debug symbols @<:@enabled@:>@])])
AC_MSG_CHECKING([if we should generate debug symbols])
if test "x$ENABLE_DEBUG_SYMBOLS" = "xyes" && test "x$OBJCOPY" = x; then
if test "x$enable_debug_symbols" = "xyes" && test "x$OBJCOPY" = x; then
# explicit enabling of enable-debug-symbols and can't find objcopy
# this is an error
AC_MSG_ERROR([Unable to find objcopy, cannot enable debug-symbols])
fi
if test "x$ENABLE_DEBUG_SYMBOLS" = "xdefault"; then
if test "x$enable_debug_symbols" = "xyes"; then
ENABLE_DEBUG_SYMBOLS=true
elif test "x$enable_debug_symbols" = "xno"; then
ENABLE_DEBUG_SYMBOLS=false
else
# default on macosx is false
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
ENABLE_DEBUG_SYMBOLS=false
# Default is on if objcopy is found, otherwise off
if test "x$OBJCOPY" != x || test "x$OPENJDK_TARGET_OS" = xwindows; then
ENABLE_DEBUG_SYMBOLS=yes
elif test "x$OBJCOPY" != x || test "x$OPENJDK_TARGET_OS" = xwindows; then
ENABLE_DEBUG_SYMBOLS=true
else
ENABLE_DEBUG_SYMBOLS=no
ENABLE_DEBUG_SYMBOLS=false
fi
fi
@@ -466,22 +500,16 @@ AC_MSG_RESULT([$ENABLE_DEBUG_SYMBOLS])
#
# ZIP_DEBUGINFO_FILES
#
ZIP_DEBUGINFO_FILES=yes
AC_ARG_ENABLE([zip-debug-info],
[AS_HELP_STRING([--disable-zip-debug-info],[disable zipping of debug-info files @<:@enabled@:>@])],
[ZIP_DEBUGINFO_FILES=${enable_zip_debug_info}],
)
[AS_HELP_STRING([--disable-zip-debug-info],[disable zipping of debug-info files @<:@enabled@:>@])])
AC_MSG_CHECKING([if we should zip debug-info files])
AC_MSG_RESULT([$ZIP_DEBUGINFO_FILES])
AC_MSG_RESULT([${enable_zip_debug_info}])
# Hotspot wants ZIP_DEBUGINFO_FILES to be 1 for yes
# use that...
if test "x$ZIP_DEBUGINFO_FILES" = "xyes"; then
ZIP_DEBUGINFO_FILES=1
if test "x${enable_zip_debug_info}" = "xno"; then
ZIP_DEBUGINFO_FILES=false
else
ZIP_DEBUGINFO_FILES=0
ZIP_DEBUGINFO_FILES=true
fi
AC_SUBST(ENABLE_DEBUG_SYMBOLS)

View File

@@ -136,6 +136,12 @@ fi
AC_PATH_X
AC_PATH_XTRA
# AC_PATH_XTRA creates X_LIBS and sometimes adds -R flags. When cross compiling
# this doesn't make sense so we remove it.
if test "x$COMPILE_TYPE" = xcross; then
X_LIBS=`$ECHO $X_LIBS | $SED 's/-R \{0,1\}[[^ ]]*//g'`
fi
if test "x$no_x" = xyes && test "x$X11_NOT_NEEDED" != xyes; then
HELP_MSG_MISSING_DEPENDENCY([x11])
AC_MSG_ERROR([Could not find X11 libraries. $HELP_MSG])
@@ -601,11 +607,16 @@ AC_DEFUN_ONCE([LIB_SETUP_STATIC_LINK_LIBSTDCPP],
# statically link libstdc++ before C++ ABI is stablized on Linux unless
# dynamic build is configured on command line.
#
AC_ARG_ENABLE([static-link-stdc++], [AS_HELP_STRING([--disable-static-link-stdc++],
[disable static linking of the C++ runtime on Linux @<:@enabled@:>@])],,
[
enable_static_link_stdc__=yes
])
AC_ARG_WITH([stdc++lib], [AS_HELP_STRING([--with-stdc++lib=<static>,<dynamic>,<default>],
[force linking of the C++ runtime on Linux to either static or dynamic, default is static with dynamic as fallback])],
[
if test "x$with_stdc__lib" != xdynamic && test "x$with_stdc__lib" != xstatic \
&& test "x$with_stdc__lib" != xdefault; then
AC_MSG_ERROR([Bad parameter value --with-stdc++lib=$with_stdc__lib!])
fi
],
[with_stdc__lib=default]
)
if test "x$OPENJDK_TARGET_OS" = xlinux; then
# Test if -lstdc++ works.
@@ -636,31 +647,31 @@ if test "x$OPENJDK_TARGET_OS" = xlinux; then
AC_LANG_POP(C++)
AC_MSG_RESULT([$has_static_libstdcxx])
if test "x$has_static_libcxx" = xno && test "x$has_dynamic_libcxx" = xno; then
AC_MSG_ERROR([I cannot link to stdc++! Neither dynamically nor statically.])
if test "x$has_static_libstdcxx" = xno && test "x$has_dynamic_libstdcxx" = xno; then
AC_MSG_ERROR([Cannot link to stdc++, neither dynamically nor statically!])
fi
if test "x$enable_static_link_stdc__" = xyes && test "x$has_static_libstdcxx" = xno; then
AC_MSG_NOTICE([Static linking of libstdc++ was not possible reverting to dynamic linking.])
enable_static_link_stdc__=no
if test "x$with_stdc__lib" = xstatic && test "x$has_static_libstdcxx" = xno; then
AC_MSG_ERROR([Static linking of libstdc++ was not possible!])
fi
if test "x$enable_static_link_stdc__" = xno && test "x$has_dynamic_libstdcxx" = xno; then
AC_MSG_NOTICE([Dynamic linking of libstdc++ was not possible reverting to static linking.])
enable_static_link_stdc__=yes
if test "x$with_stdc__lib" = xdynamic && test "x$has_dynamic_libstdcxx" = xno; then
AC_MSG_ERROR([Dynamic linking of libstdc++ was not possible!])
fi
AC_MSG_CHECKING([how to link with libstdc++])
if test "x$enable_static_link_stdc__" = xyes; then
LIBCXX="$LIBCXX $STATIC_STDCXX_FLAGS"
LDCXX="$CC"
STATIC_CXX_SETTING="STATIC_CXX=true"
AC_MSG_RESULT([static])
else
# If dynamic was requested, it's available since it would fail above otherwise.
# If dynamic wasn't requested, go with static unless it isn't available.
if test "x$with_stdc__lib" = xdynamic || test "x$has_static_libstdcxx" = xno; then
LIBCXX="$LIBCXX -lstdc++"
LDCXX="$CXX"
STATIC_CXX_SETTING="STATIC_CXX=false"
AC_MSG_RESULT([dynamic])
else
LIBCXX="$LIBCXX $STATIC_STDCXX_FLAGS"
LDCXX="$CC"
STATIC_CXX_SETTING="STATIC_CXX=true"
AC_MSG_RESULT([static])
fi
fi
AC_SUBST(STATIC_CXX_SETTING)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -163,11 +163,22 @@ MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@
# Different version strings generated from the above information.
JDK_VERSION:=@JDK_VERSION@
RUNTIME_NAME:=@RUNTIME_NAME@
FULL_VERSION:=@FULL_VERSION@
JRE_RELEASE_VERSION:=@FULL_VERSION@
RELEASE:=@RELEASE@
RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX)
COOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@
# These variables need to be generated here so that MILESTONE and
# JDK_BUILD_NUMBER can be overridden on the make command line.
ifeq ($(MILESTONE),)
RELEASE=$(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
else
RELEASE=$(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
endif
ifeq ($(JDK_BUILD_NUMBER),b00)
USER_RELEASE_SUFFIX=@USER_RELEASE_SUFFIX@
FULL_VERSION=$(RELEASE)-$(USER_RELEASE_SUFFIX)-$(JDK_BUILD_NUMBER)
else
FULL_VERSION=$(RELEASE)-$(JDK_BUILD_NUMBER)
endif
JRE_RELEASE_VERSION:=$(FULL_VERSION)
# How to compile the code: release, fastdebug or slowdebug
DEBUG_LEVEL:=@DEBUG_LEVEL@
@@ -185,11 +196,12 @@ SUPPORT_HEADLESS:=@SUPPORT_HEADLESS@
# These are the libjvms that we want to build.
# The java launcher uses the default.
# The other can be selected by specifying -client -server -kernel -zero or -zeroshark
# The others can be selected by specifying -client -server -minimal1 -kernel -zero or -zeroshark
# on the java launcher command line.
JVM_VARIANTS:=@JVM_VARIANTS@
JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@
JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@
JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
@@ -219,6 +231,7 @@ JAXWS_OUTPUTDIR=$(BUILD_OUTPUT)/jaxws
HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
JCE_OUTPUTDIR=$(BUILD_OUTPUT)/jce-release
LANGTOOLS_DIST=$(LANGTOOLS_OUTPUTDIR)/dist
CORBA_DIST=$(CORBA_OUTPUTDIR)/dist
@@ -247,6 +260,9 @@ ENABLE_SJAVAC:=@ENABLE_SJAVAC@
# the sjavac server log files.
SJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@
# Number of parallel jobs to use for compilation
JOBS?=@JOBS@
# The OpenJDK makefiles should be changed to using the standard
# configure output ..._CFLAGS and ..._LIBS. In the meantime we
# extract the information here.
@@ -269,6 +285,9 @@ X_CFLAGS:=@X_CFLAGS@
X_LIBS:=@X_LIBS@
OPENWIN_HOME:=@OPENWIN_HOME@
# The lowest required version of macosx to enforce compatiblity for
MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
# There are two types: CC or CL
# CC is gcc and others behaving reasonably similar.
# CL is cl.exe only.
@@ -419,6 +438,14 @@ RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic
NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii
JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner
# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ...
BOOTSTRAP_JAVAC_JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
BOOTSTRAP_JAVAC_ARGS:="-Xbootclasspath/p:$(BOOTSTRAP_JAVAC_JAR)" -cp $(BOOTSTRAP_JAVAC_JAR)
NEW_JAVAC = $(BOOTSTRAP_JAVAC_ARGS) com.sun.tools.javac.Main
NEW_JAVADOC = $(BOOTSTRAP_JAVAC_ARGS) com.sun.tools.javadoc.Main
# Base flags for RC
# Guarding this against resetting value. Legacy make files include spec multiple
# times.
@@ -439,10 +466,13 @@ CCACHE:=@CCACHE@
# CD is going away, but remains to cater for legacy makefiles.
CD:=cd
CHMOD:=@CHMOD@
COMM:=@COMM@
CP:=@CP@
CPIO:=@CPIO@
CUT:=@CUT@
DATE:=@DATE@
DIFF:=@DIFF@
DIRNAME:=@DIRNAME@
FIND:=@FIND@
FIND_DELETE:=@FIND_DELETE@
ECHO:=@ECHO@
@@ -467,6 +497,7 @@ TEE:=@TEE@
TIME:=@TIME@
TR:=@TR@
TOUCH:=@TOUCH@
UNIQ:=@UNIQ@
WC:=@WC@
XARGS:=@XARGS@
ZIPEXE:=@ZIP@
@@ -599,5 +630,21 @@ OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
OS_VERSION_MINOR:=@OS_VERSION_MINOR@
OS_VERSION_MICRO:=@OS_VERSION_MICRO@
# Images directory definitions
JDK_IMAGE_SUBDIR:=j2sdk-image
JRE_IMAGE_SUBDIR:=j2re-image
JDK_OVERLAY_IMAGE_SUBDIR:=j2sdk-overlay-image
JRE_OVERLAY_IMAGE_SUBDIR:=j2re-overlay-image
JDK_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
JRE_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
JDK_OVERLAY_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/$(JDK_OVERLAY_IMAGE_SUBDIR)
JRE_OVERLAY_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/$(JRE_OVERLAY_IMAGE_SUBDIR)
# Macosx bundles directory definitions
JDK_BUNDLE_SUBDIR:=j2sdk-bundle/jdk$(JDK_VERSION).jdk/Contents
JRE_BUNDLE_SUBDIR:=j2re-bundle/jre$(JDK_VERSION).jre/Contents
JDK_BUNDLE_DIR:=$(IMAGES_OUTPUTDIR)/$(JDK_BUNDLE_SUBDIR)
JRE_BUNDLE_DIR:=$(IMAGES_OUTPUTDIR)/$(JRE_BUNDLE_SUBDIR)
# Include the custom-spec.gmk file if it exists
-include $(dir @SPEC@)/custom-spec.gmk

View File

@@ -114,13 +114,25 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
[
COMPILER_NAME=$2
# Do a first initial attempt at searching the list of compiler names.
$1=
# If TOOLS_DIR is set, check for all compiler names in there first
# before checking the rest of the PATH.
if test -n "$TOOLS_DIR"; then
PATH_save="$PATH"
PATH="$TOOLS_DIR"
AC_PATH_PROGS(TOOLS_DIR_$1, $3)
$1=$TOOLS_DIR_$1
PATH="$PATH_save"
fi
# AC_PATH_PROGS can't be run multiple times with the same variable,
# so create a new name for this run.
AC_PATH_PROGS(POTENTIAL_$1, $3)
$1=$POTENTIAL_$1
if test "x[$]$1" = x; then
AC_PATH_PROGS(POTENTIAL_$1, $3)
$1=$POTENTIAL_$1
fi
if test "x$[$]$1" = x; then
if test "x[$]$1" = x; then
HELP_MSG_MISSING_DEPENDENCY([devkit])
AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG])
fi
@@ -437,7 +449,10 @@ fi
# full debug symbols are enabled.
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy])
BASIC_FIXUP_EXECUTABLE(OBJCOPY)
# Only call fixup if objcopy was found.
if test -n "$OBJCOPY"; then
BASIC_FIXUP_EXECUTABLE(OBJCOPY)
fi
fi
AC_CHECK_TOOLS(OBJDUMP, [gobjdump objdump])
@@ -861,6 +876,17 @@ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
fi
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
# Setting these parameters makes it an error to link to macosx APIs that are
# newer than the given OS version and makes the linked binaries compatible even
# if built on a newer version of the OS.
# The expected format is X.Y.Z
MACOSX_VERSION_MIN=10.7.0
AC_SUBST(MACOSX_VERSION_MIN)
# The macro takes the version with no dots, ex: 1070
# Let the flags variables get resolved in make for easier override on make
# command line.
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
fi
if test "x$OPENJDK_TARGET_OS" = xbsd; then
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
@@ -935,10 +961,22 @@ else
fi
fi
LDFLAGS_JDKLIB="${LDFLAGS_JDK} $SHARED_LIBRARY_FLAGS \
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}/server \
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}/client \
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}"
# On some platforms (mac) the linker warns about non existing -L dirs.
# Add server first if available. Linking aginst client does not always produce the same results.
# Only add client dir if client is being built. Add minimal (note not minimal1) if only building minimal1.
# Default to server for other variants.
if test "x$JVM_VARIANT_SERVER" = xtrue; then
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}/server"
elif test "x$JVM_VARIANT_CLIENT" = xtrue; then
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}/client"
elif test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}/minimal"
else
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}/server"
fi
LDFLAGS_JDKLIB_SUFFIX="-ljava -ljvm"
if test "x$COMPILER_NAME" = xossc; then
LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"

View File

@@ -48,7 +48,12 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT],
METHOD="$2"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(WIN_SDK_BASE)
if test -d "$WIN_SDK_BASE"; then
if test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then
# There have been cases of partial or broken SDK installations. A missing
# lib dir is not going to work.
if test ! -d "$WIN_SDK_BASE/../lib"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
AC_MSG_NOTICE([Warning: Installation is broken, lib dir is missing. Ignoring])
elif test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
VS_ENV_CMD="$WIN_SDK_BASE/SetEnv.Cmd"
if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
@@ -200,8 +205,9 @@ AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
AC_MSG_ERROR([Your VC command prompt seems broken, INCLUDE and/or LIB is missing.])
else
AC_MSG_RESULT([ok])
VS_INCLUDE="$INCLUDE"
VS_LIB="$LIB"
# Remove any trailing \ from INCLUDE and LIB to avoid trouble in spec.gmk.
VS_INCLUDE=`$ECHO "$INCLUDE" | $SED 's/\\\\$//'`
VS_LIB=`$ECHO "$LIB" | $SED 's/\\\\$//'`
VS_PATH="$PATH"
AC_SUBST(VS_INCLUDE)
AC_SUBST(VS_LIB)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -27,8 +27,6 @@ JDK_MAJOR_VERSION=1
JDK_MINOR_VERSION=8
JDK_MICRO_VERSION=0
JDK_UPDATE_VERSION=
JDK_BUILD_NUMBER=
MILESTONE=internal
LAUNCHER_NAME=openjdk
PRODUCT_NAME=OpenJDK
PRODUCT_SUFFIX="Runtime Environment"

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2013 Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -98,24 +98,30 @@ diff_text() {
if test "x$SUFFIX" = "xclass"; then
# To improve performance when large diffs are found, do a rough filtering of classes
# elibeble for these exceptions
if $GREP -R -e '[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' -e thePoint -e aPoint -e setItemsPtr ${THIS_FILE} > /dev/null; then
if $GREP -R -e '[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' \
-e '[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}' \
-e thePoint -e aPoint -e setItemsPtr ${THIS_FILE} > /dev/null; then
$JAVAP -c -constants -l -p ${OTHER_FILE} > ${OTHER_FILE}.javap
$JAVAP -c -constants -l -p ${THIS_FILE} > ${THIS_FILE}.javap
TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \
$GREP '^[<>]' | \
$SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
-e '/[0-9]\{2\}\/[0-9]\{2\}\/[0-9]\{4\}/d' \
-e '/[<>].*Point Lcom\/apple\/jobjc\/foundation\/NSPoint;/d' \
-e '/[<>].*public com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*itemsPtr();/d' \
-e '/[<>].*public void setItemsPtr(com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*);/d')
fi
fi
if test "x$SUFFIX" = "xproperties"; then
$CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
| $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
| $SED -e '/^#/d' -e '/^$/d' \
-e :a -e '/\\$/N; s/\\\n//; ta' \
-e 's/^[ \t]*//;s/[ \t]*$//' \
-e 's/\\=/=/' | LANG=C $SORT > $OTHER_FILE.cleaned
# Run through nawk to add possibly missing newline at end of file.
$CAT $OTHER_FILE | $NAWK '{ print }' > $OTHER_FILE.cleaned
# Disable this exception since we aren't changing the properties cleaning method yet.
# $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
# | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
# | $SED -e '/^#/d' -e '/^$/d' \
# -e :a -e '/\\$/N; s/\\\n//; ta' \
# -e 's/^[ \t]*//;s/[ \t]*$//' \
# -e 's/\\=/=/' | LANG=C $SORT > $OTHER_FILE.cleaned
TMP=$(LANG=C $DIFF $OTHER_FILE.cleaned $THIS_FILE)
fi
if test -n "$TMP"; then
@@ -283,13 +289,14 @@ compare_general_files() {
! -name "*.debuginfo" ! -name "*.dylib" ! -name "jexec" \
! -name "ct.sym" ! -name "*.diz" ! -name "*.dll" \
! -name "*.pdb" ! -name "*.exp" ! -name "*.ilk" \
! -name "*.lib" ! -name "*.war" \
! -name "*.lib" ! -name "*.war" ! -name "JavaControlPanel" \
| $GREP -v "./bin/" | $SORT | $FILTER)
echo General files...
for f in $GENERAL_FILES
do
if [ -e $OTHER_DIR/$f ]; then
SUFFIX="${f##*.}"
if [ "$(basename $f)" = "release" ]; then
# Ignore differences in change numbers in release file.
OTHER_FILE=$WORK_DIR/$f.other
@@ -298,6 +305,25 @@ compare_general_files() {
$MKDIR -p $(dirname $THIS_FILE)
$CAT $OTHER_DIR/$f | $SED 's/\:[0-9a-f]\{12,12\}/:CHANGE/g' > $OTHER_FILE
$CAT $THIS_DIR/$f | $SED 's/\:[0-9a-f]\{12,12\}/:CHANGE/g' > $THIS_FILE
elif [ "x$SUFFIX" = "xhtml" ]; then
# Ignore time stamps in docs files
OTHER_FILE=$WORK_DIR/$f.other
THIS_FILE=$WORK_DIR/$f.this
$MKDIR -p $(dirname $OTHER_FILE)
$MKDIR -p $(dirname $THIS_FILE)
#Note that | doesn't work on mac sed.
$CAT $OTHER_DIR/$f | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \
-e 's/\(<meta name="date" content="\).*\(">\)/\1(removed)\2/' \
-e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*/(removed)/' \
-e 's/[A-Z][a-z]* [A-Z][a-z]* [0-9][0-9] [0-9][0-9:]* [A-Z][A-Z]* [12][0-9]*/(removed)/' \
-e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \
> $OTHER_FILE
$CAT $THIS_DIR/$f | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \
-e 's/\(<meta name="date" content="\).*\(">\)/\1(removed)\2/' \
-e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*/(removed)/' \
-e 's/[A-Z][a-z]* [A-Z][a-z]* [0-9][0-9] [0-9][0-9:]* [A-Z][A-Z]* [12][0-9]*/(removed)/' \
-e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \
> $THIS_FILE
else
OTHER_FILE=$OTHER_DIR/$f
THIS_FILE=$THIS_DIR/$f
@@ -324,9 +350,15 @@ compare_zip_file() {
OTHER_DIR=$2
WORK_DIR=$3
ZIP_FILE=$4
# Optionally provide different name for other zipfile
OTHER_ZIP_FILE=$5
THIS_ZIP=$THIS_DIR/$ZIP_FILE
OTHER_ZIP=$OTHER_DIR/$ZIP_FILE
if [ -n "$OTHER_ZIP_FILE" ]; then
OTHER_ZIP=$OTHER_DIR/$OTHER_ZIP_FILE
else
OTHER_ZIP=$OTHER_DIR/$ZIP_FILE
fi
THIS_SUFFIX="${THIS_ZIP##*.}"
OTHER_SUFFIX="${OTHER_ZIP##*.}"
@@ -353,14 +385,14 @@ compare_zip_file() {
(cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP)
# Find all archives inside and unzip them as well to compare the contents rather than
# the archives.
EXCEPTIONS=""
for pack in $($FIND $THIS_UNZIPDIR -name "*.pack" -o -name "*.pack.gz"); do
# the archives. pie.jar.pack.gz i app3.war is corrupt, skip it.
EXCEPTIONS="pie.jar.pack.gz"
for pack in $($FIND $THIS_UNZIPDIR \( -name "*.pack" -o -name "*.pack.gz" \) -a ! -name pie.jar.pack.gz); do
($UNPACK200 $pack $pack.jar)
# Filter out the unzipped archives from the diff below.
EXCEPTIONS="$EXCEPTIONS $pack $pack.jar"
done
for pack in $($FIND $OTHER_UNZIPDIR -name "*.pack" -o -name "*.pack.gz"); do
for pack in $($FIND $OTHER_UNZIPDIR \( -name "*.pack" -o -name "*.pack.gz" \) -a ! -name pie.jar.pack.gz); do
($UNPACK200 $pack $pack.jar)
EXCEPTIONS="$EXCEPTIONS $pack $pack.jar"
done
@@ -611,10 +643,19 @@ compare_bin_file() {
DIFF_SIZE_NUM=$($EXPR $THIS_SIZE - $OTHER_SIZE)
DIFF_SIZE_REL=$($EXPR $THIS_SIZE \* 100 / $OTHER_SIZE)
SIZE_MSG=$($PRINTF "%3d%% %4d" $DIFF_SIZE_REL $DIFF_SIZE_NUM)
if [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] && [ "$DIFF_SIZE_REL" -gt 98 ] && [ "$DIFF_SIZE_REL" -lt 102 ]; then
if [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] && [ "$DIFF_SIZE_REL" -gt 98 ] \
&& [ "$DIFF_SIZE_REL" -lt 102 ]; then
SIZE_MSG="($SIZE_MSG)"
DIFF_SIZE=
elif [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] && [ "$DIFF_SIZE_NUM" = 512 ]; then
elif [ "$OPENJDK_TARGET_OS" = "windows" ] \
&& [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] \
&& [ "$DIFF_SIZE_NUM" = 512 ]; then
# On windows, size of binaries increase in 512 increments.
SIZE_MSG="($SIZE_MSG)"
DIFF_SIZE=
elif [ "$OPENJDK_TARGET_OS" = "windows" ] \
&& [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] \
&& [ "$DIFF_SIZE_NUM" = -512 ]; then
# On windows, size of binaries increase in 512 increments.
SIZE_MSG="($SIZE_MSG)"
DIFF_SIZE=
@@ -840,7 +881,7 @@ compare_all_libs() {
OTHER_DIR=$2
WORK_DIR=$3
LIBS=$(cd $THIS_DIR && $FIND . -type f \( -name 'lib*.so' -o -name '*.dylib' -o -name '*.dll' \) | $SORT | $FILTER)
LIBS=$(cd $THIS_DIR && $FIND . -type f \( -name 'lib*.so' -o -name '*.dylib' -o -name '*.dll' -o -name 'JavaControlPanel' \) | $SORT | $FILTER)
if [ -n "$LIBS" ]; then
echo Libraries...
@@ -927,6 +968,9 @@ if [ -z "$1" ] || [ "$1" = "-h" ] || [ "$1" = "-?" ] || [ "$1" = "/h" ] || [ "$1
echo "[FILTER] List filenames in the image to compare, works for jars, zips, libs and execs"
echo "Example:"
echo "bash ./common/bin/compareimages.sh CodePointIM.jar"
echo ""
echo "-2zips <file1> <file2> Compare two zip files only"
echo ""
exit 10
fi
@@ -988,6 +1032,13 @@ while [ -n "$1" ]; do
-execs)
CMP_EXECS=true
;;
-2zips)
CMP_2_ZIPS=true
THIS_FILE=$2
OTHER_FILE=$3
shift
shift
;;
*)
CMP_NAMES=false
CMP_PERMS=false
@@ -1006,6 +1057,18 @@ while [ -n "$1" ]; do
shift
done
if [ "$CMP_2_ZIPS" = "true" ]; then
THIS_DIR="$(dirname $THIS_FILE)"
THIS_DIR="$(cd "$THIS_DIR" && pwd )"
OTHER_DIR="$(dirname $OTHER_FILE)"
OTHER_DIR="$(cd "$OTHER_DIR" && pwd )"
THIS_FILE_NAME="$(basename $THIS_FILE)"
OTHER_FILE_NAME="$(basename $OTHER_FILE)"
echo Comparing $THIS_DIR/$THIS_FILE_NAME and $OTHER_DIR/$OTHER_FILE_NAME
compare_zip_file $THIS_DIR $OTHER_DIR $COMPARE_ROOT/2zips $THIS_FILE_NAME $OTHER_FILE_NAME
exit
fi
if [ "$CMP_NAMES" = "false" ] && [ "$CMP_TYPES" = "false" ] && [ "$CMP_PERMS" = "false" ] && [ "$CMP_GENERAL" = "false" ] && [ "$CMP_ZIPS" = "false" ] && [ "$CMP_JARS" = "false" ] && [ "$CMP_LIBS" = "false" ] && [ "$CMP_EXECS" = "false" ]; then
CMP_NAMES=true
CMP_PERMS=true
@@ -1047,7 +1110,11 @@ fi
# Figure out the layout of the this build. Which kinds of images have been produced
if [ -d "$THIS/deploy/j2sdk-image" ]; then
if [ -d "$THIS/install/j2sdk-image" ]; then
THIS_J2SDK="$THIS/install/j2sdk-image"
THIS_J2RE="$THIS/install/j2re-image"
echo "Comparing install images"
elif [ -d "$THIS/deploy/j2sdk-image" ]; then
THIS_J2SDK="$THIS/deploy/j2sdk-image"
THIS_J2RE="$THIS/deploy/j2re-image"
echo "Comparing deploy images"
@@ -1055,9 +1122,16 @@ elif [ -d "$THIS/images/j2sdk-image" ]; then
THIS_J2SDK="$THIS/images/j2sdk-image"
THIS_J2RE="$THIS/images/j2re-image"
fi
if [ -d "$THIS/images/j2sdk-overlay-image" ]; then
THIS_J2SDK_OVERLAY="$THIS/images/j2sdk-overlay-image"
THIS_J2RE_OVERLAY="$THIS/images/j2re-overlay-image"
if [ -d "$THIS/install/j2sdk-image" ]; then
# If there is an install image, prefer that, it's also overlay
THIS_J2SDK_OVERLAY="$THIS/install/j2sdk-image"
THIS_J2RE_OVERLAY="$THIS/install/j2re-image"
else
THIS_J2SDK_OVERLAY="$THIS/images/j2sdk-overlay-image"
THIS_J2RE_OVERLAY="$THIS/images/j2re-overlay-image"
fi
fi
if [ -d "$THIS/images/j2sdk-bundle" ]; then
@@ -1074,7 +1148,9 @@ if [ -d "$OTHER/j2sdk-image" ]; then
OTHER_J2SDK_OVERLAY="$OTHER/j2sdk-image"
OTHER_J2RE_OVERLAY="$OTHER/j2re-image"
fi
elif [ -d "$OTHER/images/j2sdk-image" ]; then
OTHER_J2SDK="$OTHER/images/j2sdk-image"
OTHER_J2RE="$OTHER/images/j2re-image"
fi
if [ -d "$OTHER/j2sdk-bundle" ]; then
@@ -1102,6 +1178,42 @@ if [ -z "$THIS_J2SDK_BUNDLE" ] && [ -n "$OTHER_J2SDK_BUNDLE" ]; then
echo "Skipping bundle compare!"
fi
if [ -d "$THIS/docs" ]; then
THIS_DOCS="$THIS/docs"
fi
if [ -d "$OTHER/docs" ]; then
OTHER_DOCS="$OTHER/docs"
fi
if [ -z "$THIS_DOCS" ]; then
echo "WARNING! Docs haven't been built and won't be compared."
fi
if [ -z "$OTHER_DOCS" ]; then
echo "WARNING! Other build doesn't contain docs, skipping doc compare."
fi
if [ -d "$OTHER/images" ]; then
OTHER_SEC_DIR="$OTHER/images"
else
OTHER_SEC_DIR="$OTHER/tmp"
fi
OTHER_SEC_BIN="$OTHER_SEC_DIR/sec-bin.zip"
THIS_SEC_DIR="$THIS/images"
THIS_SEC_BIN="$THIS_SEC_DIR/sec-bin.zip"
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
if [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
JGSS_WINDOWS_BIN="jgss-windows-x64-bin.zip"
else
JGSS_WINDOWS_BIN="jgss-windows-i586-bin.zip"
fi
OTHER_SEC_WINDOWS_BIN="$OTHER_SEC_DIR/sec-windows-bin.zip"
OTHER_JGSS_WINDOWS_BIN="$OTHER_SEC_DIR/$JGSS_WINDOWS_BIN"
THIS_SEC_WINDOWS_BIN="$THIS_SEC_DIR/sec-windows-bin.zip"
THIS_JGSS_WINDOWS_BIN="$THIS_SEC_DIR/$JGSS_WINDOWS_BIN"
fi
##########################################################################################
# Do the work
@@ -1139,6 +1251,12 @@ if [ "$CMP_NAMES" = "true" ]; then
echo -n "J2RE Bundle "
compare_files $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/j2re-bundle
fi
if [ -n "$THIS_DOCS" ] && [ -n "$OTHER_DOCS" ]; then
echo -n "Docs "
compare_dirs $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
echo -n "Docs "
compare_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
fi
fi
if [ "$CMP_PERMS" = "true" ]; then
@@ -1202,12 +1320,34 @@ if [ "$CMP_GENERAL" = "true" ]; then
echo -n "J2RE Bundle "
compare_general_files $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/j2re-bundle
fi
if [ -n "$THIS_DOCS" ] && [ -n "$OTHER_DOCS" ]; then
echo -n "Docs "
compare_general_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
fi
fi
if [ "$CMP_ZIPS" = "true" ]; then
if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
compare_all_zip_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
fi
if [ -n "$THIS_SEC_BIN" ] && [ -n "$OTHER_SEC_BIN" ]; then
if [ -n "$(echo $THIS_SEC_BIN | $FILTER)" ]; then
echo "sec-bin.zip..."
compare_zip_file $THIS_SEC_DIR $OTHER_SEC_DIR $COMPARE_ROOT/sec-bin sec-bin.zip
fi
fi
if [ -n "$THIS_SEC_WINDOWS_BIN" ] && [ -n "$OTHER_SEC_WINDOWS_BIN" ]; then
if [ -n "$(echo $THIS_SEC_WINDOWS_BIN | $FILTER)" ]; then
echo "sec-windows-bin.zip..."
compare_zip_file $THIS_SEC_DIR $OTHER_SEC_DIR $COMPARE_ROOT/sec-bin sec-windows-bin.zip
fi
fi
if [ -n "$THIS_JGSS_WINDOWS_BIN" ] && [ -n "$OTHER_JGSS_WINDOWS_BIN" ]; then
if [ -n "$(echo $THIS_JGSS_WINDOWS_BIN | $FILTER)" ]; then
echo "$JGSS_WINDOWS_BIN..."
compare_zip_file $THIS_SEC_DIR $OTHER_SEC_DIR $COMPARE_ROOT/sec-bin $JGSS_WINDOWS_BIN
fi
fi
fi
if [ "$CMP_JARS" = "true" ]; then
@@ -1218,7 +1358,12 @@ fi
if [ "$CMP_LIBS" = "true" ]; then
if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
echo -n "J2SDK "
compare_all_libs $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
echo -n "J2RE "
compare_all_libs $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
fi
fi
if [ -n "$THIS_J2SDK_OVERLAY" ] && [ -n "$OTHER_J2SDK_OVERLAY" ]; then
echo -n "Bundle "

View File

@@ -80,6 +80,7 @@ ACCEPTED_BIN_DIFF="
./bin/javadoc
./bin/javah
./bin/javap
./bin/jdeps
./bin/jcmd
./bin/jconsole
./bin/jdb
@@ -167,6 +168,7 @@ ACCEPTED_BIN_DIFF="
./bin/javadoc
./bin/javah
./bin/javap
./bin/jdeps
./bin/jcmd
./bin/jconsole
./bin/jdb
@@ -291,6 +293,14 @@ ACCEPTED_SMALL_SIZE_DIFF="
./jre/plugin/i386/ns4/libjavaplugin.so
./jre/plugin/i386/ns7/libjavaplugin_oji.so
./jre/lib/i386/server/libjvm.so
./jre/lib/i386/client/64/libjvm_db.so
./jre/lib/i386/client/64/libjvm_dtrace.so
./jre/lib/i386/client/libjvm_db.so
./jre/lib/i386/client/libjvm_dtrace.so
./jre/lib/i386/server/64/libjvm_db.so
./jre/lib/i386/server/64/libjvm_dtrace.so
./jre/lib/i386/server/libjvm_db.so
./jre/lib/i386/server/libjvm_dtrace.so
./bin/appletviewer
./bin/extcheck
./bin/idlj
@@ -301,6 +311,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
./bin/javadoc
./bin/javah
./bin/javap
./bin/jdeps
./bin/javaws
./bin/jcmd
./bin/jconsole
@@ -348,7 +359,9 @@ ACCEPTED_SMALL_SIZE_DIFF="
SKIP_FULLDUMP_DIFF="true"
# Filter random C++ symbol strings.
DIS_DIFF_FILTER="$SED -e s/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g"
# Some numbers differ randomly.
# Can't use space in these expressions as the shell will mess with them.
DIS_DIFF_FILTER="$SED -e s/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g -e s/\([0-9a-f][0-9a-f].\)\{2,8\}[0-9a-f][0-9a-f]/<NUMS>/g -e s/\(0x\)[0-9a-f]*\([,(>]\)/\1<HEX>\2/g -e s/\(0x\)[0-9a-f]*$/\1<HEX>/g -e s/\(\#.\)[0-9a-f]*\(.<\)/\1<HEX>\2/g -e s/[\.A-Za-z0-9%]\{16,16\}$/<BIN>/g"
fi
@@ -426,6 +439,9 @@ ACCEPTED_SMALL_SIZE_DIFF="
./jre/lib/amd64/libzip.so
./jre/lib/amd64/server/64/libjvm_db.so
./jre/lib/amd64/server/64/libjvm_dtrace.so
./jre/lib/amd64/server/libjvm.so
./jre/lib/amd64/server/libjvm_db.so
./jre/lib/amd64/server/libjvm_dtrace.so
./bin/amd64/appletviewer
./bin/amd64/extcheck
./bin/amd64/idlj
@@ -436,6 +452,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
./bin/amd64/javadoc
./bin/amd64/javah
./bin/amd64/javap
./bin/amd64/jdeps
./bin/amd64/jcmd
./bin/amd64/jconsole
./bin/amd64/jdb
@@ -480,7 +497,9 @@ ACCEPTED_SMALL_SIZE_DIFF="
SKIP_FULLDUMP_DIFF="true"
# Filter random C++ symbol strings.
DIS_DIFF_FILTER="$SED -e s/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g"
# Some numbers differ randomly.
# Can't use space in these expressions as the shell will mess with them.
DIS_DIFF_FILTER="$SED -e s/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g -e s/\([0-9a-f][0-9a-f].\)\{2,8\}[0-9a-f][0-9a-f]/<NUMS>/g -e s/\(0x\)[0-9a-f]*\([,(>]\)/\1<HEX>\2/g -e s/\(0x\)[0-9a-f]*$/\1<HEX>/g -e s/\(\#.\)[0-9a-f]*\(.<\)/\1<HEX>\2/g -e s/[\.A-Za-z0-9%]\{16,16\}$/<BIN>/g"
fi
@@ -591,6 +610,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
./bin/javadoc
./bin/javah
./bin/javap
./bin/jdeps
./bin/javaws
./bin/jcmd
./bin/jconsole
@@ -736,6 +756,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
./bin/sparcv9/javadoc
./bin/sparcv9/javah
./bin/sparcv9/javap
./bin/sparcv9/jdeps
./bin/sparcv9/jcmd
./bin/sparcv9/jconsole
./bin/sparcv9/jdb
@@ -792,6 +813,10 @@ fi
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
ACCEPTED_JARZIP_CONTENTS="
/bin/w2k_lsa_auth.dll
"
# Probably should add all libs here
ACCEPTED_SMALL_SIZE_DIFF="
./demo/jvmti/gctest/lib/gctest.dll
@@ -800,6 +825,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
./jre/bin/attach.dll
./jre/bin/java_crw_demo.dll
./jre/bin/jsoundds.dll
./jre/bin/server/jvm.dll
./bin/appletviewer.exe
./bin/extcheck.exe
./bin/idlj.exe
@@ -811,6 +837,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
./bin/javadoc.exe
./bin/javah.exe
./bin/javap.exe
./bin/jdeps.exe
./bin/javaw.exe
./bin/jcmd.exe
./bin/jconsole.exe
@@ -860,6 +887,17 @@ ACCEPTED_SMALL_SIZE_DIFF="
./jre/bin/unpack200.exe
"
# jabswitch.exe is compiled and linked with incremental turned on in the old
# build. This makes no sense, so it's turned off in the new build.
ACCEPTED_SIZE_DIFF="
./bin/jabswitch.exe
./jre/bin/jabswitch.exe
"
ACCEPTED_DIS_DIFF="
./bin/jabswitch.exe
./jre/bin/jabswitch.exe
"
# On windows, there are unavoidable allignment issues making
# a perfect disasm diff impossible. Filter out the following:
# * Random parts of C++ symbols (this is a bit greedy, but does the trick)
@@ -881,6 +919,7 @@ ACCEPTED_JARZIP_CONTENTS="
KNOWN_BIN_DIFF="
./jre/lib/libJObjC.dylib
./lib/libJObjC.dylib
"
ACCEPTED_BIN_DIFF="
@@ -894,6 +933,7 @@ ACCEPTED_BIN_DIFF="
./bin/javadoc
./bin/javah
./bin/javap
./bin/jdeps
./bin/jcmd
./bin/jconsole
./bin/jdb
@@ -932,26 +972,34 @@ ACCEPTED_BIN_DIFF="
./jre/bin/tnameserv
./jre/lib/libsaproc.dylib
./jre/lib/server/libjvm.dylib
./lib/libsaproc.dylib
./lib/server/libjvm.dylib
./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
"
KNOWN_SIZE_DIFF="
./jre/lib/libJObjC.dylib
./lib/libJObjC.dylib
"
SORT_SYMBOLS="
./jre/lib/libJObjC.dylib
./lib/libJObjC.dylib
"
KNOWN_SYM_DIFF="
./jre/lib/libJObjC.dylib
./lib/libJObjC.dylib
"
KNOWN_ELF_DIFF="
./jre/lib/libJObjC.dylib
./lib/libJObjC.dylib
"
KNOWN_DIS_DIFF="
./jre/lib/libJObjC.dylib
./lib/libJObjC.dylib
"
fi

215
common/bin/hgforest.sh Normal file
View File

@@ -0,0 +1,215 @@
#!/bin/sh
#
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# Shell script for a fast parallel forest command
command="$1"
pull_extra_base="$2"
# Python always buffers stdout significantly, thus we will not see any output from hg clone jdk,
# until a lot of time has passed! By passing -u to python, we get incremental updates
# on stdout. Much nicer.
whichhg="`which hg`"
if [ "${whichhg}" = "" ] ; then
echo Cannot find hg!
exit 1
fi
if [ "" = "$command" ] ; then
echo No command to hg supplied!
exit 1
fi
has_hash_bang="`head -n 1 "${whichhg}" | cut -b 1-2`"
python=""
bpython=""
if [ "#!" = "$has_hash_bang" ] ; then
python="`head -n 1 ${whichhg} | cut -b 3-`"
bpython="`basename "$python"`"
fi
if [ "python" = "$bpython" -a -x "$python" ] ; then
hg="${python} -u ${whichhg}"
else
echo Cannot find python from hg launcher. Running plain hg, which probably has buffered stdout.
hg="hg"
fi
# Clean out the temporary directory that stores the pid files.
tmp=/tmp/forest.$$
rm -f -r ${tmp}
mkdir -p ${tmp}
safe_interrupt () {
if [ -d ${tmp} ]; then
if [ "`ls ${tmp}/*.pid`" != "" ]; then
echo "Waiting for processes ( `cat ${tmp}/*.pid | tr '\n' ' '`) to terminate nicely!"
sleep 1
# Pipe stderr to dev/null to silence kill, that complains when trying to kill
# a subprocess that has already exited.
kill -TERM `cat ${tmp}/*.pid | tr '\n' ' '` 2> /dev/null
wait
echo Interrupt complete!
fi
fi
rm -f -r ${tmp}
exit 1
}
nice_exit () {
if [ -d ${tmp} ]; then
if [ "`ls ${tmp}`" != "" ]; then
wait
fi
fi
rm -f -r ${tmp}
}
trap 'safe_interrupt' INT QUIT
trap 'nice_exit' EXIT
# Only look in specific locations for possible forests (avoids long searches)
pull_default=""
repos=""
repos_extra=""
if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then
subrepos="corba jaxp jaxws langtools jdk hotspot"
if [ -f .hg/hgrc ] ; then
pull_default=`hg paths default`
if [ "${pull_default}" = "" ] ; then
echo "ERROR: Need initial clone with 'hg paths default' defined"
exit 1
fi
fi
if [ "${pull_default}" = "" ] ; then
echo "ERROR: Need initial repository to use this script"
exit 1
fi
for i in ${subrepos} ; do
if [ ! -f ${i}/.hg/hgrc ] ; then
repos="${repos} ${i}"
fi
done
if [ "${pull_extra_base}" != "" ] ; then
subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs"
pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'`
pull_extra="${pull_extra_base}/${pull_default_tail}"
for i in ${subrepos_extra} ; do
if [ ! -f ${i}/.hg/hgrc ] ; then
repos_extra="${repos_extra} ${i}"
fi
done
fi
at_a_time=2
# Any repos to deal with?
if [ "${repos}" = "" -a "${repos_extra}" = "" ] ; then
exit
fi
else
hgdirs=`ls -d ./.hg ./*/.hg ./*/*/.hg ./*/*/*/.hg ./*/*/*/*/.hg 2>/dev/null`
# Derive repository names from the .hg directory locations
for i in ${hgdirs} ; do
repos="${repos} `echo ${i} | sed -e 's@/.hg$@@'`"
done
for i in ${repos} ; do
if [ -h ${i}/.hg/store/lock -o -f ${i}/.hg/store/lock ] ; then
locked="${i} ${locked}"
fi
done
at_a_time=8
# Any repos to deal with?
if [ "${repos}" = "" ] ; then
echo "No repositories to process."
exit
fi
if [ "${locked}" != "" ] ; then
echo "These repositories are locked: ${locked}"
exit
fi
fi
# Echo out what repositories we do a command on.
echo "# Repositories: ${repos} ${repos_extra}"
echo
# Run the supplied command on all repos in parallel.
n=0
for i in ${repos} ${repos_extra} ; do
n=`expr ${n} '+' 1`
repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'`
reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'`
pull_base="${pull_default}"
for j in $repos_extra ; do
if [ "$i" = "$j" ] ; then
pull_base="${pull_extra}"
fi
done
(
(
if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then
pull_newrepo="`echo ${pull_base}/${i} | sed -e 's@\([^:]/\)//*@\1@g'`"
echo ${hg} clone ${pull_newrepo} ${i}
path="`dirname ${i}`"
if [ "${path}" != "." ] ; then
times=0
while [ ! -d "${path}" ] ## nested repo, ensure containing dir exists
do
times=`expr ${times} '+' 1`
if [ `expr ${times} '%' 10` -eq 0 ] ; then
echo ${path} still not created, waiting...
fi
sleep 5
done
fi
(${hg} clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc )&
else
echo "cd ${i} && ${hg} $*"
cd ${i} && (${hg} "$@"; echo "$?" > ${tmp}/${repopidfile}.pid.rc )&
fi
echo $! > ${tmp}/${repopidfile}.pid
) 2>&1 | sed -e "s@^@${reponame}: @") &
if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then
sleep 2
echo Waiting 5 secs before spawning next background command.
sleep 3
fi
done
# Wait for all hg commands to complete
wait
# Terminate with exit 0 only if all subprocesses were successful
ec=0
if [ -d ${tmp} ]; then
for rc in ${tmp}/*.pid.rc ; do
exit_code=`cat ${rc} | tr -d ' \n\r'`
if [ "${exit_code}" != "0" ] ; then
echo "WARNING: ${rc} exited abnormally."
ec=1
fi
done
fi
exit ${ec}

View File

@@ -71,7 +71,7 @@ define add_idl_package
$4
$(RM) -f $$(addprefix $3/$$($4_TMPDIR)/,$6)
$(CP) -rp $3/$$($4_TMPDIR)/* $3
($(CD) $3/$$($4_TMPDIR); find . -type f | sed 's!\./!$3/!g' | awk '{ print $$$$1 ": $4" }' > $5)
($(CD) $3/$$($4_TMPDIR) && $(FIND) . -type f | $(SED) 's!\./!$3/!g' | $(NAWK) '{ print $$$$1 ": $4" }' > $5)
$(RM) -rf $3/$$($4_TMPDIR)
endef
@@ -87,7 +87,7 @@ $(if $(16),$(error Internal makefile error: Too many arguments to SetupIdlCompil
$1_SRC := $$(abspath $$($1_SRC))
$1_BIN := $$(abspath $$($1_BIN))
# Find all existing java files and existing class files.
$$(shell $(MKDIR) -p $$($1_SRC) $$($1_BIN))
$$(eval $$(call MakeDir,$$($1_BIN)))
$1_SRCS := $$(shell find $$($1_SRC) -name "*.idl")
$1_BINS := $$(shell find $$($1_BIN) -name "*.java")
# Prepend the source/bin path to the filter expressions.

View File

@@ -42,8 +42,8 @@ endif
FALSE_FIND_PATTERN:=-name FILE_NAME_THAT_DOESNT_EXIST
define SetupJavaCompiler
# param 1 is for example BOOT_JAVAC or NEW_JAVAC
# This is the name later used to decide which java compiler to use.
# param 1 is for example GENERATE_OLD_BYTECODE or GENERATE_NEW_JDKBYTECODE
# This is the name of the compiler setup.
# param 2-9 are named args.
# JVM:=The jvm used to run the javac/javah command
# JAVAC:=The javac jar and bootstrap classpath changes, or just bin/javac if JVM is left out
@@ -111,9 +111,9 @@ define SetupArchive
ifeq ($$(word 20,$$($1_GREP_INCLUDE_PATTERNS)),)
$1_GREP_INCLUDES:=| $(GREP) $$(patsubst %,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_INCLUDE_PATTERNS))
else
$$(shell $(MKDIR) -p $$($1_BIN) && $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_include)
$$(eval $$(call ListPathsSafelyNow,$1_GREP_INCLUDE_PATTERNS,\n, \
>> $$($1_BIN)/_the.$$($1_JARNAME)_include))
$1_GREP_INCLUDE_OUTPUT:=$(RM) $$($1_BIN)/_the.$$($1_JARNAME)_include && \
$$(strip $$(call ListPathsSafely,$1_GREP_INCLUDE_PATTERNS,\n, \
>> $$($1_BIN)/_the.$$($1_JARNAME)_include))
$1_GREP_INCLUDES:=| $(GREP) -f $$($1_BIN)/_the.$$($1_JARNAME)_include
endif
endif
@@ -124,9 +124,9 @@ define SetupArchive
ifeq ($$(word 20,$$($1_GREP_EXCLUDE_PATTERNS)),)
$1_GREP_EXCLUDES:=| $(GREP) -v $$(patsubst %,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_EXCLUDE_PATTERNS))
else
$$(shell $(MKDIR) -p $$($1_BIN) && $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_exclude)
$$(eval $$(call ListPathsSafelyNow,$1_GREP_EXCLUDE_PATTERNS,\n, \
>> $$($1_BIN)/_the.$$($1_JARNAME)_exclude))
$1_GREP_EXCLUDE_OUTPUT=$(RM) $$($1_BIN)/_the.$$($1_JARNAME)_exclude && \
$$(strip $$(call ListPathsSafely,$1_GREP_EXCLUDE_PATTERNS,\n, \
>> $$($1_BIN)/_the.$$($1_JARNAME)_exclude))
$1_GREP_EXCLUDES:=| $(GREP) -v -f $$($1_BIN)/_the.$$($1_JARNAME)_exclude
endif
endif
@@ -137,19 +137,25 @@ define SetupArchive
else
$1_JARINDEX = true
endif
# When this macro is run in the same makefile as the java compilation, dependencies are transfered
# in make variables. When the macro is run in a different makefile than the java compilation, the
# dependencies need to be found in the filesystem.
# When this macro is run in the same makefile as the java compilation, dependencies are
# transfered in make variables. When the macro is run in a different makefile than the
# java compilation, the dependencies need to be found in the filesystem.
ifneq (,$2)
$1_DEPS:=$2
else
$1_DEPS:=$$(filter $$(addprefix %,$$($1_SUFFIXES)),\
$$(call CacheFind,$$($1_SRCS)))
ifneq (,$$($1_GREP_INCLUDE_PATTERNS))
$1_DEPS:=$$(filter $$(addsuffix %,$$($1_GREP_INCLUDE_PATTERNS)),$$($1_DEPS))
endif
ifneq (,$$($1_GREP_EXCLUDE_PATTERNS))
$1_DEPS:=$$(filter-out $$(addsuffix %,$$($1_GREP_EXCLUDE_PATTERNS)),$$($1_DEPS))
endif
# The subst of \ is needed because $ has to be escaped with \ in EXTRA_FILES for the command
# lines, but not here for use in make dependencies.
$1_DEPS:=$$(shell $(FIND) $$($1_SRCS) -type f -a \( $$($1_FIND_PATTERNS) \) \
$$($1_GREP_INCLUDES) $$($1_GREP_EXCLUDES)) \
$$(subst \,,$$(foreach src,$$($1_SRCS),$$(addprefix $$(src)/,$$($1_EXTRA_FILES))))
$1_DEPS+=$$(subst \,,$$(foreach src,$$($1_SRCS),$$(addprefix $$(src)/,$$($1_EXTRA_FILES))))
ifeq (,$$($1_SKIP_METAINF))
$1_DEPS+=$$(shell $(FIND) $$(addsuffix /META-INF,$$($1_SRCS)) -type f 2> /dev/null))
$1_DEPS+=$$(call CacheFind $$(wildcard $$(addsuffix /META-INF,$$($1_SRCS))))
endif
endif
@@ -210,6 +216,8 @@ define SetupArchive
# Here is the rule that creates/updates the jar file.
$$($1_JAR) : $$($1_DEPS)
$(MKDIR) -p $$($1_BIN)
$$($1_GREP_INCLUDE_OUTPUT)
$$($1_GREP_EXCLUDE_OUTPUT)
$$(if $$($1_MANIFEST),\
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $$($1_MANIFEST) > $$($1_MANIFEST_FILE) \
@@ -242,14 +250,14 @@ endef
define SetupZipArchive
# param 1 is for example ZIP_MYSOURCE
# param 2,3,4,5,6,7,8,9 are named args.
# SRC,ZIP,INCLUDES,EXCLUDES,EXCLUDE_FILES,SUFFIXES,EXTRA_DEPS
# SRC,ZIP,INCLUDES,INCLUDE_FILES,EXCLUDES,EXCLUDE_FILES,SUFFIXES,EXTRA_DEPS
$(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $($i),$1_$(strip $($i)))$(NEWLINE))
$(call LogSetupMacroEntry,SetupZipArchive($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))
$(if $(16),$(error Internal makefile error: Too many arguments to SetupZipArchive, please update JavaCompilation.gmk))
# Find all files in the source tree.
$1_SUFFIX_FILTER := $$(patsubst %,-o -name $(DQUOTE)*%$(DQUOTE),$$($1_SUFFIXES))
$1_ALL_SRCS := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i -type f -a ! -name "_the.*" \( -name FALSE_DUMMY $$($1_SUFFIX_FILTER) \) ))
$1_ALL_SRCS := $$(call not-containing,_the.,\
$$(filter $$(addprefix %,$$($1_SUFFIXES)),$$(call CacheFind $$($1_SRC))))
ifneq ($$($1_INCLUDES),)
$1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
@@ -259,6 +267,12 @@ define SetupZipArchive
else
$1_ZIP_INCLUDES := $$(addprefix -i$(SPACE)$(DQUOTE),$$(addsuffix /*$(DQUOTE),$$($1_INCLUDES)))
endif
endif
ifneq ($$($1_INCLUDE_FILES),)
$1_SRC_INCLUDES += $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
$1_ZIP_INCLUDES += $$(addprefix -i$(SPACE),$$($1_INCLUDE_FILES))
endif
ifneq ($$($1_SRC_INCLUDES),)
$1_ALL_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_SRCS))
endif
ifneq ($$($1_EXCLUDES),)
@@ -275,10 +289,12 @@ define SetupZipArchive
# Explicitly excluded files can be given with absolute path. The patsubst solution
# isn't perfect but the likelyhood of an absolute path to match something in a src
# dir is very small.
# If zip has nothing to do, it returns 12 and would fail the build. Check for 12
# and only fail if it's not.
$$($1_ZIP) : $$($1_ALL_SRCS) $$($1_EXTRA_DEPS)
$(MKDIR) -p $$(@D)
$(ECHO) Updating $$($1_NAME)
$$(foreach i,$$($1_SRC),(cd $$i && $(ZIP) -qru $$@ . $$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* $$(addprefix -x$(SPACE),$$(patsubst $$i/%,%,$$($1_EXCLUDE_FILES))))$$(NEWLINE)) true
$$(foreach i,$$($1_SRC),(cd $$i && $(ZIP) -qru $$@ . $$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* $$(addprefix -x$(SPACE),$$(patsubst $$i/%,%,$$($1_EXCLUDE_FILES))) || test "$$$$?" = "12" )$$(NEWLINE)) true
$(TOUCH) $$@
endef
@@ -374,7 +390,7 @@ define SetupJavaCompilation
$$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to SetupJavaCompilation $1 contains missing directory $$d)))
$$(eval $$(call MakeDir,$$($1_BIN)))
# Find all files in the source trees.
$1_ALL_SRCS := $$(filter-out $(OVR_SRCS),$$(shell $(FIND) $$($1_SRC) -type f))
$1_ALL_SRCS += $$(filter-out $(OVR_SRCS),$$(call CacheFind,$$($1_SRC)))
# Extract the java files.
ifneq ($$($1_EXCLUDE_FILES),)
$1_EXCLUDE_FILES_PATTERN:=$$(addprefix %,$$($1_EXCLUDE_FILES))
@@ -406,8 +422,6 @@ define SetupJavaCompilation
# Find all files to be copied from source to bin.
ifneq (,$$($1_COPY))
# Rewrite list of patterns into a find statement.
$1_COPY_PATTERN:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_COPY))
# Search for all files to be copied.
$1_ALL_COPIES := $$(filter $$(addprefix %,$$($1_COPY)),$$($1_ALL_SRCS))
# Copy these explicitly
@@ -434,8 +448,6 @@ define SetupJavaCompilation
# Find all property files to be copied and cleaned from source to bin.
ifneq (,$$($1_CLEAN))
# Rewrite list of patterns into a find statement.
$1_CLEAN_PATTERN:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_CLEAN))
# Search for all files to be copied.
$1_ALL_CLEANS := $$(filter $$(addprefix %,$$($1_CLEAN)),$$($1_ALL_SRCS))
# Copy and clean must also respect filters.
@@ -475,10 +487,10 @@ define SetupJavaCompilation
# Using sjavac to compile.
$1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1_BIN)/javac_state
# Create SJAVAC variable,
# expects $1_JAVAC to be "bootclasspathprepend -jar ...javac.jar"
# and it is rewritten into "bootclasspathprepend com.sun.tools.sjavac.Main"
$1_SJAVAC:=$$(word 1,$$($1_JAVAC)) -cp $$(word 3,$$($1_JAVAC)) com.sun.tools.sjavac.Main
# Create SJAVAC variable form JAVAC variable. Expects $1_JAVAC to be
# "bootclasspathprepend -cp .../javac.jar com.sun.tools.javac.Main"
# and javac is simply replaced with sjavac.
$1_SJAVAC:=$$(subst com.sun.tools.javac.Main,com.sun.tools.sjavac.Main,$$($1_JAVAC))
# Set the $1_REMOTE to spawn a background javac server.
$1_REMOTE:=--server:portfile=$$($1_SJAVAC_PORTFILE),id=$1,sjavac=$$(subst $$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) $$($1_SJAVAC))))
@@ -489,7 +501,7 @@ define SetupJavaCompilation
$(ECHO) Compiling $1
($$($1_JVM) $$($1_SJAVAC) \
$$($1_REMOTE) \
-j $(NUM_CORES) \
-j $(JOBS) \
--permit-unidentified-artifacts \
--permit-sources-without-package \
--compare-found-sources $$($1_BIN)/_the.batch.tmp \

234
common/makefiles/Jprt.gmk Normal file
View File

@@ -0,0 +1,234 @@
#
# Copyright (c) 2012, 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.
#
# This file is included by the root NewerMakefile and contains targets
# and utilities needed by JPRT.
# Utilities used in this Makefile. Most of this makefile executes without
# the context of a spec file from configure.
CAT=cat
CMP=cmp
CP=cp
ECHO=echo
MKDIR=mkdir
PRINTF=printf
PWD=pwd
# Insure we have a path that looks like it came from pwd
# (This is mostly for Windows sake and drive letters)
define UnixPath # path
$(shell (cd "$1" && $(PWD)))
endef
BUILD_DIR_ROOT:=$(root_dir)/build
ifdef OPENJDK
OPEN_BUILD=true
else
OPEN_BUILD := $(if $(or $(wildcard $(root_dir)/jdk/src/closed), \
$(wildcard $(root_dir)/jdk/make/closed), \
$(wildcard $(root_dir)/jdk/test/closed), \
$(wildcard $(root_dir)/hotspot/src/closed), \
$(wildcard $(root_dir)/hotspot/make/closed), \
$(wildcard $(root_dir)/hotspot/test/closed)), \
false,true)
endif
HOTSPOT_AVAILABLE := $(if $(wildcard $(root_dir)/hotspot),true,false)
###########################################################################
# To help in adoption of the new configure&&make build process, a bridge
# build will use the old settings to run configure and do the build.
# Build with the configure bridge. After running configure, restart make
# to parse the new spec file.
BRIDGE_TARGETS := all
bridgeBuild: bridge2configure
@cd $(root_dir) && $(MAKE) -f NewMakefile.gmk $(BRIDGE_TARGETS)
# Bridge from old Makefile ALT settings to configure options
bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts
bash ./configure $(strip $(shell $(CAT) $<))
# Create a file with configure options created from old Makefile mechanisms.
$(BUILD_DIR_ROOT)/.bridge2configureOpts: $(BUILD_DIR_ROOT)/.bridge2configureOptsLatest
$(RM) $@
$(CP) $< $@
# Use this file to only change when obvious things have changed
$(BUILD_DIR_ROOT)/.bridge2configureOptsLatest: FRC
$(RM) $@.tmp
$(MKDIR) -p $(BUILD_DIR_ROOT)
@$(ECHO) " --with-debug-level=$(if $(DEBUG_LEVEL),$(DEBUG_LEVEL),release) " >> $@.tmp
ifdef ARCH_DATA_MODEL
@$(ECHO) " --with-target-bits=$(ARCH_DATA_MODEL) " >> $@.tmp
endif
ifeq ($(ARCH_DATA_MODEL),32)
@$(ECHO) " --with-jvm-variants=client,server " >> $@.tmp
endif
ifdef ALT_PARALLEL_COMPILE_JOBS
@$(ECHO) " --with-num-cores=$(ALT_PARALLEL_COMPILE_JOBS) " >> $@.tmp
endif
ifdef ALT_BOOTDIR
@$(ECHO) " --with-boot-jdk=$(call UnixPath,$(ALT_BOOTDIR)) " >> $@.tmp
endif
ifdef ALT_CUPS_HEADERS_PATH
@$(ECHO) " --with-cups-include=$(call UnixPath,$(ALT_CUPS_HEADERS_PATH)) " >> $@.tmp
endif
ifdef ALT_FREETYPE_HEADERS_PATH
@$(ECHO) " --with-freetype=$(call UnixPath,$(ALT_FREETYPE_HEADERS_PATH)/..) " >> $@.tmp
endif
ifeq ($(HOTSPOT_AVAILABLE),false)
ifdef ALT_JDK_IMPORT_PATH
@$(ECHO) " --with-import-hotspot=$(call UnixPath,$(ALT_JDK_IMPORT_PATH)) " >> $@.tmp
endif
endif
ifeq ($(OPEN_BUILD),true)
@$(ECHO) " --enable-openjdk-only " >> $@.tmp
else
# Todo: move to closed?
ifdef ALT_MOZILLA_HEADERS_PATH
@$(ECHO) " --with-mozilla-headers=$(call UnixPath,$(ALT_MOZILLA_HEADERS_PATH)) " >> $@.tmp
endif
ifdef ALT_JUNIT_DIR
@$(ECHO) " --with-junit-dir=$(call UnixPath,$(ALT_JUNIT_DIR)) " >> $@.tmp
endif
ifdef ANT_HOME
@$(ECHO) " --with-ant-home=$(call UnixPath,$(ANT_HOME)) " >> $@.tmp
endif
ifdef ALT_JAVAFX_ZIP_DIR
@$(ECHO) " --with-javafx-zip-dir=$(call UnixPath,$(ALT_JAVAFX_ZIP_DIR)) " >> $@.tmp
endif
ifdef ALT_WIXDIR
@$(ECHO) " --with-wix=$(call UnixPath,$(ALT_WIXDIR)) " >> $@.tmp
endif
ifdef ALT_CCSS_SIGNING_DIR
@$(ECHO) " --with-ccss-signing=$(call UnixPath,$(ALT_CCSS_SIGNING_DIR)) " >> $@.tmp
endif
ifdef ALT_SLASH_JAVA
@$(ECHO) " --with-java-devtools=$(call UnixPath,$(ALT_SLASH_JAVA)/devtools) " >> $@.tmp
endif
ifdef ALT_SPARKLE_FRAMEWORK_DIR
@$(ECHO) " --with-sparkle-framework=$(call UnixPath,$(ALT_SPARKLE_FRAMEWORK_DIR)) " >> $@.tmp
endif
endif
@if [ -f $@ ] ; then \
if ! $(CMP) $@ $@.tmp > /dev/null ; then \
$(CP) $@.tmp $@ ; \
fi ; \
else \
$(CP) $@.tmp $@ ; \
fi
$(RM) $@.tmp
PHONY_LIST += bridge2configure bridgeBuild
###########################################################################
# JPRT targets
ifndef JPRT_ARCHIVE_BUNDLE
JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/j2sdk-image.zip
endif
ifndef JPRT_ARCHIVE_INSTALL_BUNDLE
JPRT_ARCHIVE_INSTALL_BUNDLE=/tmp/jprt_bundles/product-install.zip
endif
# These targets execute in a SPEC free context, before calling bridgeBuild
# to generate the SPEC.
jprt_build_product: DEBUG_LEVEL=release
jprt_build_product: BUILD_DIRNAME=*-release
jprt_build_product: jprt_build_generic
jprt_build_fastdebug: DEBUG_LEVEL=fastdebug
jprt_build_fastdebug: BUILD_DIRNAME=*-fastdebug
jprt_build_fastdebug: jprt_build_generic
jprt_build_debug: DEBUG_LEVEL=slowdebug
jprt_build_debug: BUILD_DIRNAME=*-debug
jprt_build_debug: jprt_build_generic
jprt_build_generic: BRIDGE_TARGETS+=jprt_bundle
jprt_build_generic: bridgeBuild
# This target must be called in the context of a SPEC file
jprt_bundle: $(JPRT_ARCHIVE_BUNDLE)
@$(call CheckIfMakeAtEnd)
# This target must be called in the context of a SPEC file
$(JPRT_ARCHIVE_BUNDLE): bundles
$(MKDIR) -p $(@D)
$(RM) $@
$(CP) $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip $@
ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_BITS),solaris-64)
SRC_JDK_IMAGE_DIR := $(JDK_OVERLAY_IMAGE_DIR)
SRC_JRE_IMAGE_DIR := $(JRE_OVERLAY_IMAGE_DIR)
else
SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR)
SRC_JRE_IMAGE_DIR := $(JRE_IMAGE_DIR)
endif
SRC_JDK_BUNDLE_DIR := $(JDK_BUNDLE_DIR)
SRC_JRE_BUNDLE_DIR := $(JRE_BUNDLE_DIR)
# Bundle up the images
bundles: all bundles-only
bundles-only: start-make
@$(call TargetEnter)
$(MKDIR) -p $(BUILD_OUTPUT)/bundles
$(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIP) -q -r $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip .
$(CD) $(SRC_JRE_IMAGE_DIR) && $(ZIP) -q -r $(BUILD_OUTPUT)/bundles/$(JRE_IMAGE_SUBDIR).zip .
if [ -d $(BUILD_OUTPUT)/install/bundles ] ; then \
$(CD) $(BUILD_OUTPUT)/install/bundles && $(ZIP) -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . ; \
fi
@$(call TargetExit)
# Copy images to one unified location regardless of platform etc.
final-images: all final-images-only
final-images-only: start-make
@$(call TargetEnter)
$(RM) -r $(BUILD_OUTPUT)/final-images
$(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JDK_IMAGE_SUBDIR)
$(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JRE_IMAGE_SUBDIR)
$(CP) -R -P $(SRC_JDK_IMAGE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JDK_IMAGE_SUBDIR)/
$(CP) -R -P $(SRC_JRE_IMAGE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JRE_IMAGE_SUBDIR)/
ifeq ($(OPENJDK_TARGET_OS),macosx)
$(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JDK_BUNDLE_SUBDIR)
$(MKDIR) -p $(BUILD_OUTPUT)/final-images/$(JRE_BUNDLE_SUBDIR)
$(CP) -R -P $(SRC_JDK_BUNDLE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JDK_BUNDLE_SUBDIR)/
$(CP) -R -P $(SRC_JRE_BUNDLE_DIR)/* $(BUILD_OUTPUT)/final-images/$(JRE_BUNDLE_SUBDIR)/
endif
@$(call TargetExit)
# Keep track of phony targets
PHONY_LIST += jprt_build_product jprt_build_fastdebug jprt_build_debug \
jprt_build_generic bundles jprt_bundle \
final-images final-images-only
###########################################################################
# Phony targets
.PHONY: $(PHONY_LIST)
# Force target
FRC:

View File

@@ -58,16 +58,28 @@ $(eval $(call ResetAllTimers))
# Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line,
# hence this workaround.
ifeq ($(JOBS),)
JOBS=$(NUM_CORES)
endif
MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS)
### Main targets
all: jdk
default: jdk
@$(call CheckIfMakeAtEnd)
start-make:
all: images docs
@$(call CheckIfMakeAtEnd)
ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_BITS),solaris-64)
all: overlay-images
endif
# Setup a rule for SPEC file that fails if executed. This check makes sure the configuration
# is up to date after changes to configure
$(SPEC): $(wildcard $(SRC_ROOT)/common/autoconf/*)
@$(ECHO) ERROR: $(SPEC) is not up to date
@$(ECHO) Please rerun configure!
@if test "x$(IGNORE_OLD_CONFIG)" != "xtrue"; then exit 1; fi
start-make: $(SPEC)
@$(call AtMakeStart)
langtools: langtools-only
@@ -114,7 +126,9 @@ demos-only: start-make
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk demos)
@$(call TargetExit)
images: source-tips demos images-only
# Note: This double-colon rule is intentional, to support
# custom make file integration.
images:: source-tips demos images-only
images-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk images)
@@ -126,12 +140,17 @@ overlay-images-only: start-make
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk overlay-images)
@$(call TargetExit)
bundles: images bundles-only
bundles-only: start-make
profiles: profiles-oscheck source-tips jdk hotspot profiles-only
profiles-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk bundles)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk profiles)
@$(call TargetExit)
profiles-oscheck:
ifneq ($(OPENJDK_TARGET_OS), linux)
@echo "Error: The Java SE 8 Compact Profiles are only implemented for Linux at this time" && exit 1
endif
install: images install-only
install-only: start-make
@$(call TargetEnter)
@@ -144,6 +163,12 @@ docs-only: start-make
@($(CD) $(SRC_ROOT)/common/makefiles/javadoc && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs)
@$(call TargetExit)
sign-jars: jdk sign-jars-only
sign-jars-only: start-make
@$(call TargetEnter)
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJdk.gmk sign-jars)
@$(call TargetExit)
bootcycle-images:
@$(ECHO) Boot cycle build step 1: Building the JDK image normally
@($(CD) $(SRC_ROOT)/common/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) SPEC=$(SPEC) images)
@@ -152,7 +177,7 @@ bootcycle-images:
test: start-make
@$(call TargetEnter)
@($(CD) $(SRC_ROOT)/test && $(BUILD_LOG_WRAPPER) $(MAKE) MAKEFLAGS= -j1 PRODUCT_HOME=$(OUTPUT_ROOT)/jdk JPRT_JAVA_HOME=$(OUTPUT_ROOT)/jdk ALT_OUTPUTDIR=$(OUTPUT_ROOT) $(TEST)) || true
@($(CD) $(SRC_ROOT)/test && $(BUILD_LOG_WRAPPER) $(MAKE) -j1 -k MAKEFLAGS= PRODUCT_HOME=$(OUTPUT_ROOT)/jdk JPRT_JAVA_HOME=$(OUTPUT_ROOT)/jdk ALT_OUTPUTDIR=$(OUTPUT_ROOT) $(TEST)) || true
@$(call TargetExit)
# Stores the tips for each repository. This file is be used when constructing the jdk image and can be
@@ -165,7 +190,7 @@ $(OUTPUT_ROOT)/source_tips: FRC
# Remove everything, except the output from configure.
clean: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-images clean-overlay-images clean-bootcycle-build
clean: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-images clean-overlay-images clean-bootcycle-build clean-docs
@($(CD) $(OUTPUT_ROOT) && $(RM) -r tmp source_tips build.log* build-trace*.log*)
@$(ECHO) Cleaned all build artifacts.
@@ -201,10 +226,14 @@ clean-overlay-images:
$(call CleanComponent,overlay-images)
clean-bootcycle-build:
$(call CleanComponent,bootcycle-build)
clean-docs:
$(call CleanComponent,docs)
$(call CleanComponent,docstemp)
.PHONY: langtools corba jaxp jaxws hotspot jdk images overlay-images install
.PHONY: langtools-only corba-only jaxp-only jaxws-only hotspot-only jdk-only images-only overlay-images-only install-only
.PHONY: all test clean dist-clean bootcycle-images start-make
.PHONY: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-images clean-overlay-images clean-bootcycle-build
.PHONY: profiles profiles-only profiles-oscheck
FRC: # Force target

View File

@@ -391,4 +391,46 @@ define install-file
endef
endif
# Convenience functions for working around make's limitations with $(filter ).
containing = $(foreach v,$2,$(if $(findstring $1,$v),$v))
not-containing = $(foreach v,$2,$(if $(findstring $1,$v),,$v))
################################################################################
# In Cygwin, finds are very costly, both because of expensive forks and because
# of bad file system caching. Find is used extensively in $(shell) commands to
# find source files. This makes rerunning make with no or few changes rather
# expensive. To speed this up, these two macros are used to cache the results
# of simple find commands for reuse.
#
# Runs a find and stores both the directories where it was run and the results.
# This macro can be called multiple times to add to the cache. Only finds files
# with no filters.
#
# Needs to be called with $(eval )
#
# Param 1 - Dir to find in
ifeq ($(OPENJDK_BUILD_OS),windows)
define FillCacheFind
FIND_CACHE_DIR += $1
FIND_CACHE := $$(sort $$(FIND_CACHE) $$(shell $(FIND) $1 -type f -o -type l))
endef
else
define FillCacheFind
endef
endif
# Mimics find by looking in the cache if all of the directories have been cached.
# Otherwise reverts to shell find. This is safe to call on all platforms, even if
# cache is deactivated.
#
# The extra - is needed when FIND_CACHE_DIR is empty but should be harmless.
# Param 1 - Dirs to find in
define CacheFind
$(if $(filter-out $(addsuffix %,- $(FIND_CACHE_DIR)),$1),\
$(shell $(FIND) $1 -type f -o -type l),\
$(filter $(addsuffix %,$1),$(FIND_CACHE)))
endef
################################################################################
endif # _MAKEBASE_GMK

View File

@@ -50,7 +50,7 @@ BUILDTIMESDIR=$(OUTPUT_ROOT)/tmp/buildtimes
# Global targets are possible to run either with or without a SPEC. The prototypical
# global target is "help".
global_targets=help configure
global_targets=help jprt% bridgeBuild
##############################
# Functions
@@ -112,7 +112,7 @@ endef
# Do not indent this function, this will add whitespace at the start which the caller won't handle
define GetRealTarget
$(strip $(if $(MAKECMDGOALS),$(MAKECMDGOALS),all))
$(strip $(if $(MAKECMDGOALS),$(MAKECMDGOALS),default))
endef
# Do not indent this function, this will add whitespace at the start which the caller won't handle
@@ -126,10 +126,7 @@ define CheckIfMakeAtEnd
# Check if the current target is the last goal
$(if $(filter $@,$(call LastGoal)),$(call AtMakeEnd))
# If the target is 'foo-only', check if our goal was stated as 'foo'
$(if $(filter $(patsubst %-only,%,$@),$(call LastGoal)),$(call AtMakeEnd))
# If no goal is given, 'all' is default, but the last target executed for all is 'jdk-only'. Check for that, too.
# At most one of the tests can be true.
$(if $(subst all,,$(call LastGoal)),,$(if $(filter $@,jdk-only),$(call AtMakeEnd)))
$(if $(filter $@,$(call LastGoal)-only),$(call AtMakeEnd))
endef
# Hook to be called when starting to execute a top-level target
@@ -142,7 +139,7 @@ endef
define TargetExit
$(call RecordEndTime,$(patsubst %-only,%,$@))
$(BUILD_LOG_WRAPPER) $(PRINTF) "## Finished $(patsubst %-only,%,$@) (build time %s)\n\n" \
"`$(CAT) $(BUILDTIMESDIR)/build_time_diff_$(patsubst %-only,%,$@) | $(CUT) -f 1 -d " "`"
"`$(CAT) $(BUILDTIMESDIR)/build_time_diff_$(patsubst %-only,%,$@) | $(CUT) -f 1 -d ' '`"
$(call CheckIfMakeAtEnd)
endef

View File

@@ -23,109 +23,4 @@
# questions.
#
# This must be the first rule
all:
# Inclusion of this pseudo-target will cause make to execute this file
# serially, regardless of -j. Recursively called makefiles will not be
# affected, however. This is required for correct dependency management.
.NOTPARALLEL:
# The shell code below will be executed on /usr/ccs/bin/make on Solaris, but not in GNU make.
# /usr/ccs/bin/make lacks basically every other flow control mechanism.
TEST_FOR_NON_GNUMAKE:sh=echo You are not using GNU make/gmake, this is a requirement. Check your path. 1>&2 && exit 1
# Assume we have GNU make, but check version.
ifeq (,$(findstring 3.81,$(MAKE_VERSION)))
ifeq (,$(findstring 3.82,$(MAKE_VERSION)))
$(error This version of GNU Make is too low ($(MAKE_VERSION)). Check your path, or upgrade to 3.81 or newer.)
endif
endif
# Locate this Makefile
ifeq ($(filter /%,$(lastword $(MAKEFILE_LIST))),)
makefile_path:=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
else
makefile_path:=$(lastword $(MAKEFILE_LIST))
endif
root_dir:=$(patsubst %/common/makefiles/Makefile,%,$(makefile_path))
# ... and then we can include our helper functions
include $(dir $(makefile_path))/MakeHelpers.gmk
$(eval $(call ParseLogLevel))
$(eval $(call ParseConfAndSpec))
# Now determine if we have zero, one or several configurations to build.
ifeq ($(SPEC),)
# Since we got past ParseConfAndSpec, we must be building a global target. Do nothing.
else
ifeq ($(words $(SPEC)),1)
# We are building a single configuration. This is the normal case. Execute the Main.gmk file.
include $(dir $(makefile_path))/Main.gmk
else
# We are building multiple configurations.
# First, find out the valid targets
# Run the makefile with an arbitraty SPEC using -p -q (quiet dry-run and dump rules) to find
# available PHONY targets. Use this list as valid targets to pass on to the repeated calls.
all_phony_targets=$(filter-out $(global_targets), $(strip $(shell \
$(MAKE) -p -q -f $(makefile_path) SPEC=$(firstword $(SPEC)) | \
grep ^.PHONY: | head -n 1 | cut -d " " -f 2-)))
$(all_phony_targets):
@$(foreach spec,$(SPEC),($(MAKE) -f $(makefile_path) SPEC=$(spec) $(VERBOSE) VERBOSE=$(VERBOSE) $@) &&) true
endif
endif
# Here are "global" targets, i.e. targets that can be executed without specifying a single configuration.
# If you addd more global targets, please update the variable global_targets in MakeHelpers.
help:
$(info )
$(info OpenJDK Makefile help)
$(info =====================)
$(info )
$(info Common make targets)
$(info . make [all] # Compile all code but do not create images)
$(info . make images # Create complete j2sdk and j2re images)
$(info . make overlay-images # Create limited images for sparc 64 bit platforms)
$(info . make bootcycle-images # Build images twice, second time with newly build JDK)
$(info . make install # Install the generated images locally)
$(info . make clean # Remove all files generated by make, but not those)
$(info . # generated by configure)
$(info . make dist-clean # Remove all files, including configuration)
$(info . make help # Give some help on using make)
$(info . make test # Run tests, default is all tests (see TEST below))
$(info )
$(info Targets for specific components)
$(info (Component is any of langtools, corba, jaxp, jaxws, hotspot, jdk, images or overlay-images))
$(info . make <component> # Build <component> and everything it depends on. )
$(info . make <component>-only # Build <component> only, without dependencies. This)
$(info . # is faster but can result in incorrect build results!)
$(info . make clean-<component> # Remove files generated by make for <component>)
$(info )
$(info Useful make variables)
$(info . make CONF= # Build all configurations (note, assignment is empty))
$(info . make CONF=<substring> # Build the configuration(s) with a name matching)
$(info . # <substring>)
$(info )
$(info . make LOG=<loglevel> # Change the log level from warn to <loglevel>)
$(info . # Available log levels are:)
$(info . # 'warn' (default), 'info', 'debug' and 'trace')
$(info . # To see executed command lines, use LOG=debug)
$(info )
$(info . make JOBS=<n> # Run <n> parallel make jobs)
$(info . # Note that -jN does not work as expected!)
$(info )
$(info . make test TEST=<test> # Only run the given test or tests, e.g.)
$(info . # make test TEST="jdk_lang jdk_net")
$(info )
configure:
@$(SHELL) $(root_dir)/configure $(CONFIGURE_ARGS)
@echo ====================================================
@echo "Note: This is a non-recommended way of running configure."
@echo "Instead, run 'sh configure' in the top-level directory"
.PHONY: help configure
include ../../NewMakefile.gmk

View File

@@ -236,7 +236,7 @@ define SetupNativeCompilation
$$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
# Find all files in the source trees. Sort to remove duplicates.
$1_ALL_SRCS := $$(sort $$(shell $(FIND) $$($1_SRC) -type f))
$1_ALL_SRCS := $$(sort $$(call CacheFind,$$($1_SRC)))
# Extract the C/C++ files.
$1_EXCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_EXCLUDE_FILES)))
$1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
@@ -302,7 +302,7 @@ define SetupNativeCompilation
endif
ifneq (,$$($1_DEBUG_SYMBOLS))
ifeq ($(ENABLE_DEBUG_SYMBOLS), yes)
ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
# Programs don't get the debug symbols added in the old build. It's not clear if
# this is intentional.
ifeq ($$($1_PROGRAM),)
@@ -394,7 +394,7 @@ define SetupNativeCompilation
endif
ifneq (,$$($1_DEBUG_SYMBOLS))
ifeq ($(ENABLE_DEBUG_SYMBOLS), yes)
ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
$1_EXTRA_LDFLAGS+="-pdb:$$($1_OBJECT_DIR)/$$($1_LIBRARY).pdb" \
"-map:$$($1_OBJECT_DIR)/$$($1_LIBRARY).map"
@@ -429,7 +429,7 @@ define SetupNativeCompilation
endif # Touch to not retrigger rule on rebuild
$(TOUCH) $$@
ifeq ($(ZIP_DEBUGINFO_FILES), 1)
ifeq ($(ZIP_DEBUGINFO_FILES), true)
$1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).diz
ifeq ($(OPENJDK_TARGET_OS), windows)
@@ -472,7 +472,7 @@ define SetupNativeCompilation
ifneq (,$$($1_PROGRAM))
# A executable binary has been specified, setup the target for it.
ifneq (,$$($1_DEBUG_SYMBOLS))
ifeq ($(ENABLE_DEBUG_SYMBOLS), yes)
ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
$1_EXTRA_LDFLAGS+="-pdb:$$($1_OBJECT_DIR)/$$($1_PROGRAM).pdb" \
"-map:$$($1_OBJECT_DIR)/$$($1_PROGRAM).map"
@@ -507,7 +507,7 @@ define SetupNativeCompilation
endif
$(TOUCH) $$@
ifeq ($(ZIP_DEBUGINFO_FILES), 1)
ifeq ($(ZIP_DEBUGINFO_FILES), true)
$1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).diz
ifeq ($(OPENJDK_TARGET_OS), windows)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2012, 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

@@ -127,10 +127,16 @@ CORE_PKGS = \
java.sql \
java.text \
java.text.spi \
java.time \
java.time.chrono \
java.time.format \
java.time.temporal \
java.time.zone \
java.util \
java.util.concurrent \
java.util.concurrent.atomic \
java.util.concurrent.locks \
java.util.function \
java.util.jar \
java.util.logging \
java.util.prefs \

View File

@@ -1,4 +1,4 @@
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,6 @@ include MakeBase.gmk
# Definitions for $(DOCSDIR), $(MKDIR), $(BINDIR), etc.
#
CLASSPATH_SEPARATOR = :
DOCSDIR=$(OUTPUT_ROOT)/docs
TEMPDIR=$(OUTPUT_ROOT)/docstemp
@@ -48,19 +46,11 @@ HOTSPOT_DOCS_IMPORT_PATH=$(HOTSPOT_OUTPUTDIR)/docs
BUILD_NUMBER=$(JDK_BUILD_NUMBER)
BOOT_JAVA_CMD=$(JAVA)
# Langtools
JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
JAVADOC_CMD = $(BOOT_JAVA_CMD) \
JAVADOC_CMD = $(JAVA) \
-Xmx1024m \
-Djava.awt.headless=true \
"-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
-jar $(JAVADOC_JAR)
JAVADOC_CMD = javadoc
$(NEW_JAVADOC) \
-bootclasspath $(JDK_OUTPUTDIR)/classes
# Copyright year for beginning of Java and some of the apis
# (Needed when creating the javadocs)
@@ -113,7 +103,8 @@ DOCSDIR_URL = {@docroot}/$(GET2DOCSDIR)
# Url to copyright html file
COPYRIGHT_URL-7 = $(DOCSDIR_URL)/legal/cpyr.html
COPYRIGHT_URL-8 = $(DOCSDIR_URL)/legal/cpyr.html
# This isn't added in old build yet.
#COPYRIGHT_URL-8 = $(DOCSDIR_URL)/legal/cpyr.html
COPYRIGHT_URL = $(COPYRIGHT_URL-$(JDK_MINOR_VERSION))
# Url to bug filing site
@@ -125,7 +116,8 @@ BUG_SUBMIT_LINE = <a href="$(BUG_SUBMIT_URL)">Submit a bug or feature</a>
# Url to devdocs page
# Was: http://java.sun.com/javase/6/webnotes/devdocs-vs-specs.html
DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html
DEV_DOCS_URL-8 = http://download.oracle.com/javase/7/docs/index.html
# This isn't added in old build yet.
#DEV_DOCS_URL-8 = http://download.oracle.com/javase/7/docs/index.html
DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION))
DOCS_BASE_URL = http://download.oracle.com/javase/7/docs
@@ -140,11 +132,12 @@ $(FULL_COMPANY_NAME) in the US and other countries.
# List of all possible directories for javadoc to look for sources
# NOTE: Quotes are required around sourcepath argument only on Windows.
# Otherwise, you get "No packages or classes specified." due
# to $(CLASSPATH_SEPARATOR) being interpreted as an end of
# to $(PATH_SEP) being interpreted as an end of
# command (newline or shell ; character)
ALL_SOURCE_DIRS = $(JDK_IMPSRC) \
ALL_SOURCE_DIRS = $(JDK_SHARE_CLASSES) \
$(JDK_IMPSRC) \
$(JDK_GENSRC) \
$(JDK_SHARE_CLASSES) \
$(JDK_OUTPUTDIR)/gendocsrc_rmic \
$(JDK_TOPDIR)/src/solaris/classes \
$(JDK_TOPDIR)/src/windows/classes \
$(JDK_SHARE_SRC)/doc/stub
@@ -156,7 +149,7 @@ ALL_EXISTING_SOURCE_DIRS := $(wildcard $(ALL_SOURCE_DIRS))
EMPTY:=
SPACE:= $(EMPTY) $(EMPTY)
RELEASEDOCS_SOURCEPATH = \
$(subst $(SPACE),$(CLASSPATH_SEPARATOR),$(strip $(ALL_SOURCE_DIRS)))
$(subst $(SPACE),$(PATH_SEP),$(strip $(ALL_SOURCE_DIRS)))
define prep-target
$(MKDIR) -p $(@D)
@@ -273,6 +266,8 @@ COMMON_JAVADOCFLAGS = \
-quiet \
-use \
-keywords \
-Xdoclint:none \
-Xprofilespath $(JDK_TOPDIR)/makefiles/profile-rtjar-includes.txt \
$(ADDITIONAL_JAVADOCFLAGS)
ifdef OPENJDK
@@ -440,7 +435,7 @@ docletapidocs: $(DOCLETAPI_INDEX_FILE)
$(DOCLETAPI_INDEX_FILE): GET2DOCSDIR=$(DOCLETAPI2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(DOCLETAPI_INDEX_FILE): $(DOCLETAPI_OPTIONS_FILE) $(DOCLETAPI_PACKAGES_FILE)
$(DOCLETAPI_INDEX_FILE): $(DOCLETAPI_OPTIONS_FILE) $(DOCLETAPI_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(DOCLETAPI_OPTIONS_FILE),$(DOCLETAPI_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -481,7 +476,7 @@ TAGLETAPI_BOTTOM := $(call CommonTrademarkBottom,$(TAGLETAPI_FIRST_COPYRIGHT_Y
TAGLETAPI_TEMPDIR = $(DOCSTMPDIR)/taglets_temp
# The index.html, options, and packages files
TAGLETAPI_INDEX_FILE = $(TAGLETAPI_DOCDIR)/com/sun/tools/doclets/Taglet.html
TAGLETAPI_INDEX_FILE = $(TAGLETAPI_DOCDIR)/index.html
TAGLETAPI_OPTIONS_FILE = $(DOCSTMPDIR)/tagletapi.options
TAGLETAPI_PACKAGES_FILE = $(DOCSTMPDIR)/tagletapi.packages
@@ -491,7 +486,7 @@ tagletapidocs: $(TAGLETAPI_INDEX_FILE)
$(TAGLETAPI_INDEX_FILE): GET2DOCSDIR=$(TAGLETAPI2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(TAGLETAPI_INDEX_FILE): $(TAGLETAPI_OPTIONS_FILE) $(TAGLETAPI_PACKAGES_FILE)
$(TAGLETAPI_INDEX_FILE): $(TAGLETAPI_OPTIONS_FILE) $(TAGLETAPI_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(RM) -r $(TAGLETAPI_TEMPDIR)
$(MKDIR) -p $(TAGLETAPI_TEMPDIR)
@@ -517,9 +512,7 @@ $(TAGLETAPI_OPTIONS_FILE):
# Create a file with the package names in it
$(TAGLETAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(TAGLETAPI_PKGS))
$(prep-target)
$(call PackageFilter,$(TAGLETAPI_PKGS))
$(GREP) "$(TAGLETAPI_FILE)" $@ > $@.tmp
$(MV) $@.tmp $@
@($(ECHO) "$(JDK_IMPSRC)/$(TAGLETAPI_FILE)" ) > $@
#############################################################
#
@@ -549,7 +542,7 @@ domapidocs: $(DOMAPI_INDEX_FILE)
$(DOMAPI_INDEX_FILE): GET2DOCSDIR=$(DOMAPI2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(DOMAPI_INDEX_FILE): $(DOMAPI_OPTIONS_FILE) $(DOMAPI_PACKAGES_FILE)
$(DOMAPI_INDEX_FILE): $(DOMAPI_OPTIONS_FILE) $(DOMAPI_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(DOMAPI_OPTIONS_FILE),$(DOMAPI_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -611,7 +604,7 @@ jdidocs: $(JDI_INDEX_FILE)
$(JDI_INDEX_FILE): GET2DOCSDIR=$(JDI2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(JDI_INDEX_FILE): $(JDI_OPTIONS_FILE) $(JDI_PACKAGES_FILE)
$(JDI_INDEX_FILE): $(JDI_OPTIONS_FILE) $(JDI_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(JDI_OPTIONS_FILE),$(JDI_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -698,7 +691,7 @@ jaasdocs: $(JAAS_INDEX_FILE)
$(JAAS_INDEX_FILE): GET2DOCSDIR=$(JAAS2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(JAAS_INDEX_FILE): $(JAAS_OPTIONS_FILE) $(JAAS_PACKAGES_FILE)
$(JAAS_INDEX_FILE): $(JAAS_OPTIONS_FILE) $(JAAS_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(JAAS_OPTIONS_FILE),$(JAAS_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -750,7 +743,7 @@ jgssdocs: $(JGSS_INDEX_FILE)
$(JGSS_INDEX_FILE): GET2DOCSDIR=$(JGSS2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(JGSS_INDEX_FILE): $(JGSS_OPTIONS_FILE) $(JGSS_PACKAGES_FILE)
$(JGSS_INDEX_FILE): $(JGSS_OPTIONS_FILE) $(JGSS_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(JGSS_OPTIONS_FILE),$(JGSS_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -802,7 +795,7 @@ smartcardiodocs: $(SMARTCARDIO_INDEX_FILE)
$(SMARTCARDIO_INDEX_FILE): GET2DOCSDIR=$(SMARTCARDIO2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(SMARTCARDIO_INDEX_FILE): $(SMARTCARDIO_OPTIONS_FILE) $(SMARTCARDIO_PACKAGES_FILE)
$(SMARTCARDIO_INDEX_FILE): $(SMARTCARDIO_OPTIONS_FILE) $(SMARTCARDIO_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(SMARTCARDIO_OPTIONS_FILE),$(SMARTCARDIO_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -852,7 +845,7 @@ httpserverdocs: $(HTTPSERVER_INDEX_HTML)
$(HTTPSERVER_INDEX_HTML): GET2DOCSDIR=$(HTTPSERVER2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(HTTPSERVER_INDEX_HTML): $(HTTPSERVER_OPTIONS_FILE) $(HTTPSERVER_PACKAGES_FILE)
$(HTTPSERVER_INDEX_HTML): $(HTTPSERVER_OPTIONS_FILE) $(HTTPSERVER_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(HTTPSERVER_OPTIONS_FILE),$(HTTPSERVER_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -887,7 +880,7 @@ ALL_OTHER_TARGETS += mgmtdocs
MGMT_DOCDIR := $(JRE_API_DOCSDIR)/management/extension
MGMT2COREAPI := ../../$(JDKJRE2COREAPI)
JVM_MIB_NAME := JVM-MANAGEMENT-MIB.mib
JVM_MIB_SRC := $(CLOSED_SRC)/share/classes/sun/management/snmp/$(JVM_MIB_NAME)
JVM_MIB_SRC := $(JDK_TOPDIR)/src/closed/share/classes/sun/management/snmp/$(JVM_MIB_NAME)
MGMT_DOCTITLE := Monitoring and Management Interface for the Java$(TRADEMARK) Platform
MGMT_WINDOWTITLE := Monitoring and Management Interface for the Java Platform
MGMT_HEADER := <strong>Monitoring and Management Interface for the Java Platform</strong>
@@ -906,7 +899,7 @@ mgmtdocs: $(MGMT_INDEX_FILE)
$(MGMT_INDEX_FILE): GET2DOCSDIR=$(MGMT2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(MGMT_INDEX_FILE): $(MGMT_OPTIONS_FILE) $(MGMT_PACKAGES_FILE)
$(MGMT_INDEX_FILE): $(MGMT_OPTIONS_FILE) $(MGMT_PACKAGES_FILE) coredocs
$(prep-javadoc)
@if [ -f $(JVM_MIB_SRC) ] ; then \
$(ECHO) "$(CP) $(JVM_MIB_SRC) $(@D)/.."; \
@@ -963,7 +956,7 @@ attachdocs: $(ATTACH_INDEX_HTML)
$(ATTACH_INDEX_HTML): GET2DOCSDIR=$(ATTACH2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(ATTACH_INDEX_HTML): $(ATTACH_OPTIONS_FILE) $(ATTACH_PACKAGES_FILE)
$(ATTACH_INDEX_HTML): $(ATTACH_OPTIONS_FILE) $(ATTACH_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(ATTACH_OPTIONS_FILE),$(ATTACH_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -1013,7 +1006,7 @@ jconsoledocs: $(JCONSOLE_INDEX_HTML)
$(JCONSOLE_INDEX_HTML): GET2DOCSDIR=$(JCONSOLE2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(JCONSOLE_INDEX_HTML): $(JCONSOLE_OPTIONS_FILE) $(JCONSOLE_PACKAGES_FILE)
$(JCONSOLE_INDEX_HTML): $(JCONSOLE_OPTIONS_FILE) $(JCONSOLE_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(JCONSOLE_OPTIONS_FILE),$(JCONSOLE_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -1065,7 +1058,7 @@ treeapidocs: $(TREEAPI_INDEX_HTML)
$(TREEAPI_INDEX_HTML): GET2DOCSDIR=$(TREEAPI2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(TREEAPI_INDEX_HTML): $(TREEAPI_OPTIONS_FILE) $(TREEAPI_PACKAGES_FILE)
$(TREEAPI_INDEX_HTML): $(TREEAPI_OPTIONS_FILE) $(TREEAPI_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(TREEAPI_OPTIONS_FILE),$(TREEAPI_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \
@@ -1116,7 +1109,7 @@ sctpdocs: $(SCTPAPI_INDEX_HTML)
$(SCTPAPI_INDEX_HTML): GET2DOCSDIR=$(SCTPAPI2COREAPI)/..
# Run javadoc if the index file is out of date or missing
$(SCTPAPI_INDEX_HTML): $(SCTPAPI_OPTIONS_FILE) $(SCTPAPI_PACKAGES_FILE)
$(SCTPAPI_INDEX_HTML): $(SCTPAPI_OPTIONS_FILE) $(SCTPAPI_PACKAGES_FILE) coredocs
$(prep-javadoc)
$(call JavadocSummary,$(SCTPAPI_OPTIONS_FILE),$(SCTPAPI_PACKAGES_FILE))
$(JAVADOC_CMD) -d $(@D) \

View File

@@ -78,7 +78,8 @@ ATTACH_PKGS = com.sun.tools.attach \
JCONSOLE_PKGS = com.sun.tools.jconsole
TREEAPI_PKGS = com.sun.source.tree \
TREEAPI_PKGS = com.sun.source.doctree \
com.sun.source.tree \
com.sun.source.util
SMARTCARDIO_PKGS = javax.smartcardio

View File

@@ -29,6 +29,29 @@
#include <string.h>
#include <malloc.h>
void report_error()
{
LPVOID lpMsgBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL);
fprintf(stderr,
"Could not start process! Failed with error %d: %s\n",
dw, lpMsgBuf);
LocalFree(lpMsgBuf);
}
/*
* Test if pos points to /cygdrive/_/ where _ can
* be any character.
@@ -256,7 +279,7 @@ int main(int argc, char **argv)
DWORD exitCode;
if (argc<3 || argv[1][0] != '-' || (argv[1][1] != 'c' && argv[1][1] != 'm')) {
fprintf(stderr, "Usage: fixpath -c|m<path@path@...> /cygdrive/c/WINDOWS/notepad.exe /cygdrive/c/x/test.txt");
fprintf(stderr, "Usage: fixpath -c|m<path@path@...> /cygdrive/c/WINDOWS/notepad.exe /cygdrive/c/x/test.txt\n");
exit(0);
}
@@ -308,11 +331,10 @@ int main(int argc, char **argv)
0,
&si,
&pi);
if(!rc)
{
//Could not start process;
fprintf(stderr, "Could not start process!\n");
exit(-1);
if(!rc) {
// Could not start process for some reason. Try to report why:
report_error();
exit(rc);
}
WaitForSingleObject(pi.hProcess,INFINITE);

View File

@@ -186,3 +186,18 @@ d54dc53e223ed9ce7d5f4d2cd02ad9d5def3c2db jdk8-b59
08afb9c6f44f11c3595b01fd0985db64b29834dd jdk8-b62
6ccbf67b68bfed1ab9c44ab8748a5bdc7df33506 jdk8-b63
54d599a5b4aad83c235d590652fc81f41c2824fb jdk8-b64
5132f7900a8f0c30c3ca7f7a32f9433f4fee7745 jdk8-b65
65771ad1ca557ca26e4979d4dc633cf685435cb8 jdk8-b66
394515ad2a55d4d54df990b36065505d3e7a3cbb jdk8-b67
82000531feaa7baef76b6406099e5cd88943d635 jdk8-b68
22ddcac208a8dea894a16887d04f3ca4d3c5d267 jdk8-b69
603cceb495c8133d47b26a7502d51c7d8a67d76b jdk8-b70
8171d23e914d758836527b80b06debcfdb718f2d jdk8-b71
cb40427f47145b01b7e53c3e02b38ff7625efbda jdk8-b72
191afde59e7be0e1a1d76d06f2a32ff17444f0ec jdk8-b73
2132845cf5f717ff5c240a2431c0c0e03e66e3a5 jdk8-b74
d4e68ce17795601017ac2f952baad7272942c36e jdk8-b75
58be6ca3c0603882a1ec478724e337aac85e0da0 jdk8-b76
35684a40c5845782324dbcc9ac8969528020ff61 jdk8-b77
27d6368ae8ba570c31c2f0e696d39c99fa2f4538 jdk8-b78
e41fb1aa0329767b2737303c994e38bede1baa07 jdk8-b79

View File

@@ -35,8 +35,6 @@ include MakeBase.gmk
include JavaCompilation.gmk
include IdlCompilation.gmk
JAVAC_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
-jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
# The Corba sources are old and generates a LOT of warnings.
# Disable these using Xlint, until someone cares to fix them.
DISABLE_CORBA_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,-cast,-rawtypes,-static,-dep-ann
@@ -46,7 +44,7 @@ DISABLE_CORBA_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,
# Thus we force the target bytecode to the boot jdk bytecode.
$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE,\
JVM:=$(JAVA),\
JAVAC:=$(JAVAC_JARS),\
JAVAC:=$(NEW_JAVAC),\
FLAGS:=$(BOOT_JDK_SOURCETARGET) -bootclasspath $(BOOT_RTJAR) $(DISABLE_CORBA_WARNINGS),\
SERVER_DIR:=$(SJAVAC_SERVER_DIR),\
SERVER_JVM:=$(SJAVAC_SERVER_JAVA)))
@@ -56,7 +54,7 @@ $(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE,\
# cannot necessarily be run with the boot jdk.
$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE,\
JVM:=$(JAVA),\
JAVAC:=$(JAVAC_JARS),\
JAVAC:=$(NEW_JAVAC),\
FLAGS:=-cp $(BOOT_TOOLSJAR) -XDignore.symbol.file=true $(DISABLE_CORBA_WARNINGS),\
SERVER_DIR:=$(SJAVAC_SERVER_DIR),\
SERVER_JVM:=$(SJAVAC_SERVER_JAVA)))

View File

@@ -26,8 +26,8 @@
#
# Get clones of all nested repositories
sh ./make/scripts/hgforest.sh clone $*
sh ./common/bin/hgforest.sh clone "$@" || exit 1
# Update all existing repositories to the latest sources
sh ./make/scripts/hgforest.sh pull -u
sh ./common/bin/hgforest.sh pull -u

View File

@@ -293,3 +293,30 @@ acabb5c282f59be7e3238920b2ea06b684ab68f7 jdk8-b63
8cb93eadfb6dcab88d91b8e2cd3e0e07d0ac4048 hs25-b08
5920f72e799c8133d1066c4a62fa1fafcb729966 jdk8-b64
b4ee7b773144a88af8b6b92e4384dea82cb948d8 hs25-b09
0f7290a03b24bd562583fa325d3566c21c51fb94 jdk8-b65
cfc5309f03b7bd6c1567618b63cf1fc74c0f2a8f hs25-b10
01684f7fee1b86222be69bc23841ec2a4416696c jdk8-b66
b61d9c88b759d1594b8af1655598e8fa00393672 hs25-b11
25bdce771bb3a7ae9825261a284d292cda700122 jdk8-b67
a35a72dd2e1255239d31f796f9f693e49b36bc9f hs25-b12
121aa71316af6cd877bf455e775fa3fdbcdd4b65 jdk8-b68
b6c9c0109a608eedbb6b868d260952990e3c91fe hs25-b13
cb8a4e04bc8c104de8a2f67463c7e31232bf8d68 jdk8-b69
990bbd393c239d95310ccc38094e57923bbf1d4a hs25-b14
e94068d4ff52849c8aa0786a53a59b63d1312a39 jdk8-b70
0847210f85480bf3848dc90bc2ab23c0a4791b55 jdk8-b71
d5cb5830f570d1304ea4b196dde672a291b55f29 jdk8-b72
1e129851479e4f5df439109fca2c7be1f1613522 hs25-b15
11619f33cd683c2f1d6ef72f1c6ff3dacf5a9f1c jdk8-b73
70c89bd6b895a10d25ca70e08093c09ff2005fda hs25-b16
1a3e54283c54aaa8b3437813e8507fbdc966e5b6 jdk8-b74
b4391649e91ea8d37f66317a03d6d2573a93d10d hs25-b17
6778d0b1659323a506ca47600ca29a9d9f8b383d jdk8-b75
20b605466ccb1b3725eb25314d9e8782199630c5 jdk8-b76
412d722168bc23f8e6d98995202728678561417f hs25-b18
cdb46031e7184d37301288f5719121a63c7054b5 jdk8-b77
9f19f4a7d48a4ebe7f616b6068971ea5f8b075fa hs25-b19
d5e12e7d2f719144d84903d9151455661c47b476 jdk8-b78
555ec35a250783110aa070dbc8a8603f6cabe41f hs25-b20
6691814929b606fe0e7954fd6e485dd876505c83 jdk8-b79
df5396524152118535c36da5801d828b560d19a2 hs25-b21

View File

@@ -0,0 +1,41 @@
<html>
<head>
<title>
C2 Replay
</title>
</head>
<body>
<h1>C2 compiler replay</h1>
<p>
The C2 compiler replay is a function to repeat the compiling process from a crashed java process in compiled method<br>
This function only exists in debug version of VM
</p>
<h2>Usage</h2>
<pre>
First, use SA to attach to the core file, if suceeded, do
clhsdb>dumpreplaydata <address> | -a | <thread_id> [> replay.txt]
create file replay.txt, address is address of Method, or nmethod(CodeBlob)
clhsdb>buildreplayjars [all | boot | app]
create files:
all:
app.jar, boot.jar
boot:
boot.jar
app:
app.jar
exit SA now.
Second, use the obtained replay text file, replay.txt and jar files, app.jar and boot.jar, using debug version of java
java -Xbootclasspath/p:boot.jar -cp app.jar -XX:ReplayDataFile=<datafile> -XX:+ReplayCompiles ....
This will replay the compiling process.
With ReplayCompiles, the replay will recompile all the methods in app.jar, and in boot.jar to emulate the process in java app.
notes:
1) Most time, we don't need the boot.jar which is the classes loaded from JDK. It will be only modified when an agent(JVMDI) is running and modifies the classes.
2) If encounter error as "<flag>" not found, that means the SA is using a VMStructs which is different from the one with corefile. In this case, SA has a utility tool vmstructsdump which is located at agent/src/os/<os>/proc/<os_platform>
Use this tool to dump VM type library:
vmstructsdump libjvm.so > <type_name>.db
set env SA_TYPEDB=<type_name>.db (refer different shell for set envs)

View File

@@ -37,12 +37,19 @@ Each CLHSDB command can have zero or more arguments and optionally end with outp
Available commands:
assert true | false <font color="red">turn on/off asserts in SA code</font>
attach pid | exec core <font color="red">attach SA to a process or core</font>
buildreplayjars [all | boot | app] <font color="red">build jars for replay, boot.jar for bootclasses, app.jar for application classes</font>
class name <font color="red">find a Java class from debuggee and print oop</font>
classes <font color="red">print all loaded Java classes with Klass*</font>
detach <font color="red">detach SA from current target</font>
dis address [ length ] <font color="red">disassemble (sparc/x86) specified number of instructions from given address</font>
dissemble address <font color="red">disassemble nmethod</font>
dumpcfg -a | id <font color="red">Dump the PhaseCFG for every compiler thread that has one live</font>
dumpclass { address | name } [ directory ] <font color="red">dump .class file for given Klass* or class name</font>
dumpcodecache <font color="red">dump codecache contents</font>
dumpheap [ file ] <font color="red">dump heap in hprof binary format</font>
dumpideal -a | id <font color="red">dump ideal graph like debug flag -XX:+PrintIdeal</font>
dumpilt -a | id <font color="red">dump inline tree for C2 compilation</font>
dumpreplaydata <address> | -a | <thread_id> [>replay.txt] <font color="red">dump replay data into a file</font>
echo [ true | false ] <font color="red">turn on/off command echo mode</font>
examine [ address/count ] | [ address,address] <font color="red">show contents of memory from given address</font>
field [ type [ name fieldtype isStatic offset address ] ] <font color="red">print info about a field of HotSpot type</font>
@@ -51,29 +58,35 @@ Available commands:
help [ command ] <font color="red">print help message for all commands or just given command</font>
history <font color="red">show command history. usual !command-number syntax works.</font>
inspect expression <font color="red">inspect a given oop</font>
intConstant [ name [ value ] ] <font color="red">print out hotspot integer constant(s)</font>
jdis address <font color="red">show bytecode disassembly of a given Method*</font>
jhisto <font color="red">show Java heap histogram</font>
jseval script <font color="red">evaluate a given string as JavaScript code</font>
jsload file <font color="red">load and evaluate a JavaScript file</font>
jstack [-v] <font color="red">show Java stack trace of all Java threads. -v is verbose mode</font>
livenmethods <font color="red">show all live nmethods</font>
longConstant [ name [ value ] ] <font color="red">print out hotspot long constant(s)s</font>
mem address [ length ] <font color="red">show contents of memory -- also shows closest ELF/COFF symbol if found</font>
pmap <font color="red">show Solaris pmap-like output</font>
print expression <font color="red">print given Klass*, Method* or arbitrary address</font>
printas type expression <font color="red">print given address as given HotSpot type. eg. print JavaThread &lt;address&gt;</font>
printmdo -a | expression <font color="red">print method data oop</font>
printstatics [ type ] <font color="red">print static fields of given HotSpot type (or all types if none specified)</font>
pstack [-v] <font color="red">show mixed mode stack trace for all Java, non-Java threads. -v is verbose mode</font>
quit <font color="red">quit CLHSDB tool</font>
reattach <font color="red">detach and re-attach SA to current target</font>
revptrs <font color="red">find liveness of oops</font>
scanoops start end [ type ] <font color="red">scan a Oop from given start to end address</font>
search [ heap | codecache | threads ] value <font color="red">search a value in heap or codecache or threads</font>
source filename <font color="red">load and execute CLHSDB commands from given file</font>
symbol name <font color="red">show address of a given ELF/COFF symbol</font>
sysprops <font color="red">show all Java System properties</font>
thread id <font color="red">show thread of id</font>
threads <font color="red">show all Java threads</font>
tokenize ...
type [ type [ name super isOop isInteger isUnsigned size ] ] <font color="red">show info. on HotSpot type</font>
universe <font color="red">print gc universe</font>
vmstructsdump <font color="red">dump hotspot type library in text</font>
verbose true | false <font color="red">turn on/off verbose mode</font>
versioncheck [ true | false ] <font color="red">turn on/off debuggee VM version check</font>
whatis address <font color="red">print info about any arbitrary address</font>
@@ -114,5 +127,11 @@ hsdb&gt; jsload test.js
</code>
</pre>
<h3>C2 Compilation Replay</h3>
<p>
When a java process crashes in compiled method, usually a core file is saved.
The C2 replay function can reproduce the compiling process in the core.
<a href="c2replay.html">c2replay.html</a>
</body>
</html>

View File

@@ -220,6 +220,12 @@ These scripts are used to run SA remotely.
</tr>
</table>
<h3>C2 Compilation Replay</h3>
<p>
When a java process crashes in compiled method, usually a core file is saved.
The C2 replay function can reproduce the compiling process in the core.
<a href="c2replay.html">c2replay.html</a>
<h3>Debugging transported core dumps</h3>
<p>
When a core dump is moved from the machine where it was produced to a

View File

@@ -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 guards against adding broken .java files to the directory
@@ -42,8 +42,6 @@ PKGLIST = \
sun.jvm.hotspot \
sun.jvm.hotspot.asm \
sun.jvm.hotspot.asm.sparc \
sun.jvm.hotspot.bugspot \
sun.jvm.hotspot.bugspot.tree \
sun.jvm.hotspot.c1 \
sun.jvm.hotspot.ci \
sun.jvm.hotspot.code \
@@ -58,10 +56,8 @@ sun.jvm.hotspot.debugger.cdbg.basic \
sun.jvm.hotspot.debugger.cdbg.basic.amd64 \
sun.jvm.hotspot.debugger.cdbg.basic.x86 \
sun.jvm.hotspot.debugger.dummy \
sun.jvm.hotspot.debugger.ia64 \
sun.jvm.hotspot.debugger.linux \
sun.jvm.hotspot.debugger.linux.amd64 \
sun.jvm.hotspot.debugger.linux.ia64 \
sun.jvm.hotspot.debugger.linux.x86 \
sun.jvm.hotspot.debugger.posix \
sun.jvm.hotspot.debugger.posix.elf \
@@ -77,7 +73,6 @@ sun.jvm.hotspot.debugger.sparc \
sun.jvm.hotspot.debugger.win32.coff \
sun.jvm.hotspot.debugger.windbg \
sun.jvm.hotspot.debugger.windbg.amd64 \
sun.jvm.hotspot.debugger.windbg.ia64 \
sun.jvm.hotspot.debugger.windbg.x86 \
sun.jvm.hotspot.debugger.x86 \
sun.jvm.hotspot.gc_implementation \
@@ -87,7 +82,6 @@ sun.jvm.hotspot.gc_implementation.shared \
sun.jvm.hotspot.gc_interface \
sun.jvm.hotspot.interpreter \
sun.jvm.hotspot.jdi \
sun.jvm.hotspot.livejvm \
sun.jvm.hotspot.memory \
sun.jvm.hotspot.opto \
sun.jvm.hotspot.oops \
@@ -97,10 +91,8 @@ sun.jvm.hotspot.runtime.amd64 \
sun.jvm.hotspot.runtime.bsd \
sun.jvm.hotspot.runtime.bsd_amd64 \
sun.jvm.hotspot.runtime.bsd_x86 \
sun.jvm.hotspot.runtime.ia64 \
sun.jvm.hotspot.runtime.linux \
sun.jvm.hotspot.runtime.linux_amd64 \
sun.jvm.hotspot.runtime.linux_ia64 \
sun.jvm.hotspot.runtime.linux_sparc \
sun.jvm.hotspot.runtime.linux_x86 \
sun.jvm.hotspot.runtime.posix \
@@ -109,7 +101,6 @@ sun.jvm.hotspot.runtime.solaris_sparc \
sun.jvm.hotspot.runtime.solaris_x86 \
sun.jvm.hotspot.runtime.sparc \
sun.jvm.hotspot.runtime.win32_amd64 \
sun.jvm.hotspot.runtime.win32_ia64 \
sun.jvm.hotspot.runtime.win32_x86 \
sun.jvm.hotspot.runtime.x86 \
sun.jvm.hotspot.tools \
@@ -136,8 +127,6 @@ FILELIST = \
sun/jvm/hotspot/*.java \
sun/jvm/hotspot/asm/*.java \
sun/jvm/hotspot/asm/sparc/*.java \
sun/jvm/hotspot/bugspot/*.java \
sun/jvm/hotspot/bugspot/tree/*.java \
sun/jvm/hotspot/c1/*.java \
sun/jvm/hotspot/ci/*.java \
sun/jvm/hotspot/code/*.java \
@@ -152,7 +141,6 @@ sun/jvm/hotspot/debugger/cdbg/basic/*.java \
sun/jvm/hotspot/debugger/cdbg/basic/amd64/*.java \
sun/jvm/hotspot/debugger/cdbg/basic/x86/*.java \
sun/jvm/hotspot/debugger/dummy/*.java \
sun/jvm/hotspot/debugger/ia64/*.java \
sun/jvm/hotspot/debugger/linux/*.java \
sun/jvm/hotspot/debugger/linux/x86/*.java \
sun/jvm/hotspot/debugger/posix/*.java \
@@ -168,7 +156,6 @@ sun/jvm/hotspot/debugger/remote/x86/*.java \
sun/jvm/hotspot/debugger/sparc/*.java \
sun/jvm/hotspot/debugger/win32/coff/*.java \
sun/jvm/hotspot/debugger/windbg/*.java \
sun/jvm/hotspot/debugger/windbg/ia64/*.java \
sun/jvm/hotspot/debugger/windbg/x86/*.java \
sun/jvm/hotspot/debugger/x86/*.java \
sun/jvm/hotspot/gc_implementation/g1/*.java \
@@ -176,7 +163,6 @@ sun/jvm/hotspot/gc_implementation/parallelScavenge/*.java \
sun/jvm/hotspot/gc_implementation/shared/*.java \
sun/jvm/hotspot/interpreter/*.java \
sun/jvm/hotspot/jdi/*.java \
sun/jvm/hotspot/livejvm/*.java \
sun/jvm/hotspot/memory/*.java \
sun/jvm/hotspot/oops/*.java \
sun/jvm/hotspot/opto/*.java \
@@ -186,10 +172,8 @@ sun/jvm/hotspot/runtime/amd64/*.java \
sun/jvm/hotspot/runtime/bsd/*.java \
sun/jvm/hotspot/runtime/bsd_amd64/*.java \
sun/jvm/hotspot/runtime/bsd_x86/*.java \
sun/jvm/hotspot/runtime/ia64/*.java \
sun/jvm/hotspot/runtime/linux/*.java \
sun/jvm/hotspot/runtime/linux_amd64/*.java \
sun/jvm/hotspot/runtime/linux_ia64/*.java \
sun/jvm/hotspot/runtime/linux_sparc/*.java \
sun/jvm/hotspot/runtime/linux_x86/*.java \
sun/jvm/hotspot/runtime/posix/*.java \
@@ -198,7 +182,6 @@ sun/jvm/hotspot/runtime/solaris_sparc/*.java \
sun/jvm/hotspot/runtime/solaris_x86/*.java \
sun/jvm/hotspot/runtime/sparc/*.java \
sun/jvm/hotspot/runtime/win32_amd64/*.java \
sun/jvm/hotspot/runtime/win32_ia64/*.java \
sun/jvm/hotspot/runtime/win32_x86/*.java \
sun/jvm/hotspot/runtime/x86/*.java \
sun/jvm/hotspot/tools/*.java \
@@ -216,7 +199,7 @@ sun/jvm/hotspot/utilities/*.java \
sun/jvm/hotspot/utilities/memo/*.java \
sun/jvm/hotspot/utilities/soql/*.java \
com/sun/java/swing/action/*.java \
com/sun/java/swing/ui/*.java
com/sun/java/swing/ui/*.java
#END FILELIST
ifneq "x$(ALT_BOOTDIR)" "x"
@@ -242,7 +225,7 @@ BUILD_DIR = ../build
OUTPUT_DIR = $(BUILD_DIR)/classes
DOC_DIR = $(BUILD_DIR)/doc
# gnumake 3.78.1 does not accept the *s,
# gnumake 3.78.1 does not accept the *s,
# so use the shell to expand them
ALLFILES := $(patsubst %,$(SRC_DIR)/%,$(FILELIST))
ALLFILES := $(shell /bin/ls $(ALLFILES))
@@ -258,6 +241,7 @@ SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VE
SA_PROPERTIES = $(OUTPUT_DIR)/sa.properties
JAVAC = $(JDK_HOME)/bin/javac
JAVA = $(JDK_HOME)/bin/java
JAVADOC = $(JDK_HOME)/bin/javadoc
RMIC = $(JDK_HOME)/bin/rmic
@@ -298,7 +282,7 @@ filelist: $(ALLFILES)
.PHONY: natives
natives:
cd ../src/os/`java -classpath $(OUTPUT_DIR) sun.jvm.hotspot.utilities.PlatformInfo`; $(MAKE) all
cd ../src/os/`$(JAVA) -classpath $(OUTPUT_DIR) sun.jvm.hotspot.utilities.PlatformInfo`; $(MAKE) all
.PHONY: sa-jdi.jar
sa-jdi.jar:
@@ -313,7 +297,7 @@ sizes: $(ALLFILES)
cscope: $(ALLFILES)
rm -f java.files
echo $(ALLFILES) > java.files
cscope -b -i java.files -f java.out
cscope -b -i java.files -f java.out
rm -f java.files
.PHONY: sa.jar
@@ -323,5 +307,5 @@ sa.jar:
clean::
rm -rf filelist
cd ../src/os/`java -classpath $(OUTPUT_DIR) sun.jvm.hotspot.utilities.PlatformInfo`; $(MAKE) clean
cd ../src/os/`$(JAVA) -classpath $(OUTPUT_DIR) sun.jvm.hotspot.utilities.PlatformInfo`; $(MAKE) clean
rm -rf $(BUILD_DIR)/*

View File

@@ -1,25 +0,0 @@
REM
REM Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
REM
REM This code is free software; you can redistribute it and/or modify it
REM under the terms of the GNU General Public License version 2 only, as
REM published by the Free Software Foundation.
REM
REM This code is distributed in the hope that it will be useful, but WITHOUT
REM ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
REM FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
REM version 2 for more details (a copy is included in the LICENSE file that
REM accompanied this code).
REM
REM You should have received a copy of the GNU General Public License version
REM 2 along with this work; if not, write to the Free Software Foundation,
REM Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
REM
REM Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
REM or visit www.oracle.com if you need additional information or have any
REM questions.
REM
REM
java -showversion -cp ..\build\classes;..\src\share\lib\js.jar;.\sa.jar;lib\js.jar sun.jvm.hotspot.bugspot.Main

View File

@@ -26,14 +26,12 @@
<ul>
<li><code>java -cp classes sun.jvm.hotspot.HSDB</code>
<li><code>java -cp classes sun.jvm.hotspot.bugspot.Main</code>
</ul>
<h2>Feedback</h2>
<p>
Refactoring of package hierarchy. All user interface components should be in
the ui package. Perhaps: sun.jvm.hotspot.ui.hsdb.Main for the HSDB and
sun.jvm.hotspot.ui.bugspot.Main for BugSpot.
the ui package. Perhaps: sun.jvm.hotspot.ui.hsdb.Main for the HSDB.
<p>
The src\share\vm\agent area seems like a workspace so it should be organized like
one. In particular, I'd like to suggest the following directory layout:<br>
@@ -47,7 +45,7 @@
</ul>
<p>
Seems like there is a lot of redundant functionality. Between the HSDB and BugSpot. Perhaps
Seems like there is a lot of redundant functionality. Perhaps
this can be consolidated with a <code>javax.swing.Actions</code> architecture.
<h2>Tasklist</h2>
@@ -55,11 +53,7 @@
<p>
<b>Stack memory pane</b>:
It's one of the more useful JVM debugging tools in the SA. However, it
doesn't support any interaction with the text; the Memory Panel in BugSpot
was written afterward (with help from Shannon) and implements proper
selection, scrolling, and drag-and-drop, but no annotations. I'm not sure how
to integrate the annotations with the JTable that's being used for the memory
view; if you have suggestions here please let me know.
doesn't support any interaction with the text.
<p>
<b>Integrations with the NetBeans architecture (plug in).</b> See the
<a href="http://openide.netbeans.org">Netbeans Open APIs homepage</a>

View File

@@ -38,6 +38,8 @@
#import <dlfcn.h>
#import <limits.h>
#import <errno.h>
#import <sys/types.h>
#import <sys/ptrace.h>
jboolean debug = JNI_FALSE;
@@ -97,7 +99,8 @@ static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
* Method: init0
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0(JNIEnv *env, jclass cls) {
JNIEXPORT void JNICALL
Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0(JNIEnv *env, jclass cls) {
symbolicatorID = (*env)->GetFieldID(env, cls, "symbolicator", "J");
taskID = (*env)->GetFieldID(env, cls, "task", "J");
CHECK_EXCEPTION;
@@ -108,7 +111,11 @@ JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0(
* Method: lookupByName0
* Signature: (Ljava/lang/String;Ljava/lang/String;)J
*/
JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0(JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) {
JNIEXPORT jlong JNICALL
Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0(
JNIEnv *env, jobject this_obj,
jstring objectName, jstring symbolName)
{
jlong address = 0;
JNF_COCOA_ENTER(env);
@@ -137,7 +144,11 @@ JNF_COCOA_EXIT(env);
* Method: readBytesFromProcess0
* Signature: (JJ)Lsun/jvm/hotspot/debugger/ReadResult;
*/
JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0(JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) {
JNIEXPORT jbyteArray JNICALL
Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0(
JNIEnv *env, jobject this_obj,
jlong addr, jlong numBytes)
{
if (debug) printf("readBytesFromProcess called. addr = %llx numBytes = %lld\n", addr, numBytes);
// must allocate storage instead of using former parameter buf
@@ -209,12 +220,74 @@ JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_
return array;
}
/*
* Class: sun_jvm_hotspot_debugger_macosx_MacOSXDebuggerLocal
* Method: getThreadIntegerRegisterSet0
* Signature: (I)[J
* Lookup the thread_t that corresponds to the given thread_id.
* The thread_id should be the result from calling thread_info() with THREAD_IDENTIFIER_INFO
* and reading the m_ident_info.thread_id returned.
* The returned thread_t is the mach send right to the kernel port for the corresponding thread.
*
* We cannot simply use the OSThread._thread_id field in the JVM. This is set to ::mach_thread_self()
* in the VM, but that thread port is not valid for a remote debugger to access the thread.
*/
JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0(JNIEnv *env, jobject this_obj, jint lwp_id) {
thread_t
lookupThreadFromThreadId(task_t task, jlong thread_id) {
if (debug) {
printf("lookupThreadFromThreadId thread_id=0x%llx\n", thread_id);
}
thread_array_t thread_list = NULL;
mach_msg_type_number_t thread_list_count = 0;
thread_t result_thread = 0;
int i;
// get the list of all the send rights
kern_return_t result = task_threads(task, &thread_list, &thread_list_count);
if (result != KERN_SUCCESS) {
if (debug) {
printf("task_threads returned 0x%x\n", result);
}
return 0;
}
for(i = 0 ; i < thread_list_count; i++) {
thread_identifier_info_data_t m_ident_info;
mach_msg_type_number_t count = THREAD_IDENTIFIER_INFO_COUNT;
// get the THREAD_IDENTIFIER_INFO for the send right
result = thread_info(thread_list[i], THREAD_IDENTIFIER_INFO, (thread_info_t) &m_ident_info, &count);
if (result != KERN_SUCCESS) {
if (debug) {
printf("thread_info returned 0x%x\n", result);
}
break;
}
// if this is the one we're looking for, return the send right
if (thread_id == m_ident_info.thread_id)
{
result_thread = thread_list[i];
break;
}
}
vm_size_t thread_list_size = (vm_size_t) (thread_list_count * sizeof (thread_t));
vm_deallocate(mach_task_self(), (vm_address_t) thread_list, thread_list_count);
return result_thread;
}
/*
* Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
* Method: getThreadIntegerRegisterSet0
* Signature: (J)[J
*/
JNIEXPORT jlongArray JNICALL
Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0(
JNIEnv *env, jobject this_obj,
jlong thread_id)
{
if (debug)
printf("getThreadRegisterSet0 called\n");
@@ -226,8 +299,9 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_
int i;
jlongArray registerArray;
jlong *primitiveArray;
task_t gTask = getTask(env, this_obj);
tid = lwp_id;
tid = lookupThreadFromThreadId(gTask, thread_id);
result = thread_get_state(tid, HSDB_THREAD_STATE, (thread_state_t)&state, &count);
@@ -328,19 +402,21 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_
}
/*
* Class: sun_jvm_hotspot_debugger_macosx_MacOSXDebuggerLocal
* Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
* Method: translateTID0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_sun_jvm_hotspot_debugger_macosx_MacOSXDebuggerLocal_translateTID0(JNIEnv *env, jobject this_obj, jint tid) {
Java_sun_jvm_hotspot_debugger_macosx_MacOSXDebuggerLocal_translateTID0(
JNIEnv *env, jobject this_obj, jint tid)
{
if (debug)
printf("translateTID0 called on tid = 0x%x\n", (int)tid);
kern_return_t result;
thread_t foreign_tid, usable_tid;
mach_msg_type_name_t type;
foreign_tid = tid;
task_t gTask = getTask(env, this_obj);
@@ -356,19 +432,90 @@ Java_sun_jvm_hotspot_debugger_macosx_MacOSXDebuggerLocal_translateTID0(JNIEnv *e
return (jint) usable_tid;
}
static bool ptrace_continue(pid_t pid, int signal) {
// pass the signal to the process so we don't swallow it
int res;
if ((res = ptrace(PT_CONTINUE, pid, (caddr_t)1, signal)) < 0) {
fprintf(stderr, "attach: ptrace(PT_CONTINUE, %d) failed with %d\n", pid, res);
return false;
}
return true;
}
// waits until the ATTACH has stopped the process
// by signal SIGSTOP
static bool ptrace_waitpid(pid_t pid) {
int ret;
int status;
while (true) {
// Wait for debuggee to stop.
ret = waitpid(pid, &status, 0);
if (ret >= 0) {
if (WIFSTOPPED(status)) {
// Any signal will stop the thread, make sure it is SIGSTOP. Otherwise SIGSTOP
// will still be pending and delivered when the process is DETACHED and the process
// will go to sleep.
if (WSTOPSIG(status) == SIGSTOP) {
// Debuggee stopped by SIGSTOP.
return true;
}
if (!ptrace_continue(pid, WSTOPSIG(status))) {
fprintf(stderr, "attach: Failed to correctly attach to VM. VM might HANG! [PTRACE_CONT failed, stopped by %d]\n", WSTOPSIG(status));
return false;
}
} else {
fprintf(stderr, "attach: waitpid(): Child process exited/terminated (status = 0x%x)\n", status);
return false;
}
} else {
switch (errno) {
case EINTR:
continue;
break;
case ECHILD:
fprintf(stderr, "attach: waitpid() failed. Child process pid (%d) does not exist \n", pid);
break;
case EINVAL:
fprintf(stderr, "attach: waitpid() failed. Invalid options argument.\n");
break;
default:
fprintf(stderr, "attach: waitpid() failed. Unexpected error %d\n",errno);
break;
}
return false;
}
}
}
// attach to a process/thread specified by "pid"
static bool ptrace_attach(pid_t pid) {
int res;
if ((res = ptrace(PT_ATTACH, pid, 0, 0)) < 0) {
fprintf(stderr, "ptrace(PT_ATTACH, %d) failed with %d\n", pid, res);
return false;
} else {
return ptrace_waitpid(pid);
}
}
/*
* Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
* Method: attach0
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I(JNIEnv *env, jobject this_obj, jint jpid) {
JNIEXPORT void JNICALL
Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I(
JNIEnv *env, jobject this_obj, jint jpid)
{
JNF_COCOA_ENTER(env);
if (getenv("JAVA_SAPROC_DEBUG") != NULL)
debug = JNI_TRUE;
else
debug = JNI_FALSE;
if (debug) printf("attach0 called for jpid=%d\n", (int)jpid);
// get the task from the pid
kern_return_t result;
task_t gTask = 0;
result = task_for_pid(mach_task_self(), jpid, &gTask);
@@ -378,6 +525,13 @@ JNF_COCOA_ENTER(env);
}
putTask(env, this_obj, gTask);
// use ptrace to stop the process
// on os x, ptrace only needs to be called on the process, not the individual threads
if (ptrace_attach(jpid) != true) {
mach_port_deallocate(mach_task_self(), gTask);
THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the process");
}
id symbolicator = nil;
id jrsSymbolicator = objc_lookUpClass("JRSSymbolicator");
if (jrsSymbolicator != nil) {
@@ -401,11 +555,29 @@ JNF_COCOA_EXIT(env);
* Method: detach0
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0(JNIEnv *env, jobject this_obj) {
JNIEXPORT void JNICALL
Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0(
JNIEnv *env, jobject this_obj)
{
JNF_COCOA_ENTER(env);
if (debug) printf("detach0 called\n");
task_t gTask = getTask(env, this_obj);
// detach from the ptraced process causing it to resume execution
int pid;
kern_return_t k_res;
k_res = pid_for_task(gTask, &pid);
if (k_res != KERN_SUCCESS) {
fprintf(stderr, "detach: pid_for_task(%d) failed (%d)\n", pid, k_res);
}
else {
int res = ptrace(PT_DETACH, pid, 0, 0);
if (res < 0) {
fprintf(stderr, "detach: ptrace(PT_DETACH, %d) failed (%d)\n", pid, res);
}
}
mach_port_deallocate(mach_task_self(), gTask);
id symbolicator = getSymbolicator(env, this_obj);
if (symbolicator != nil) {
@@ -419,10 +591,13 @@ JNF_COCOA_EXIT(env);
* Method: load_library
* Signature: (Ljava/lang/String;)L
*/
JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_asm_Disassembler_load_1library(JNIEnv * env,
jclass disclass,
jstring jrepath_s,
jstring libname_s) {
JNIEXPORT jlong JNICALL
Java_sun_jvm_hotspot_asm_Disassembler_load_1library(
JNIEnv * env,
jclass disclass,
jstring jrepath_s,
jstring libname_s)
{
uintptr_t func = 0;
const char* error_message = NULL;
const char* java_home;
@@ -533,13 +708,16 @@ static int printf_to_env(void* env_pv, const char* format, ...) {
* Method: decode
* Signature: (Lsun/jvm/hotspot/asm/InstructionVisitor;J[BLjava/lang/String;J)V
*/
JNIEXPORT void JNICALL Java_sun_jvm_hotspot_asm_Disassembler_decode(JNIEnv * env,
jobject dis,
jobject visitor,
jlong startPc,
jbyteArray code,
jstring options_s,
jlong decode_instructions_virtual) {
JNIEXPORT void JNICALL
Java_sun_jvm_hotspot_asm_Disassembler_decode(
JNIEnv * env,
jobject dis,
jobject visitor,
jlong startPc,
jbyteArray code,
jstring options_s,
jlong decode_instructions_virtual)
{
jboolean isCopy;
jbyte* start = (*env)->GetByteArrayElements(env, code, &isCopy);
jbyte* end = start + (*env)->GetArrayLength(env, code);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -91,6 +91,14 @@ void print_debug(const char* format,...) {
}
}
void print_error(const char* format,...) {
va_list alist;
va_start(alist, format);
fputs("ERROR: ", stderr);
vfprintf(stderr, format, alist);
va_end(alist);
}
bool is_debug() {
return _libsaproc_debug;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -107,6 +107,7 @@ struct ps_prochandle {
int pathmap_open(const char* name);
void print_debug(const char* format,...);
void print_error(const char* format,...);
bool is_debug();
typedef bool (*thread_info_callback)(struct ps_prochandle* ph, pthread_t pid, lwpid_t lwpid);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -129,42 +129,66 @@ static bool process_get_lwp_info(struct ps_prochandle *ph, lwpid_t lwp_id, void
return (errno == 0)? true: false;
}
static bool ptrace_continue(pid_t pid, int signal) {
// pass the signal to the process so we don't swallow it
if (ptrace(PTRACE_CONT, pid, NULL, signal) < 0) {
print_debug("ptrace(PTRACE_CONT, ..) failed for %d\n", pid);
return false;
}
return true;
}
// waits until the ATTACH has stopped the process
// by signal SIGSTOP
static bool ptrace_waitpid(pid_t pid) {
int ret;
int status;
do {
// Wait for debuggee to stop.
ret = waitpid(pid, &status, 0);
if (ret >= 0) {
if (WIFSTOPPED(status)) {
// Any signal will stop the thread, make sure it is SIGSTOP. Otherwise SIGSTOP
// will still be pending and delivered when the process is DETACHED and the process
// will go to sleep.
if (WSTOPSIG(status) == SIGSTOP) {
// Debuggee stopped by SIGSTOP.
return true;
}
if (!ptrace_continue(pid, WSTOPSIG(status))) {
print_error("Failed to correctly attach to VM. VM might HANG! [PTRACE_CONT failed, stopped by %d]\n", WSTOPSIG(status));
return false;
}
} else {
print_debug("waitpid(): Child process exited/terminated (status = 0x%x)\n", status);
return false;
}
} else {
switch (errno) {
case EINTR:
continue;
break;
case ECHILD:
print_debug("waitpid() failed. Child process pid (%d) does not exist \n", pid);
break;
case EINVAL:
print_debug("waitpid() failed. Invalid options argument.\n");
break;
default:
print_debug("waitpid() failed. Unexpected error %d\n",errno);
}
return false;
}
} while(true);
}
// attach to a process/thread specified by "pid"
static bool ptrace_attach(pid_t pid) {
if (ptrace(PT_ATTACH, pid, NULL, 0) < 0) {
print_debug("ptrace(PTRACE_ATTACH, ..) failed for %d\n", pid);
return false;
} else {
int ret;
int status;
do {
// Wait for debuggee to stop.
ret = waitpid(pid, &status, 0);
if (ret >= 0) {
if (WIFSTOPPED(status)) {
// Debuggee stopped.
return true;
} else {
print_debug("waitpid(): Child process exited/terminated (status = 0x%x)\n", status);
return false;
}
} else {
switch (errno) {
case EINTR:
continue;
break;
case ECHILD:
print_debug("waitpid() failed. Child process pid (%d) does not exist \n", pid);
break;
case EINVAL:
print_debug("waitpid() failed. Invalid options argument.\n");
break;
default:
print_debug("waitpid() failed. Unexpected error %d\n",errno);
}
return false;
}
} while(true);
return ptrace_waitpid(pid);
}
}

View File

@@ -280,7 +280,7 @@ JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
return (err == PS_OK)? array : 0;
}
#if defined(i386) || defined(ia64) || defined(amd64) || defined(sparc) || defined(sparcv9)
#if defined(i386) || defined(amd64) || defined(sparc) || defined(sparcv9)
JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_getThreadIntegerRegisterSet0
(JNIEnv *env, jobject this_obj, jint lwp_id) {
@@ -299,9 +299,6 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
#ifdef i386
#define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG
#endif
#ifdef ia64
#define NPRGREG IA64_REG_COUNT
#endif
#ifdef amd64
#define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG
#endif
@@ -336,13 +333,6 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo
#endif /* i386 */
#if ia64
regs = (*env)->GetLongArrayElements(env, array, &isCopy);
for (i = 0; i < NPRGREG; i++ ) {
regs[i] = 0xDEADDEAD;
}
#endif /* ia64 */
#ifdef amd64
#define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg

View File

@@ -79,14 +79,6 @@ combination of ptrace and /proc calls.
*************************************************************************************/
#ifdef ia64
struct user_regs_struct {
/* copied from user.h which doesn't define this in a struct */
#define IA64_REG_COUNT (EF_SIZE/8+32) /* integer and fp regs */
unsigned long regs[IA64_REG_COUNT]; /* integer and fp regs */
};
#endif
#if defined(sparc) || defined(sparcv9)
#define user_regs_struct pt_regs

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -92,6 +92,14 @@ void print_debug(const char* format,...) {
}
}
void print_error(const char* format,...) {
va_list alist;
va_start(alist, format);
fputs("ERROR: ", stderr);
vfprintf(stderr, format, alist);
va_end(alist);
}
bool is_debug() {
return _libsaproc_debug;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -105,6 +105,7 @@ struct ps_prochandle {
int pathmap_open(const char* name);
void print_debug(const char* format,...);
void print_error(const char* format,...);
bool is_debug();
typedef bool (*thread_info_callback)(struct ps_prochandle* ph, pthread_t pid, lwpid_t lwpid);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <sys/ptrace.h>
#include "libproc_impl.h"
@@ -142,46 +143,71 @@ static bool process_get_lwp_regs(struct ps_prochandle* ph, pid_t pid, struct use
}
static bool ptrace_continue(pid_t pid, int signal) {
// pass the signal to the process so we don't swallow it
if (ptrace(PTRACE_CONT, pid, NULL, signal) < 0) {
print_debug("ptrace(PTRACE_CONT, ..) failed for %d\n", pid);
return false;
}
return true;
}
// waits until the ATTACH has stopped the process
// by signal SIGSTOP
static bool ptrace_waitpid(pid_t pid) {
int ret;
int status;
while (true) {
// Wait for debuggee to stop.
ret = waitpid(pid, &status, 0);
if (ret == -1 && errno == ECHILD) {
// try cloned process.
ret = waitpid(pid, &status, __WALL);
}
if (ret >= 0) {
if (WIFSTOPPED(status)) {
// Any signal will stop the thread, make sure it is SIGSTOP. Otherwise SIGSTOP
// will still be pending and delivered when the process is DETACHED and the process
// will go to sleep.
if (WSTOPSIG(status) == SIGSTOP) {
// Debuggee stopped by SIGSTOP.
return true;
}
if (!ptrace_continue(pid, WSTOPSIG(status))) {
print_error("Failed to correctly attach to VM. VM might HANG! [PTRACE_CONT failed, stopped by %d]\n", WSTOPSIG(status));
return false;
}
} else {
print_debug("waitpid(): Child process exited/terminated (status = 0x%x)\n", status);
return false;
}
} else {
switch (errno) {
case EINTR:
continue;
break;
case ECHILD:
print_debug("waitpid() failed. Child process pid (%d) does not exist \n", pid);
break;
case EINVAL:
print_debug("waitpid() failed. Invalid options argument.\n");
break;
default:
print_debug("waitpid() failed. Unexpected error %d\n",errno);
break;
}
return false;
}
}
}
// attach to a process/thread specified by "pid"
static bool ptrace_attach(pid_t pid) {
if (ptrace(PTRACE_ATTACH, pid, NULL, NULL) < 0) {
print_debug("ptrace(PTRACE_ATTACH, ..) failed for %d\n", pid);
return false;
} else {
int ret;
int status;
do {
// Wait for debuggee to stop.
ret = waitpid(pid, &status, 0);
if (ret == -1 && errno == ECHILD) {
// try cloned process.
ret = waitpid(pid, &status, __WALL);
}
if (ret >= 0) {
if (WIFSTOPPED(status)) {
// Debuggee stopped.
return true;
} else {
print_debug("waitpid(): Child process exited/terminated (status = 0x%x)\n", status);
return false;
}
} else {
switch (errno) {
case EINTR:
continue;
break;
case ECHILD:
print_debug("waitpid() failed. Child process pid (%d) does not exist \n", pid);
break;
case EINVAL:
print_debug("waitpid() failed. Invalid options argument.\n");
break;
default:
print_debug("waitpid() failed. Unexpected error %d\n",errno);
}
return false;
}
} while(true);
return ptrace_waitpid(pid);
}
}

View File

@@ -27,10 +27,7 @@
#include "sun_jvm_hotspot_debugger_windbg_WindbgDebuggerLocal.h"
#ifdef _M_IA64
#include "sun_jvm_hotspot_debugger_ia64_IA64ThreadContext.h"
#define NPRGREG sun_jvm_hotspot_debugger_ia64_IA64ThreadContext_NPRGREG
#elif _M_IX86
#ifdef _M_IX86
#include "sun_jvm_hotspot_debugger_x86_X86ThreadContext.h"
#define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG
#elif _M_AMD64
@@ -375,8 +372,7 @@ static bool attachToProcess(JNIEnv* env, jobject obj, jint pid) {
We are attaching to a process in 'read-only' mode. i.e., we do not want to
put breakpoints, suspend/resume threads etc. For read-only JDI and HSDB kind of
usage this should suffice. We are not intending to use this for full-fledged
ProcessControl implementation to be used with BugSpotAgent.
usage this should suffice.
Please refer to DEBUG_ATTACH_NONINVASIVE mode source comments from dbgeng.h.
In this mode, debug engine does not call DebugActiveProrcess. i.e., we are not
@@ -491,92 +487,7 @@ static bool addThreads(JNIEnv* env, jobject obj) {
memset(&context, 0, sizeof(CONTEXT));
#undef REG_INDEX
#ifdef _M_IA64
#define REG_INDEX(x) sun_jvm_hotspot_debugger_ia64_IA64ThreadContext_##x
context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG;
ptrIDebugAdvanced->GetThreadContext(&context, sizeof(CONTEXT));
ptrRegs[REG_INDEX(GR0)] = 0; // always 0
ptrRegs[REG_INDEX(GR1)] = context.IntGp; // r1
ptrRegs[REG_INDEX(GR2)] = context.IntT0; // r2-r3
ptrRegs[REG_INDEX(GR3)] = context.IntT1;
ptrRegs[REG_INDEX(GR4)] = context.IntS0; // r4-r7
ptrRegs[REG_INDEX(GR5)] = context.IntS1;
ptrRegs[REG_INDEX(GR6)] = context.IntS2;
ptrRegs[REG_INDEX(GR7)] = context.IntS3;
ptrRegs[REG_INDEX(GR8)] = context.IntV0; // r8
ptrRegs[REG_INDEX(GR9)] = context.IntT2; // r9-r11
ptrRegs[REG_INDEX(GR10)] = context.IntT3;
ptrRegs[REG_INDEX(GR11)] = context.IntT4;
ptrRegs[REG_INDEX(GR12)] = context.IntSp; // r12 stack pointer
ptrRegs[REG_INDEX(GR13)] = context.IntTeb; // r13 teb
ptrRegs[REG_INDEX(GR14)] = context.IntT5; // r14-r31
ptrRegs[REG_INDEX(GR15)] = context.IntT6;
ptrRegs[REG_INDEX(GR16)] = context.IntT7;
ptrRegs[REG_INDEX(GR17)] = context.IntT8;
ptrRegs[REG_INDEX(GR18)] = context.IntT9;
ptrRegs[REG_INDEX(GR19)] = context.IntT10;
ptrRegs[REG_INDEX(GR20)] = context.IntT11;
ptrRegs[REG_INDEX(GR21)] = context.IntT12;
ptrRegs[REG_INDEX(GR22)] = context.IntT13;
ptrRegs[REG_INDEX(GR23)] = context.IntT14;
ptrRegs[REG_INDEX(GR24)] = context.IntT15;
ptrRegs[REG_INDEX(GR25)] = context.IntT16;
ptrRegs[REG_INDEX(GR26)] = context.IntT17;
ptrRegs[REG_INDEX(GR27)] = context.IntT18;
ptrRegs[REG_INDEX(GR28)] = context.IntT19;
ptrRegs[REG_INDEX(GR29)] = context.IntT20;
ptrRegs[REG_INDEX(GR30)] = context.IntT21;
ptrRegs[REG_INDEX(GR31)] = context.IntT22;
ptrRegs[REG_INDEX(INT_NATS)] = context.IntNats;
ptrRegs[REG_INDEX(PREDS)] = context.Preds;
ptrRegs[REG_INDEX(BR_RP)] = context.BrRp;
ptrRegs[REG_INDEX(BR1)] = context.BrS0; // b1-b5
ptrRegs[REG_INDEX(BR2)] = context.BrS1;
ptrRegs[REG_INDEX(BR3)] = context.BrS2;
ptrRegs[REG_INDEX(BR4)] = context.BrS3;
ptrRegs[REG_INDEX(BR5)] = context.BrS4;
ptrRegs[REG_INDEX(BR6)] = context.BrT0; // b6-b7
ptrRegs[REG_INDEX(BR7)] = context.BrT1;
ptrRegs[REG_INDEX(AP_UNAT)] = context.ApUNAT;
ptrRegs[REG_INDEX(AP_LC)] = context.ApLC;
ptrRegs[REG_INDEX(AP_EC)] = context.ApEC;
ptrRegs[REG_INDEX(AP_CCV)] = context.ApCCV;
ptrRegs[REG_INDEX(AP_DCR)] = context.ApDCR;
ptrRegs[REG_INDEX(RS_PFS)] = context.RsPFS;
ptrRegs[REG_INDEX(RS_BSP)] = context.RsBSP;
ptrRegs[REG_INDEX(RS_BSPSTORE)] = context.RsBSPSTORE;
ptrRegs[REG_INDEX(RS_RSC)] = context.RsRSC;
ptrRegs[REG_INDEX(RS_RNAT)] = context.RsRNAT;
ptrRegs[REG_INDEX(ST_IPSR)] = context.StIPSR;
ptrRegs[REG_INDEX(ST_IIP)] = context.StIIP;
ptrRegs[REG_INDEX(ST_IFS)] = context.StIFS;
ptrRegs[REG_INDEX(DB_I0)] = context.DbI0;
ptrRegs[REG_INDEX(DB_I1)] = context.DbI1;
ptrRegs[REG_INDEX(DB_I2)] = context.DbI2;
ptrRegs[REG_INDEX(DB_I3)] = context.DbI3;
ptrRegs[REG_INDEX(DB_I4)] = context.DbI4;
ptrRegs[REG_INDEX(DB_I5)] = context.DbI5;
ptrRegs[REG_INDEX(DB_I6)] = context.DbI6;
ptrRegs[REG_INDEX(DB_I7)] = context.DbI7;
ptrRegs[REG_INDEX(DB_D0)] = context.DbD0;
ptrRegs[REG_INDEX(DB_D1)] = context.DbD1;
ptrRegs[REG_INDEX(DB_D2)] = context.DbD2;
ptrRegs[REG_INDEX(DB_D3)] = context.DbD3;
ptrRegs[REG_INDEX(DB_D4)] = context.DbD4;
ptrRegs[REG_INDEX(DB_D5)] = context.DbD5;
ptrRegs[REG_INDEX(DB_D6)] = context.DbD6;
ptrRegs[REG_INDEX(DB_D7)] = context.DbD7;
#elif _M_IX86
#ifdef _M_IX86
#define REG_INDEX(x) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##x
context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS;

View File

@@ -33,6 +33,7 @@ import sun.jvm.hotspot.types.Type;
import sun.jvm.hotspot.types.Field;
import sun.jvm.hotspot.HotSpotTypeDataBase;
import sun.jvm.hotspot.types.basic.BasicType;
import sun.jvm.hotspot.types.basic.BasicTypeDataBase;
import sun.jvm.hotspot.types.CIntegerType;
import sun.jvm.hotspot.code.*;
import sun.jvm.hotspot.compiler.*;
@@ -448,6 +449,112 @@ public class CommandProcessor {
}
}
},
new Command("dumpreplaydata", "dumpreplaydata { <address > | -a | <thread_id> }", false) {
// This is used to dump replay data from ciInstanceKlass, ciMethodData etc
// default file name is replay.txt, also if java crashes in compiler
// thread, this file will be dumped in error processing.
public void doit(Tokens t) {
if (t.countTokens() != 1) {
usage();
return;
}
String name = t.nextToken();
Address a = null;
try {
a = VM.getVM().getDebugger().parseAddress(name);
} catch (NumberFormatException e) { }
if (a != null) {
// only nmethod, Method, MethodData and InstanceKlass needed to
// dump replay data
CodeBlob cb = VM.getVM().getCodeCache().findBlob(a);
if (cb != null && (cb instanceof NMethod)) {
((NMethod)cb).dumpReplayData(out);
return;
}
// assume it is Metadata
Metadata meta = Metadata.instantiateWrapperFor(a);
if (meta != null) {
meta.dumpReplayData(out);
} else {
usage();
return;
}
}
// Not an address
boolean all = name.equals("-a");
Threads threads = VM.getVM().getThreads();
for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
thread.printThreadIDOn(new PrintStream(bos));
if (all || bos.toString().equals(name)) {
if (thread instanceof CompilerThread) {
CompilerThread ct = (CompilerThread)thread;
ciEnv env = ct.env();
if (env != null) {
env.dumpReplayData(out);
}
}
}
}
}
},
new Command("buildreplayjars", "buildreplayjars [ all | app | boot ] | [ prefix ]", false) {
// This is used to dump jar files of all the classes
// loaded in the core. Everything on the bootclasspath
// will go in boot.jar and everything else will go in
// app.jar. Then the classes can be loaded by the replay
// jvm using -Xbootclasspath/p:boot.jar -cp app.jar. boot.jar usually
// not needed, unless changed by jvmti.
public void doit(Tokens t) {
int tcount = t.countTokens();
if (tcount > 2) {
usage();
return;
}
try {
String prefix = "";
String option = "all"; // default
switch(tcount) {
case 0:
break;
case 1:
option = t.nextToken();
if (!option.equalsIgnoreCase("all") && !option.equalsIgnoreCase("app") &&
!option.equalsIgnoreCase("root")) {
prefix = option;
option = "all";
}
break;
case 2:
option = t.nextToken();
prefix = t.nextToken();
break;
default:
usage();
return;
}
if (!option.equalsIgnoreCase("all") && !option.equalsIgnoreCase("app") &&
!option.equalsIgnoreCase("boot")) {
usage();
return;
}
ClassDump cd = new ClassDump();
if (option.equalsIgnoreCase("all") || option.equalsIgnoreCase("boot")) {
cd.setClassFilter(new BootFilter());
cd.setJarOutput(prefix + "boot.jar");
cd.run();
}
if (option.equalsIgnoreCase("all") || option.equalsIgnoreCase("app")) {
cd.setClassFilter(new NonBootFilter());
cd.setJarOutput(prefix + "app.jar");
cd.run();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
},
new Command("findpc", "findpc address", false) {
public void doit(Tokens t) {
if (t.countTokens() != 1) {

View File

@@ -1,799 +0,0 @@
/*
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.io.PrintStream;
import java.net.*;
import java.rmi.*;
import sun.jvm.hotspot.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.debugger.bsd.*;
import sun.jvm.hotspot.debugger.proc.*;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.debugger.windbg.*;
import sun.jvm.hotspot.debugger.linux.*;
import sun.jvm.hotspot.debugger.sparc.*;
import sun.jvm.hotspot.debugger.remote.*;
import sun.jvm.hotspot.livejvm.*;
import sun.jvm.hotspot.memory.*;
import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.types.*;
import sun.jvm.hotspot.utilities.*;
/** <P> This class wraps the basic functionality for connecting to the
* target process or debug server. It makes it simple to start up the
* debugging system. </P>
*
* <P> This agent (as compared to the HotSpotAgent) can connect to
* and interact with arbitrary processes. If the target process
* happens to be a HotSpot JVM, the Java debugging features of the
* Serviceability Agent are enabled. Further, if the Serviceability
* Agent's JVMDI module is loaded into the target VM, interaction
* with the live Java program is possible, specifically the catching
* of exceptions and setting of breakpoints. </P>
*
* <P> The BugSpot debugger requires that the underlying Debugger
* support C/C++ debugging via the CDebugger interface. </P>
*
* <P> FIXME: especially with the addition of remote debugging, this
* has turned into a mess; needs rethinking. </P> */
public class BugSpotAgent {
private JVMDebugger debugger;
private MachineDescription machDesc;
private TypeDataBase db;
private String os;
private String cpu;
private String fileSep;
// The system can work in several ways:
// - Attaching to local process
// - Attaching to local core file
// - Connecting to remote debug server
// - Starting debug server for process
// - Starting debug server for core file
// These are options for the "client" side of things
private static final int PROCESS_MODE = 0;
private static final int CORE_FILE_MODE = 1;
private static final int REMOTE_MODE = 2;
private int startupMode;
// This indicates whether we are really starting a server or not
private boolean isServer;
// All possible required information for connecting
private int pid;
private String executableName;
private String coreFileName;
private String debugServerID;
// All needed information for server side
private String serverID;
// Indicates whether we are attached to a HotSpot JVM or not
private boolean javaMode;
// Indicates whether we have process control over a live HotSpot JVM
// or not; non-null if so.
private ServiceabilityAgentJVMDIModule jvmdi;
// While handling C breakpoints interactivity with the Java program
// is forbidden. Too many invariants are broken while the target is
// stopped at a C breakpoint to risk making JVMDI calls.
private boolean javaInteractionDisabled;
private String[] jvmLibNames;
private String[] saLibNames;
// FIXME: make these configurable, i.e., via a dotfile; also
// consider searching within the JDK from which this Java executable
// comes to find them
private static final String defaultDbxPathPrefix = "/net/jano.eng/export/disk05/hotspot/sa";
private static final String defaultDbxSvcAgentDSOPathPrefix = "/net/jano.eng/export/disk05/hotspot/sa";
private static final boolean DEBUG;
static {
DEBUG = System.getProperty("sun.jvm.hotspot.bugspot.BugSpotAgent.DEBUG")
!= null;
}
static void debugPrintln(String str) {
if (DEBUG) {
System.err.println(str);
}
}
static void showUsage() {
System.out.println(" You can also pass these -D options to java to specify where to find dbx and the \n" +
" Serviceability Agent plugin for dbx:");
System.out.println(" -DdbxPathName=<path-to-dbx-executable>\n" +
" Default is derived from dbxPathPrefix");
System.out.println(" or");
System.out.println(" -DdbxPathPrefix=<xxx>\n" +
" where xxx is the path name of a dir structure that contains:\n" +
" <os>/<arch>/bin/dbx\n" +
" The default is " + defaultDbxPathPrefix);
System.out.println(" and");
System.out.println(" -DdbxSvcAgentDSOPathName=<path-to-dbx-serviceability-agent-module>\n" +
" Default is determined from dbxSvcAgentDSOPathPrefix");
System.out.println(" or");
System.out.println(" -DdbxSvcAgentDSOPathPrefix=<xxx>\n" +
" where xxx is the pathname of a dir structure that contains:\n" +
" <os>/<arch>/bin/lib/libsvc_agent_dbx.so\n" +
" The default is " + defaultDbxSvcAgentDSOPathPrefix);
}
public BugSpotAgent() {
// for non-server add shutdown hook to clean-up debugger in case
// of forced exit. For remote server, shutdown hook is added by
// DebugServer.
Runtime.getRuntime().addShutdownHook(new java.lang.Thread(
new Runnable() {
public void run() {
synchronized (BugSpotAgent.this) {
if (!isServer) {
detach();
}
}
}
}));
}
//--------------------------------------------------------------------------------
// Accessors (once the system is set up)
//
public synchronized Debugger getDebugger() {
return debugger;
}
public synchronized CDebugger getCDebugger() {
return getDebugger().getCDebugger();
}
public synchronized ProcessControl getProcessControl() {
return getCDebugger().getProcessControl();
}
public synchronized TypeDataBase getTypeDataBase() {
return db;
}
/** Indicates whether the target process is suspended
completely. Equivalent to getProcessControl().isSuspended(). */
public synchronized boolean isSuspended() throws DebuggerException {
return getProcessControl().isSuspended();
}
/** Suspends the target process completely. Equivalent to
getProcessControl().suspend(). */
public synchronized void suspend() throws DebuggerException {
getProcessControl().suspend();
}
/** Resumes the target process completely. Equivalent to
getProcessControl().suspend(). */
public synchronized void resume() throws DebuggerException {
getProcessControl().resume();
}
/** Indicates whether we are attached to a Java HotSpot virtual
machine */
public synchronized boolean isJavaMode() {
return javaMode;
}
/** Temporarily disables interaction with the target process via
JVMDI. This is done while the target process is stopped at a C
breakpoint. Can be called even if the JVMDI agent has not been
initialized. */
public synchronized void disableJavaInteraction() {
javaInteractionDisabled = true;
}
/** Re-enables interaction with the target process via JVMDI. This
is done while the target process is continued past a C
braekpoint. Can be called even if the JVMDI agent has not been
initialized. */
public synchronized void enableJavaInteraction() {
javaInteractionDisabled = false;
}
/** Indicates whether Java interaction has been disabled */
public synchronized boolean isJavaInteractionDisabled() {
return javaInteractionDisabled;
}
/** Indicates whether we can talk to the Serviceability Agent's
JVMDI module to be able to set breakpoints */
public synchronized boolean canInteractWithJava() {
return (jvmdi != null) && !javaInteractionDisabled;
}
/** Suspends all Java threads in the target process. Can only be
called if we are attached to a HotSpot JVM and can connect to
the SA's JVMDI module. Must not be called when the target
process has been suspended with suspend(). */
public synchronized void suspendJava() throws DebuggerException {
if (!canInteractWithJava()) {
throw new DebuggerException("Could not connect to SA's JVMDI module");
}
if (jvmdi.isSuspended()) {
throw new DebuggerException("Target process already suspended via JVMDI");
}
jvmdi.suspend();
}
/** Resumes all Java threads in the target process. Can only be
called if we are attached to a HotSpot JVM and can connect to
the SA's JVMDI module. Must not be called when the target
process has been suspended with suspend(). */
public synchronized void resumeJava() throws DebuggerException {
if (!canInteractWithJava()) {
throw new DebuggerException("Could not connect to SA's JVMDI module");
}
if (!jvmdi.isSuspended()) {
throw new DebuggerException("Target process already resumed via JVMDI");
}
jvmdi.resume();
}
/** Indicates whether the target process has been suspended at the
Java language level via the SA's JVMDI module */
public synchronized boolean isJavaSuspended() throws DebuggerException {
return jvmdi.isSuspended();
}
/** Toggle a Java breakpoint at the given location. */
public synchronized ServiceabilityAgentJVMDIModule.BreakpointToggleResult
toggleJavaBreakpoint(String srcFileName,
String pkgName,
int lineNo) {
if (!canInteractWithJava()) {
throw new DebuggerException("Could not connect to SA's JVMDI module; can not toggle Java breakpoints");
}
return jvmdi.toggleBreakpoint(srcFileName, pkgName, lineNo);
}
/** Access to JVMDI module's eventPending */
public synchronized boolean javaEventPending() throws DebuggerException {
if (!canInteractWithJava()) {
throw new DebuggerException("Could not connect to SA's JVMDI module; can not poll for Java debug events");
}
return jvmdi.eventPending();
}
/** Access to JVMDI module's eventPoll */
public synchronized Event javaEventPoll() throws DebuggerException {
if (!canInteractWithJava()) {
throw new DebuggerException("Could not connect to SA's JVMDI module; can not poll for Java debug events");
}
return jvmdi.eventPoll();
}
/** Access to JVMDI module's eventContinue */
public synchronized void javaEventContinue() throws DebuggerException {
if (!canInteractWithJava()) {
throw new DebuggerException("Could not connect to SA's JVMDI module; can not continue past Java debug events");
}
jvmdi.eventContinue();
}
// FIXME: add other accessors. For example, suspension and
// resumption should be done through this interface, as well as
// interaction with the live Java process such as breakpoint setting.
// Probably should not expose the ServiceabilityAgentJVMDIModule
// from this interface.
//--------------------------------------------------------------------------------
// Client-side operations
//
/** This attaches to a process running on the local machine. */
public synchronized void attach(int processID)
throws DebuggerException {
if (debugger != null) {
throw new DebuggerException("Already attached");
}
pid = processID;
startupMode = PROCESS_MODE;
isServer = false;
go();
}
/** This opens a core file on the local machine */
public synchronized void attach(String executableName, String coreFileName)
throws DebuggerException {
if (debugger != null) {
throw new DebuggerException("Already attached");
}
if ((executableName == null) || (coreFileName == null)) {
throw new DebuggerException("Both the core file name and executable name must be specified");
}
this.executableName = executableName;
this.coreFileName = coreFileName;
startupMode = CORE_FILE_MODE;
isServer = false;
go();
}
/** This attaches to a "debug server" on a remote machine; this
remote server has already attached to a process or opened a
core file and is waiting for RMI calls on the Debugger object to
come in. */
public synchronized void attach(String remoteServerID)
throws DebuggerException {
if (debugger != null) {
throw new DebuggerException("Already attached to a process");
}
if (remoteServerID == null) {
throw new DebuggerException("Debug server id must be specified");
}
debugServerID = remoteServerID;
startupMode = REMOTE_MODE;
isServer = false;
go();
}
/** This should only be called by the user on the client machine,
not the server machine */
public synchronized boolean detach() throws DebuggerException {
if (isServer) {
throw new DebuggerException("Should not call detach() for server configuration");
}
return detachInternal();
}
//--------------------------------------------------------------------------------
// Server-side operations
//
/** This attaches to a process running on the local machine and
starts a debug server, allowing remote machines to connect and
examine this process. uniqueID is used to uniquely identify the
debuggee */
public synchronized void startServer(int processID, String uniqueID)
throws DebuggerException {
if (debugger != null) {
throw new DebuggerException("Already attached");
}
pid = processID;
startupMode = PROCESS_MODE;
isServer = true;
serverID = uniqueID;
go();
}
/** This attaches to a process running on the local machine and
starts a debug server, allowing remote machines to connect and
examine this process. */
public synchronized void startServer(int processID)
throws DebuggerException {
startServer(processID, null);
}
/** This opens a core file on the local machine and starts a debug
server, allowing remote machines to connect and examine this
core file. uniqueID is used to uniquely identify the
debuggee */
public synchronized void startServer(String executableName, String coreFileName,
String uniqueID)
throws DebuggerException {
if (debugger != null) {
throw new DebuggerException("Already attached");
}
if ((executableName == null) || (coreFileName == null)) {
throw new DebuggerException("Both the core file name and Java executable name must be specified");
}
this.executableName = executableName;
this.coreFileName = coreFileName;
startupMode = CORE_FILE_MODE;
isServer = true;
serverID = uniqueID;
go();
}
/** This opens a core file on the local machine and starts a debug
server, allowing remote machines to connect and examine this
core file.*/
public synchronized void startServer(String executableName, String coreFileName)
throws DebuggerException {
startServer(executableName, coreFileName, null);
}
/** This may only be called on the server side after startServer()
has been called */
public synchronized boolean shutdownServer() throws DebuggerException {
if (!isServer) {
throw new DebuggerException("Should not call shutdownServer() for client configuration");
}
return detachInternal();
}
//--------------------------------------------------------------------------------
// Internals only below this point
//
private boolean detachInternal() {
if (debugger == null) {
return false;
}
if (canInteractWithJava()) {
jvmdi.detach();
jvmdi = null;
}
boolean retval = true;
if (!isServer) {
VM.shutdown();
}
// We must not call detach() if we are a client and are connected
// to a remote debugger
Debugger dbg = null;
DebuggerException ex = null;
if (isServer) {
try {
RMIHelper.unbind(serverID);
}
catch (DebuggerException de) {
ex = de;
}
dbg = debugger;
} else {
if (startupMode != REMOTE_MODE) {
dbg = debugger;
}
}
if (dbg != null) {
retval = dbg.detach();
}
debugger = null;
machDesc = null;
db = null;
if (ex != null) {
throw(ex);
}
return retval;
}
private void go() {
setupDebugger();
javaMode = setupVM();
}
private void setupDebugger() {
if (startupMode != REMOTE_MODE) {
//
// Local mode (client attaching to local process or setting up
// server, but not client attaching to server)
//
try {
os = PlatformInfo.getOS();
cpu = PlatformInfo.getCPU();
}
catch (UnsupportedPlatformException e) {
throw new DebuggerException(e);
}
fileSep = System.getProperty("file.separator");
if (os.equals("solaris")) {
setupDebuggerSolaris();
} else if (os.equals("win32")) {
setupDebuggerWin32();
} else if (os.equals("linux")) {
setupDebuggerLinux();
} else if (os.equals("bsd")) {
setupDebuggerBsd();
} else {
// Add support for more operating systems here
throw new DebuggerException("Operating system " + os + " not yet supported");
}
if (isServer) {
RemoteDebuggerServer remote = null;
try {
remote = new RemoteDebuggerServer(debugger);
}
catch (RemoteException rem) {
throw new DebuggerException(rem);
}
RMIHelper.rebind(serverID, remote);
}
} else {
//
// Remote mode (client attaching to server)
//
// Create and install a security manager
// FIXME: currently commented out because we were having
// security problems since we're "in the sun.* hierarchy" here.
// Perhaps a permissive policy file would work around this. In
// the long run, will probably have to move into com.sun.*.
// if (System.getSecurityManager() == null) {
// System.setSecurityManager(new RMISecurityManager());
// }
connectRemoteDebugger();
}
}
private boolean setupVM() {
// We need to instantiate a HotSpotTypeDataBase on both the client
// and server machine. On the server it is only currently used to
// configure the Java primitive type sizes (which we should
// consider making constant). On the client it is used to
// configure the VM.
try {
if (os.equals("solaris")) {
db = new HotSpotTypeDataBase(machDesc, new HotSpotSolarisVtblAccess(debugger, jvmLibNames),
debugger, jvmLibNames);
} else if (os.equals("win32")) {
db = new HotSpotTypeDataBase(machDesc, new Win32VtblAccess(debugger, jvmLibNames),
debugger, jvmLibNames);
} else if (os.equals("linux")) {
db = new HotSpotTypeDataBase(machDesc, new LinuxVtblAccess(debugger, jvmLibNames),
debugger, jvmLibNames);
} else if (os.equals("bsd")) {
db = new HotSpotTypeDataBase(machDesc, new BsdVtblAccess(debugger, jvmLibNames),
debugger, jvmLibNames);
} else {
throw new DebuggerException("OS \"" + os + "\" not yet supported (no VtblAccess implemented yet)");
}
}
catch (NoSuchSymbolException e) {
e.printStackTrace();
return false;
}
if (startupMode != REMOTE_MODE) {
// Configure the debugger with the primitive type sizes just obtained from the VM
debugger.configureJavaPrimitiveTypeSizes(db.getJBooleanType().getSize(),
db.getJByteType().getSize(),
db.getJCharType().getSize(),
db.getJDoubleType().getSize(),
db.getJFloatType().getSize(),
db.getJIntType().getSize(),
db.getJLongType().getSize(),
db.getJShortType().getSize());
}
if (!isServer) {
// Do not initialize the VM on the server (unnecessary, since it's
// instantiated on the client)
VM.initialize(db, debugger);
}
try {
jvmdi = new ServiceabilityAgentJVMDIModule(debugger, saLibNames);
if (jvmdi.canAttach()) {
jvmdi.attach();
jvmdi.setCommandTimeout(6000);
debugPrintln("Attached to Serviceability Agent's JVMDI module.");
// Jog VM to suspended point with JVMDI module
resume();
suspendJava();
suspend();
debugPrintln("Suspended all Java threads.");
} else {
debugPrintln("Could not locate SA's JVMDI module; skipping attachment");
jvmdi = null;
}
} catch (Exception e) {
e.printStackTrace();
jvmdi = null;
}
return true;
}
//--------------------------------------------------------------------------------
// OS-specific debugger setup/connect routines
//
//
// Solaris
//
private void setupDebuggerSolaris() {
setupJVMLibNamesSolaris();
ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true);
debugger = dbg;
attachDebugger();
// Set up CPU-dependent stuff
if (cpu.equals("x86")) {
machDesc = new MachineDescriptionIntelX86();
} else if (cpu.equals("sparc")) {
int addressSize = dbg.getRemoteProcessAddressSize();
if (addressSize == -1) {
throw new DebuggerException("Error occurred while trying to determine the remote process's address size");
}
if (addressSize == 32) {
machDesc = new MachineDescriptionSPARC32Bit();
} else if (addressSize == 64) {
machDesc = new MachineDescriptionSPARC64Bit();
} else {
throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
}
} else if (cpu.equals("amd64")) {
machDesc = new MachineDescriptionAMD64();
} else {
throw new DebuggerException("Solaris only supported on sparc/sparcv9/x86/amd64");
}
dbg.setMachineDescription(machDesc);
}
private void connectRemoteDebugger() throws DebuggerException {
RemoteDebugger remote =
(RemoteDebugger) RMIHelper.lookup(debugServerID);
debugger = new RemoteDebuggerClient(remote);
machDesc = ((RemoteDebuggerClient) debugger).getMachineDescription();
os = debugger.getOS();
if (os.equals("solaris")) {
setupJVMLibNamesSolaris();
} else if (os.equals("win32")) {
setupJVMLibNamesWin32();
} else if (os.equals("linux")) {
setupJVMLibNamesLinux();
} else if (os.equals("bsd")) {
setupJVMLibNamesBsd();
} else {
throw new RuntimeException("Unknown OS type");
}
cpu = debugger.getCPU();
}
private void setupJVMLibNamesSolaris() {
jvmLibNames = new String[] { "libjvm.so", "libjvm_g.so", "gamma_g" };
saLibNames = new String[] { "libsa.so", "libsa_g.so" };
}
//
// Win32
//
private void setupDebuggerWin32() {
setupJVMLibNamesWin32();
if (cpu.equals("x86")) {
machDesc = new MachineDescriptionIntelX86();
} else if (cpu.equals("amd64")) {
machDesc = new MachineDescriptionAMD64();
} else if (cpu.equals("ia64")) {
machDesc = new MachineDescriptionIA64();
} else {
throw new DebuggerException("Win32 supported under x86, amd64 and ia64 only");
}
// Note we do not use a cache for the local debugger in server
// mode; it will be taken care of on the client side (once remote
// debugging is implemented).
debugger = new WindbgDebuggerLocal(machDesc, !isServer);
attachDebugger();
}
private void setupJVMLibNamesWin32() {
jvmLibNames = new String[] { "jvm.dll", "jvm_g.dll" };
saLibNames = new String[] { "sa.dll", "sa_g.dll" };
}
//
// Linux
//
private void setupDebuggerLinux() {
setupJVMLibNamesLinux();
if (cpu.equals("x86")) {
machDesc = new MachineDescriptionIntelX86();
} else if (cpu.equals("ia64")) {
machDesc = new MachineDescriptionIA64();
} else if (cpu.equals("amd64")) {
machDesc = new MachineDescriptionAMD64();
} else if (cpu.equals("sparc")) {
if (LinuxDebuggerLocal.getAddressSize()==8) {
machDesc = new MachineDescriptionSPARC64Bit();
} else {
machDesc = new MachineDescriptionSPARC32Bit();
}
} else {
try {
machDesc = (MachineDescription)
Class.forName("sun.jvm.hotspot.debugger.MachineDescription" +
cpu.toUpperCase()).newInstance();
} catch (Exception e) {
throw new DebuggerException("unsupported machine type");
}
}
// Note we do not use a cache for the local debugger in server
// mode; it will be taken care of on the client side (once remote
// debugging is implemented).
debugger = new LinuxDebuggerLocal(machDesc, !isServer);
attachDebugger();
}
private void setupJVMLibNamesLinux() {
// same as solaris
setupJVMLibNamesSolaris();
}
//
// BSD
//
private void setupDebuggerBsd() {
setupJVMLibNamesBsd();
if (cpu.equals("x86")) {
machDesc = new MachineDescriptionIntelX86();
} else if (cpu.equals("amd64") || (cpu.equals("x86_64"))) {
machDesc = new MachineDescriptionAMD64();
} else {
throw new DebuggerException("Bsd only supported on x86/x86_64. Current arch: " + cpu);
}
// Note we do not use a cache for the local debugger in server
// mode; it will be taken care of on the client side (once remote
// debugging is implemented).
debugger = new BsdDebuggerLocal(machDesc, !isServer);
attachDebugger();
}
private void setupJVMLibNamesBsd() {
// same as solaris
setupJVMLibNamesSolaris();
}
/** Convenience routine which should be called by per-platform
debugger setup. Should not be called when startupMode is
REMOTE_MODE. */
private void attachDebugger() {
if (startupMode == PROCESS_MODE) {
debugger.attach(pid);
} else if (startupMode == CORE_FILE_MODE) {
debugger.attach(executableName, coreFileName);
} else {
throw new DebuggerException("Should not call attach() for startupMode == " + startupMode);
}
}
}

View File

@@ -1,55 +0,0 @@
/*
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import sun.jvm.hotspot.oops.*;
/** Wrapper class which describes line number information for Java
class files. The line number table is converted into this
representation on demand. These objects are then sorted by line
number for fast lookup when setting breakpoints in a particular
source file. */
public class JavaLineNumberInfo {
private InstanceKlass klass;
private Method method;
private int startBCI;
private int lineNumber;
public JavaLineNumberInfo(InstanceKlass klass,
Method method,
int startBCI,
int lineNumber) {
this.klass = klass;
this.method = method;
this.startBCI = startBCI;
this.lineNumber = lineNumber;
}
public InstanceKlass getKlass() { return klass; }
public Method getMethod() { return method; }
public int getStartBCI() { return startBCI; }
public int getLineNumber() { return lineNumber; }
}

View File

@@ -1,52 +0,0 @@
/*
* Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import sun.jvm.hotspot.ui.*;
/** The main class for the BugSpot debugger. */
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("BugSpot");
frame.setSize(800, 600);
BugSpot db = new BugSpot();
db.setMDIMode(true);
db.build();
frame.setJMenuBar(db.getMenuBar());
frame.getContentPane().add(db);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
GraphicsUtilities.reshapeToAspectRatio(frame,
4.0f/3.0f, 0.85f, Toolkit.getDefaultToolkit().getScreenSize());
GraphicsUtilities.centerInContainer(frame,
Toolkit.getDefaultToolkit().getScreenSize());
frame.setVisible(true);
}
}

View File

@@ -1,96 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.debugger.cdbg.*;
/** Helper class for locating a program counter. Indicates the
confidence of the find. */
public class PCFinder {
public static final int LOW_CONFIDENCE = 1;
public static final int HIGH_CONFIDENCE = 2;
public static class Info {
private String name;
private long offset;
private int confidence;
public Info(String name, long offset, int confidence) {
this.name = name;
this.offset = offset;
this.confidence = confidence;
}
/** May be null */
public String getName() { return name; }
/** If this is -1, a symbol could not be found, and the offset
should not be shown */
public long getOffset() { return offset; }
/** PCFinder.LOW_CONFIDENCE or PCFinder.HIGH_CONFIDENCE */
public int getConfidence() { return confidence; }
}
/** Passed loadobject may be null in which case the returned Info
object has low confidence */
public static Info findPC(Address pc, LoadObject lo, CDebugger dbg) {
if (lo == null) {
return new Info(null, -1, LOW_CONFIDENCE);
}
// First try debug info
BlockSym sym = lo.debugInfoForPC(pc);
while (sym != null) {
if (sym.isFunction()) {
// Highest confidence
return new Info(sym.toString(), pc.minus(sym.getAddress()), HIGH_CONFIDENCE);
}
}
// Now try looking up symbol in loadobject
// FIXME: must add support for mapfiles on Win32 and try looking
// up there first if possible. Should we hide that behind
// LoadObject.closestSymbolToPC and have the ClosestSymbol return
// confidence? I think so. On Solaris there is no notion of a
// mapfile, and the confidence for closestSymbolToPC will be high
// instead of low.
int confidence = HIGH_CONFIDENCE;
ClosestSymbol cs = lo.closestSymbolToPC(pc);
if (cs != null) {
// FIXME: currently low confidence (only on Win32)
return new Info(cs.getName() + "()", cs.getOffset(), LOW_CONFIDENCE);
}
// Unknown location
return new Info(dbg.getNameOfFile(lo.getName()).toUpperCase() +
"! " + pc + "()", -1, HIGH_CONFIDENCE);
}
}

View File

@@ -1,89 +0,0 @@
/*
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.io.*;
/** Scans a .java file for the package that it is in. */
public class PackageScanner {
public PackageScanner() {
}
public String scan(String filename) {
return scan(new File(filename));
}
/** Returns the String comprising the package name of the classes in
this .java file. Returns the (non-null) empty string if any
error occurs or if the classes are in the unnamed package. */
public String scan(File file) {
BufferedReader buf = null;
String res = "";
try {
buf = new BufferedReader(new FileReader(file));
StreamTokenizer tok = new StreamTokenizer(buf);
tok.slashStarComments(true);
tok.slashSlashComments(true);
if (tok.nextToken() != StreamTokenizer.TT_WORD) {
return res;
}
if (!tok.sval.equals("package")) {
return res;
}
if (tok.nextToken() != StreamTokenizer.TT_WORD) {
return res;
}
res = tok.sval;
return res;
} catch (FileNotFoundException e) {
return res;
} catch (IOException e) {
return res;
} finally {
try {
if (buf != null) {
buf.close();
}
} catch (IOException e) {
}
}
}
public static void main(String[] args) {
if (args.length != 1) {
usage();
}
System.out.println(new PackageScanner().scan(args[0]));
}
private static void usage() {
System.err.println("Usage: java PackageScanner <.java file name>");
System.err.println("Prints package the .java file is in to stdout.");
System.exit(1);
}
}

View File

@@ -1,173 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import sun.jvm.hotspot.debugger.*;
/** Displays registers in a window. FIXME: this will need more work to
understand and handle register windows. */
public class RegisterPanel extends JPanel {
private java.util.List/*<RegisterInfo>*/ registers;
private AbstractTableModel dataModel;
private boolean valid;
private boolean editable;
private String nullAddressString;
private ThreadProxy curThread;
private JTable table;
static class RegisterInfo {
private String name;
private Address value;
RegisterInfo(String name, Address value) {
this.name = name;
this.value = value;
}
String getName() { return name; }
Address getValue() { return value; }
}
public RegisterPanel() {
super();
registers = new ArrayList();
dataModel = new AbstractTableModel() {
public int getColumnCount() { return 2; }
public int getRowCount() { return registers.size(); }
public String getColumnName(int col) {
switch (col) {
case 0:
return "Register Name";
case 1:
return "Register Value";
default:
throw new RuntimeException("Index " + col + " out of bounds");
}
}
public Object getValueAt(int row, int col) {
RegisterInfo info = (RegisterInfo) registers.get(row);
switch (col) {
case 0:
return info.getName();
case 1:
if (valid) {
Address val = info.getValue();
if (val != null) {
return val;
} else {
return nullAddressString;
}
} else {
return "-";
}
default:
throw new RuntimeException("Index (" + col + ", " + row + ") out of bounds");
}
}
public boolean isCellEditable(int row, int col) {
if (col == 0) return false;
if (!valid) return false;
if (curThread == null) return false;
if (!curThread.canSetContext()) return false;
// FIXME: add listener to watch for register changes
// return true;
return false;
}
};
// Build user interface
setLayout(new BorderLayout());
table = new JTable(dataModel);
table.setCellSelectionEnabled(true);
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
table.setDragEnabled(true);
JTableHeader header = table.getTableHeader();
header.setReorderingAllowed(false);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
}
/** Updates the register panel with the register set from the
specified thread. Call this when the process has been suspended
and the current thread has been set. FIXME: this interface will
need to change to support register windows. */
public void update(ThreadProxy curThread) {
this.curThread = curThread;
ThreadContext context = curThread.getContext();
editable = curThread.canSetContext();
registers.clear();
for (int i = 0; i < context.getNumRegisters(); i++) {
String name = context.getRegisterName(i);
Address addr = context.getRegisterAsAddress(i);
if ((nullAddressString == null) && (addr != null)) {
String addrStr = addr.toString();
StringBuffer buf = new StringBuffer();
buf.append("0x");
int len = addrStr.length() - 2;
for (int j = 0; j < len; j++) {
buf.append("0");
}
nullAddressString = buf.toString();
}
registers.add(new RegisterInfo(name, addr));
}
valid = true;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
dataModel.fireTableDataChanged();
}
});
}
/** Clears the registers' values. Call this when the processs has
been resumed. */
public void clear() {
valid = false;
nullAddressString = null;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
dataModel.fireTableDataChanged();
}
});
}
public void setFont(Font font) {
super.setFont(font);
if (table != null) {
table.setFont(font);
}
}
}

View File

@@ -1,87 +0,0 @@
/*
* Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.runtime.*;
/** This class describes a frame in a stack trace. It abstracts over
C/C++ and Java frames. */
public class StackTraceEntry {
private CFrame cFrame;
private CDebugger dbg;
private JavaVFrame javaFrame;
private String value; // What is displayed in a stack trace
// For merging C and Java stack traces.
// For more precise stack traces, should probably have a way to
// convert a CFrame to a sun.jvm.hotspot.runtime.Frame. For now,
// doing similar algorithm to jdbx (which does not have intimate
// knowledge of the VM).
private boolean isUnknownCFrame;
public StackTraceEntry(CFrame cFrame, CDebugger dbg) {
this.cFrame = cFrame;
this.dbg = dbg;
computeValue();
}
public StackTraceEntry(JavaVFrame javaFrame) {
this.javaFrame = javaFrame;
computeValue();
}
public boolean isCFrame() { return (cFrame != null); }
public boolean isJavaFrame() { return (javaFrame != null); }
public CFrame getCFrame() { return cFrame; }
public JavaVFrame getJavaFrame() { return javaFrame; }
public boolean isUnknownCFrame() { return isUnknownCFrame; }
public String toString() {
return value;
}
private void computeValue() {
isUnknownCFrame = true;
value = "<unknown>";
if (cFrame != null) {
PCFinder.Info info = PCFinder.findPC(cFrame.pc(), cFrame.loadObjectForPC(), dbg);
if (info.getName() != null) {
value = "(C) " + info.getName();
isUnknownCFrame = false;
if (info.getConfidence() == PCFinder.LOW_CONFIDENCE) {
value = value + " (?)";
}
if (info.getOffset() >= 0) {
value = value + " + 0x" + Long.toHexString(info.getOffset());
}
}
} else if (javaFrame != null) {
isUnknownCFrame = false;
Method m = javaFrame.getMethod();
value = "(J) " + m.externalNameAndSignature();
}
}
}

View File

@@ -1,115 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.ui.*;
/** This panel contains a ListBox with all of the stack frames in a
given thread. When a given entry is selected, an event is
fired. */
public class StackTracePanel extends JPanel {
public interface Listener {
public void frameChanged(CFrame fr, JavaVFrame jfr);
}
class Model extends AbstractListModel implements ComboBoxModel {
private Object selectedItem;
public Object getElementAt(int index) {
if (trace == null) return null;
return trace.get(index);
}
public int getSize() {
if (trace == null) return 0;
return trace.size();
}
public Object getSelectedItem() {
return selectedItem;
}
public void setSelectedItem(Object item) {
selectedItem = item;
}
public void dataChanged() {
fireContentsChanged(this, 0, trace.size());
}
}
private java.util.List trace;
private Model model;
private JComboBox list;
private java.util.List listeners;
public StackTracePanel() {
super();
model = new Model();
// Build user interface
setLayout(new BorderLayout());
setBorder(GraphicsUtilities.newBorder(5));
list = new JComboBox(model);
list.setPrototypeDisplayValue("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
add(list, BorderLayout.CENTER);
// Add selection listener
list.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
fireFrameChanged();
}
}
});
}
/** Takes a List of StackTraceEntry objects */
public void setTrace(java.util.List trace) {
this.trace = trace;
model.dataChanged();
list.setSelectedIndex(0);
fireFrameChanged();
}
public void addListener(Listener listener) {
if (listeners == null) {
listeners = new ArrayList();
}
listeners.add(listener);
}
protected void fireFrameChanged() {
if (listeners != null) {
StackTraceEntry entry = (StackTraceEntry) trace.get(list.getSelectedIndex());
for (Iterator iter = listeners.iterator(); iter.hasNext(); ) {
((Listener) iter.next()).frameChanged(entry.getCFrame(), entry.getJavaFrame());
}
}
}
}

View File

@@ -1,237 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.ui.*;
// NOTE: this class was not placed in sun.jvm.hotspot.ui to prevent
// mixing components designed for C and C++ debugging with the ones
// that work with the core serviceability agent functionality (which
// does not require that the CDebugger interface be implemented).
/** The ThreadListPanel is used for C and C++ debugging and can
visualize all threads in the target process. The caller passes in
a CDebugger attached to the target process and can request that
JavaThreads' associations with these underlying threads be
displayed; this option is only valid when attached to a HotSpot
JVM and when the {@link sun.jvm.hotspot.runtime.VM} has been
initialized. */
public class ThreadListPanel extends JPanel {
/** Listener which can be added to receive "Set Focus" events */
public static interface Listener {
/** ThreadProxy will always be provided; JavaThread will only be
present if displayJavaThreads was specified in the constructor
for the panel and the thread was a JavaThread. */
public void setFocus(ThreadProxy thread, JavaThread jthread);
}
static class ThreadInfo {
private ThreadProxy thread;
// Distinguish between PC == null and no top frame
private boolean gotPC;
private Address pc;
private String location;
private JavaThread javaThread;
private String javaThreadName;
public ThreadInfo(ThreadProxy thread, CDebugger dbg, JavaThread jthread) {
this.thread = thread;
this.location = "<unknown>";
CFrame fr = dbg.topFrameForThread(thread);
if (fr != null) {
gotPC = true;
pc = fr.pc();
PCFinder.Info info = PCFinder.findPC(pc, fr.loadObjectForPC(), dbg);
if (info.getName() != null) {
location = info.getName();
if (info.getConfidence() == PCFinder.LOW_CONFIDENCE) {
location = location + " (?)";
}
if (info.getOffset() < 0) {
location = location + " + 0x" + Long.toHexString(info.getOffset());
}
}
}
if (jthread != null) {
javaThread = jthread;
javaThreadName = jthread.getThreadName();
}
}
public ThreadProxy getThread() { return thread; }
public boolean hasPC() { return gotPC; }
public Address getPC() { return pc; }
public String getLocation() { return location; }
public boolean isJavaThread() { return (javaThread != null); }
public JavaThread getJavaThread() { return javaThread; }
public String getJavaThreadName() { return javaThreadName; }
}
// List<ThreadInfo>
private java.util.List threadList;
private JTable table;
private AbstractTableModel dataModel;
// List<Listener>
private java.util.List listeners;
/** Takes a CDebugger from which the thread list is queried.
displayJavaThreads must only be set to true if the debugger is
attached to a HotSpot JVM and if the VM has already been
initialized. */
public ThreadListPanel(CDebugger dbg, final boolean displayJavaThreads) {
super();
Map threadToJavaThreadMap = null;
if (displayJavaThreads) {
// Collect Java threads from virtual machine and insert them in
// table for later querying
threadToJavaThreadMap = new HashMap();
Threads threads = VM.getVM().getThreads();
for (JavaThread thr = threads.first(); thr != null; thr = thr.next()) {
threadToJavaThreadMap.put(thr.getThreadProxy(), thr);
}
}
java.util.List/*<ThreadProxy>*/ threads = dbg.getThreadList();
threadList = new ArrayList(threads.size());
for (Iterator iter = threads.iterator(); iter.hasNext(); ) {
ThreadProxy thr = (ThreadProxy) iter.next();
JavaThread jthr = null;
if (displayJavaThreads) {
jthr = (JavaThread) threadToJavaThreadMap.get(thr);
}
threadList.add(new ThreadInfo(thr, dbg, jthr));
}
// Thread ID, current PC, current symbol, Java Thread, [Java thread name]
dataModel = new AbstractTableModel() {
public int getColumnCount() { return (displayJavaThreads ? 5 : 3); }
public int getRowCount() { return threadList.size(); }
public String getColumnName(int col) {
switch (col) {
case 0:
return "Thread ID";
case 1:
return "PC";
case 2:
return "Location";
case 3:
return "Java?";
case 4:
return "Java Thread Name";
default:
throw new RuntimeException("Index " + col + " out of bounds");
}
}
public Object getValueAt(int row, int col) {
ThreadInfo info = (ThreadInfo) threadList.get(row);
switch (col) {
case 0:
return info.getThread();
case 1:
{
if (info.hasPC()) {
return info.getPC();
}
return "<no frames on stack>";
}
case 2:
return info.getLocation();
case 3:
if (info.isJavaThread()) {
return "Yes";
} else {
return "";
}
case 4:
if (info.isJavaThread()) {
return info.getJavaThreadName();
} else {
return "";
}
default:
throw new RuntimeException("Index (" + col + ", " + row + ") out of bounds");
}
}
};
// Build user interface
setLayout(new BorderLayout());
table = new JTable(dataModel);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JTableHeader header = table.getTableHeader();
header.setReorderingAllowed(false);
table.setRowSelectionAllowed(true);
table.setColumnSelectionAllowed(false);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
if (threadList.size() > 0) {
table.setRowSelectionInterval(0, 0);
}
JButton button = new JButton("Set Focus");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int i = table.getSelectedRow();
if (i < 0) {
return;
}
ThreadInfo info = (ThreadInfo) threadList.get(i);
for (Iterator iter = listeners.iterator(); iter.hasNext(); ) {
((Listener) iter.next()).setFocus(info.getThread(), info.getJavaThread());
}
}
});
JPanel focusPanel = new JPanel();
focusPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
focusPanel.setLayout(new BoxLayout(focusPanel, BoxLayout.Y_AXIS));
focusPanel.add(Box.createGlue());
focusPanel.add(button);
focusPanel.add(Box.createGlue());
add(focusPanel, BorderLayout.EAST);
// FIXME: make listener model for the debugger so if the user
// specifies a mapfile for or path to a given DSO later we can
// update our state
}
public void addListener(Listener l) {
if (listeners == null) {
listeners = new ArrayList();
}
listeners.add(l);
}
}

View File

@@ -1,252 +0,0 @@
/*
* Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.bugspot.tree.*;
import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.ui.tree.*;
import sun.jvm.hotspot.ui.treetable.*;
/** Manages display of a set of local variables in a frame, or the
contents of the "this" pointer */
public class VariablePanel extends JPanel {
private JTreeTable treeTable;
private SimpleTreeTableModel model;
private SimpleTreeGroupNode root;
public VariablePanel() {
super();
model = new SimpleTreeTableModel();
model.setValuesEditable(false);
root = new SimpleTreeGroupNode();
model.setRoot(root);
treeTable = new JTreeTable(model);
treeTable.setRootVisible(false);
treeTable.setShowsRootHandles(true);
treeTable.setShowsIcons(false);
treeTable.setTreeEditable(false);
treeTable.getTableHeader().setReorderingAllowed(false);
treeTable.setCellSelectionEnabled(true);
treeTable.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
treeTable.setDragEnabled(true);
JScrollPane sp = new JScrollPane(treeTable);
sp.getViewport().setBackground(Color.white);
setLayout(new BorderLayout());
add(sp, BorderLayout.CENTER);
}
/** Clear the contents of this VariablePanel */
public void clear() {
root.removeAllChildren();
model.fireTreeStructureChanged();
}
/** Update the contents of this VariablePanel from the given CFrame */
public void update(CFrame fr) {
// Collect locals
CCollector coll = new CCollector();
fr.iterateLocals(coll);
update(coll);
}
/** Update the contents of this VariablePanel from the given JavaVFrame */
public void update(JavaVFrame jfr) {
Method m = jfr.getMethod();
if (!m.hasLocalVariableTable()) {
return;
}
int bci = jfr.getBCI();
// Get local variable table
LocalVariableTableElement[] locals = m.getLocalVariableTable();
// Get locals as StackValueCollection
StackValueCollection coll = jfr.getLocals();
root.removeAllChildren();
// See which locals are live
for (int i = 0; i < locals.length; i++) {
LocalVariableTableElement local = locals[i];
if (local.getStartBCI() <= bci && bci < local.getStartBCI() + local.getLength()) {
// Valid; add it
SimpleTreeNode node = null;
Symbol name = null;
try {
name = m.getConstants().getSymbolAt(local.getNameCPIndex());
if (name == null) {
System.err.println("Null name at slot " +
local.getNameCPIndex() +
" for local variable at slot " +
local.getSlot());
continue;
}
} catch (Exception e) {
System.err.println("Unable to fetch name at slot " +
local.getNameCPIndex() +
" for local variable at slot " +
local.getSlot());
e.printStackTrace();
continue;
}
sun.jvm.hotspot.oops.NamedFieldIdentifier f =
new sun.jvm.hotspot.oops.NamedFieldIdentifier(name.asString());
Symbol descriptor = null;
try {
descriptor = m.getConstants().getSymbolAt(local.getDescriptorCPIndex());
} catch (Exception e) {
System.err.println("Unable to fetch descriptor at slot " +
local.getDescriptorCPIndex() +
" for local variable " + f.getName() +
" at slot " + local.getSlot());
e.printStackTrace();
continue;
}
if (descriptor != null) {
switch (descriptor.getByteAt(0)) {
case 'F': {
node = new sun.jvm.hotspot.ui.tree.FloatTreeNodeAdapter(coll.floatAt(local.getSlot()), f, true);
break;
}
case 'D': {
node = new sun.jvm.hotspot.ui.tree.DoubleTreeNodeAdapter(coll.doubleAt(local.getSlot()), f, true);
break;
}
case 'C': {
node = new sun.jvm.hotspot.ui.tree.CharTreeNodeAdapter((char) coll.intAt(local.getSlot()), f, true);
break;
}
case 'B':
case 'S':
case 'I': {
node = new sun.jvm.hotspot.ui.tree.LongTreeNodeAdapter(coll.intAt(local.getSlot()), f, true);
break;
}
case 'Z': {
node = new sun.jvm.hotspot.ui.tree.BooleanTreeNodeAdapter(
((coll.intAt(local.getSlot()) != 0) ? true : false), f, true
);
break;
}
case 'J': {
node = new sun.jvm.hotspot.ui.tree.LongTreeNodeAdapter(coll.longAt(local.getSlot()), f, true);
break;
}
default: {
try {
node = new sun.jvm.hotspot.ui.tree.OopTreeNodeAdapter(
VM.getVM().getObjectHeap().newOop(coll.oopHandleAt(local.getSlot())), f, true
);
} catch (AddressException e) {
node = new sun.jvm.hotspot.ui.tree.FieldTreeNodeAdapter(f, true) {
public int getChildCount() { return 0; }
public SimpleTreeNode getChild(int i) { return null; }
public boolean isLeaf() { return false; }
public int getIndexOfChild(SimpleTreeNode child) { return 0; }
public String getValue() {
return "<Bad oop>";
}
};
}
break;
}
}
if (node != null) {
root.addChild(node);
}
}
}
}
model.fireTreeStructureChanged();
}
/** Update the contents of this VariablePanel from the given "this"
pointer of the given type */
public void update(Address thisAddr, Type type) {
// Collect fields
CCollector coll = new CCollector();
type.iterateObject(thisAddr, coll);
update(coll);
}
private void update(CCollector coll) {
root.removeAllChildren();
for (int i = 0; i < coll.getNumChildren(); i++) {
root.addChild(coll.getChild(i));
}
model.fireTreeStructureChanged();
}
static class CCollector extends DefaultObjectVisitor {
private java.util.List children;
public CCollector() {
children = new ArrayList();
}
public int getNumChildren() {
return children.size();
}
public SimpleTreeNode getChild(int i) {
return (SimpleTreeNode) children.get(i);
}
public void doBit(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, long val) {
children.add(new sun.jvm.hotspot.bugspot.tree.LongTreeNodeAdapter(val, f, true));
}
public void doInt(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, long val) {
children.add(new sun.jvm.hotspot.bugspot.tree.LongTreeNodeAdapter(val, f, true));
}
public void doEnum(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, long val, String enumName) {
children.add(new sun.jvm.hotspot.bugspot.tree.EnumTreeNodeAdapter(enumName, val, f, true));
}
public void doFloat(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, float val) {
children.add(new sun.jvm.hotspot.bugspot.tree.FloatTreeNodeAdapter(val, f, true));
}
public void doDouble(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, double val) {
children.add(new sun.jvm.hotspot.bugspot.tree.DoubleTreeNodeAdapter(val, f, true));
}
public void doPointer(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, Address val) {
children.add(new sun.jvm.hotspot.bugspot.tree.AddressTreeNodeAdapter(val, f, true));
}
public void doArray(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, Address val) {
children.add(new sun.jvm.hotspot.bugspot.tree.AddressTreeNodeAdapter(val, f, true));
}
public void doRef(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, Address val) {
children.add(new sun.jvm.hotspot.bugspot.tree.AddressTreeNodeAdapter(val, f, true));
}
public void doCompound(sun.jvm.hotspot.debugger.cdbg.FieldIdentifier f, Address val) {
children.add(new sun.jvm.hotspot.bugspot.tree.ObjectTreeNodeAdapter(val, f, true));
}
}
}

View File

@@ -1,67 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot.tree;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.ui.tree.SimpleTreeNode;
/** Encapsulates a float value in a tree handled by SimpleTreeModel */
public class AddressTreeNodeAdapter extends FieldTreeNodeAdapter {
private Address val;
public AddressTreeNodeAdapter(Address val, FieldIdentifier id) {
this(val, id, false);
}
public AddressTreeNodeAdapter(Address val, FieldIdentifier id, boolean treeTableMode) {
super(id, treeTableMode);
this.val = val;
}
public int getChildCount() {
return 0;
}
public SimpleTreeNode getChild(int index) {
return null;
}
public boolean isLeaf() {
return true;
}
public int getIndexOfChild(SimpleTreeNode child) {
return 0;
}
public String getValue() {
if (val != null) {
return val.toString();
}
return "NULL";
}
}

View File

@@ -1,63 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot.tree;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.ui.tree.SimpleTreeNode;
/** Encapsulates a double value in a tree handled by SimpleTreeModel */
public class DoubleTreeNodeAdapter extends FieldTreeNodeAdapter {
private double val;
public DoubleTreeNodeAdapter(double val, FieldIdentifier id) {
this(val, id, false);
}
public DoubleTreeNodeAdapter(double val, FieldIdentifier id, boolean treeTableMode) {
super(id, treeTableMode);
this.val = val;
}
public int getChildCount() {
return 0;
}
public SimpleTreeNode getChild(int index) {
return null;
}
public boolean isLeaf() {
return true;
}
public int getIndexOfChild(SimpleTreeNode child) {
return 0;
}
public String getValue() {
return Double.toString(val);
}
}

View File

@@ -1,69 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot.tree;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.ui.tree.SimpleTreeNode;
/** Encapsulates an enumerated value in a tree handled by SimpleTreeModel */
public class EnumTreeNodeAdapter extends FieldTreeNodeAdapter {
private long val;
private String enumName;
public EnumTreeNodeAdapter(String enumName, long val, FieldIdentifier id) {
this(enumName, val, id, false);
}
public EnumTreeNodeAdapter(String enumName, long val, FieldIdentifier id, boolean treeTableMode) {
super(id, treeTableMode);
this.enumName = enumName;
this.val = val;
}
public int getChildCount() {
return 0;
}
public SimpleTreeNode getChild(int index) {
return null;
}
public boolean isLeaf() {
return true;
}
public int getIndexOfChild(SimpleTreeNode child) {
return 0;
}
public String getValue() {
if (enumName != null) {
return enumName;
} else {
return Long.toString(val);
}
}
}

View File

@@ -1,73 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot.tree;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.ui.tree.SimpleTreeNode;
/** Abstract base class for all adapters for fields of C/C++ objects */
public abstract class FieldTreeNodeAdapter implements SimpleTreeNode {
private FieldIdentifier id;
private boolean treeTableMode;
/** The identifier may be null, i.e., for the root of the tree */
public FieldTreeNodeAdapter(FieldIdentifier id, boolean treeTableMode) {
this.id = id;
this.treeTableMode = treeTableMode;
}
public FieldIdentifier getID() {
return id;
}
/** Defaults to false in subclasses */
public boolean getTreeTableMode() {
return treeTableMode;
}
public Type getType() {
return getID().getType();
}
public String getName() {
if (getID() != null) {
return getID().toString();
}
return "";
}
public String toString() {
if (treeTableMode) {
return getName();
} else {
if (getID() != null) {
return getName() + ": " + getValue();
} else {
return getValue();
}
}
}
}

View File

@@ -1,63 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot.tree;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.ui.tree.SimpleTreeNode;
/** Encapsulates a long value in a tree handled by SimpleTreeModel */
public class LongTreeNodeAdapter extends FieldTreeNodeAdapter {
private long val;
public LongTreeNodeAdapter(long val, FieldIdentifier id) {
this(val, id, false);
}
public LongTreeNodeAdapter(long val, FieldIdentifier id, boolean treeTableMode) {
super(id, treeTableMode);
this.val = val;
}
public int getChildCount() {
return 0;
}
public SimpleTreeNode getChild(int index) {
return null;
}
public boolean isLeaf() {
return true;
}
public int getIndexOfChild(SimpleTreeNode child) {
return 0;
}
public String getValue() {
return Long.toString(val);
}
}

View File

@@ -1,216 +0,0 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.bugspot.tree;
import java.io.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.debugger.cdbg.*;
import sun.jvm.hotspot.ui.tree.SimpleTreeNode;
/** An adapter class which allows C/C++ objects to be displayed in a
tree via the SimpleTreeNode interface. */
public class ObjectTreeNodeAdapter extends FieldTreeNodeAdapter {
// Address of object
private Address addr;
/** The address may be null (for object fields of objcets which are
null). The FieldIdentifier should not be null. treeTableMode
defaults to false. */
public ObjectTreeNodeAdapter(Address addr, FieldIdentifier id) {
this(addr, id, false);
}
/** The address may be null (for object fields of objcets which are
null). The FieldIdentifier should not be null. */
public ObjectTreeNodeAdapter(Address addr, FieldIdentifier id, boolean treeTableMode) {
super(id, treeTableMode);
this.addr = addr;
}
public int getChildCount() {
if (addr == null) {
return 0;
}
Counter c = new Counter();
getType().iterateObject(addr, c);
return c.getNumFields();
}
public SimpleTreeNode getChild(int index) {
if (addr == null) {
return null;
}
Fetcher f = new Fetcher(index);
getType().iterateObject(addr, f);
return f.getChild();
}
public boolean isLeaf() {
return (addr == null);
}
public int getIndexOfChild(SimpleTreeNode child) {
FieldIdentifier id = ((FieldTreeNodeAdapter) child).getID();
Finder f = new Finder(id);
getType().iterateObject(addr, f);
return f.getIndex();
}
public String getValue() {
if (addr != null) {
return addr.toString();
}
return "NULL";
}
/** Should be used only once, then have the number of fields
fetched. */
static class Counter extends DefaultObjectVisitor {
private int numFields;
public int getNumFields() {
return numFields;
}
public void doBit(FieldIdentifier f, long val) { ++numFields; }
public void doInt(FieldIdentifier f, long val) { ++numFields; }
public void doEnum(FieldIdentifier f, long val, String enumName) { ++numFields; }
public void doFloat(FieldIdentifier f, float val) { ++numFields; }
public void doDouble(FieldIdentifier f, double val) { ++numFields; }
public void doPointer(FieldIdentifier f, Address val) { ++numFields; }
public void doArray(FieldIdentifier f, Address val) { ++numFields; }
public void doRef(FieldIdentifier f, Address val) { ++numFields; }
public void doCompound(FieldIdentifier f, Address addr) { ++numFields; }
}
/** Creates a new SimpleTreeNode for the given field. */
class Fetcher extends DefaultObjectVisitor {
private int index;
private int curField;
private SimpleTreeNode child;
public Fetcher(int index) {
this.index = index;
}
public SimpleTreeNode getChild() {
return child;
}
public void doBit(FieldIdentifier f, long val) {
if (curField == index) {
child = new LongTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doInt(FieldIdentifier f, long val) {
if (curField == index) {
child = new LongTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doEnum(FieldIdentifier f, long val, String enumName) {
if (curField == index) {
child = new EnumTreeNodeAdapter(enumName, val, f, getTreeTableMode());
}
++curField;
}
public void doFloat(FieldIdentifier f, float val) {
if (curField == index) {
child = new FloatTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doDouble(FieldIdentifier f, double val) {
if (curField == index) {
child = new DoubleTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doPointer(FieldIdentifier f, Address val) {
if (curField == index) {
child = new AddressTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doArray(FieldIdentifier f, Address val) {
if (curField == index) {
child = new AddressTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doRef(FieldIdentifier f, Address val) {
if (curField == index) {
child = new AddressTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
public void doCompound(FieldIdentifier f, Address val) {
if (curField == index) {
child = new ObjectTreeNodeAdapter(val, f, getTreeTableMode());
}
++curField;
}
}
/** Finds the index of the given FieldIdentifier. */
static class Finder extends DefaultObjectVisitor {
private FieldIdentifier id;
private int curField;
private int index = -1;
public Finder(FieldIdentifier id) {
this.id = id;
}
/** Returns -1 if not found */
public int getIndex() {
return index;
}
public void doBit(FieldIdentifier f, long val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doInt(FieldIdentifier f, long val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doEnum(FieldIdentifier f, long val,
String enumName) { if (f.equals(id)) { index = curField; } ++curField; }
public void doFloat(FieldIdentifier f, float val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doDouble(FieldIdentifier f, double val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doPointer(FieldIdentifier f, Address val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doArray(FieldIdentifier f, Address val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doRef(FieldIdentifier f, Address val) { if (f.equals(id)) { index = curField; } ++curField; }
public void doCompound(FieldIdentifier f,
Address val) { if (f.equals(id)) { index = curField; } ++curField; }
}
}

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/
@@ -50,4 +50,8 @@ public class ciBaseObject extends VMObject {
public ciBaseObject(Address addr) {
super(addr);
}
public void dumpReplayData(PrintStream out) {
out.println("# Unknown ci type " + getAddress().getAddressAt(0));
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2012, 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
@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/
@@ -60,4 +60,8 @@ public class ciConstant extends VMObject {
public ciConstant(Address addr) {
super(addr);
}
public void dumpReplayData(PrintStream out) {
// Nothing to be done
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2012, 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
@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/
@@ -74,4 +74,29 @@ public class ciEnv extends VMObject {
public CompileTask task() {
return new CompileTask(taskField.getValue(this.getAddress()));
}
public void dumpReplayData(PrintStream out) {
out.println("JvmtiExport can_access_local_variables " +
(JvmtiExport.canAccessLocalVariables() ? '1' : '0'));
out.println("JvmtiExport can_hotswap_or_post_breakpoint " +
(JvmtiExport.canHotswapOrPostBreakpoint() ? '1' : '0'));
out.println("JvmtiExport can_post_on_exceptions " +
(JvmtiExport.canPostOnExceptions() ? '1' : '0'));
GrowableArray<ciMetadata> objects = factory().objects();
out.println("# " + objects.length() + " ciObject found");
for (int i = 0; i < objects.length(); i++) {
ciMetadata o = objects.at(i);
out.println("# ciMetadata" + i + " @ " + o);
o.dumpReplayData(out);
}
CompileTask task = task();
Method method = task.method();
int entryBci = task.osrBci();
Klass holder = method.getMethodHolder();
out.println("compile " + holder.getName().asString() + " " +
OopUtilities.escapeString(method.getName().asString()) + " " +
method.getSignature().asString() + " " +
entryBci);
}
}

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/
@@ -80,4 +80,84 @@ public class ciInstanceKlass extends ciKlass {
public boolean isInitialized() {
return initState() == CLASS_STATE_FULLY_INITIALIZED;
}
public void dumpReplayData(PrintStream out) {
InstanceKlass ik = (InstanceKlass)getMetadata();
ConstantPool cp = ik.getConstants();
// Try to record related loaded classes
Klass sub = ik.getSubklassKlass();
while (sub != null) {
if (sub instanceof InstanceKlass) {
out.println("instanceKlass " + sub.getName().asString());
}
sub = sub.getNextSiblingKlass();
}
final int length = (int) cp.getLength();
out.print("ciInstanceKlass " + name() + " " + (isLinked() ? 1 : 0) + " " + (isInitialized() ? 1 : 0) + " " + length);
for (int index = 1; index < length; index++) {
out.print(" " + cp.getTags().at(index));
}
out.println();
if (isInitialized()) {
Field[] staticFields = ik.getStaticFields();
for (int i = 0; i < staticFields.length; i++) {
Field f = staticFields[i];
Oop mirror = ik.getJavaMirror();
if (f.isFinal() && !f.hasInitialValue()) {
out.print("staticfield " + name() + " " +
OopUtilities.escapeString(f.getID().getName()) + " " +
f.getFieldType().getSignature().asString() + " ");
if (f instanceof ByteField) {
ByteField bf = (ByteField)f;
out.println(bf.getValue(mirror));
} else if (f instanceof BooleanField) {
BooleanField bf = (BooleanField)f;
out.println(bf.getValue(mirror) ? 1 : 0);
} else if (f instanceof ShortField) {
ShortField bf = (ShortField)f;
out.println(bf.getValue(mirror));
} else if (f instanceof CharField) {
CharField bf = (CharField)f;
out.println(bf.getValue(mirror) & 0xffff);
} else if (f instanceof IntField) {
IntField bf = (IntField)f;
out.println(bf.getValue(mirror));
} else if (f instanceof LongField) {
LongField bf = (LongField)f;
out.println(bf.getValue(mirror));
} else if (f instanceof FloatField) {
FloatField bf = (FloatField)f;
out.println(Float.floatToRawIntBits(bf.getValue(mirror)));
} else if (f instanceof DoubleField) {
DoubleField bf = (DoubleField)f;
out.println(Double.doubleToRawLongBits(bf.getValue(mirror)));
} else if (f instanceof OopField) {
OopField bf = (OopField)f;
Oop value = bf.getValue(mirror);
if (value == null) {
out.println("null");
} else if (value.isInstance()) {
Instance inst = (Instance)value;
if (inst.isA(SystemDictionary.getStringKlass())) {
out.println("\"" + OopUtilities.stringOopToEscapedString(inst) + "\"");
} else {
out.println(inst.getKlass().getName().asString());
}
} else if (value.isObjArray()) {
ObjArray oa = (ObjArray)value;
Klass ek = (ObjArrayKlass)oa.getKlass();
out.println(oa.getLength() + " " + ek.getName().asString());
} else if (value.isTypeArray()) {
TypeArray ta = (TypeArray)value;
out.println(ta.getLength());
} else {
out.println(value);
}
}
}
}
}
}
}

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/
@@ -88,4 +88,19 @@ public class ciMethod extends ciMetadata {
st.printf(" %s::%s", method.getMethodHolder().getName().asString().replace('/', '.'),
method.getName().asString());
}
public void dumpReplayData(PrintStream out) {
Method method = (Method)getMetadata();
NMethod nm = method.getNativeMethod();
Klass holder = method.getMethodHolder();
out.println("ciMethod " +
holder.getName().asString() + " " +
OopUtilities.escapeString(method.getName().asString()) + " " +
method.getSignature().asString() + " " +
method.getInvocationCounter() + " " +
method.getBackedgeCounter() + " " +
interpreterInvocationCount() + " " +
interpreterThrowoutCount() + " " +
instructionsSize());
}
}

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/
@@ -174,4 +174,52 @@ public class ciMethodData extends ciMetadata {
}
}
public void dumpReplayData(PrintStream out) {
MethodData mdo = (MethodData)getMetadata();
Method method = mdo.getMethod();
Klass holder = method.getMethodHolder();
out.print("ciMethodData " +
holder.getName().asString() + " " +
OopUtilities.escapeString(method.getName().asString()) + " " +
method.getSignature().asString() + " " +
state() + " " + currentMileage());
byte[] orig = orig();
out.print(" orig " + orig.length);
for (int i = 0; i < orig.length; i++) {
out.print(" " + (orig[i] & 0xff));
}
long[] data = data();
out.print(" data " + data.length);
for (int i = 0; i < data.length; i++) {
out.print(" 0x" + Long.toHexString(data[i]));
}
int count = 0;
for (int round = 0; round < 2; round++) {
if (round == 1) out.print(" oops " + count);
ProfileData pdata = firstData();
for ( ; isValid(pdata); pdata = nextData(pdata)) {
if (pdata instanceof ciReceiverTypeData) {
ciReceiverTypeData vdata = (ciReceiverTypeData)pdata;
for (int i = 0; i < vdata.rowLimit(); i++) {
ciKlass k = vdata.receiverAt(i);
if (k != null) {
if (round == 0) count++;
else out.print(" " + ((vdata.dp() + vdata.cellOffset(vdata.receiverCellIndex(i))) / MethodData.cellSize) + " " + k.name());
}
}
} else if (pdata instanceof ciVirtualCallData) {
ciVirtualCallData vdata = (ciVirtualCallData)pdata;
for (int i = 0; i < vdata.rowLimit(); i++) {
ciKlass k = vdata.receiverAt(i);
if (k != null) {
if (round == 0) count++;
else out.print(" " + ((vdata.dp() + vdata.cellOffset(vdata.receiverCellIndex(i))) / MethodData.cellSize + " " + k.name()));
}
}
}
}
}
out.println();
}
}

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -16,9 +16,9 @@
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
* 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.
*
*/

View File

@@ -498,6 +498,42 @@ public class NMethod extends CodeBlob {
method.getSignature().asString();
}
public void dumpReplayData(PrintStream out) {
HashMap h = new HashMap();
for (int i = 1; i < getMetadataLength(); i++) {
Metadata meta = Metadata.instantiateWrapperFor(getMetadataAt(i));
System.err.println(meta);
if (h.get(meta) != null) continue;
h.put(meta, meta);
if (meta instanceof InstanceKlass) {
((InstanceKlass)meta).dumpReplayData(out);
} else if (meta instanceof Method) {
((Method)meta).dumpReplayData(out);
MethodData mdo = ((Method)meta).getMethodData();
if (mdo != null) {
mdo.dumpReplayData(out);
}
}
}
Method method = getMethod();
if (h.get(method) == null) {
method.dumpReplayData(out);
MethodData mdo = method.getMethodData();
if (mdo != null) {
mdo.dumpReplayData(out);
}
}
if (h.get(method.getMethodHolder()) == null) {
((InstanceKlass)method.getMethodHolder()).dumpReplayData(out);
}
Klass holder = method.getMethodHolder();
out.println("compile " + holder.getName().asString() + " " +
OopUtilities.escapeString(method.getName().asString()) + " " +
method.getSignature().asString() + " " +
getEntryBCI());
}
//--------------------------------------------------------------------------------
// Internals only below this point
//

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