mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2026-01-08 09:31:42 +01:00
Compare commits
264 Commits
jb15_0_1-b
...
jb16-b246
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30eaa8187b | ||
|
|
71615ab681 | ||
|
|
7529756b3f | ||
|
|
23ec770a61 | ||
|
|
3b334e177e | ||
|
|
90ed1539b8 | ||
|
|
6790a98897 | ||
|
|
b3f094a18f | ||
|
|
1af1dd9794 | ||
|
|
35ea45dc2d | ||
|
|
8f8ca9988a | ||
|
|
ea0ba6ba51 | ||
|
|
e8229b6b08 | ||
|
|
fb763d5eac | ||
|
|
740afb3bbb | ||
|
|
886e39ecaf | ||
|
|
6eeb722807 | ||
|
|
d4baf3fadf | ||
|
|
72bf12771c | ||
|
|
914c5ebcf8 | ||
|
|
3c11f523cb | ||
|
|
889deaed02 | ||
|
|
ccac539fca | ||
|
|
3e54c9611a | ||
|
|
faf4d7ccb7 | ||
|
|
09510a15a1 | ||
|
|
086124845f | ||
|
|
985061ac28 | ||
|
|
0a38584c10 | ||
|
|
d3d29a4f82 | ||
|
|
5c76194ae9 | ||
|
|
9bac33fbc6 | ||
|
|
97b948a9b2 | ||
|
|
6b911624f2 | ||
|
|
59e3ebb4a5 | ||
|
|
65b23ca67a | ||
|
|
f4f094021c | ||
|
|
6a91c73dda | ||
|
|
ed31b661d3 | ||
|
|
3dcd1c1ab0 | ||
|
|
11ba454f39 | ||
|
|
fc1b24e4e8 | ||
|
|
e2353cc324 | ||
|
|
dfe381ae08 | ||
|
|
4d2b0b53b4 | ||
|
|
0853b33004 | ||
|
|
d308558d4f | ||
|
|
d42f541dc3 | ||
|
|
1d5ec8f363 | ||
|
|
d7b097f117 | ||
|
|
eeb4b15f06 | ||
|
|
ed05d57603 | ||
|
|
c782d0e486 | ||
|
|
db2d4e8f5a | ||
|
|
f243b281ea | ||
|
|
50e18e29e3 | ||
|
|
a6cf325152 | ||
|
|
584e983c38 | ||
|
|
c5bb023584 | ||
|
|
485194c1a7 | ||
|
|
3d1b1a6bc9 | ||
|
|
e58423796e | ||
|
|
8170244a81 | ||
|
|
28e219f038 | ||
|
|
2e09a58f64 | ||
|
|
6d137a3616 | ||
|
|
b02e4d4aba | ||
|
|
459da4aa11 | ||
|
|
4922a35c6a | ||
|
|
83fff05498 | ||
|
|
20147c36fe | ||
|
|
4506975561 | ||
|
|
e2072bba70 | ||
|
|
396146854b | ||
|
|
af51a73224 | ||
|
|
e0c26b37fd | ||
|
|
6b8bf62a75 | ||
|
|
4858141ce4 | ||
|
|
8b7c959164 | ||
|
|
ec25b42804 | ||
|
|
579ed70629 | ||
|
|
78b9de8e40 | ||
|
|
1eaa4116f5 | ||
|
|
4e962f9675 | ||
|
|
1356a0f1ac | ||
|
|
3d9bad16d1 | ||
|
|
dc63bf261b | ||
|
|
51937e18f8 | ||
|
|
00e0a60955 | ||
|
|
5fbac4a34c | ||
|
|
911c553cd2 | ||
|
|
c3ec97d41a | ||
|
|
43a2010936 | ||
|
|
637fdbc83c | ||
|
|
5699024184 | ||
|
|
7e93e03da5 | ||
|
|
bf04926d72 | ||
|
|
dc74336a65 | ||
|
|
4b85bd546e | ||
|
|
32aa66126e | ||
|
|
292a3d5722 | ||
|
|
03d47d58d6 | ||
|
|
eb78035d05 | ||
|
|
13b7c2e131 | ||
|
|
2a37607e98 | ||
|
|
f5673586b7 | ||
|
|
545d56dd42 | ||
|
|
7d54e71d38 | ||
|
|
7c3d72fd3a | ||
|
|
13750b6aca | ||
|
|
a338213bb4 | ||
|
|
2de3595895 | ||
|
|
f19db799f3 | ||
|
|
f23c983a46 | ||
|
|
622117d275 | ||
|
|
20a1e352c0 | ||
|
|
46f86477ad | ||
|
|
51b7c76a95 | ||
|
|
ba711f63ba | ||
|
|
682e836d60 | ||
|
|
5a6954abba | ||
|
|
840867efa6 | ||
|
|
fe145646e7 | ||
|
|
c07ce7eec7 | ||
|
|
55bbaf1ae1 | ||
|
|
48c0ce3b4b | ||
|
|
a25bacdd13 | ||
|
|
a793293464 | ||
|
|
5ad963cf61 | ||
|
|
9d6797019b | ||
|
|
ac4f14c386 | ||
|
|
bdab5a0a3a | ||
|
|
a0a0539b0d | ||
|
|
f6c537f8bc | ||
|
|
fc82a465d3 | ||
|
|
c0c4a8d738 | ||
|
|
57b792cba2 | ||
|
|
18cddad5a2 | ||
|
|
51ddc2adbf | ||
|
|
e7fa180e05 | ||
|
|
9ffba3002a | ||
|
|
55b472251e | ||
|
|
b87302ca99 | ||
|
|
23bbc981a6 | ||
|
|
4682835fb4 | ||
|
|
e00aa7c866 | ||
|
|
aacb827896 | ||
|
|
47e465cf1b | ||
|
|
0f2ac2021b | ||
|
|
8c20401051 | ||
|
|
a953a0f4ab | ||
|
|
a6e794b3e8 | ||
|
|
06cea107ef | ||
|
|
921155dfc7 | ||
|
|
233cac3232 | ||
|
|
9e5f6885d8 | ||
|
|
a1b5e01003 | ||
|
|
ac37a29914 | ||
|
|
3e4ad5d8d1 | ||
|
|
362f168d23 | ||
|
|
2ad638621c | ||
|
|
1e45eb3b13 | ||
|
|
95b9024ab2 | ||
|
|
0e60e8ad85 | ||
|
|
1550fd889b | ||
|
|
6b251191e0 | ||
|
|
112a4bd8bc | ||
|
|
9584e01d24 | ||
|
|
ef3b0ec567 | ||
|
|
9d6aa42a7c | ||
|
|
3797364ce9 | ||
|
|
156f6174ed | ||
|
|
a1f02d13e5 | ||
|
|
27fc8b6787 | ||
|
|
e178f0467b | ||
|
|
1aa6539576 | ||
|
|
0a6262f0b8 | ||
|
|
4076ca82d2 | ||
|
|
6986ab256d | ||
|
|
2c868d6101 | ||
|
|
4862d0d542 | ||
|
|
3192ef367a | ||
|
|
cb9d3efe5d | ||
|
|
c0b348f3ef | ||
|
|
d8219d0a78 | ||
|
|
2765410a28 | ||
|
|
a10a9284c1 | ||
|
|
88df2f0f7f | ||
|
|
f8596b57f3 | ||
|
|
e3eb38f4d2 | ||
|
|
8d9826e4d1 | ||
|
|
17f2250c5a | ||
|
|
b7e944953e | ||
|
|
3c472b6700 | ||
|
|
02201d19c6 | ||
|
|
732d8865df | ||
|
|
5adfaa3986 | ||
|
|
04adafb753 | ||
|
|
3576a88369 | ||
|
|
927a7287b7 | ||
|
|
5bd6e9d790 | ||
|
|
4ef42b9215 | ||
|
|
cd3354756a | ||
|
|
651c20d4ef | ||
|
|
a16994ff7b | ||
|
|
0bacc69a4c | ||
|
|
2627f15348 | ||
|
|
9a26a01e2f | ||
|
|
07f9376f54 | ||
|
|
1cb5a48ed7 | ||
|
|
175b597ad2 | ||
|
|
4f2edacaaf | ||
|
|
34c79640e7 | ||
|
|
1d87958ead | ||
|
|
44d4e37ccb | ||
|
|
00dc525e5f | ||
|
|
d2c1027edc | ||
|
|
aeeaffa888 | ||
|
|
6d2959b393 | ||
|
|
3e5abdaf32 | ||
|
|
3839c8656e | ||
|
|
a512099313 | ||
|
|
9e4b9e9151 | ||
|
|
77bdc30650 | ||
|
|
0a108f9ef2 | ||
|
|
e33ebc7f0a | ||
|
|
c1cd3893bd | ||
|
|
0be5b7d66e | ||
|
|
23e2f27996 | ||
|
|
38f9a938e5 | ||
|
|
ab57f7d628 | ||
|
|
08df6a1f15 | ||
|
|
3341d36131 | ||
|
|
3752a81ec8 | ||
|
|
76879aa9c6 | ||
|
|
0f7b18a9c8 | ||
|
|
c82c50b2a2 | ||
|
|
af83d6ab25 | ||
|
|
1faed205df | ||
|
|
bac2e7fcad | ||
|
|
8c90f4c0a7 | ||
|
|
892d998587 | ||
|
|
be278bc564 | ||
|
|
1a681a434f | ||
|
|
0e4829ef0a | ||
|
|
c06fe155ef | ||
|
|
ac4603144d | ||
|
|
1b64fb2063 | ||
|
|
24f040da36 | ||
|
|
1b75b7de80 | ||
|
|
08304ada3c | ||
|
|
494f9667b4 | ||
|
|
2f5d4c633b | ||
|
|
b81f2f1f48 | ||
|
|
6341f8c077 | ||
|
|
319b4e71e1 | ||
|
|
a5b5712733 | ||
|
|
15999a9f21 | ||
|
|
6dec50a7e8 | ||
|
|
65455ff60b | ||
|
|
bb86779366 | ||
|
|
4862a00f6b | ||
|
|
9ac1ab372d | ||
|
|
7da56dfbf3 |
10
.hgtags
10
.hgtags
@@ -635,14 +635,16 @@ dd5198db2e5b1ebcafe065d987c03ba9fcb50fc3 jdk-15+17
|
||||
7223c6d610343fd8323af9d07d501e01fa1a7696 jdk-15+22
|
||||
f143729ca00ec14a98ea5c7f73acba88da97746e jdk-15+23
|
||||
497fd9f9129c4928fd5a876dd55e0daf6298b511 jdk-15+24
|
||||
58833044988772ca06c97ab2f142474a8627af80 jdk-15+25
|
||||
58833044988772ca06c97ab2f142474a8627af80 jdk-15+25
|
||||
90b266a84c06f1b3dc0ed8767856793e8c1c357e jdk-15+25
|
||||
0a32396f7a690015d22ca3328ac441a358295d90 jdk-15+26
|
||||
506abc554caeb275928c02bf3a16e95d1978749f jdk-15+27
|
||||
506abc554caeb275928c02bf3a16e95d1978749f jdk-15+27
|
||||
93813843680bbe1b7efbca56c03fd137f20a2c31 jdk-16+0
|
||||
93813843680bbe1b7efbca56c03fd137f20a2c31 jdk-15+27
|
||||
4a485c89d5a08b495961835f5308a96038678aeb jdk-16+1
|
||||
06c9f89459daba98395fad726100feb44f89ba71 jdk-15+28
|
||||
bcbe7b8a77b8971bc221c0be1bd2abb6fb68c2d0 jdk-16+2
|
||||
b58fc60580550a4a587cab729d8fd87223ad6932 jdk-15+29
|
||||
76810b3a88c8c641ae3850a8dfd7c40c984aea9d jdk-16+3
|
||||
6909e4a1f25bfe9a2727026f5845fc1fc44a36aa jdk-15+30
|
||||
e2622818f0bd30e736252eba101fe7d2c27f400b jdk-16+4
|
||||
a32f58c6b8be81877411767de7ba9c4cf087c1b5 jdk-15+31
|
||||
143e258f64af490010eb7e0bacc1cfaeceff0993 jdk-16+5
|
||||
|
||||
@@ -137,6 +137,8 @@ TEST FAILURE</code></pre>
|
||||
<h4 id="timeout_factor-1">TIMEOUT_FACTOR</h4>
|
||||
<p>The timeout factor (<code>-timeoutFactor</code>).</p>
|
||||
<p>Defaults to 4.</p>
|
||||
<h4 id="failure_handler_timeout">FAILURE_HANDLER_TIMEOUT</h4>
|
||||
<p>Sets the argument <code>-timeoutHandlerTimeout</code> for JTReg. The default value is 0. This is only valid if the failure handler is built.</p>
|
||||
<h4 id="test_mode">TEST_MODE</h4>
|
||||
<p>The test mode (<code>agentvm</code> or <code>othervm</code>).</p>
|
||||
<p>Defaults to <code>agentvm</code>.</p>
|
||||
@@ -153,8 +155,10 @@ TEST FAILURE</code></pre>
|
||||
<p>Limit memory consumption (<code>-Xmx</code> and <code>-vmoption:-Xmx</code>, or none).</p>
|
||||
<p>Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits.</p>
|
||||
<p>Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).</p>
|
||||
<h4 id="max_output">MAX_OUTPUT</h4>
|
||||
<p>Set the property <code>javatest.maxOutputSize</code> for the launcher, to change the default JTReg log limit.</p>
|
||||
<h4 id="keywords">KEYWORDS</h4>
|
||||
<p>JTReg kewords sent to JTReg using <code>-k</code>. Please be careful in making sure that spaces and special characters (like <code>!</code>) are properly quoted. To avoid some issues, the special value <code>%20</code> can be used instead of space.</p>
|
||||
<p>JTReg keywords sent to JTReg using <code>-k</code>. Please be careful in making sure that spaces and special characters (like <code>!</code>) are properly quoted. To avoid some issues, the special value <code>%20</code> can be used instead of space.</p>
|
||||
<h4 id="extra_problem_lists">EXTRA_PROBLEM_LISTS</h4>
|
||||
<p>Use additional problem lists file or files, in addition to the default ProblemList.txt located at the JTReg test roots.</p>
|
||||
<p>If multiple file names are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
|
||||
@@ -170,6 +174,8 @@ TEST FAILURE</code></pre>
|
||||
<h4 id="vm_options-1">VM_OPTIONS</h4>
|
||||
<p>Additional Java options to be used when compiling and running classes (sent to JTReg as <code>-vmoption</code>).</p>
|
||||
<p>This option is only needed in special circumstances. To pass Java options to your test classes, use <code>JAVA_OPTIONS</code>.</p>
|
||||
<h4 id="launcher_options">LAUNCHER_OPTIONS</h4>
|
||||
<p>Additional Java options that are sent to the java launcher that starts the JTReg harness.</p>
|
||||
<h4 id="aot_modules-1">AOT_MODULES</h4>
|
||||
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
|
||||
<h4 id="retry_count">RETRY_COUNT</h4>
|
||||
@@ -205,14 +211,19 @@ TEST FAILURE</code></pre>
|
||||
<p>Docker tests with default parameters may fail on systems with glibc versions not compatible with the one used in the default docker image (e.g., Oracle Linux 7.6 for x86). For example, they pass on Ubuntu 16.04 but fail on Ubuntu 18.04 if run like this on x86:</p>
|
||||
<pre><code>$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker"</code></pre>
|
||||
<p>To run these tests correctly, additional parameters for the correct docker image are required on Ubuntu 18.04 by using <code>JAVA_OPTIONS</code>.</p>
|
||||
<pre><code>$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest"</code></pre>
|
||||
<pre><code>$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" \
|
||||
JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu
|
||||
-Djdk.test.docker.image.version=latest"</code></pre>
|
||||
<h3 id="non-us-locale">Non-US locale</h3>
|
||||
<p>If your locale is non-US, some tests are likely to fail. To work around this you can set the locale to US. On Unix platforms simply setting <code>LANG="en_US"</code> in the environment before running tests should work. On Windows, setting <code>JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"</code> helps for most, but not all test cases. For example:</p>
|
||||
<p>If your locale is non-US, some tests are likely to fail. To work around this you can set the locale to US. On Unix platforms simply setting <code>LANG="en_US"</code> in the environment before running tests should work. On Windows, setting <code>JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"</code> helps for most, but not all test cases.</p>
|
||||
<p>For example:</p>
|
||||
<pre><code>$ export LANG="en_US" && make test TEST=...
|
||||
$ make test JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US" TEST=...</code></pre>
|
||||
<h3 id="pkcs11-tests">PKCS11 Tests</h3>
|
||||
<p>It is highly recommended to use the latest NSS version when running PKCS11 tests. Improper NSS version may lead to unexpected failures which are hard to diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04 with the default NSS version in the system. To run these tests correctly, the system property <code>test.nss.lib.paths</code> is required on Ubuntu 18.04 to specify the alternative NSS lib directories. For example:</p>
|
||||
<pre><code>$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"</code></pre>
|
||||
<p>It is highly recommended to use the latest NSS version when running PKCS11 tests. Improper NSS version may lead to unexpected failures which are hard to diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04 with the default NSS version in the system. To run these tests correctly, the system property <code>test.nss.lib.paths</code> is required on Ubuntu 18.04 to specify the alternative NSS lib directories.</p>
|
||||
<p>For example:</p>
|
||||
<pre><code>$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
||||
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"</code></pre>
|
||||
<p>For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.</p>
|
||||
<h3 id="client-ui-tests">Client UI Tests</h3>
|
||||
<p>Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below.</p>
|
||||
|
||||
158
doc/testing.md
158
doc/testing.md
@@ -37,11 +37,11 @@ Note that this option should point to the JTReg home, i.e. the top directory,
|
||||
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
|
||||
environment variable to point to the JTReg home before running `configure`.)
|
||||
|
||||
To be able to run microbenchmarks, `configure` needs to know where to find
|
||||
the JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
|
||||
containing the core JMH and transitive dependencies. The recommended dependencies
|
||||
can be retrieved by running `sh make/devkit/createJMHBundle.sh`, after which
|
||||
`--with-jmh=build/jmh/jars` should work.
|
||||
To be able to run microbenchmarks, `configure` needs to know where to find the
|
||||
JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
|
||||
containing the core JMH and transitive dependencies. The recommended
|
||||
dependencies can be retrieved by running `sh make/devkit/createJMHBundle.sh`,
|
||||
after which `--with-jmh=build/jmh/jars` should work.
|
||||
|
||||
## Test selection
|
||||
|
||||
@@ -182,10 +182,10 @@ variables.
|
||||
These variables use a keyword=value approach to allow multiple values to be
|
||||
set. So, for instance, `JTREG="JOBS=1;TIMEOUT_FACTOR=8"` will set the JTReg
|
||||
concurrency level to 1 and the timeout factor to 8. This is equivalent to
|
||||
setting `JTREG_JOBS=1 JTREG_TIMEOUT_FACTOR=8`, but using the keyword format means that
|
||||
the `JTREG` variable is parsed and verified for correctness, so
|
||||
`JTREG="TMIEOUT_FACTOR=8"` would give an error, while `JTREG_TMIEOUT_FACTOR=8` would just
|
||||
pass unnoticed.
|
||||
setting `JTREG_JOBS=1 JTREG_TIMEOUT_FACTOR=8`, but using the keyword format
|
||||
means that the `JTREG` variable is parsed and verified for correctness, so
|
||||
`JTREG="TMIEOUT_FACTOR=8"` would give an error, while `JTREG_TMIEOUT_FACTOR=8`
|
||||
would just pass unnoticed.
|
||||
|
||||
To separate multiple keyword=value pairs, use `;` (semicolon). Since the shell
|
||||
normally eats `;`, the recommended usage is to write the assignment inside
|
||||
@@ -203,9 +203,10 @@ test suites.
|
||||
|
||||
### General keywords (TEST_OPTS)
|
||||
|
||||
Some keywords are valid across different test suites. If you want to run
|
||||
tests from multiple test suites, or just don't want to care which test suite specific
|
||||
control variable to use, then you can use the general TEST_OPTS control variable.
|
||||
Some keywords are valid across different test suites. If you want to run tests
|
||||
from multiple test suites, or just don't want to care which test suite specific
|
||||
control variable to use, then you can use the general TEST_OPTS control
|
||||
variable.
|
||||
|
||||
There are also some keywords that applies globally to the test runner system,
|
||||
not to any specific test suites. These are also available as TEST_OPTS keywords.
|
||||
@@ -252,12 +253,13 @@ for only recently changed code. JCOV_DIFF_CHANGESET specifies a source
|
||||
revision. A textual report will be generated showing coverage of the diff
|
||||
between the specified revision and the repository tip.
|
||||
|
||||
The report is stored in `build/$BUILD/test-results/jcov-output/diff_coverage_report`
|
||||
file.
|
||||
The report is stored in
|
||||
`build/$BUILD/test-results/jcov-output/diff_coverage_report` file.
|
||||
|
||||
### JTReg keywords
|
||||
|
||||
#### JOBS
|
||||
|
||||
The test concurrency (`-concurrency`).
|
||||
|
||||
Defaults to TEST_JOBS (if set by `--with-test-jobs=`), otherwise it defaults to
|
||||
@@ -265,32 +267,43 @@ JOBS, except for Hotspot, where the default is *number of CPU cores/2*,
|
||||
but never more than *memory size in GB/2*.
|
||||
|
||||
#### TIMEOUT_FACTOR
|
||||
|
||||
The timeout factor (`-timeoutFactor`).
|
||||
|
||||
Defaults to 4.
|
||||
|
||||
#### FAILURE_HANDLER_TIMEOUT
|
||||
|
||||
Sets the argument `-timeoutHandlerTimeout` for JTReg. The default value is 0.
|
||||
This is only valid if the failure handler is built.
|
||||
|
||||
#### TEST_MODE
|
||||
|
||||
The test mode (`agentvm` or `othervm`).
|
||||
|
||||
Defaults to `agentvm`.
|
||||
|
||||
#### ASSERT
|
||||
|
||||
Enable asserts (`-ea -esa`, or none).
|
||||
|
||||
Set to `true` or `false`. If true, adds `-ea -esa`. Defaults to true, except
|
||||
for hotspot.
|
||||
|
||||
#### VERBOSE
|
||||
|
||||
The verbosity level (`-verbose`).
|
||||
|
||||
Defaults to `fail,error,summary`.
|
||||
|
||||
#### RETAIN
|
||||
|
||||
What test data to retain (`-retain`).
|
||||
|
||||
Defaults to `fail,error`.
|
||||
|
||||
#### MAX_MEM
|
||||
|
||||
Limit memory consumption (`-Xmx` and `-vmoption:-Xmx`, or none).
|
||||
|
||||
Limit memory consumption for JTReg test framework and VM under test. Set to 0
|
||||
@@ -298,9 +311,14 @@ to disable the limits.
|
||||
|
||||
Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).
|
||||
|
||||
#### MAX_OUTPUT
|
||||
|
||||
Set the property `javatest.maxOutputSize` for the launcher, to change the
|
||||
default JTReg log limit.
|
||||
|
||||
#### KEYWORDS
|
||||
|
||||
JTReg kewords sent to JTReg using `-k`. Please be careful in making sure that
|
||||
JTReg keywords sent to JTReg using `-k`. Please be careful in making sure that
|
||||
spaces and special characters (like `!`) are properly quoted. To avoid some
|
||||
issues, the special value `%20` can be used instead of space.
|
||||
|
||||
@@ -323,23 +341,30 @@ Set to `true` or `false`.
|
||||
If `true`, JTReg will use `-match:` option, otherwise `-exclude:` will be used.
|
||||
Default is `false`.
|
||||
|
||||
|
||||
#### OPTIONS
|
||||
|
||||
Additional options to the JTReg test framework.
|
||||
|
||||
Use `JTREG="OPTIONS=--help all"` to see all available JTReg options.
|
||||
|
||||
#### JAVA_OPTIONS
|
||||
|
||||
Additional Java options for running test classes (sent to JTReg as
|
||||
`-javaoption`).
|
||||
|
||||
#### VM_OPTIONS
|
||||
|
||||
Additional Java options to be used when compiling and running classes (sent to
|
||||
JTReg as `-vmoption`).
|
||||
|
||||
This option is only needed in special circumstances. To pass Java options to
|
||||
your test classes, use `JAVA_OPTIONS`.
|
||||
|
||||
#### LAUNCHER_OPTIONS
|
||||
|
||||
Additional Java options that are sent to the java launcher that starts the
|
||||
JTReg harness.
|
||||
|
||||
#### AOT_MODULES
|
||||
|
||||
Generate AOT modules before testing for the specified module, or set of
|
||||
@@ -353,6 +378,7 @@ Retry failed tests up to a set number of times. Defaults to 0.
|
||||
### Gtest keywords
|
||||
|
||||
#### REPEAT
|
||||
|
||||
The number of times to repeat the tests (`--gtest_repeat`).
|
||||
|
||||
Default is 1. Set to -1 to repeat indefinitely. This can be especially useful
|
||||
@@ -360,6 +386,7 @@ combined with `OPTIONS=--gtest_break_on_failure` to reproduce an intermittent
|
||||
problem.
|
||||
|
||||
#### OPTIONS
|
||||
|
||||
Additional options to the Gtest test framework.
|
||||
|
||||
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
|
||||
@@ -373,98 +400,127 @@ modules. If multiple modules are specified, they should be separated by space
|
||||
### Microbenchmark keywords
|
||||
|
||||
#### FORK
|
||||
|
||||
Override the number of benchmark forks to spawn. Same as specifying `-f <num>`.
|
||||
|
||||
#### ITER
|
||||
|
||||
Number of measurement iterations per fork. Same as specifying `-i <num>`.
|
||||
|
||||
#### TIME
|
||||
|
||||
Amount of time to spend in each measurement iteration, in seconds. Same as
|
||||
specifying `-r <num>`
|
||||
|
||||
#### WARMUP_ITER
|
||||
|
||||
Number of warmup iterations to run before the measurement phase in each fork.
|
||||
Same as specifying `-wi <num>`.
|
||||
|
||||
#### WARMUP_TIME
|
||||
|
||||
Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
|
||||
|
||||
#### RESULTS_FORMAT
|
||||
|
||||
Specify to have the test run save a log of the values. Accepts the same values
|
||||
as `-rff`, i.e., `text`, `csv`, `scsv`, `json`, or `latex`.
|
||||
|
||||
#### VM_OPTIONS
|
||||
|
||||
Additional VM arguments to provide to forked off VMs. Same as `-jvmArgs <args>`
|
||||
|
||||
#### OPTIONS
|
||||
|
||||
Additional arguments to send to JMH.
|
||||
|
||||
## Notes for Specific Tests
|
||||
|
||||
### Docker Tests
|
||||
|
||||
Docker tests with default parameters may fail on systems with glibc versions not
|
||||
compatible with the one used in the default docker image (e.g., Oracle Linux 7.6 for x86).
|
||||
For example, they pass on Ubuntu 16.04 but fail on Ubuntu 18.04 if run like this on x86:
|
||||
Docker tests with default parameters may fail on systems with glibc versions
|
||||
not compatible with the one used in the default docker image (e.g., Oracle
|
||||
Linux 7.6 for x86). For example, they pass on Ubuntu 16.04 but fail on Ubuntu
|
||||
18.04 if run like this on x86:
|
||||
|
||||
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker"
|
||||
```
|
||||
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker"
|
||||
```
|
||||
|
||||
To run these tests correctly, additional parameters for the correct docker image are
|
||||
required on Ubuntu 18.04 by using `JAVA_OPTIONS`.
|
||||
To run these tests correctly, additional parameters for the correct docker
|
||||
image are required on Ubuntu 18.04 by using `JAVA_OPTIONS`.
|
||||
|
||||
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest"
|
||||
```
|
||||
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" \
|
||||
JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu
|
||||
-Djdk.test.docker.image.version=latest"
|
||||
```
|
||||
|
||||
### Non-US locale
|
||||
|
||||
If your locale is non-US, some tests are likely to fail. To work around this you can
|
||||
set the locale to US. On Unix platforms simply setting `LANG="en_US"` in the
|
||||
environment before running tests should work. On Windows, setting
|
||||
`JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for most, but not all test cases.
|
||||
If your locale is non-US, some tests are likely to fail. To work around this
|
||||
you can set the locale to US. On Unix platforms simply setting `LANG="en_US"`
|
||||
in the environment before running tests should work. On Windows, setting
|
||||
`JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for most, but
|
||||
not all test cases.
|
||||
|
||||
For example:
|
||||
|
||||
$ export LANG="en_US" && make test TEST=...
|
||||
$ make test JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US" TEST=...
|
||||
```
|
||||
$ export LANG="en_US" && make test TEST=...
|
||||
$ make test JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US" TEST=...
|
||||
```
|
||||
|
||||
### PKCS11 Tests
|
||||
|
||||
It is highly recommended to use the latest NSS version when running PKCS11 tests.
|
||||
Improper NSS version may lead to unexpected failures which are hard to diagnose.
|
||||
For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu
|
||||
18.04 with the default NSS version in the system.
|
||||
To run these tests correctly, the system property `test.nss.lib.paths` is required
|
||||
on Ubuntu 18.04 to specify the alternative NSS lib directories.
|
||||
It is highly recommended to use the latest NSS version when running PKCS11
|
||||
tests. Improper NSS version may lead to unexpected failures which are hard to
|
||||
diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail
|
||||
on Ubuntu 18.04 with the default NSS version in the system. To run these tests
|
||||
correctly, the system property `test.nss.lib.paths` is required on Ubuntu 18.04
|
||||
to specify the alternative NSS lib directories.
|
||||
|
||||
For example:
|
||||
|
||||
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"
|
||||
```
|
||||
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
|
||||
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"
|
||||
```
|
||||
|
||||
For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.
|
||||
For more notes about the PKCS11 tests, please refer to
|
||||
test/jdk/sun/security/pkcs11/README.
|
||||
|
||||
### Client UI Tests
|
||||
|
||||
Some Client UI tests use key sequences which may be reserved by the operating
|
||||
system. Usually that causes the test failure. So it is highly recommended to disable
|
||||
system key shortcuts prior testing. The steps to access and disable system key shortcuts
|
||||
for various platforms are provided below.
|
||||
system. Usually that causes the test failure. So it is highly recommended to
|
||||
disable system key shortcuts prior testing. The steps to access and disable
|
||||
system key shortcuts for various platforms are provided below.
|
||||
|
||||
#### MacOS
|
||||
|
||||
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
|
||||
select or deselect desired shortcut.
|
||||
|
||||
For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails
|
||||
on MacOS because it uses `CTRL + F1` key sequence to show or hide tooltip message
|
||||
but the key combination is reserved by the operating system. To run the test correctly
|
||||
the default global key shortcut should be disabled using the steps described above, and then deselect
|
||||
"Turn keyboard access on or off" option which is responsible for `CTRL + F1` combination.
|
||||
For example,
|
||||
test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java
|
||||
fails on MacOS because it uses `CTRL + F1` key sequence to show or hide tooltip
|
||||
message but the key combination is reserved by the operating system. To run the
|
||||
test correctly the default global key shortcut should be disabled using the
|
||||
steps described above, and then deselect "Turn keyboard access on or off"
|
||||
option which is responsible for `CTRL + F1` combination.
|
||||
|
||||
#### Linux
|
||||
Open the Activities overview and start typing Settings; Choose Settings, click Devices,
|
||||
then click Keyboard; set or override desired shortcut.
|
||||
|
||||
Open the Activities overview and start typing Settings; Choose Settings, click
|
||||
Devices, then click Keyboard; set or override desired shortcut.
|
||||
|
||||
#### Windows
|
||||
Type `gpedit` in the Search and then click Edit group policy; navigate to
|
||||
User Configuration -> Administrative Templates -> Windows Components -> File Explorer;
|
||||
in the right-side pane look for "Turn off Windows key hotkeys" and double click on it;
|
||||
enable or disable hotkeys.
|
||||
|
||||
Type `gpedit` in the Search and then click Edit group policy; navigate to User
|
||||
Configuration -> Administrative Templates -> Windows Components -> File
|
||||
Explorer; in the right-side pane look for "Turn off Windows key hotkeys" and
|
||||
double click on it; enable or disable hotkeys.
|
||||
|
||||
Note: restart is required to make the settings take effect.
|
||||
|
||||
|
||||
10
jb/project/docker/Dockerfile
Normal file
10
jb/project/docker/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
# jetbrains/runtime:jbr15env
|
||||
FROM centos:7
|
||||
RUN yum -y install centos-release-scl
|
||||
RUN yum -y install devtoolset-8
|
||||
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel git
|
||||
# Install Java 11
|
||||
RUN wget https://download.java.net/java/GA/jdk14.0.1/664493ef4a6946b186ff29eb326336a2/7/GPL/openjdk-14.0.1_linux-x64_bin.tar.gz \
|
||||
-O - | tar xz -C /
|
||||
ENV JAVA_HOME /jbrsdk
|
||||
ENV PATH $JAVA_HOME/bin:/opt/rh/devtoolset-8/root/usr/bin:$PATH
|
||||
9
jb/project/tools/linux/scripts/mkbundles_x64.sh
Executable file
9
jb/project/tools/linux/scripts/mkbundles_x64.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
script_dir=jb/project/tools/linux/scripts
|
||||
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
|
||||
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
|
||||
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?
|
||||
77
jb/project/tools/linux/scripts/mkimages_aarch64.sh
Executable file
77
jb/project/tools/linux/scripts/mkimages_aarch64.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=release \
|
||||
--with-version-build=$JDK_BUILD_NUMBER \
|
||||
--with-version-pre= \
|
||||
--with-version-opt=b$build_number \
|
||||
--with-boot-jdk=amazon-corretto-11.0.5.10.1-linux-aarch64 \
|
||||
--with-import-modules=./modular-sdk \
|
||||
--enable-cds=yes || exit $?
|
||||
make clean CONF=linux-aarch64-normal-server-release || exit $?
|
||||
make images CONF=linux-aarch64-normal-server-release test-image || exit $?
|
||||
|
||||
JBSDK=${JBRSDK_BASE_NAME}-linux-aarch64-b${build_number}
|
||||
BASE_DIR=build/linux-aarch64-normal-server-release/images
|
||||
JSDK=${BASE_DIR}/jdk
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
echo Fixing permissions
|
||||
chmod -R a+r $JSDK
|
||||
|
||||
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
|
||||
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
|
||||
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
tar -pcf $JBSDK.tar \
|
||||
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
|
||||
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
|
||||
gzip $JBSDK.tar || exit $?
|
||||
|
||||
JBR_BUNDLE=jbr
|
||||
JBR_BASE_NAME=jbr-$JBSDK_VERSION
|
||||
rm -rf $BASE_DIR/$JBR_BUNDLE
|
||||
|
||||
JBR=$JBR_BASE_NAME-linux-aarch64-b$build_number
|
||||
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.aarch64
|
||||
echo Running jlink....
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules.list.aarch64 | sed s/" "//g | sed s/,$//g) \
|
||||
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
|
||||
|
||||
echo Modifying release info ...
|
||||
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
|
||||
|
||||
echo Creating $JBR.tar.gz ...
|
||||
tar -pcf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
|
||||
gzip $JBR.tar || exit $?
|
||||
|
||||
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-aarch64-b$build_number
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
|
||||
gzip $JBRSDK_TEST.tar || exit $?
|
||||
139
jb/project/tools/linux/scripts/mkimages_x64.sh
Executable file
139
jb/project/tools/linux/scripts/mkimages_x64.sh
Executable file
@@ -0,0 +1,139 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
bundle_type=$4
|
||||
|
||||
function create_jbr {
|
||||
|
||||
case "$1" in
|
||||
"${bundle_type}_lw")
|
||||
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
|
||||
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
|
||||
;;
|
||||
"jfx" | "jcef")
|
||||
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
"jfx_jcef")
|
||||
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
*)
|
||||
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
esac
|
||||
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
|
||||
|
||||
JBR=$JBR_BASE_NAME-linux-x64-b$build_number
|
||||
|
||||
echo Running jlink....
|
||||
$JSDK/bin/jlink \
|
||||
--module-path $JSDK/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output $BASE_DIR/$JBR_BUNDLE
|
||||
|
||||
if [[ "$bundle_type" == *jcef* ]]; then
|
||||
cp -R $BASE_DIR/$JBR_BUNDLE $BASE_DIR/jbr
|
||||
cp -R jcef_linux_x64/* $BASE_DIR/$JBR_BUNDLE/lib || exit $?
|
||||
fi
|
||||
grep -v "^JAVA_VERSION" $JSDK/release | grep -v "^MODULES" >> $BASE_DIR/$JBR_BUNDLE/release
|
||||
|
||||
echo Creating $JBR.tar.gz ...
|
||||
if [ ! -z "$bundle_type" ]; then
|
||||
rm -rf ${BASE_DIR}/jbr
|
||||
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
|
||||
fi
|
||||
tar -pcf $JBR.tar -C $BASE_DIR jbr || exit $?
|
||||
gzip $JBR.tar || exit $?
|
||||
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
|
||||
}
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
|
||||
|
||||
#git checkout -- modules.list src
|
||||
case "$bundle_type" in
|
||||
"jfx")
|
||||
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
|
||||
;;
|
||||
"jcef")
|
||||
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$bundle_type" ]; then
|
||||
JBR_BUNDLE=jbr
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=release \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-boot-jdk=$BOOT_JDK \
|
||||
--enable-cds=yes || exit $?
|
||||
else
|
||||
JBR_BUNDLE=jbr_${bundle_type}
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=release \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-import-modules=./modular-sdk \
|
||||
--with-boot-jdk=$BOOT_JDK \
|
||||
--enable-cds=yes || exit $?
|
||||
fi
|
||||
|
||||
make images CONF=linux-x86_64-server-release || exit $?
|
||||
|
||||
JSDK=build/linux-x86_64-server-release/images/jdk
|
||||
JBSDK=$JBRSDK_BASE_NAME-linux-x64-b$build_number
|
||||
|
||||
echo Fixing permissions
|
||||
chmod -R a+r $JSDK
|
||||
|
||||
BASE_DIR=build/linux-x86_64-server-release/images
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
|
||||
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
|
||||
|
||||
if [[ "$bundle_type" == *jcef* ]]; then
|
||||
cp -R jcef_linux_x64/* $BASE_DIR/$JBRSDK_BUNDLE/lib || exit $?
|
||||
fi
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
|
||||
-C $BASE_DIR $JBRSDK_BUNDLE || exit $?
|
||||
gzip $JBSDK.tar || exit $?
|
||||
fi
|
||||
|
||||
create_jbr ${bundle_type}
|
||||
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
make test-image || exit $?
|
||||
|
||||
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x64-b$build_number
|
||||
|
||||
echo Creating $JBSDK_TEST.tar.gz ...
|
||||
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
|
||||
gzip $JBRSDK_TEST.tar || exit $?
|
||||
fi
|
||||
72
jb/project/tools/linux/scripts/mkimages_x64_fd.sh
Executable file
72
jb/project/tools/linux/scripts/mkimages_x64_fd.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=fastdebug \
|
||||
--with-version-build=$JDK_BUILD_NUMBER \
|
||||
--with-version-pre= \
|
||||
--with-version-opt=b$build_number \
|
||||
--with-import-modules=./modular-sdk \
|
||||
--enable-cds=yes || exit $?
|
||||
make clean CONF=linux-x86_64-normal-server-fastdebug || exit $?
|
||||
make images CONF=linux-x86_64-normal-server-fastdebug || exit $?
|
||||
|
||||
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-fastdebug-b${build_number}
|
||||
BASE_DIR=build/linux-x86_64-normal-server-fastdebug/images
|
||||
JSDK=${BASE_DIR}/jdk
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
echo Fixing permissions
|
||||
chmod -R a+r $JSDK
|
||||
|
||||
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
|
||||
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
|
||||
cp -R jcef_linux_x64/* $BASE_DIR/$JBRSDK_BUNDLE/lib || exit $?
|
||||
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
tar -pcf $JBSDK.tar \
|
||||
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
|
||||
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
|
||||
gzip $JBSDK.tar || exit $?
|
||||
|
||||
JBR_BUNDLE=jbr
|
||||
JBR_BASE_NAME=jbr-$JBSDK_VERSION
|
||||
rm -rf $BASE_DIR/$JBR_BUNDLE
|
||||
|
||||
JBR=$JBR_BASE_NAME-linux-x64-fastdebug-b$build_number
|
||||
echo Running jlink....
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules.list | sed s/" "//g | sed s/,$//g) \
|
||||
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
|
||||
cp -R jcef_linux_x64/* $BASE_DIR/$JBR_BUNDLE/lib || exit $?
|
||||
|
||||
echo Modifying release info ...
|
||||
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
|
||||
|
||||
echo Creating $JBR.tar.gz ...
|
||||
tar -czf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
|
||||
gzip $JBR.tar || exit $?
|
||||
73
jb/project/tools/linux/scripts/mkimages_x86.sh
Executable file
73
jb/project/tools/linux/scripts/mkimages_x86.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
|
||||
linux32 bash configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=release \
|
||||
--with-version-build=$JDK_BUILD_NUMBER \
|
||||
--with-version-pre= \
|
||||
--with-version-opt=b$build_number \
|
||||
--with-boot-jdk=/jbrsdk-11.0.5-b1 \
|
||||
--enable-cds=yes || exit $?
|
||||
make clean CONF=linux-x86-normal-server-release || exit $?
|
||||
make images CONF=linux-x86-normal-server-release test-image || exit $?
|
||||
|
||||
JBSDK=${JBRSDK_BASE_NAME}-linux-x86-b${build_number}
|
||||
BASE_DIR=build/linux-x86-normal-server-release/images
|
||||
JSDK=${BASE_DIR}/jdk
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
echo Fixing permissions
|
||||
chmod -R a+r $JSDK
|
||||
|
||||
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
|
||||
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
|
||||
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man -C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
|
||||
gzip $JBSDK.tar || exit $?
|
||||
|
||||
JBR_BUNDLE=jbr
|
||||
JBR_BASE_NAME=jbr-$JBSDK_VERSION
|
||||
rm -rf $BASE_DIR/$JBR_BUNDLE
|
||||
|
||||
JBR=$JBR_BASE_NAME-linux-x86-b$build_number
|
||||
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
|
||||
echo Running jlink....
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules.list.x86 | sed s/" "//g | sed s/,$//g) --output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
|
||||
|
||||
echo Modifying release info ...
|
||||
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
|
||||
|
||||
echo Creating $JBR.tar.gz ...
|
||||
tar -pcf $JBR.tar -C $BASE_DIR $JBR_BUNDLE || exit $?
|
||||
gzip $JBR.tar || exit $?
|
||||
|
||||
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x86-b$build_number
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' --exclude='test/hotspot/gtest' test || exit $?
|
||||
gzip $JBRSDK_TEST.tar || exit $?
|
||||
16
jb/project/tools/mac/scripts/entitlements.xml
Normal file
16
jb/project/tools/mac/scripts/entitlements.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
9
jb/project/tools/mac/scripts/mkbundles.sh
Executable file
9
jb/project/tools/mac/scripts/mkbundles.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
script_dir=jb/project/tools/mac/scripts
|
||||
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
|
||||
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
|
||||
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?
|
||||
148
jb/project/tools/mac/scripts/mkimages.sh
Executable file
148
jb/project/tools/mac/scripts/mkimages.sh
Executable file
@@ -0,0 +1,148 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
bundle_type=$4
|
||||
|
||||
function create_jbr {
|
||||
|
||||
case "$1" in
|
||||
"${bundle_type}_lw")
|
||||
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
|
||||
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
|
||||
;;
|
||||
"jfx" | "jcef")
|
||||
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
"jfx_jcef")
|
||||
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
*)
|
||||
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
esac
|
||||
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
|
||||
|
||||
JRE_CONTENTS=${BASE_DIR}/${JBR_BUNDLE}/Contents
|
||||
JRE_HOME=${JRE_CONTENTS}/Home
|
||||
if [ -d "${JRE_CONTENTS}" ]; then
|
||||
rm -rf ${JRE_CONTENTS}
|
||||
fi
|
||||
mkdir -p ${JRE_CONTENTS}
|
||||
|
||||
JBR=${JBR_BASE_NAME}-osx-x64-b${build_number}
|
||||
|
||||
${BASE_DIR}/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
|
||||
--module-path ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JRE_HOME} || exit $?
|
||||
grep -v "^JAVA_VERSION" ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release | grep -v "^MODULES" >> ${JRE_HOME}/release
|
||||
cp -R ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/MacOS ${JRE_CONTENTS}
|
||||
cp ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Info.plist ${JRE_CONTENTS}
|
||||
|
||||
if [[ "${bundle_type}" == *jcef* ]]; then
|
||||
rm -rf ${JRE_CONTENTS}/Frameworks || exit $?
|
||||
rm -rf ${JRE_CONTENTS}/Helpers || exit $?
|
||||
cp -a jcef_mac/Frameworks ${JRE_CONTENTS} || exit $?
|
||||
cp -a jcef_mac/Helpers ${JRE_CONTENTS} || exit $?
|
||||
fi
|
||||
|
||||
echo Creating ${JBR}.tar.gz ...
|
||||
if [ ! -z "$bundle_type" ]; then
|
||||
rm -rf ${BASE_DIR}/jbr
|
||||
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
|
||||
fi
|
||||
COPYFILE_DISABLE=1 tar -pczf ${JBR}.tar.gz --exclude='*.dSYM' --exclude='man' -C ${BASE_DIR} jbr || exit $?
|
||||
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
|
||||
}
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
|
||||
#git checkout -- modules.list src
|
||||
case "$bundle_type" in
|
||||
"jfx")
|
||||
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
|
||||
;;
|
||||
"jcef")
|
||||
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$bundle_type" ]; then
|
||||
JBR_BUNDLE=jbr
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=release \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-boot-jdk=`/usr/libexec/java_home -v $BOOT_JDK` \
|
||||
--enable-cds=yes || exit $?
|
||||
else
|
||||
JBR_BUNDLE=jbr_${bundle_type}
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=release \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-import-modules=./modular-sdk \
|
||||
--with-boot-jdk=`/usr/libexec/java_home -v $BOOT_JDK` \
|
||||
--enable-cds=yes || exit $?
|
||||
fi
|
||||
make images CONF=macosx-x86_64-server-release || exit $?
|
||||
|
||||
JSDK=build/macosx-x86_64-server-release/images/jdk-bundle
|
||||
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
|
||||
|
||||
BASE_DIR=jre
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
rm -rf $BASE_DIR
|
||||
mkdir $BASE_DIR || exit $?
|
||||
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
|
||||
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || exit $?
|
||||
|
||||
if [[ "$bundle_type" == *jcef* ]]; then
|
||||
cp -a jcef_mac/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/ || exit $?
|
||||
cp -a jcef_mac/Helpers $BASE_DIR/$JBRSDK_BUNDLE/Contents/ || exit $?
|
||||
fi
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
COPYFILE_DISABLE=1 tar -pczf $JBSDK.tar.gz -C $BASE_DIR \
|
||||
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
|
||||
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
|
||||
$JBRSDK_BUNDLE || exit $?
|
||||
fi
|
||||
|
||||
create_jbr "${bundle_type}" || exit $?
|
||||
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
make test-image || exit $?
|
||||
|
||||
JBRSDK_TEST=$JBRSDK_BASE_NAME-osx-test-x64-b$build_number
|
||||
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
COPYFILE_DISABLE=1 tar -pczf $JBRSDK_TEST.tar.gz -C build/macosx-x86_64-server-release/images \
|
||||
--exclude='test/jdk/demos' test || exit $?
|
||||
fi
|
||||
83
jb/project/tools/mac/scripts/mkimages_fd.sh
Executable file
83
jb/project/tools/mac/scripts/mkimages_fd.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
|
||||
sh configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-debug-level=fastdebug \
|
||||
--with-version-build=$JDK_BUILD_NUMBER \
|
||||
--with-version-pre= \
|
||||
--with-version-opt=b$build_number \
|
||||
--with-import-modules=./modular-sdk \
|
||||
--with-boot-jdk=`/usr/libexec/java_home -v 11` \
|
||||
--enable-cds=yes || exit $?
|
||||
make clean CONF=macosx-x86_64-normal-server-fastdebug || exit $?
|
||||
make images CONF=macosx-x86_64-normal-server-fastdebug || exit $?
|
||||
|
||||
JSDK=build/macosx-x86_64-normal-server-fastdebug/images/jdk-bundle
|
||||
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
|
||||
|
||||
BASE_DIR=jre
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
rm -rf $BASE_DIR
|
||||
mkdir $BASE_DIR || exit $?
|
||||
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
|
||||
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || exit $?
|
||||
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
cp -a jcef_mac/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/
|
||||
cp -a jcef_mac/Helpers $BASE_DIR/$JBRSDK_BUNDLE/Contents
|
||||
|
||||
COPYFILE_DISABLE=1 \
|
||||
tar -pczf ${JBSDK}.tar.gz -C ${BASE_DIR} \
|
||||
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
|
||||
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
|
||||
${JBRSDK_BUNDLE} || exit $?
|
||||
|
||||
JBR_BUNDLE=jbr
|
||||
JRE_CONTENTS=$BASE_DIR/$JBR_BUNDLE/Contents
|
||||
JRE_HOME=$JRE_CONTENTS/Home
|
||||
JBR_BASE_NAME=jbr-$JBSDK_VERSION
|
||||
|
||||
mkdir -p $JRE_CONTENTS
|
||||
|
||||
if [ -d "$JRE_HOME" ]; then
|
||||
rm -rf $JRE_HOME
|
||||
fi
|
||||
|
||||
JBR=${JBR_BASE_NAME}-osx-x64-fastdebug-b${build_number}
|
||||
|
||||
$BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
|
||||
--module-path $BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules.list | sed s/" "//g) --output $JRE_HOME || exit $?
|
||||
grep -v "^JAVA_VERSION" $BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/release | grep -v "^MODULES" >> $JRE_HOME/release
|
||||
cp -R $BASE_DIR/$JBRSDK_BUNDLE/Contents/MacOS $JRE_CONTENTS
|
||||
cp $BASE_DIR/$JBRSDK_BUNDLE/Contents/Info.plist $JRE_CONTENTS
|
||||
cp -a jcef_mac/Frameworks ${JRE_CONTENTS} || exit $?
|
||||
cp -a jcef_mac/Helpers ${JRE_CONTENTS} || exit $?
|
||||
|
||||
|
||||
echo Creating $JBR.tar.gz ...
|
||||
COPYFILE_DISABLE=1 tar -pczf $JBR.tar.gz --exclude='*.dSYM' --exclude='man' -C $BASE_DIR $JBR_BUNDLE || exit $?
|
||||
120
jb/project/tools/mac/scripts/notarize.sh
Executable file
120
jb/project/tools/mac/scripts/notarize.sh
Executable file
@@ -0,0 +1,120 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_DIRECTORY=$1
|
||||
APPL_USER=$2
|
||||
APPL_PASSWORD=$3
|
||||
APP_NAME=$4
|
||||
BUNDLE_ID=$5
|
||||
FAKE_ROOT="${6:-fake-root}"
|
||||
|
||||
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$APPL_USER" ]] || [[ -z "$APPL_PASSWORD" ]]; then
|
||||
echo "Usage: $0 AppDirectory Username Password"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -d "$APP_DIRECTORY" ]]; then
|
||||
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function log() {
|
||||
echo "$(date '+[%H:%M:%S]') $*"
|
||||
}
|
||||
|
||||
function publish-log() {
|
||||
id=$1
|
||||
file=$2
|
||||
curl -T "$file" "$ARTIFACTORY_URL/$id" || true
|
||||
}
|
||||
|
||||
function altool-upload() {
|
||||
# Since altool uses same file for upload token we have to trick it into using different folders for token file location
|
||||
# Also it copies zip into TMPDIR so we override it too, to simplify cleanup
|
||||
OLD_HOME="$HOME"
|
||||
export HOME="$FAKE_ROOT/home"
|
||||
export TMPDIR="$FAKE_ROOT/tmp"
|
||||
mkdir -p "$HOME"
|
||||
mkdir -p "$TMPDIR"
|
||||
export _JAVA_OPTIONS="-Duser.home=$HOME -Djava.io.tmpdir=$TMPDIR"
|
||||
# Reduce amount of downloads, cache transporter libraries
|
||||
shared_itmstransporter="$OLD_HOME/shared-itmstransporter"
|
||||
if [[ -f "$shared_itmstransporter" ]]; then
|
||||
cp -r "$shared_itmstransporter" "$HOME/.itmstransporter"
|
||||
fi
|
||||
# For some reason altool prints everything to stderr, not stdout
|
||||
set +e
|
||||
xcrun altool --notarize-app \
|
||||
--username "$APPL_USER" --password "$APPL_PASSWORD" \
|
||||
--primary-bundle-id "$BUNDLE_ID" \
|
||||
--asc-provider JetBrainssro --file "$1" 2>&1 | tee "altool.init.out"
|
||||
unset TMPDIR
|
||||
export HOME="$OLD_HOME"
|
||||
set -e
|
||||
}
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
|
||||
file="$APP_NAME.zip"
|
||||
|
||||
log "Zipping $file..."
|
||||
rm -rf "$file"
|
||||
ditto -c -k --sequesterRsrc --keepParent "$APP_DIRECTORY/Contents" "$file"
|
||||
|
||||
log "Notarizing $file..."
|
||||
rm -rf "altool.init.out" "altool.check.out"
|
||||
altool-upload "$file"
|
||||
|
||||
rm -rf "$file"
|
||||
|
||||
notarization_info="$(grep -e "RequestUUID" "altool.init.out" | grep -oE '([0-9a-f-]{36})')"
|
||||
|
||||
if [ -z "$notarization_info" ]; then
|
||||
log "Faile to read RequestUUID from altool.init.out"
|
||||
exit 10
|
||||
fi
|
||||
|
||||
PATH="$PATH:/usr/local/bin/"
|
||||
|
||||
log "Notarization request sent, awaiting response"
|
||||
spent=0
|
||||
|
||||
while true; do
|
||||
# For some reason altool prints everything to stderr, not stdout
|
||||
xcrun altool --username "$APPL_USER" --notarization-info "$notarization_info" --password "$APPL_PASSWORD" >"altool.check.out" 2>&1 || true
|
||||
status="$(grep -oe 'Status: .*' "altool.check.out" | cut -c 9- || true)"
|
||||
log "Current status: $status"
|
||||
if [ "$status" = "invalid" ]; then
|
||||
log "Notarization failed"
|
||||
ec=1
|
||||
elif [ "$status" = "success" ]; then
|
||||
log "Notarization succeeded"
|
||||
ec=0
|
||||
else
|
||||
if [ "$status" != "in progress" ]; then
|
||||
log "Unknown notarization status, waiting more, altool output:"
|
||||
cat "altool.check.out"
|
||||
fi
|
||||
if [[ $spent -gt 60 ]]; then
|
||||
log "Waiting time out (apx 60 minutes)"
|
||||
ec=2
|
||||
break
|
||||
fi
|
||||
sleep 60
|
||||
((spent += 1))
|
||||
continue
|
||||
fi
|
||||
developer_log="developer_log.json"
|
||||
log "Fetching $developer_log"
|
||||
# TODO: Replace cut with trim or something better
|
||||
url="$(grep -oe 'LogFileURL: .*' "altool.check.out" | cut -c 13-)"
|
||||
wget "$url" -O "$developer_log" && cat "$developer_log" || true
|
||||
if [ $ec != 0 ]; then
|
||||
log "Publishing $developer_log"
|
||||
publish-log "$notarization_info" "$developer_log"
|
||||
fi
|
||||
break
|
||||
done
|
||||
cat "altool.check.out"
|
||||
|
||||
rm -rf "altool.init.out" "altool.check.out"
|
||||
exit $ec
|
||||
93
jb/project/tools/mac/scripts/sign.sh
Executable file
93
jb/project/tools/mac/scripts/sign.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_DIRECTORY=$1
|
||||
JB_CERT=$2
|
||||
|
||||
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$JB_CERT" ]]; then
|
||||
echo "Usage: $0 AppDirectory CertificateID"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -d "$APP_DIRECTORY" ]]; then
|
||||
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function log() {
|
||||
echo "$(date '+[%H:%M:%S]') $*"
|
||||
}
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
|
||||
# Cleanup files left from previous sign attempt (if any)
|
||||
find "$APP_DIRECTORY" -name '*.cstemp' -exec rm '{}' \;
|
||||
|
||||
log "Signing libraries and executables..."
|
||||
# -perm +111 searches for executables
|
||||
for f in \
|
||||
"Contents/Home/bin" \
|
||||
"Contents/Home/lib"; do
|
||||
if [ -d "$APP_DIRECTORY/$f" ]; then
|
||||
find "$APP_DIRECTORY/$f" \
|
||||
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
|
||||
-exec codesign --timestamp \
|
||||
-v -s "$JB_CERT" --options=runtime \
|
||||
--entitlements entitlements.xml {} \;
|
||||
fi
|
||||
done
|
||||
|
||||
log "Signing libraries in jars in $PWD"
|
||||
|
||||
# todo: add set -euo pipefail; into the inner sh -c
|
||||
# `-e` prevents `grep -q && printf` loginc
|
||||
# with `-o pipefail` there's no input for 'while' loop
|
||||
find "$APP_DIRECTORY" -name '*.jar' \
|
||||
-exec sh -c "set -u; unzip -l \"\$0\" | grep -q -e '\.dylib\$' -e '\.jnilib\$' -e '\.so\$' -e '^jattach\$' && printf \"\$0\0\" " {} \; |
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
log "Processing libraries in $file"
|
||||
|
||||
rm -rf jarfolder jar.jar
|
||||
mkdir jarfolder
|
||||
filename="${file##*/}"
|
||||
log "Filename: $filename"
|
||||
cp "$file" jarfolder && (cd jarfolder && jar xf "$filename" && rm "$filename")
|
||||
|
||||
find jarfolder \
|
||||
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "jattach" \) \
|
||||
-exec codesign --timestamp \
|
||||
-v -s "$JB_CERT" --options=runtime \
|
||||
--entitlements entitlements.xml {} \;
|
||||
|
||||
(cd jarfolder; zip -q -r -o ../jar.jar .)
|
||||
mv jar.jar "$file"
|
||||
done
|
||||
|
||||
rm -rf jarfolder jar.jar
|
||||
|
||||
log "Signing other files..."
|
||||
for f in \
|
||||
"Contents/MacOS"; do
|
||||
if [ -d "$APP_DIRECTORY/$f" ]; then
|
||||
find "$APP_DIRECTORY/$f" \
|
||||
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
|
||||
-exec codesign --timestamp \
|
||||
-v -s "$JB_CERT" --options=runtime \
|
||||
--entitlements entitlements.xml {} \;
|
||||
fi
|
||||
done
|
||||
|
||||
#log "Signing executable..."
|
||||
#codesign --timestamp \
|
||||
# -v -s "$JB_CERT" --options=runtime \
|
||||
# --force \
|
||||
# --entitlements entitlements.xml "$APP_DIRECTORY/Contents/MacOS/idea"
|
||||
|
||||
log "Signing whole app..."
|
||||
codesign --timestamp \
|
||||
-v -s "$JB_CERT" --options=runtime \
|
||||
--force \
|
||||
--entitlements entitlements.xml "$APP_DIRECTORY"
|
||||
|
||||
log "Verifying java is not broken"
|
||||
find "$APP_DIRECTORY" \
|
||||
-type f -name 'java' -perm +111 -exec {} -version \;
|
||||
145
jb/project/tools/mac/scripts/signapp.sh
Executable file
145
jb/project/tools/mac/scripts/signapp.sh
Executable file
@@ -0,0 +1,145 @@
|
||||
#!/bin/bash
|
||||
|
||||
#immediately exit script with an error if a command fails
|
||||
set -euo pipefail
|
||||
|
||||
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
|
||||
export COPYFILE_DISABLE=true
|
||||
|
||||
INPUT_FILE=$1
|
||||
EXPLODED=$2.exploded
|
||||
BACKUP_JMODS=$2.backup
|
||||
USERNAME=$3
|
||||
PASSWORD=$4
|
||||
CODESIGN_STRING=$5
|
||||
NOTARIZE=$6
|
||||
BUNDLE_ID=$7
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
function log() {
|
||||
echo "$(date '+[%H:%M:%S]') $*"
|
||||
}
|
||||
|
||||
log "Deleting $EXPLODED ..."
|
||||
if test -d "$EXPLODED"; then
|
||||
find "$EXPLODED" -mindepth 1 -maxdepth 1 -exec chmod -R u+wx '{}' \;
|
||||
fi
|
||||
rm -rf "$EXPLODED"
|
||||
mkdir "$EXPLODED"
|
||||
rm -rf "$BACKUP_JMODS"
|
||||
mkdir "$BACKUP_JMODS"
|
||||
|
||||
log "Unzipping $INPUT_FILE to $EXPLODED ..."
|
||||
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
|
||||
rm "$INPUT_FILE"
|
||||
BUILD_NAME="$(ls "$EXPLODED")"
|
||||
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
|
||||
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
|
||||
fi
|
||||
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks; then
|
||||
mv $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks $BACKUP_JMODS
|
||||
fi
|
||||
if test -f $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib; then
|
||||
mv $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib $BACKUP_JMODS
|
||||
fi
|
||||
|
||||
#log "$INPUT_FILE unzipped and removed"
|
||||
log "$INPUT_FILE extracted and removed"
|
||||
|
||||
APPLICATION_PATH="$EXPLODED/$BUILD_NAME"
|
||||
|
||||
find "$APPLICATION_PATH/Contents/Home/bin" \
|
||||
-maxdepth 1 -type f -name '*.jnilib' -print0 |
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
if [ -f "$file" ]; then
|
||||
log "Linking $file"
|
||||
b="$(basename "$file" .jnilib)"
|
||||
ln -sf "$b.jnilib" "$(dirname "$file")/$b.dylib"
|
||||
fi
|
||||
done
|
||||
|
||||
find "$APPLICATION_PATH/Contents/" \
|
||||
-maxdepth 1 -type f -name '*.txt' -print0 |
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
if [ -f "$file" ]; then
|
||||
log "Moving $file"
|
||||
mv "$file" "$APPLICATION_PATH/Contents/Resources"
|
||||
fi
|
||||
done
|
||||
|
||||
non_plist=$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist' | wc -l)
|
||||
if [[ $non_plist -gt 0 ]]; then
|
||||
log "Only Info.plist file is allowed in Contents directory but found $non_plist file(s):"
|
||||
log "$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist')"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "Unlocking keychain..."
|
||||
# Make sure *.p12 is imported into local KeyChain
|
||||
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
|
||||
|
||||
attempt=1
|
||||
limit=3
|
||||
set +e
|
||||
while [[ $attempt -le $limit ]]; do
|
||||
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
|
||||
./sign.sh "$APPLICATION_PATH" "$CODESIGN_STRING"
|
||||
ec=$?
|
||||
if [[ $ec -ne 0 ]]; then
|
||||
((attempt += 1))
|
||||
if [ $attempt -eq $limit ]; then
|
||||
set -e
|
||||
fi
|
||||
log "Signing failed, wait for 30 sec and try to sign again"
|
||||
sleep 30
|
||||
else
|
||||
log "Signing done"
|
||||
codesign -v "$APPLICATION_PATH" -vvvvv
|
||||
log "Check sign done"
|
||||
((attempt += limit))
|
||||
fi
|
||||
done
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$NOTARIZE" = "yes" ]; then
|
||||
log "Notarizing..."
|
||||
# shellcheck disable=SC1090
|
||||
source "$HOME/.notarize_token"
|
||||
APP_NAME=$(echo ${INPUT_FILE} | awk -F"." '{ print $1 }')
|
||||
# Since notarization tool uses same file for upload token we have to trick it into using different folders, hence fake root
|
||||
# Also it leaves copy of zip file in TMPDIR, so notarize.sh overrides it and uses FAKE_ROOT as location for temp TMPDIR
|
||||
FAKE_ROOT="$(pwd)/fake-root"
|
||||
mkdir -p "$FAKE_ROOT"
|
||||
echo "Notarization will use fake root: $FAKE_ROOT"
|
||||
./notarize.sh "$APPLICATION_PATH" "$APPLE_USERNAME" "$APPLE_PASSWORD" "$APP_NAME" "$BUNDLE_ID" "$FAKE_ROOT"
|
||||
rm -rf "$FAKE_ROOT"
|
||||
|
||||
set +e
|
||||
log "Stapling..."
|
||||
xcrun stapler staple "$APPLICATION_PATH"
|
||||
else
|
||||
log "Notarization disabled"
|
||||
log "Stapling disabled"
|
||||
fi
|
||||
|
||||
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
|
||||
(
|
||||
#cd "$EXPLODED"
|
||||
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
|
||||
if test ! -z $(ls $BACKUP_JMODS/libjli.dylib); then
|
||||
mv $BACKUP_JMODS/libjli.dylib $EXPLODED/$BUILD_NAME/Contents/MacOS
|
||||
fi
|
||||
if test -d $BACKUP_JMODS/jmods; then
|
||||
mv $BACKUP_JMODS/jmods $EXPLODED/$BUILD_NAME/Contents/Home
|
||||
fi
|
||||
if test -d $BACKUP_JMODS/Frameworks; then
|
||||
mv $BACKUP_JMODS/Frameworks $EXPLODED/$BUILD_NAME/Contents/Home
|
||||
fi
|
||||
|
||||
COPYFILE_DISABLE=1 tar -pczf $INPUT_FILE --exclude='*.dSYM' --exclude='man' -C $EXPLODED $BUILD_NAME
|
||||
log "Finished zipping"
|
||||
)
|
||||
rm -rf "$EXPLODED"
|
||||
log "Done"
|
||||
9
jb/project/tools/windows/scripts/mkbundles_x64.sh
Executable file
9
jb/project/tools/windows/scripts/mkbundles_x64.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
script_dir=jb/project/tools/windows/scripts
|
||||
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
|
||||
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
|
||||
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?
|
||||
119
jb/project/tools/windows/scripts/mkimages_x64.sh
Executable file
119
jb/project/tools/windows/scripts/mkimages_x64.sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
bundle_type=$4
|
||||
|
||||
function create_jbr {
|
||||
|
||||
case "$1" in
|
||||
"${bundle_type}_lw")
|
||||
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
|
||||
;;
|
||||
"jfx" | "jcef" | "jfx_jcef")
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
*)
|
||||
cat modules.list > modules_tmp.list
|
||||
;;
|
||||
esac
|
||||
rm -rf ${JBR_BUNDLE}
|
||||
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
|
||||
if [[ "${bundle_type}" == *jcef* ]]
|
||||
then
|
||||
cp -R jcef_win_x64/* ${JBR_BUNDLE}/bin
|
||||
fi
|
||||
echo Modifying release info ...
|
||||
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release
|
||||
}
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
WORK_DIR=$(pwd)
|
||||
|
||||
#git checkout -- modules.list src
|
||||
case "$bundle_type" in
|
||||
"jfx")
|
||||
echo "Excluding jcef modules"
|
||||
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
|
||||
;;
|
||||
"jcef")
|
||||
echo "Excluding jfx modules"
|
||||
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
|
||||
;;
|
||||
esac
|
||||
|
||||
PATH="/usr/local/bin:/usr/bin:${PATH}"
|
||||
|
||||
if [ -z "$bundle_type" ]; then
|
||||
bash ./configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-target-bits=64 \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-toolchain-version=${TOOLCHAIN_VERSION} \
|
||||
--with-boot-jdk=${BOOT_JDK} \
|
||||
--disable-ccache \
|
||||
--enable-cds=yes || exit 1
|
||||
else
|
||||
bash ./configure \
|
||||
--disable-warnings-as-errors \
|
||||
--with-target-bits=64 \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-import-modules=${WORK_DIR}/modular-sdk \
|
||||
--with-toolchain-version=${TOOLCHAIN_VERSION} \
|
||||
--with-boot-jdk=${BOOT_JDK} \
|
||||
--disable-ccache \
|
||||
--enable-cds=yes || exit 1
|
||||
fi
|
||||
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
make LOG=info images CONF=windows-x86_64-server-release test-image || exit 1
|
||||
else
|
||||
make LOG=info images CONF=windows-x86_64-server-release || exit 1
|
||||
fi
|
||||
|
||||
JSDK=build/windows-x86_64-server-release/images/jdk
|
||||
if [[ "$bundle_type" == "*jcef*" || -z "$bundle_type" ]]; then
|
||||
JBSDK=${JBRSDK_BASE_NAME}-windows-x64-b${build_number}
|
||||
fi
|
||||
BASE_DIR=build/windows-x86_64-server-release/images
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
|
||||
if [[ "$bundle_type" == "*jcef*" ]]; then
|
||||
cp -R jcef_win_x64/* ${JBRSDK_BUNDLE}/bin
|
||||
fi
|
||||
|
||||
if [ -z "$bundle_type" ]; then
|
||||
JBR_BUNDLE=jbr
|
||||
else
|
||||
JBR_BUNDLE=jbr_${bundle_type}
|
||||
fi
|
||||
create_jbr ${bundle_type}
|
||||
|
||||
#JBR_BUNDLE=jbr_${bundle_type}_lw
|
||||
#create_jbr ${bundle_type}_lw
|
||||
57
jb/project/tools/windows/scripts/mkimages_x86.sh
Executable file
57
jb/project/tools/windows/scripts/mkimages_x86.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
|
||||
WORK_DIR=$(pwd)
|
||||
|
||||
PATH="/usr/local/bin:/usr/bin:${PATH}"
|
||||
./configure \
|
||||
--disable-warnings-as-errors \
|
||||
--disable-debug-symbols \
|
||||
--with-target-bits=32 \
|
||||
--with-version-pre= \
|
||||
--with-version-build=${JDK_BUILD_NUMBER} \
|
||||
--with-version-opt=b${build_number} \
|
||||
--with-toolchain-version=2015 \
|
||||
--with-boot-jdk=${BOOT_JDK} \
|
||||
--disable-ccache \
|
||||
--enable-cds=yes || exit 1
|
||||
make clean CONF=windows-x86-normal-server-release || exit 1
|
||||
make LOG=info images CONF=windows-x86-normal-server-release test-image || exit 1
|
||||
|
||||
JBSDK=${JBRSDK_BASE_NAME}-windows-x86-b${build_number}
|
||||
BASE_DIR=build/windows-x86-normal-server-release/images
|
||||
JSDK=${BASE_DIR}/jdk
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
|
||||
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
|
||||
|
||||
JBR_BUNDLE=jbr
|
||||
rm -rf ${JBR_BUNDLE}
|
||||
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
|
||||
--add-modules $(xargs < modules.list.x86 | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
|
||||
|
||||
echo Modifying release info ...
|
||||
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release
|
||||
79
jb/project/tools/windows/scripts/pack_x64.sh
Executable file
79
jb/project/tools/windows/scripts/pack_x64.sh
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
bundle_type=$4
|
||||
|
||||
function pack_jbr {
|
||||
|
||||
case "$1" in
|
||||
"${bundle_type}_lw")
|
||||
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
|
||||
;;
|
||||
"jfx" | "jcef")
|
||||
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
|
||||
;;
|
||||
"jfx_jcef" | "")
|
||||
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
|
||||
;;
|
||||
*)
|
||||
echo "***ERR*** bundle was not specified" && exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
JBR=$JBR_BASE_NAME-windows-x64-b$build_number
|
||||
echo Creating $JBR.tar.gz ...
|
||||
if [ ! -z "$bundle_type" ]; then
|
||||
rm -rf ${BASE_DIR}/jbr
|
||||
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
|
||||
fi
|
||||
|
||||
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || exit 1
|
||||
#rm -rf ${BASE_DIR}/${JBR_BUNDLE}
|
||||
}
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
|
||||
JBR_BASE_NAME=jbr-$JBSDK_VERSION
|
||||
|
||||
IMAGES_DIR=build/windows-x86_64-server-release/images
|
||||
JSDK=$IMAGES_DIR/jdk
|
||||
JBSDK=$JBRSDK_BASE_NAME-windows-x64-b$build_number
|
||||
BASE_DIR=.
|
||||
|
||||
if [ -z "$bundle_type" ]; then
|
||||
JBR_BUNDLE=jbr
|
||||
else
|
||||
JBR_BUNDLE=jbr_${bundle_type}
|
||||
fi
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
|
||||
fi
|
||||
|
||||
JBR_BUNDLE=jbr_${bundle_type}
|
||||
pack_jbr $bundle_type
|
||||
|
||||
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
|
||||
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x64-b$build_number
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || exit 1
|
||||
fi
|
||||
45
jb/project/tools/windows/scripts/pack_x86.sh
Executable file
45
jb/project/tools/windows/scripts/pack_x86.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# The following parameters must be specified:
|
||||
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
|
||||
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
|
||||
# build_number - specifies the number of JetBrainsRuntime build
|
||||
# bundle_type - specifies bundle to bu built; possible values:
|
||||
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
|
||||
# jfx - the bundle 1) jbr with javafx only will be created
|
||||
#
|
||||
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
|
||||
#
|
||||
# $ ./java --version
|
||||
# openjdk 11.0.6 2020-01-14
|
||||
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
|
||||
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
|
||||
#
|
||||
|
||||
JBSDK_VERSION=$1
|
||||
JDK_BUILD_NUMBER=$2
|
||||
build_number=$3
|
||||
|
||||
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
|
||||
JBR_BASE_NAME=jbr-$JBSDK_VERSION
|
||||
|
||||
IMAGES_DIR=build/windows-x86-normal-server-release/images
|
||||
JSDK=$IMAGES_DIR/jdk
|
||||
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
|
||||
BASE_DIR=.
|
||||
|
||||
JBRSDK_BUNDLE=jbrsdk
|
||||
echo Creating $JBSDK.tar.gz ...
|
||||
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
|
||||
|
||||
JBR_BUNDLE=jbr
|
||||
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
|
||||
|
||||
JBR=$JBR_BASE_NAME-windows-x86-b$build_number
|
||||
echo Creating $JBR.tar.gz ...
|
||||
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR ${JBR_BUNDLE} || exit 1
|
||||
|
||||
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x86-b$build_number
|
||||
echo Creating $JBRSDK_TEST.tar.gz ...
|
||||
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || exit 1
|
||||
@@ -52,7 +52,6 @@ TARGETS =
|
||||
# READMEs and other files.
|
||||
|
||||
DEMO_SHARE_SRC := $(TOPDIR)/src/demo/share
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
|
||||
DEMO_MANIFEST := $(SUPPORT_OUTPUTDIR)/demos/java-main-manifest.mf
|
||||
|
||||
|
||||
@@ -477,6 +477,7 @@ jdk.internal.vm.compiler_EXCLUDES += \
|
||||
org.graalvm.compiler.options.test \
|
||||
org.graalvm.compiler.phases.common.test \
|
||||
org.graalvm.compiler.processor \
|
||||
org.graalvm.compiler.replacements.jdk10.test \
|
||||
org.graalvm.compiler.replacements.jdk12.test \
|
||||
org.graalvm.compiler.replacements.jdk9.test \
|
||||
org.graalvm.compiler.replacements.processor \
|
||||
|
||||
@@ -36,6 +36,24 @@ TARGETS :=
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, hotspot/CompileTools.gmk))
|
||||
|
||||
################################################################################
|
||||
# Build tools needed for the JFR source code generation
|
||||
|
||||
HOTSPOT_TOOLS_SRCDIR := $(TOPDIR)/make/src/classes
|
||||
|
||||
HOTSPOT_TOOLS_OUTPUTDIR := $(BUILDTOOLS_OUTPUTDIR)/buildtools/hotspot_tools_classes
|
||||
|
||||
$(eval $(call SetupJavaCompilation, BUILD_TOOLS_HOTSPOT, \
|
||||
COMPILER := bootjdk, \
|
||||
SRC := $(HOTSPOT_TOOLS_SRCDIR), \
|
||||
BIN := $(HOTSPOT_TOOLS_OUTPUTDIR), \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_TOOLS_HOTSPOT)
|
||||
|
||||
|
||||
################################################################################
|
||||
# Graal build tools
|
||||
ifeq ($(INCLUDE_GRAAL), true)
|
||||
VM_CI_SRC_DIR := $(TOPDIR)/src/jdk.internal.vm.ci/share/classes
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) )
|
||||
JAVADOC_BASE_URL := https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&id=homepage
|
||||
BUG_SUBMIT_URL := https://bugreport.java.com/bugreport/
|
||||
COPYRIGHT_URL := legal/copyright.html
|
||||
LICENSE_URL := https://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
|
||||
LICENSE_URL := https://www.oracle.com/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
|
||||
REDISTRIBUTION_URL := https://www.oracle.com/technetwork/java/redist-137594.html
|
||||
|
||||
# In order to get a specific ordering it's necessary to specify the total
|
||||
|
||||
@@ -101,9 +101,9 @@ help:
|
||||
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
|
||||
$(info $(_) TEST="test1 ..." # Use the given test descriptor(s) for testing, e.g.)
|
||||
$(info $(_) # make test TEST="jdk_lang gtest:all")
|
||||
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness)
|
||||
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness)
|
||||
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness)
|
||||
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness, use 'help' to list)
|
||||
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness, use 'help' to list)
|
||||
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness, use 'help' to list)
|
||||
$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
|
||||
$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
|
||||
$(info )
|
||||
|
||||
@@ -197,7 +197,7 @@ ifeq ($(HAS_SPEC),)
|
||||
COMPARE_BUILD="$(COMPARE_BUILD)" pre-compare-build && \
|
||||
$(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -j 1 -f $(topdir)/make/Init.gmk \
|
||||
SPEC=$(spec) HAS_SPEC=true $(MAKE_INIT_WITH_SPEC_ARGUMENTS) \
|
||||
COMPARE_BUILD="$(COMPARE_BUILD)" main && \
|
||||
COMPARE_BUILD="$(COMPARE_BUILD):NODRYRUN=true" main && \
|
||||
$(MAKE) $(MFLAGS) $(MAKE_LOG_FLAGS) -r -R -f $(topdir)/make/Init.gmk \
|
||||
SPEC=$(spec) HAS_SPEC=true ACTUAL_TOPDIR=$(topdir) \
|
||||
COMPARE_BUILD="$(COMPARE_BUILD)" post-compare-build && \
|
||||
|
||||
@@ -350,6 +350,9 @@ else # $(HAS_SPEC)=true
|
||||
$$(if $$(filter FAIL=%, $$(part)), \
|
||||
$$(eval COMPARE_BUILD_FAIL=$$(strip $$(subst +, , $$(patsubst FAIL=%, %, $$(part))))) \
|
||||
) \
|
||||
$$(if $$(filter NODRYRUN=%, $$(part)), \
|
||||
$$(eval COMPARE_BUILD_NODRYRUN=$$(strip $$(subst +, , $$(patsubst NODRYRUN=%, %, $$(part))))) \
|
||||
) \
|
||||
)
|
||||
else
|
||||
# Separate handling for single field case, to allow for spaces in values.
|
||||
@@ -372,9 +375,11 @@ else # $(HAS_SPEC)=true
|
||||
else ifeq ($$(wildcard $$(COMPARE_BUILD_PATCH)), )
|
||||
$$(error Patch file $$(COMPARE_BUILD_PATCH) does not exist)
|
||||
endif
|
||||
PATCH_DRY_RUN := $$(shell cd $$(topdir) && $$(PATCH) --dry-run -p1 < $$(COMPARE_BUILD_PATCH) > /dev/null 2>&1 || $$(ECHO) FAILED)
|
||||
ifeq ($$(PATCH_DRY_RUN), FAILED)
|
||||
$$(error Patch file $$(COMPARE_BUILD_PATCH) does not apply cleanly)
|
||||
ifneq ($$(COMPARE_BUILD_NODRYRUN), true)
|
||||
PATCH_DRY_RUN := $$(shell cd $$(topdir) && $$(PATCH) --dry-run -p1 < $$(COMPARE_BUILD_PATCH) > /dev/null 2>&1 || $$(ECHO) FAILED)
|
||||
ifeq ($$(PATCH_DRY_RUN), FAILED)
|
||||
$$(error Patch file $$(COMPARE_BUILD_PATCH) does not apply cleanly)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifneq ($$(COMPARE_BUILD_FAIL), true)
|
||||
|
||||
@@ -640,6 +640,20 @@ $(eval $(call SetupTarget, test-image-jdk-jtreg-native, \
|
||||
DEPS := build-test-jdk-jtreg-native, \
|
||||
))
|
||||
|
||||
# Native files needed by the testlib
|
||||
$(eval $(call SetupTarget, build-test-lib-native, \
|
||||
MAKEFILE := test/BuildTestLibNative, \
|
||||
TARGET := build-test-lib-native, \
|
||||
DEPS := buildtools-jdk java.base-libs, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupTarget, test-image-lib-native, \
|
||||
MAKEFILE := test/BuildTestLibNative, \
|
||||
TARGET := test-image-lib-native, \
|
||||
DEPS := build-test-lib-native, \
|
||||
))
|
||||
|
||||
# Native files needed when testing the testlib itself
|
||||
$(eval $(call SetupTarget, build-test-libtest-jtreg-native, \
|
||||
MAKEFILE := test/JtregNativeLibTest, \
|
||||
TARGET := build-test-libtest-jtreg-native, \
|
||||
@@ -804,7 +818,7 @@ else
|
||||
|
||||
# Declare dependencies between hotspot-<variant>* targets
|
||||
$(foreach v, $(JVM_VARIANTS), \
|
||||
$(eval hotspot-$v-gensrc: java.base-copy) \
|
||||
$(eval hotspot-$v-gensrc: java.base-copy buildtools-hotspot) \
|
||||
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
||||
)
|
||||
|
||||
@@ -1118,7 +1132,9 @@ endif
|
||||
docs-image: docs-jdk
|
||||
|
||||
# This target builds the test image
|
||||
test-image: prepare-test-image test-image-jdk-jtreg-native test-image-demos-jdk test-image-libtest-jtreg-native
|
||||
test-image: prepare-test-image test-image-jdk-jtreg-native \
|
||||
test-image-demos-jdk test-image-libtest-jtreg-native \
|
||||
test-image-lib-native
|
||||
|
||||
ifneq ($(JVM_TEST_IMAGE_TARGETS), )
|
||||
# If JVM_TEST_IMAGE_TARGETS is externally defined, use it instead of the
|
||||
|
||||
@@ -143,9 +143,6 @@ endif
|
||||
# Optionally create AOT libraries for specified modules before running tests.
|
||||
# Note, this could not be done during JDK build time.
|
||||
################################################################################
|
||||
|
||||
# Note, this could not be done during JDK build time.
|
||||
|
||||
# Parameter 1 is the name of the rule.
|
||||
#
|
||||
# Remaining parameters are named arguments.
|
||||
@@ -198,6 +195,10 @@ define SetupAotModuleBody
|
||||
$1_AOT_TARGETS += $$($1_AOT_LIB)
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
# Optionally create AOT libraries before running tests.
|
||||
# Note, this could not be done during JDK build time.
|
||||
################################################################################
|
||||
# Parameter 1 is the name of the rule.
|
||||
#
|
||||
# Remaining parameters are named arguments.
|
||||
@@ -291,9 +292,9 @@ $(eval $(call SetTestOpt,FAILURE_HANDLER_TIMEOUT,JTREG))
|
||||
$(eval $(call ParseKeywordVariable, JTREG, \
|
||||
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
|
||||
TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM RUN_PROBLEM_LISTS \
|
||||
RETRY_COUNT, \
|
||||
RETRY_COUNT MAX_OUTPUT, \
|
||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
|
||||
EXTRA_PROBLEM_LISTS AOT_MODULES, \
|
||||
EXTRA_PROBLEM_LISTS AOT_MODULES LAUNCHER_OPTIONS, \
|
||||
))
|
||||
|
||||
ifneq ($(JTREG), )
|
||||
@@ -844,15 +845,27 @@ define SetupRunJtregTestBody
|
||||
JTREG_RUN_PROBLEM_LISTS ?= false
|
||||
JTREG_RETRY_COUNT ?= 0
|
||||
|
||||
ifneq ($$(JTREG_LAUNCHER_OPTIONS), )
|
||||
$1_JTREG_LAUNCHER_OPTIONS += $$(JTREG_LAUNCHER_OPTIONS)
|
||||
endif
|
||||
|
||||
ifneq ($$(JTREG_MAX_OUTPUT), )
|
||||
$1_JTREG_LAUNCHER_OPTIONS += -Djavatest.maxOutputSize=$$(JTREG_MAX_OUTPUT)
|
||||
endif
|
||||
|
||||
ifneq ($$($1_JTREG_MAX_MEM), 0)
|
||||
$1_JTREG_BASIC_OPTIONS += -vmoption:-Xmx$$($1_JTREG_MAX_MEM)
|
||||
$1_JTREG_LAUNCHER_OPTIONS += -Xmx$$($1_JTREG_MAX_MEM)
|
||||
endif
|
||||
|
||||
# Make sure the tmp dir is normalized as some tests will react badly otherwise
|
||||
$1_TEST_TMP_DIR := $$(abspath $$($1_TEST_SUPPORT_DIR)/tmp)
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
||||
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
||||
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
|
||||
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
|
||||
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE) \
|
||||
-vmoption:-Djava.io.tmpdir="$$($1_TEST_TMP_DIR)"
|
||||
|
||||
$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
|
||||
|
||||
@@ -968,7 +981,8 @@ define SetupRunJtregTestBody
|
||||
run-test-$1: pre-run-test clean-workdir-$1 $$($1_AOT_TARGETS)
|
||||
$$(call LogWarn)
|
||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
|
||||
$$($1_TEST_TMP_DIR))
|
||||
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, ( \
|
||||
$$(COV_ENVIRONMENT) $$($1_COMMAND_LINE) \
|
||||
))
|
||||
|
||||
47
make/ToolsHotspot.gmk
Normal file
47
make/ToolsHotspot.gmk
Normal file
@@ -0,0 +1,47 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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.
|
||||
#
|
||||
|
||||
ifndef _TOOLS_HOTSPOT_GMK
|
||||
_TOOLS_HOTSPOT_GMK := 1
|
||||
|
||||
include JavaCompilation.gmk
|
||||
|
||||
HOTSPOT_TOOLS_OUTPUTDIR := $(BUILDTOOLS_OUTPUTDIR)/buildtools/hotspot_tools_classes
|
||||
|
||||
################################################################################
|
||||
# To avoid reevaluating the compilation setup for the tools each time this file
|
||||
# is included, the actual compilation is handled by CompileToolsHotspot.gmk. The
|
||||
# following trick is used to be able to declare a dependency on the built tools.
|
||||
BUILD_TOOLS_HOTSPOT := $(call SetupJavaCompilationCompileTarget, \
|
||||
BUILD_TOOLS_HOTSPOT, $(HOTSPOT_TOOLS_OUTPUTDIR))
|
||||
|
||||
################################################################################
|
||||
|
||||
TOOL_JFR_GEN := $(JAVA_SMALL) -cp $(HOTSPOT_TOOLS_OUTPUTDIR) \
|
||||
build.tools.jfr.GenerateJfrFiles
|
||||
|
||||
##########################################################################################
|
||||
|
||||
endif # _TOOLS_HOTSPOT_GMK
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2020, 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
|
||||
@@ -150,10 +150,10 @@ AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
|
||||
fi
|
||||
FIXPATH_SRC_W="$FIXPATH_SRC"
|
||||
FIXPATH_BIN_W="$FIXPATH_BIN"
|
||||
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_SRC_W])
|
||||
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_BIN_W])
|
||||
$RM -rf $FIXPATH_BIN $FIXPATH_DIR
|
||||
$MKDIR -p $FIXPATH_DIR $CONFIGURESUPPORT_OUTPUTDIR/bin
|
||||
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_SRC_W])
|
||||
UTIL_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_BIN_W])
|
||||
cd $FIXPATH_DIR
|
||||
$CC $FIXPATH_SRC_W -Fe$FIXPATH_BIN_W > $FIXPATH_DIR/fixpath1.log 2>&1
|
||||
cd $CONFIGURE_START_DIR
|
||||
|
||||
@@ -62,17 +62,10 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
[
|
||||
# Setup basic LDFLAGS
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
||||
# We have previously set HAS_GNU_HASH if this is the case
|
||||
if test -n "$HAS_GNU_HASH"; then
|
||||
BASIC_LDFLAGS="-Wl,--hash-style=both"
|
||||
LIBJSIG_HASHSTYLE_LDFLAGS="-Wl,--hash-style=both"
|
||||
fi
|
||||
|
||||
# Add -z,defs, to forbid undefined symbols in object files.
|
||||
# add -z,relro (mark relocations read only) for all libs
|
||||
# add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
|
||||
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs -Wl,-z,relro -Wl,-z,now"
|
||||
BASIC_LDFLAGS="-Wl,--hash-style=gnu -Wl,-z,defs -Wl,-z,relro -Wl,-z,now"
|
||||
# Linux : remove unused code+data in link step
|
||||
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
|
||||
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
|
||||
@@ -152,8 +145,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
|
||||
# Export some intermediate variables for compatibility
|
||||
LDFLAGS_CXX_JDK="$BASIC_LDFLAGS_ONLYCXX $BASIC_LDFLAGS_ONLYCXX_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY"
|
||||
AC_SUBST(LDFLAGS_CXX_JDK)
|
||||
AC_SUBST(LIBJSIG_HASHSTYLE_LDFLAGS)
|
||||
AC_SUBST(LIBJSIG_NOEXECSTACK_LDFLAGS)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -64,39 +64,12 @@ AC_DEFUN([FLAGS_SETUP_RCFLAGS],
|
||||
[
|
||||
# On Windows, we need to set RC flags.
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
RC_FLAGS="-nologo -l0x409"
|
||||
JVM_RCFLAGS="-nologo"
|
||||
RCFLAGS="-nologo"
|
||||
if test "x$DEBUG_LEVEL" = xrelease; then
|
||||
RC_FLAGS="$RC_FLAGS -DNDEBUG"
|
||||
JVM_RCFLAGS="$JVM_RCFLAGS -DNDEBUG"
|
||||
RCFLAGS="$RCFLAGS -DNDEBUG"
|
||||
fi
|
||||
|
||||
# The version variables used to create RC_FLAGS may be overridden
|
||||
# in a custom configure script, or possibly the command line.
|
||||
# Let those variables be expanded at make time in spec.gmk.
|
||||
# The \$ are escaped to the shell, and the $(...) variables
|
||||
# are evaluated by make.
|
||||
RC_FLAGS="$RC_FLAGS \
|
||||
-D\"JDK_VERSION_STRING=\$(VERSION_STRING)\" \
|
||||
-D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
|
||||
-D\"JDK_FILEDESC=\$(JDK_RC_NAME) binary\" \
|
||||
-D\"JDK_VER=\$(VERSION_NUMBER)\" \
|
||||
-D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
|
||||
-D\"JDK_NAME=\$(JDK_RC_NAME) \$(VERSION_FEATURE)\" \
|
||||
-D\"JDK_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
|
||||
|
||||
JVM_RCFLAGS="$JVM_RCFLAGS \
|
||||
-D\"HS_VERSION_STRING=\$(VERSION_STRING)\" \
|
||||
-D\"HS_COMPANY=\$(COMPANY_NAME)\" \
|
||||
-D\"HS_VER=\$(VERSION_NUMBER_FOUR_POSITIONS)\" \
|
||||
-D\"HS_INTERNAL_NAME=jvm\" \
|
||||
-D\"HS_COPYRIGHT=Copyright $COPYRIGHT_YEAR\" \
|
||||
-D\"HS_FNAME=jvm.dll\" \
|
||||
-D\"HS_NAME=\$(PRODUCT_NAME) \$(VERSION_SHORT)\" \
|
||||
-D\"HS_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
|
||||
fi
|
||||
AC_SUBST(RC_FLAGS)
|
||||
AC_SUBST(JVM_RCFLAGS)
|
||||
AC_SUBST(RCFLAGS)
|
||||
])
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -179,7 +179,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
AC_MSG_ERROR([--with-version-string must have a value])
|
||||
elif test "x$with_version_string" != x; then
|
||||
# Additional [] needed to keep m4 from mangling shell constructs.
|
||||
if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
|
||||
if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z0-9]+))?(((\+)([0-9]*))?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
|
||||
VERSION_FEATURE=${BASH_REMATCH[[1]]}
|
||||
VERSION_INTERIM=${BASH_REMATCH[[3]]}
|
||||
VERSION_UPDATE=${BASH_REMATCH[[5]]}
|
||||
@@ -188,9 +188,9 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
VERSION_EXTRA2=${BASH_REMATCH[[11]]}
|
||||
VERSION_EXTRA3=${BASH_REMATCH[[13]]}
|
||||
VERSION_PRE=${BASH_REMATCH[[15]]}
|
||||
version_plus_separator=${BASH_REMATCH[[17]]}
|
||||
VERSION_BUILD=${BASH_REMATCH[[18]]}
|
||||
VERSION_OPT=${BASH_REMATCH[[20]]}
|
||||
version_plus_separator=${BASH_REMATCH[[18]]}
|
||||
VERSION_BUILD=${BASH_REMATCH[[19]]}
|
||||
VERSION_OPT=${BASH_REMATCH[[21]]}
|
||||
# Unspecified numerical fields are interpreted as 0.
|
||||
if test "x$VERSION_INTERIM" = x; then
|
||||
VERSION_INTERIM=0
|
||||
@@ -233,8 +233,8 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
# Interpret --without-* as empty string instead of the literal "no"
|
||||
VERSION_PRE=
|
||||
else
|
||||
# Only [a-zA-Z] is allowed in the VERSION_PRE. Outer [ ] to quote m4.
|
||||
[ VERSION_PRE=`$ECHO "$with_version_pre" | $TR -c -d '[a-z][A-Z]'` ]
|
||||
# Only [a-zA-Z0-9] is allowed in the VERSION_PRE. Outer [ ] to quote m4.
|
||||
[ VERSION_PRE=`$ECHO "$with_version_pre" | $TR -c -d '[a-zA-Z0-9]'` ]
|
||||
if test "x$VERSION_PRE" != "x$with_version_pre"; then
|
||||
AC_MSG_WARN([--with-version-pre value has been sanitized from '$with_version_pre' to '$VERSION_PRE'])
|
||||
fi
|
||||
|
||||
@@ -87,6 +87,20 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
|
||||
[LIBFFI_FOUND=no]
|
||||
)
|
||||
fi
|
||||
# on macos we need a special case for system's libffi as
|
||||
# headers are located only in sdk in $SYSROOT and in ffi subfolder
|
||||
if test "x$LIBFFI_FOUND" = xno; then
|
||||
if test "x$SYSROOT" != "x"; then
|
||||
AC_CHECK_HEADER([$SYSROOT/usr/include/ffi/ffi.h],
|
||||
[
|
||||
LIBFFI_FOUND=yes
|
||||
LIBFFI_CFLAGS="-I${SYSROOT}/usr/include/ffi"
|
||||
LIBFFI_LIBS=-lffi
|
||||
],
|
||||
[LIBFFI_FOUND=no]
|
||||
)
|
||||
fi
|
||||
fi
|
||||
if test "x$LIBFFI_FOUND" = xno; then
|
||||
HELP_MSG_MISSING_DEPENDENCY([ffi])
|
||||
AC_MSG_ERROR([Could not find libffi! $HELP_MSG])
|
||||
|
||||
@@ -489,15 +489,11 @@ CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@
|
||||
CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
|
||||
CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
|
||||
|
||||
LIBJSIG_HASHSTYLE_LDFLAGS := @LIBJSIG_HASHSTYLE_LDFLAGS@
|
||||
LIBJSIG_NOEXECSTACK_LDFLAGS := @LIBJSIG_NOEXECSTACK_LDFLAGS@
|
||||
|
||||
FDLIBM_CFLAGS := @FDLIBM_CFLAGS@
|
||||
JVM_CFLAGS := @JVM_CFLAGS@
|
||||
JVM_LDFLAGS := @JVM_LDFLAGS@
|
||||
JVM_ASFLAGS := @JVM_ASFLAGS@
|
||||
JVM_LIBS := @JVM_LIBS@
|
||||
JVM_RCFLAGS := @JVM_RCFLAGS@
|
||||
|
||||
# These flags might contain variables set by a custom extension that is included later.
|
||||
EXTRA_CFLAGS = @EXTRA_CFLAGS@
|
||||
@@ -668,12 +664,7 @@ NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) $(JAVADOC_MAIN_CLASS)
|
||||
|
||||
JLINK_KEEP_PACKAGED_MODULES:=@JLINK_KEEP_PACKAGED_MODULES@
|
||||
|
||||
# Base flags for RC
|
||||
# Guarding this against resetting value. Legacy make files include spec multiple
|
||||
# times.
|
||||
ifndef RC_FLAGS
|
||||
RC_FLAGS:=@RC_FLAGS@
|
||||
endif
|
||||
RCFLAGS := @RCFLAGS@
|
||||
|
||||
# Tools adhering to a minimal and common standard of posix compliance.
|
||||
AWK:=@AWK@
|
||||
|
||||
@@ -972,12 +972,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
||||
HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
|
||||
# This is later checked when setting flags.
|
||||
fi
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
# Check if linker has -z noexecstack.
|
||||
HAS_NOEXECSTACK=`$CC -Wl,--help 2>/dev/null | $GREP 'z noexecstack'`
|
||||
@@ -1005,8 +999,27 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG],
|
||||
AC_MSG_CHECKING([for jtreg test harness])
|
||||
AC_MSG_RESULT([no, disabled])
|
||||
elif test "x$with_jtreg" != xyes && test "x$with_jtreg" != x; then
|
||||
# An explicit path is specified, use it.
|
||||
JT_HOME="$with_jtreg"
|
||||
if test -d "$with_jtreg"; then
|
||||
# An explicit path is specified, use it.
|
||||
JT_HOME="$with_jtreg"
|
||||
else
|
||||
case "$with_jtreg" in
|
||||
*.zip )
|
||||
JTREG_SUPPORT_DIR=$CONFIGURESUPPORT_OUTPUTDIR/jtreg
|
||||
$RM -rf $JTREG_SUPPORT_DIR
|
||||
$MKDIR -p $JTREG_SUPPORT_DIR
|
||||
$UNZIP -qq -d $JTREG_SUPPORT_DIR $with_jtreg
|
||||
|
||||
# Try to find jtreg to determine JT_HOME path
|
||||
JTREG_PATH=`$FIND $JTREG_SUPPORT_DIR | $GREP "/bin/jtreg"`
|
||||
if test "x$JTREG_PATH" != x; then
|
||||
JT_HOME=$($DIRNAME $($DIRNAME $JTREG_PATH))
|
||||
fi
|
||||
;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
UTIL_FIXUP_PATH([JT_HOME])
|
||||
if test ! -d "$JT_HOME"; then
|
||||
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not exist])
|
||||
|
||||
@@ -52,7 +52,15 @@ AC_DEFUN([UTIL_REWRITE_AS_WINDOWS_MIXED_PATH],
|
||||
windows_path=`cmd //c echo $unix_path`
|
||||
$1="$windows_path"
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl"; then
|
||||
windows_path=`$WSLPATH -m "$unix_path"`
|
||||
windows_path=`$WSLPATH -m "$unix_path" 2>/dev/null`
|
||||
if test $? -ne 0; then
|
||||
dir=`dirname "$unix_path"`
|
||||
base=`basename "$unix_path"`
|
||||
windows_path=`$WSLPATH -m "$dir"`/"$base"
|
||||
if test $? -ne 0; then
|
||||
AC_MSG_ERROR([Cannot convert "$unix_path" to Windows path])
|
||||
fi
|
||||
fi
|
||||
$1="$windows_path"
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2020, 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
|
||||
@@ -26,18 +26,18 @@
|
||||
# Default version, product, and vendor information to use,
|
||||
# unless overridden by configure
|
||||
|
||||
DEFAULT_VERSION_FEATURE=15
|
||||
DEFAULT_VERSION_FEATURE=16
|
||||
DEFAULT_VERSION_INTERIM=0
|
||||
DEFAULT_VERSION_UPDATE=0
|
||||
DEFAULT_VERSION_PATCH=0
|
||||
DEFAULT_VERSION_EXTRA1=0
|
||||
DEFAULT_VERSION_EXTRA2=0
|
||||
DEFAULT_VERSION_EXTRA3=0
|
||||
DEFAULT_VERSION_DATE=2020-09-15
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=59 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_DATE=2021-03-16
|
||||
DEFAULT_VERSION_CLASSFILE_MAJOR=60 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
|
||||
DEFAULT_VERSION_CLASSFILE_MINOR=0
|
||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="14 15"
|
||||
DEFAULT_JDK_SOURCE_TARGET_VERSION=15
|
||||
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="14 15 16"
|
||||
DEFAULT_JDK_SOURCE_TARGET_VERSION=16
|
||||
DEFAULT_PROMOTED_VERSION_PRE=ea
|
||||
|
||||
LAUNCHER_NAME=openjdk
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2018, 2020, 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,16 @@ ProcessDir = \
|
||||
) \
|
||||
)
|
||||
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
|
||||
JDK_RCFLAGS=$(RCFLAGS) \
|
||||
-D"JDK_VERSION_STRING=$(VERSION_STRING)" \
|
||||
-D"JDK_COMPANY=$(COMPANY_NAME)" \
|
||||
-D"JDK_VER=$(VERSION_NUMBER_FOUR_POSITIONS)" \
|
||||
-D"JDK_COPYRIGHT=Copyright \xA9 $(COPYRIGHT_YEAR)" \
|
||||
-D"JDK_NAME=$(JDK_RC_NAME) $(VERSION_SHORT)" \
|
||||
-D"JDK_FVER=$(subst .,$(COMMA),$(VERSION_NUMBER_FOUR_POSITIONS))"
|
||||
|
||||
# Setup make rules for creating a native shared library with suitable defaults
|
||||
# for the OpenJDK project.
|
||||
#
|
||||
@@ -100,7 +110,7 @@ ProcessDir = \
|
||||
#
|
||||
# Remaining parameters are named arguments. These are all passed on to
|
||||
# SetupNativeCompilation, except for
|
||||
# EXTRA_RC_FLAGS -- additional RC_FLAGS to append.
|
||||
# EXTRA_RCFLAGS -- additional RCFLAGS to append.
|
||||
# EXTRA_HEADER_DIRS -- additional directories to look for headers in
|
||||
# EXTRA_SRC -- additional directories to look for source in
|
||||
# EXCLUDE_SRC_PATTERNS -- exclude source dirs matching these patterns from
|
||||
@@ -108,6 +118,7 @@ ProcessDir = \
|
||||
# HEADERS_FROM_SRC -- if false, does not add source dirs automatically as
|
||||
# header include dirs. (Defaults to true.)
|
||||
# SRC -- this is passed on, but preprocessed to accept source dir designations
|
||||
# RC_FILEDESC -- override the default FILEDESC for Windows version.rc
|
||||
# such as "java.base:headers".
|
||||
SetupJdkLibrary = $(NamedParamsMacroTemplate)
|
||||
define SetupJdkLibraryBody
|
||||
@@ -137,19 +148,20 @@ define SetupJdkLibraryBody
|
||||
|
||||
ifeq ($$($1_VERSIONINFO_RESOURCE), )
|
||||
$1_VERSIONINFO_RESOURCE := $$(GLOBAL_VERSION_INFO_RESOURCE)
|
||||
else ifeq ($$($1_VERSIONINFO_RESOURCE), DISABLE)
|
||||
$1_VERSIONINFO_RESOURCE :=
|
||||
endif
|
||||
|
||||
ifeq ($$($1_RC_FLAGS), )
|
||||
$1_RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=$$($1_NAME).dll" \
|
||||
-D "JDK_INTERNAL_NAME=$$($1_NAME)" \
|
||||
-D "JDK_FTYPE=0x2L"
|
||||
else ifeq ($$($1_RC_FLAGS), DISABLE)
|
||||
$1_RC_FLAGS :=
|
||||
ifeq ($$($1_RC_FILEDESC), )
|
||||
$1_RC_FILEDESC := $(JDK_RC_NAME) binary
|
||||
endif
|
||||
|
||||
$1_RCFLAGS := $(JDK_RCFLAGS) \
|
||||
-D"JDK_FILEDESC=$$(strip $$($1_RC_FILEDESC))" \
|
||||
-D"JDK_FNAME=$$($1_NAME).dll" \
|
||||
-D"JDK_INTERNAL_NAME=$$($1_NAME)" \
|
||||
-D"JDK_FTYPE=0x2L" \
|
||||
-I$(TOPDIR)/src/java.base/windows/native/common \
|
||||
$$($1_EXTRA_RCFLAGS)
|
||||
|
||||
ifneq ($$($1_HEADERS_FROM_SRC), false)
|
||||
$1_SRC_HEADER_FLAGS := $$(addprefix -I, $$(wildcard $$($1_SRC)))
|
||||
endif
|
||||
@@ -171,7 +183,6 @@ define SetupJdkLibraryBody
|
||||
ifeq ($$($1_CFLAGS)$$($1_CXXFLAGS), )
|
||||
$1_CFLAGS += $$($1_SRC_HEADER_FLAGS) $$($1_EXTRA_HEADER_FLAGS)
|
||||
endif
|
||||
$1_RC_FLAGS += $$($1_EXTRA_RC_FLAGS)
|
||||
|
||||
# Since we reuse the rule name ($1), all our arguments will pass through.
|
||||
# We lose in transparency, but gain in brevity in this call...
|
||||
@@ -186,7 +197,7 @@ endef
|
||||
#
|
||||
# Remaining parameters are named arguments. These are all passed on to
|
||||
# SetupNativeCompilation, except for
|
||||
# EXTRA_RC_FLAGS -- additional RC_FLAGS to append.
|
||||
# EXTRA_RCFLAGS -- additional RCFLAGS to append.
|
||||
SetupJdkExecutable = $(NamedParamsMacroTemplate)
|
||||
define SetupJdkExecutableBody
|
||||
$1_TYPE := EXECUTABLE
|
||||
@@ -201,20 +212,15 @@ define SetupJdkExecutableBody
|
||||
|
||||
ifeq ($$($1_VERSIONINFO_RESOURCE), )
|
||||
$1_VERSIONINFO_RESOURCE := $$(GLOBAL_VERSION_INFO_RESOURCE)
|
||||
else ifeq ($$($1_VERSIONINFO_RESOURCE), DISABLE)
|
||||
$1_VERSIONINFO_RESOURCE :=
|
||||
endif
|
||||
|
||||
ifeq ($$($1_RC_FLAGS), )
|
||||
$1_RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=$$($1_NAME).exe" \
|
||||
-D "JDK_INTERNAL_NAME=$$($1_NAME)" \
|
||||
-D "JDK_FTYPE=0x01L"
|
||||
else ifeq ($$($1_RC_FLAGS), DISABLE)
|
||||
$1_RC_FLAGS :=
|
||||
endif
|
||||
|
||||
$1_RC_FLAGS += $$($1_EXTRA_RC_FLAGS)
|
||||
$1_RCFLAGS := $(JDK_RCFLAGS) \
|
||||
-D"JDK_FILEDESC=$(JDK_RC_NAME) binary" \
|
||||
-D"JDK_FNAME=$$($1_NAME).exe" \
|
||||
-D"JDK_INTERNAL_NAME=$$($1_NAME)" \
|
||||
-D"JDK_FTYPE=0x1L" \
|
||||
-I$(TOPDIR)/src/java.base/windows/native/common \
|
||||
$$($1_EXTRA_RCFLAGS)
|
||||
|
||||
# Since we reuse the rule name ($1), all our arguments will pass through.
|
||||
# We lose in transparency, but gain in brevity in this call...
|
||||
|
||||
@@ -346,6 +346,7 @@ $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \
|
||||
sub(/\/\*.*\*\//, ""); \
|
||||
gsub(/^ +\*.*/, ""); \
|
||||
gsub(/ /, ""); \
|
||||
gsub(/\r/, ""); \
|
||||
printf(" %s", $$0) } \
|
||||
END { printf("\n") }' $m && \
|
||||
$(PRINTF) "TRANSITIVE_MODULES_$(call GetModuleNameFromModuleInfo, $m) :=" && \
|
||||
@@ -359,6 +360,7 @@ $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \
|
||||
sub(/\/\*.*\*\//, ""); \
|
||||
gsub(/^ +\*.*/, ""); \
|
||||
gsub(/ /, ""); \
|
||||
gsub(/\r/, ""); \
|
||||
printf(" %s", $$0) } \
|
||||
END { printf("\n") }' $m \
|
||||
) >> $@ $(NEWLINE))
|
||||
|
||||
@@ -457,7 +457,7 @@ endef
|
||||
# EXTRA_OBJECT_FILES List of extra object files to include when linking
|
||||
# EXTRA_DEPS List of extra dependencies to be added to each compiled file
|
||||
# VERSIONINFO_RESOURCE Input file for RC. Setting this implies that RC will be run
|
||||
# RC_FLAGS flags for RC.
|
||||
# RCFLAGS flags for RC.
|
||||
# EMBED_MANIFEST if true, embed manifest on Windows.
|
||||
# MAPFILE mapfile
|
||||
# USE_MAPFILE_FOR_SYMBOLS if true and this is a STATIC_BUILD, just copy the
|
||||
@@ -860,7 +860,7 @@ define SetupNativeCompilationBody
|
||||
-include $$($1_RES_DEPS_FILE)
|
||||
-include $$($1_RES_DEPS_TARGETS_FILE)
|
||||
|
||||
$1_RES_VARDEPS := $$($1_RC) $$($1_RC_FLAGS)
|
||||
$1_RES_VARDEPS := $$($1_RC) $$($1_RCFLAGS)
|
||||
$1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \
|
||||
$$($1_RES).vardeps)
|
||||
|
||||
@@ -868,7 +868,7 @@ define SetupNativeCompilationBody
|
||||
$$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$($1_BASENAME)))
|
||||
$$(call MakeDir, $$(@D) $$($1_OBJECT_DIR))
|
||||
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
|
||||
$$($1_RC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
|
||||
$$($1_RC) $$($1_RCFLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
|
||||
$$($1_VERSIONINFO_RESOURCE) 2>&1 ))
|
||||
# Windows RC compiler does not support -showIncludes, so we mis-use CL
|
||||
# for this. Filter out RC specific arguments that are unknown to CL.
|
||||
@@ -876,7 +876,7 @@ define SetupNativeCompilationBody
|
||||
# includes to stderr so need to redirect it to hide the output from the
|
||||
# main log.
|
||||
$$(call ExecuteWithLog, $$($1_RES_DEPS_FILE).obj, \
|
||||
$$($1_CC) $$(filter-out -l%, $$($1_RC_FLAGS)) \
|
||||
$$($1_CC) $$(filter-out -l%, $$($1_RCFLAGS)) \
|
||||
$$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \
|
||||
$(CC_OUT_OPTION)$$($1_RES_DEPS_FILE).obj -P -Fi$$($1_RES_DEPS_FILE).pp \
|
||||
$$($1_VERSIONINFO_RESOURCE)) 2>&1 \
|
||||
|
||||
@@ -220,6 +220,10 @@ define ParseKeywordVariableBody
|
||||
$$(eval mangled_part_eval := $$(call DoubleDollar, $$(mangled_part))) \
|
||||
$$(eval part := $$$$(subst ||||,$$$$(SPACE),$$$$(mangled_part_eval))) \
|
||||
$$(eval $1_NO_MATCH := true) \
|
||||
$$(if $$(filter help, $$(part)), \
|
||||
$$(info Valid keywords for $1:) \
|
||||
$$(info $$($1_SINGLE_KEYWORDS) $$($1_STRING_KEYWORDS).) \
|
||||
$$(error Re-run without 'help' to continue)) \
|
||||
$$(foreach keyword, $$($1_SINGLE_KEYWORDS), \
|
||||
$$(eval keyword_eval := $$(call DoubleDollar, $$(keyword))) \
|
||||
$$(if $$(filter $$(keyword)=%, $$(part)), \
|
||||
|
||||
@@ -48,7 +48,6 @@ LAUNCHER_CFLAGS += -I$(TOPDIR)/src/java.base/share/native/launcher \
|
||||
-I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli \
|
||||
-I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libjli \
|
||||
#
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
MACOSX_PLIST_DIR := $(TOPDIR)/src/java.base/macosx/native/launcher
|
||||
JAVA_MANIFEST := $(TOPDIR)/src/java.base/windows/native/launcher/java.manifest
|
||||
|
||||
@@ -71,7 +70,7 @@ JAVA_MANIFEST := $(TOPDIR)/src/java.base/windows/native/launcher/java.manifest
|
||||
# compile time defines exceeding Visual Studio 2013 limitations.
|
||||
# CFLAGS Additional CFLAGS
|
||||
# CFLAGS_windows Additional CFLAGS_windows
|
||||
# EXTRA_RC_FLAGS Additional EXTRA_RC_FLAGS
|
||||
# EXTRA_RCFLAGS Additional EXTRA_RCFLAGS
|
||||
# MACOSX_PRIVILEGED On macosx, allow to access other processes
|
||||
# OPTIMIZATION Override default optimization level (LOW)
|
||||
# OUTPUT_DIR Override default output directory
|
||||
@@ -160,7 +159,7 @@ define SetupBuildLauncherBody
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib, \
|
||||
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
|
||||
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
|
||||
EXTRA_RC_FLAGS := $$($1_EXTRA_RC_FLAGS), \
|
||||
EXTRA_RCFLAGS := $$($1_EXTRA_RCFLAGS), \
|
||||
MANIFEST := $(JAVA_MANIFEST), \
|
||||
MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \
|
||||
))
|
||||
|
||||
@@ -27,8 +27,6 @@ include JdkNativeCompilation.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
|
||||
# Absolute paths to lib files on windows for use in LIBS. Should figure out a more
|
||||
# elegant solution to this.
|
||||
WIN_JAVA_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
|
||||
|
||||
273
make/data/symbols/java.base-F.sym.txt
Normal file
273
make/data/symbols/java.base-F.sym.txt
Normal file
@@ -0,0 +1,273 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name java/lang/Boolean
|
||||
header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable,java/lang/constant/Constable flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Boolean;>;Ljava/lang/constant/Constable;
|
||||
method name describeConstable descriptor ()Ljava/util/Optional; flags 1 signature ()Ljava/util/Optional<Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Boolean;>;>;
|
||||
|
||||
class name java/lang/Byte
|
||||
header extends java/lang/Number implements java/lang/Comparable,java/lang/constant/Constable flags 31 signature Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Byte;>;Ljava/lang/constant/Constable;
|
||||
method name describeConstable descriptor ()Ljava/util/Optional; flags 1 signature ()Ljava/util/Optional<Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Byte;>;>;
|
||||
|
||||
class name java/lang/CharSequence
|
||||
method name isEmpty descriptor ()Z flags 1
|
||||
|
||||
class name java/lang/Character
|
||||
header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable,java/lang/constant/Constable nestMembers java/lang/Character$UnicodeScript,java/lang/Character$UnicodeBlock,java/lang/Character$Subset flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Character;>;Ljava/lang/constant/Constable;
|
||||
innerclass innerClass java/lang/Character$UnicodeBlock outerClass java/lang/Character innerClassName UnicodeBlock flags 19
|
||||
innerclass innerClass java/lang/Character$UnicodeScript outerClass java/lang/Character innerClassName UnicodeScript flags 4019
|
||||
innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
|
||||
method name describeConstable descriptor ()Ljava/util/Optional; flags 1 signature ()Ljava/util/Optional<Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Character;>;>;
|
||||
|
||||
class name java/lang/Character$UnicodeBlock
|
||||
field name YEZIDI descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name CHORASMIAN descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name DIVES_AKURU descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name LISU_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name KHITAN_SMALL_SCRIPT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name TANGUT_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name SYMBOLS_FOR_LEGACY_COMPUTING descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
field name CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G descriptor Ljava/lang/Character$UnicodeBlock; flags 19
|
||||
|
||||
class name java/lang/Character$UnicodeScript
|
||||
field name YEZIDI descriptor Ljava/lang/Character$UnicodeScript; flags 4019
|
||||
field name CHORASMIAN descriptor Ljava/lang/Character$UnicodeScript; flags 4019
|
||||
field name DIVES_AKURU descriptor Ljava/lang/Character$UnicodeScript; flags 4019
|
||||
field name KHITAN_SMALL_SCRIPT descriptor Ljava/lang/Character$UnicodeScript; flags 4019
|
||||
|
||||
class name java/lang/Class
|
||||
method name isHidden descriptor ()Z flags 101 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
|
||||
method name permittedSubclasses descriptor ()[Ljava/lang/constant/ClassDesc; flags 1 classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;SEALED_CLASSES;,essentialAPI=Zfalse)
|
||||
method name isSealed descriptor ()Z flags 1 classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;SEALED_CLASSES;,essentialAPI=Zfalse)
|
||||
|
||||
class name java/lang/Math
|
||||
method name absExact descriptor (I)I flags 9
|
||||
method name absExact descriptor (J)J flags 9
|
||||
|
||||
class name java/lang/Short
|
||||
header extends java/lang/Number implements java/lang/Comparable,java/lang/constant/Constable flags 31 signature Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Short;>;Ljava/lang/constant/Constable;
|
||||
method name describeConstable descriptor ()Ljava/util/Optional; flags 1 signature ()Ljava/util/Optional<Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Short;>;>;
|
||||
|
||||
class name java/lang/StrictMath
|
||||
method name absExact descriptor (I)I flags 9
|
||||
method name absExact descriptor (J)J flags 9
|
||||
|
||||
class name java/lang/String
|
||||
-method name stripIndent descriptor ()Ljava/lang/String;
|
||||
-method name translateEscapes descriptor ()Ljava/lang/String;
|
||||
-method name formatted descriptor ([Ljava/lang/Object;)Ljava/lang/String;
|
||||
method name stripIndent descriptor ()Ljava/lang/String; flags 1
|
||||
method name translateEscapes descriptor ()Ljava/lang/String; flags 1
|
||||
method name formatted descriptor ([Ljava/lang/Object;)Ljava/lang/String; flags 81
|
||||
|
||||
class name java/lang/constant/ConstantDescs
|
||||
field name BSM_GET_STATIC_FINAL descriptor Ljava/lang/constant/DirectMethodHandleDesc; flags 19
|
||||
field name BSM_EXPLICIT_CAST descriptor Ljava/lang/constant/DirectMethodHandleDesc; flags 19
|
||||
field name TRUE descriptor Ljava/lang/constant/DynamicConstantDesc; flags 19 signature Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Boolean;>;
|
||||
field name FALSE descriptor Ljava/lang/constant/DynamicConstantDesc; flags 19 signature Ljava/lang/constant/DynamicConstantDesc<Ljava/lang/Boolean;>;
|
||||
|
||||
class name java/lang/invoke/ConstantBootstraps
|
||||
-method name <init> descriptor ()V
|
||||
method name explicitCast descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object; thrownTypes java/lang/ClassCastException flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/Object;
|
||||
|
||||
class name java/lang/invoke/MethodHandles
|
||||
header extends java/lang/Object nestMembers java/lang/invoke/MethodHandles$Lookup,java/lang/invoke/MethodHandles$Lookup$ClassOption flags 21
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup$ClassOption outerClass java/lang/invoke/MethodHandles$Lookup innerClassName ClassOption flags 4019
|
||||
|
||||
class name java/lang/invoke/MethodHandles$Lookup
|
||||
header extends java/lang/Object nestHost java/lang/invoke/MethodHandles flags 31
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup$ClassOption outerClass java/lang/invoke/MethodHandles$Lookup innerClassName ClassOption flags 4019
|
||||
innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
|
||||
method name defineHiddenClass descriptor ([BZ[Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;)Ljava/lang/invoke/MethodHandles$Lookup; thrownTypes java/lang/IllegalAccessException flags 81
|
||||
method name ensureInitialized descriptor (Ljava/lang/Class;)Ljava/lang/Class; thrownTypes java/lang/IllegalAccessException flags 1 signature (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
|
||||
|
||||
class name java/lang/invoke/MethodHandles$Lookup$ClassOption
|
||||
header extends java/lang/Enum nestHost java/lang/invoke/MethodHandles flags 4031 signature Ljava/lang/Enum<Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;>;
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup$ClassOption outerClass java/lang/invoke/MethodHandles$Lookup innerClassName ClassOption flags 4019
|
||||
field name NESTMATE descriptor Ljava/lang/invoke/MethodHandles$Lookup$ClassOption; flags 4019
|
||||
field name STRONG descriptor Ljava/lang/invoke/MethodHandles$Lookup$ClassOption; flags 4019
|
||||
method name values descriptor ()[Ljava/lang/invoke/MethodHandles$Lookup$ClassOption; flags 9
|
||||
method name valueOf descriptor (Ljava/lang/String;)Ljava/lang/invoke/MethodHandles$Lookup$ClassOption; flags 9
|
||||
|
||||
class name java/lang/invoke/VarHandle
|
||||
-method name varType descriptor ()Ljava/lang/Class;
|
||||
-method name coordinateTypes descriptor ()Ljava/util/List;
|
||||
-method name toMethodHandle descriptor (Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
|
||||
method name varType descriptor ()Ljava/lang/Class; flags 1 signature ()Ljava/lang/Class<*>;
|
||||
method name coordinateTypes descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljava/lang/Class<*>;>;
|
||||
method name toMethodHandle descriptor (Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle; flags 1
|
||||
|
||||
class name java/lang/reflect/AnnotatedType
|
||||
method name getAnnotation descriptor (Ljava/lang/Class;)Ljava/lang/annotation/Annotation; flags 401 signature <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;)TT;
|
||||
method name getAnnotations descriptor ()[Ljava/lang/annotation/Annotation; flags 401
|
||||
method name getDeclaredAnnotations descriptor ()[Ljava/lang/annotation/Annotation; flags 401
|
||||
|
||||
class name java/lang/reflect/Modifier
|
||||
-method name <init> descriptor ()V
|
||||
|
||||
class name java/net/DatagramSocket
|
||||
header extends java/lang/Object implements java/io/Closeable flags 21
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
-method name bind descriptor (Ljava/net/SocketAddress;)V
|
||||
-method name receive descriptor (Ljava/net/DatagramPacket;)V
|
||||
-method name setSoTimeout descriptor (I)V
|
||||
-method name getSoTimeout descriptor ()I
|
||||
-method name setSendBufferSize descriptor (I)V
|
||||
-method name getSendBufferSize descriptor ()I
|
||||
-method name setReceiveBufferSize descriptor (I)V
|
||||
-method name getReceiveBufferSize descriptor ()I
|
||||
-method name setReuseAddress descriptor (Z)V
|
||||
-method name getReuseAddress descriptor ()Z
|
||||
-method name setBroadcast descriptor (Z)V
|
||||
-method name getBroadcast descriptor ()Z
|
||||
-method name setTrafficClass descriptor (I)V
|
||||
-method name getTrafficClass descriptor ()I
|
||||
method name bind descriptor (Ljava/net/SocketAddress;)V thrownTypes java/net/SocketException flags 1
|
||||
method name receive descriptor (Ljava/net/DatagramPacket;)V thrownTypes java/io/IOException flags 1
|
||||
method name setSoTimeout descriptor (I)V thrownTypes java/net/SocketException flags 1
|
||||
method name getSoTimeout descriptor ()I thrownTypes java/net/SocketException flags 1
|
||||
method name setSendBufferSize descriptor (I)V thrownTypes java/net/SocketException flags 1
|
||||
method name getSendBufferSize descriptor ()I thrownTypes java/net/SocketException flags 1
|
||||
method name setReceiveBufferSize descriptor (I)V thrownTypes java/net/SocketException flags 1
|
||||
method name getReceiveBufferSize descriptor ()I thrownTypes java/net/SocketException flags 1
|
||||
method name setReuseAddress descriptor (Z)V thrownTypes java/net/SocketException flags 1
|
||||
method name getReuseAddress descriptor ()Z thrownTypes java/net/SocketException flags 1
|
||||
method name setBroadcast descriptor (Z)V thrownTypes java/net/SocketException flags 1
|
||||
method name getBroadcast descriptor ()Z thrownTypes java/net/SocketException flags 1
|
||||
method name setTrafficClass descriptor (I)V thrownTypes java/net/SocketException flags 1
|
||||
method name getTrafficClass descriptor ()I thrownTypes java/net/SocketException flags 1
|
||||
|
||||
class name java/net/MulticastSocket
|
||||
-method name supportedOptions descriptor ()Ljava/util/Set;
|
||||
|
||||
class name java/nio/CharBuffer
|
||||
method name isEmpty descriptor ()Z flags 11
|
||||
|
||||
class name java/nio/channels/ServerSocketChannel
|
||||
method name open descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/ServerSocketChannel; thrownTypes java/io/IOException flags 9
|
||||
|
||||
class name java/nio/channels/SocketChannel
|
||||
method name open descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/SocketChannel; thrownTypes java/io/IOException flags 9
|
||||
|
||||
class name java/nio/channels/spi/SelectorProvider
|
||||
method name openSocketChannel descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/SocketChannel; thrownTypes java/io/IOException flags 1
|
||||
method name openServerSocketChannel descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/ServerSocketChannel; thrownTypes java/io/IOException flags 1
|
||||
|
||||
class name java/security/KeyStore
|
||||
header extends java/lang/Object nestMembers java/security/KeyStore$Builder,java/security/KeyStore$TrustedCertificateEntry,java/security/KeyStore$SecretKeyEntry,java/security/KeyStore$PrivateKeyEntry,java/security/KeyStore$Entry,java/security/KeyStore$Entry$Attribute,java/security/KeyStore$CallbackHandlerProtection,java/security/KeyStore$PasswordProtection,java/security/KeyStore$ProtectionParameter,java/security/KeyStore$LoadStoreParameter flags 21
|
||||
innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
|
||||
innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
|
||||
innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
|
||||
innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
|
||||
innerclass innerClass java/security/KeyStore$Builder outerClass java/security/KeyStore innerClassName Builder flags 409
|
||||
innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
|
||||
innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
|
||||
innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
|
||||
innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
|
||||
innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
|
||||
innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
|
||||
|
||||
class name java/security/interfaces/EdECKey
|
||||
header extends java/lang/Object flags 601
|
||||
method name getParams descriptor ()Ljava/security/spec/NamedParameterSpec; flags 401
|
||||
|
||||
class name java/security/interfaces/EdECPrivateKey
|
||||
header extends java/lang/Object implements java/security/interfaces/EdECKey,java/security/PrivateKey flags 601
|
||||
method name getBytes descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<[B>;
|
||||
|
||||
class name java/security/interfaces/EdECPublicKey
|
||||
header extends java/lang/Object implements java/security/interfaces/EdECKey,java/security/PublicKey flags 601
|
||||
method name getPoint descriptor ()Ljava/security/spec/EdECPoint; flags 401
|
||||
|
||||
class name java/security/spec/EdDSAParameterSpec
|
||||
header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
|
||||
method name <init> descriptor (Z)V flags 1
|
||||
method name <init> descriptor (Z[B)V flags 1
|
||||
method name isPrehash descriptor ()Z flags 1
|
||||
method name getContext descriptor ()Ljava/util/Optional; flags 1 signature ()Ljava/util/Optional<[B>;
|
||||
|
||||
class name java/security/spec/EdECPoint
|
||||
header extends java/lang/Object flags 31
|
||||
method name <init> descriptor (ZLjava/math/BigInteger;)V flags 1
|
||||
method name isXOdd descriptor ()Z flags 1
|
||||
method name getY descriptor ()Ljava/math/BigInteger; flags 1
|
||||
|
||||
class name java/security/spec/EdECPrivateKeySpec
|
||||
header extends java/lang/Object implements java/security/spec/KeySpec flags 31
|
||||
method name <init> descriptor (Ljava/security/spec/NamedParameterSpec;[B)V flags 1
|
||||
method name getParams descriptor ()Ljava/security/spec/NamedParameterSpec; flags 1
|
||||
method name getBytes descriptor ()[B flags 1
|
||||
|
||||
class name java/security/spec/EdECPublicKeySpec
|
||||
header extends java/lang/Object implements java/security/spec/KeySpec flags 31
|
||||
method name <init> descriptor (Ljava/security/spec/NamedParameterSpec;Ljava/security/spec/EdECPoint;)V flags 1
|
||||
method name getParams descriptor ()Ljava/security/spec/NamedParameterSpec; flags 1
|
||||
method name getPoint descriptor ()Ljava/security/spec/EdECPoint; flags 1
|
||||
|
||||
class name java/security/spec/NamedParameterSpec
|
||||
field name ED25519 descriptor Ljava/security/spec/NamedParameterSpec; flags 19
|
||||
field name ED448 descriptor Ljava/security/spec/NamedParameterSpec; flags 19
|
||||
|
||||
class name java/text/DecimalFormatSymbols
|
||||
method name getMonetaryGroupingSeparator descriptor ()C flags 1
|
||||
method name setMonetaryGroupingSeparator descriptor (C)V flags 1
|
||||
|
||||
class name java/util/NoSuchElementException
|
||||
method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V flags 1
|
||||
method name <init> descriptor (Ljava/lang/Throwable;)V flags 1
|
||||
|
||||
class name java/util/TreeMap
|
||||
method name putIfAbsent descriptor (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; flags 1 signature (TK;TV;)TV;
|
||||
method name computeIfAbsent descriptor (Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; flags 1 signature (TK;Ljava/util/function/Function<-TK;+TV;>;)TV;
|
||||
method name computeIfPresent descriptor (Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; flags 1 signature (TK;Ljava/util/function/BiFunction<-TK;-TV;+TV;>;)TV;
|
||||
method name compute descriptor (Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; flags 1 signature (TK;Ljava/util/function/BiFunction<-TK;-TV;+TV;>;)TV;
|
||||
method name merge descriptor (Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; flags 1 signature (TK;TV;Ljava/util/function/BiFunction<-TV;-TV;+TV;>;)TV;
|
||||
|
||||
class name java/util/concurrent/locks/StampedLock
|
||||
header extends java/lang/Object implements java/io/Serializable flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1)
|
||||
method name tryWriteLock descriptor ()J flags 1
|
||||
method name writeLockInterruptibly descriptor ()J thrownTypes java/lang/InterruptedException flags 1
|
||||
method name tryReadLock descriptor ()J flags 1
|
||||
method name tryReadLock descriptor (JLjava/util/concurrent/TimeUnit;)J thrownTypes java/lang/InterruptedException flags 1
|
||||
method name readLockInterruptibly descriptor ()J thrownTypes java/lang/InterruptedException flags 1
|
||||
method name unlock descriptor (J)V flags 1
|
||||
-method name tryWriteLock descriptor ()J
|
||||
-method name writeLockInterruptibly descriptor ()J
|
||||
-method name tryReadLock descriptor ()J
|
||||
-method name tryReadLock descriptor (JLjava/util/concurrent/TimeUnit;)J
|
||||
-method name readLockInterruptibly descriptor ()J
|
||||
-method name unlock descriptor (J)V
|
||||
|
||||
class name javax/net/ssl/SSLSession
|
||||
-method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate;
|
||||
method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; thrownTypes javax/net/ssl/SSLPeerUnverifiedException flags 1 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
|
||||
|
||||
74
make/data/symbols/java.compiler-F.sym.txt
Normal file
74
make/data/symbols/java.compiler-F.sym.txt
Normal file
@@ -0,0 +1,74 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name javax/lang/model/SourceVersion
|
||||
field name RELEASE_15 descriptor Ljavax/lang/model/SourceVersion; flags 4019
|
||||
|
||||
class name javax/lang/model/element/Element
|
||||
method name getAnnotationsByType descriptor (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation; flags 401 signature <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
|
||||
|
||||
class name javax/lang/model/element/Modifier
|
||||
header extends java/lang/Enum flags 4021 signature Ljava/lang/Enum<Ljavax/lang/model/element/Modifier;>;
|
||||
field name SEALED descriptor Ljavax/lang/model/element/Modifier; flags 4019 classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;SEALED_CLASSES;,essentialAPI=Zfalse)
|
||||
field name NON_SEALED descriptor Ljavax/lang/model/element/Modifier; flags 4019 classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;SEALED_CLASSES;,essentialAPI=Zfalse)
|
||||
|
||||
class name javax/lang/model/element/TypeElement
|
||||
method name getPermittedSubclasses descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<+Ljavax/lang/model/type/TypeMirror;>; classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;SEALED_CLASSES;,essentialAPI=Zfalse)
|
||||
|
||||
class name javax/lang/model/type/TypeMirror
|
||||
method name getAnnotationMirrors descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<+Ljavax/lang/model/element/AnnotationMirror;>;
|
||||
method name getAnnotation descriptor (Ljava/lang/Class;)Ljava/lang/annotation/Annotation; flags 401 signature <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
|
||||
method name getAnnotationsByType descriptor (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation; flags 401 signature <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
|
||||
|
||||
class name javax/lang/model/util/AbstractAnnotationValueVisitor14
|
||||
header extends javax/lang/model/util/AbstractAnnotationValueVisitor9 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractAnnotationValueVisitor9<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/AbstractElementVisitor14
|
||||
header extends javax/lang/model/util/AbstractElementVisitor9 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor9<TR;TP;>; classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;RECORDS;,essentialAPI=Zfalse) runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/AbstractTypeVisitor14
|
||||
header extends javax/lang/model/util/AbstractTypeVisitor9 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractTypeVisitor9<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/ElementKindVisitor14
|
||||
header extends javax/lang/model/util/ElementKindVisitor9 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementKindVisitor9<TR;TP;>; classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;RECORDS;,essentialAPI=Zfalse) runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/ElementScanner14
|
||||
header extends javax/lang/model/util/ElementScanner9 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementScanner9<TR;TP;>; classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;RECORDS;,essentialAPI=Zfalse) runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/SimpleAnnotationValueVisitor14
|
||||
header extends javax/lang/model/util/SimpleAnnotationValueVisitor9 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleAnnotationValueVisitor9<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/SimpleElementVisitor14
|
||||
header extends javax/lang/model/util/SimpleElementVisitor9 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleElementVisitor9<TR;TP;>; classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;RECORDS;,essentialAPI=Zfalse) runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/SimpleTypeVisitor14
|
||||
header extends javax/lang/model/util/SimpleTypeVisitor9 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleTypeVisitor9<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
class name javax/lang/model/util/TypeKindVisitor14
|
||||
header extends javax/lang/model/util/TypeKindVisitor9 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/TypeKindVisitor9<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_15;)
|
||||
|
||||
65
make/data/symbols/java.desktop-F.sym.txt
Normal file
65
make/data/symbols/java.desktop-F.sym.txt
Normal file
@@ -0,0 +1,65 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name java/awt/Robot
|
||||
-method name delay descriptor (I)V
|
||||
method name delay descriptor (I)V flags 1
|
||||
|
||||
class name javax/accessibility/AccessibleBundle
|
||||
header extends java/lang/Object flags 421 classAnnotations @Ljdk/Profile+Annotation;(value=I4)
|
||||
|
||||
class name javax/sound/sampled/BooleanControl
|
||||
header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/BooleanControl$Type flags 421
|
||||
innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
|
||||
innerclass innerClass javax/sound/sampled/BooleanControl$Type outerClass javax/sound/sampled/BooleanControl innerClassName Type flags 9
|
||||
|
||||
class name javax/sound/sampled/CompoundControl
|
||||
header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/CompoundControl$Type flags 421
|
||||
innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
|
||||
innerclass innerClass javax/sound/sampled/CompoundControl$Type outerClass javax/sound/sampled/CompoundControl innerClassName Type flags 9
|
||||
|
||||
class name javax/sound/sampled/Control
|
||||
header extends java/lang/Object nestMembers javax/sound/sampled/Control$Type flags 421
|
||||
innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
|
||||
|
||||
class name javax/sound/sampled/LineEvent
|
||||
header extends java/util/EventObject nestMembers javax/sound/sampled/LineEvent$Type flags 21
|
||||
innerclass innerClass javax/sound/sampled/LineEvent$Type outerClass javax/sound/sampled/LineEvent innerClassName Type flags 9
|
||||
|
||||
class name javax/sound/sampled/Mixer$Info
|
||||
header extends java/lang/Object nestHost javax/sound/sampled/Mixer flags 21
|
||||
innerclass innerClass javax/sound/sampled/Mixer$Info outerClass javax/sound/sampled/Mixer innerClassName Info flags 9
|
||||
|
||||
class name javax/sound/sampled/Port$Info
|
||||
header extends javax/sound/sampled/Line$Info nestHost javax/sound/sampled/Port flags 21
|
||||
innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
|
||||
innerclass innerClass javax/sound/sampled/Port$Info outerClass javax/sound/sampled/Port innerClassName Info flags 9
|
||||
|
||||
class name javax/sound/sampled/ReverbType
|
||||
header extends java/lang/Object flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I4)
|
||||
|
||||
31
make/data/symbols/java.management.rmi-F.sym.txt
Normal file
31
make/data/symbols/java.management.rmi-F.sym.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name javax/management/remote/rmi/RMIConnectorServer
|
||||
-field name CREDENTIAL_TYPES descriptor Ljava/lang/String;
|
||||
|
||||
33
make/data/symbols/java.naming-F.sym.txt
Normal file
33
make/data/symbols/java.naming-F.sym.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name javax/naming/spi/NamingManager
|
||||
header extends java/lang/Object flags 21
|
||||
innerclass innerClass java/util/ServiceLoader$Provider outerClass java/util/ServiceLoader innerClassName Provider flags 609
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
|
||||
77
make/data/symbols/java.rmi-F.sym.txt
Normal file
77
make/data/symbols/java.rmi-F.sym.txt
Normal file
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name java/rmi/activation/Activatable
|
||||
header extends java/rmi/server/RemoteServer flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivateFailedException
|
||||
header extends java/rmi/RemoteException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivationDesc
|
||||
header extends java/lang/Object implements java/io/Serializable flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivationException
|
||||
header extends java/lang/Exception flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
|
||||
class name java/rmi/activation/ActivationGroup
|
||||
header extends java/rmi/server/UnicastRemoteObject implements java/rmi/activation/ActivationInstantiator flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
|
||||
class name java/rmi/activation/ActivationGroupDesc
|
||||
header extends java/lang/Object implements java/io/Serializable nestMembers java/rmi/activation/ActivationGroupDesc$CommandEnvironment flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
innerclass innerClass java/rmi/activation/ActivationGroupDesc$CommandEnvironment outerClass java/rmi/activation/ActivationGroupDesc innerClassName CommandEnvironment flags 9
|
||||
|
||||
class name java/rmi/activation/ActivationGroupID
|
||||
header extends java/lang/Object implements java/io/Serializable flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivationGroup_Stub
|
||||
header extends java/rmi/server/RemoteStub implements java/rmi/activation/ActivationInstantiator,java/rmi/Remote flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivationID
|
||||
header extends java/lang/Object implements java/io/Serializable flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
|
||||
class name java/rmi/activation/ActivationInstantiator
|
||||
header extends java/lang/Object implements java/rmi/Remote flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivationMonitor
|
||||
header extends java/lang/Object implements java/rmi/Remote flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/ActivationSystem
|
||||
header extends java/lang/Object implements java/rmi/Remote flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/Activator
|
||||
header extends java/lang/Object implements java/rmi/Remote flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/UnknownGroupException
|
||||
header extends java/rmi/activation/ActivationException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
class name java/rmi/activation/UnknownObjectException
|
||||
header extends java/rmi/activation/ActivationException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")
|
||||
|
||||
32
make/data/symbols/java.xml-F.sym.txt
Normal file
32
make/data/symbols/java.xml-F.sym.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name javax/xml/stream/XMLInputFactory
|
||||
method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
|
||||
-method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory;
|
||||
|
||||
34
make/data/symbols/jdk.compiler-F.sym.txt
Normal file
34
make/data/symbols/jdk.compiler-F.sym.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name com/sun/source/tree/ClassTree
|
||||
method name getPermitsClause descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<+Lcom/sun/source/tree/Tree;>; classAnnotations @Ljdk/internal/PreviewFeature;(feature=eLjdk/internal/PreviewFeature$Feature;SEALED_CLASSES;,essentialAPI=Zfalse)
|
||||
|
||||
class name com/sun/source/util/DocTrees
|
||||
method name getType descriptor (Lcom/sun/source/util/DocTreePath;)Ljavax/lang/model/type/TypeMirror; flags 401
|
||||
|
||||
131
make/data/symbols/jdk.incubator.foreign-F.sym.txt
Normal file
131
make/data/symbols/jdk.incubator.foreign-F.sym.txt
Normal file
@@ -0,0 +1,131 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name jdk/incubator/foreign/AbstractLayout
|
||||
header extends java/lang/Object implements jdk/incubator/foreign/MemoryLayout flags 420
|
||||
innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
|
||||
innerclass innerClass java/lang/constant/DirectMethodHandleDesc$Kind outerClass java/lang/constant/DirectMethodHandleDesc innerClassName Kind flags 4019
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
-method name <init> descriptor (Ljava/util/OptionalLong;JLjava/util/Optional;)V
|
||||
method name <init> descriptor (Ljava/util/OptionalLong;JLjava/util/Map;)V flags 1 signature (Ljava/util/OptionalLong;JLjava/util/Map<Ljava/lang/String;Ljava/lang/constant/Constable;>;)V
|
||||
method name attribute descriptor (Ljava/lang/String;)Ljava/util/Optional; flags 1 signature (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/constant/Constable;>;
|
||||
method name attributes descriptor ()Ljava/util/stream/Stream; flags 1 signature ()Ljava/util/stream/Stream<Ljava/lang/String;>;
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/AbstractLayout; flags 1
|
||||
method name isPadding descriptor ()Z flags 1
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/MemoryLayout; flags 1041
|
||||
|
||||
class name jdk/incubator/foreign/GroupLayout
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/GroupLayout; flags 1
|
||||
method name isPadding descriptor ()Z flags 1041
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/AbstractLayout; flags 1041
|
||||
method name attributes descriptor ()Ljava/util/stream/Stream; flags 1041
|
||||
method name attribute descriptor (Ljava/lang/String;)Ljava/util/Optional; flags 1041
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/MemoryLayout; flags 1041
|
||||
|
||||
class name jdk/incubator/foreign/MappedMemorySegment
|
||||
header extends java/lang/Object implements jdk/incubator/foreign/MemorySegment flags 601
|
||||
method name withAccessModes descriptor (I)Ljdk/incubator/foreign/MappedMemorySegment; flags 401
|
||||
method name asSlice descriptor (JJ)Ljdk/incubator/foreign/MappedMemorySegment; flags 401
|
||||
method name force descriptor ()V flags 401
|
||||
method name load descriptor ()V flags 401
|
||||
method name unload descriptor ()V flags 401
|
||||
method name isLoaded descriptor ()Z flags 401
|
||||
method name asSlice descriptor (JJ)Ljdk/incubator/foreign/MemorySegment; flags 1041
|
||||
method name withAccessModes descriptor (I)Ljdk/incubator/foreign/MemorySegment; flags 1041
|
||||
|
||||
class name jdk/incubator/foreign/MemoryAddress
|
||||
field name NULL descriptor Ljdk/incubator/foreign/MemoryAddress; flags 19
|
||||
-method name offset descriptor ()J
|
||||
-method name copy descriptor (Ljdk/incubator/foreign/MemoryAddress;Ljdk/incubator/foreign/MemoryAddress;J)V
|
||||
method name segmentOffset descriptor ()J flags 401
|
||||
method name toRawLongValue descriptor ()J flags 401
|
||||
method name rebase descriptor (Ljdk/incubator/foreign/MemorySegment;)Ljdk/incubator/foreign/MemoryAddress; flags 401
|
||||
method name ofLong descriptor (J)Ljdk/incubator/foreign/MemoryAddress; flags 9
|
||||
|
||||
class name jdk/incubator/foreign/MemoryHandles
|
||||
method name asAddressVarHandle descriptor (Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle; flags 9
|
||||
method name asUnsigned descriptor (Ljava/lang/invoke/VarHandle;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle; flags 9 signature (Ljava/lang/invoke/VarHandle;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
|
||||
method name filterValue descriptor (Ljava/lang/invoke/VarHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle; flags 9
|
||||
method name filterCoordinates descriptor (Ljava/lang/invoke/VarHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle; flags 89
|
||||
method name insertCoordinates descriptor (Ljava/lang/invoke/VarHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/VarHandle; flags 89
|
||||
method name permuteCoordinates descriptor (Ljava/lang/invoke/VarHandle;Ljava/util/List;[I)Ljava/lang/invoke/VarHandle; flags 89 signature (Ljava/lang/invoke/VarHandle;Ljava/util/List<Ljava/lang/Class<*>;>;[I)Ljava/lang/invoke/VarHandle;
|
||||
method name collectCoordinates descriptor (Ljava/lang/invoke/VarHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle; flags 9
|
||||
method name dropCoordinates descriptor (Ljava/lang/invoke/VarHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/VarHandle; flags 89 signature (Ljava/lang/invoke/VarHandle;I[Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
|
||||
|
||||
class name jdk/incubator/foreign/MemoryLayout
|
||||
field name LAYOUT_NAME descriptor Ljava/lang/String; constantValue layout/name flags 19
|
||||
-method name offset descriptor ([Ljdk/incubator/foreign/MemoryLayout$PathElement;)J
|
||||
method name attribute descriptor (Ljava/lang/String;)Ljava/util/Optional; flags 401 signature (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/constant/Constable;>;
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/MemoryLayout; flags 401
|
||||
method name attributes descriptor ()Ljava/util/stream/Stream; flags 401 signature ()Ljava/util/stream/Stream<Ljava/lang/String;>;
|
||||
method name bitOffset descriptor ([Ljdk/incubator/foreign/MemoryLayout$PathElement;)J flags 81
|
||||
method name byteOffset descriptor ([Ljdk/incubator/foreign/MemoryLayout$PathElement;)J flags 81
|
||||
method name isPadding descriptor ()Z flags 401
|
||||
|
||||
class name jdk/incubator/foreign/MemorySegment
|
||||
field name READ descriptor I constantValue 1 flags 19
|
||||
field name WRITE descriptor I constantValue 2 flags 19
|
||||
field name CLOSE descriptor I constantValue 4 flags 19
|
||||
field name ACQUIRE descriptor I constantValue 8 flags 19
|
||||
field name HANDOFF descriptor I constantValue 16 flags 19
|
||||
field name ALL_ACCESS descriptor I constantValue 31 flags 19
|
||||
-method name acquire descriptor ()Ljdk/incubator/foreign/MemorySegment;
|
||||
-method name asReadOnly descriptor ()Ljdk/incubator/foreign/MemorySegment;
|
||||
-method name isReadOnly descriptor ()Z
|
||||
-method name mapFromPath descriptor (Ljava/nio/file/Path;JLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MemorySegment;
|
||||
method name spliterator descriptor (Ljdk/incubator/foreign/MemorySegment;Ljdk/incubator/foreign/SequenceLayout;)Ljava/util/Spliterator; flags 9 signature <S::Ljdk/incubator/foreign/MemorySegment;>(TS;Ljdk/incubator/foreign/SequenceLayout;)Ljava/util/Spliterator<TS;>;
|
||||
method name withOwnerThread descriptor (Ljava/lang/Thread;)Ljdk/incubator/foreign/MemorySegment; flags 401
|
||||
method name withAccessModes descriptor (I)Ljdk/incubator/foreign/MemorySegment; flags 401
|
||||
method name hasAccessModes descriptor (I)Z flags 401
|
||||
method name accessModes descriptor ()I flags 401
|
||||
method name fill descriptor (B)Ljdk/incubator/foreign/MemorySegment; flags 401
|
||||
method name copyFrom descriptor (Ljdk/incubator/foreign/MemorySegment;)V flags 401
|
||||
method name mismatch descriptor (Ljdk/incubator/foreign/MemorySegment;)J flags 401
|
||||
method name mapFromPath descriptor (Ljava/nio/file/Path;JJLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MappedMemorySegment; thrownTypes java/io/IOException flags 9
|
||||
method name ofNativeRestricted descriptor (Ljdk/incubator/foreign/MemoryAddress;JLjava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Object;)Ljdk/incubator/foreign/MemorySegment; flags 9
|
||||
|
||||
class name jdk/incubator/foreign/SequenceLayout
|
||||
header extends jdk/incubator/foreign/AbstractLayout flags 31
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
method name reshape descriptor ([J)Ljdk/incubator/foreign/SequenceLayout; flags 81
|
||||
method name flatten descriptor ()Ljdk/incubator/foreign/SequenceLayout; flags 1
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/SequenceLayout; flags 1
|
||||
method name isPadding descriptor ()Z flags 1041
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/AbstractLayout; flags 1041
|
||||
method name attributes descriptor ()Ljava/util/stream/Stream; flags 1041
|
||||
method name attribute descriptor (Ljava/lang/String;)Ljava/util/Optional; flags 1041
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/MemoryLayout; flags 1041
|
||||
|
||||
class name jdk/incubator/foreign/ValueLayout
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout; flags 1
|
||||
method name isPadding descriptor ()Z flags 1041
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/AbstractLayout; flags 1041
|
||||
method name attributes descriptor ()Ljava/util/stream/Stream; flags 1041
|
||||
method name attribute descriptor (Ljava/lang/String;)Ljava/util/Optional; flags 1041
|
||||
method name withAttribute descriptor (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/MemoryLayout; flags 1041
|
||||
|
||||
34
make/data/symbols/jdk.jartool-F.sym.txt
Normal file
34
make/data/symbols/jdk.jartool-F.sym.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name com/sun/jarsigner/ContentSigner
|
||||
header extends java/lang/Object flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
|
||||
|
||||
class name com/sun/jarsigner/ContentSignerParameters
|
||||
header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
|
||||
|
||||
35
make/data/symbols/jdk.javadoc-F.sym.txt
Normal file
35
make/data/symbols/jdk.javadoc-F.sym.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name jdk/javadoc/doclet/StandardDoclet
|
||||
-method name getSupportedOptions descriptor ()Ljava/util/Set;
|
||||
method name getSupportedOptions descriptor ()Ljava/util/Set; flags 1 signature ()Ljava/util/Set<+Ljdk/javadoc/doclet/Doclet$Option;>;
|
||||
|
||||
class name jdk/javadoc/doclet/Taglet
|
||||
method name isBlockTag descriptor ()Z flags 1
|
||||
|
||||
34
make/data/symbols/jdk.jdi-F.sym.txt
Normal file
34
make/data/symbols/jdk.jdi-F.sym.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name com/sun/jdi/VirtualMachine
|
||||
-method name canAddMethod descriptor ()Z
|
||||
-method name canUnrestrictedlyRedefineClasses descriptor ()Z
|
||||
method name canAddMethod descriptor ()Z flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="15")
|
||||
method name canUnrestrictedlyRedefineClasses descriptor ()Z flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="15")
|
||||
|
||||
37
make/data/symbols/jdk.net-F.sym.txt
Normal file
37
make/data/symbols/jdk.net-F.sym.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name jdk/net/ExtendedSocketOptions
|
||||
header extends java/lang/Object flags 31
|
||||
-field name SO_FLOW_SLA descriptor Ljava/net/SocketOption;
|
||||
field name SO_INCOMING_NAPI_ID descriptor Ljava/net/SocketOption; flags 19 signature Ljava/net/SocketOption<Ljava/lang/Integer;>;
|
||||
|
||||
-class name jdk/net/SocketFlow
|
||||
|
||||
-class name jdk/net/SocketFlow$Status
|
||||
|
||||
37
make/data/symbols/jdk.nio.mapmode-F.sym.txt
Normal file
37
make/data/symbols/jdk.nio.mapmode-F.sym.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
module name jdk.nio.mapmode
|
||||
header exports jdk/nio/mapmode requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
|
||||
|
||||
class name jdk/nio/mapmode/ExtendedMapMode
|
||||
header extends java/lang/Object flags 21
|
||||
innerclass innerClass java/nio/channels/FileChannel$MapMode outerClass java/nio/channels/FileChannel innerClassName MapMode flags 9
|
||||
field name READ_ONLY_SYNC descriptor Ljava/nio/channels/FileChannel$MapMode; flags 19
|
||||
field name READ_WRITE_SYNC descriptor Ljava/nio/channels/FileChannel$MapMode; flags 19
|
||||
|
||||
30
make/data/symbols/jdk.rmic-F.sym.txt
Normal file
30
make/data/symbols/jdk.rmic-F.sym.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
-module name jdk.rmic
|
||||
|
||||
180
make/data/symbols/jdk.scripting.nashorn-F.sym.txt
Normal file
180
make/data/symbols/jdk.scripting.nashorn-F.sym.txt
Normal file
@@ -0,0 +1,180 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
-module name jdk.scripting.nashorn
|
||||
|
||||
-class name jdk/nashorn/api/scripting/AbstractJSObject
|
||||
|
||||
-class name jdk/nashorn/api/scripting/ClassFilter
|
||||
|
||||
-class name jdk/nashorn/api/scripting/JSObject
|
||||
|
||||
-class name jdk/nashorn/api/scripting/NashornException
|
||||
|
||||
-class name jdk/nashorn/api/scripting/NashornScriptEngine
|
||||
|
||||
-class name jdk/nashorn/api/scripting/NashornScriptEngineFactory
|
||||
|
||||
-class name jdk/nashorn/api/scripting/ScriptObjectMirror
|
||||
|
||||
-class name jdk/nashorn/api/scripting/ScriptUtils
|
||||
|
||||
-class name jdk/nashorn/api/scripting/URLReader
|
||||
|
||||
-class name jdk/nashorn/api/tree/ArrayAccessTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ArrayLiteralTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/AssignmentTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/BinaryTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/BlockTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/BreakTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/CaseTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/CatchTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ClassDeclarationTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ClassExpressionTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/CompilationUnitTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/CompoundAssignmentTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ConditionalExpressionTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ConditionalLoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ContinueTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/DebuggerTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/Diagnostic
|
||||
|
||||
-class name jdk/nashorn/api/tree/Diagnostic$Kind
|
||||
|
||||
-class name jdk/nashorn/api/tree/DiagnosticListener
|
||||
|
||||
-class name jdk/nashorn/api/tree/DoWhileLoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/EmptyStatementTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ErroneousTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ExportEntryTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ExpressionStatementTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ExpressionTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ForInLoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ForLoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ForOfLoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/FunctionCallTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/FunctionDeclarationTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/FunctionExpressionTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/GotoTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/IdentifierTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/IfTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ImportEntryTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/InstanceOfTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/LabeledStatementTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/LineMap
|
||||
|
||||
-class name jdk/nashorn/api/tree/LiteralTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/LoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/MemberSelectTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ModuleTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/NewTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ObjectLiteralTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ParenthesizedTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/Parser
|
||||
|
||||
-class name jdk/nashorn/api/tree/PropertyTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/RegExpLiteralTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ReturnTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/SimpleTreeVisitorES5_1
|
||||
|
||||
-class name jdk/nashorn/api/tree/SimpleTreeVisitorES6
|
||||
|
||||
-class name jdk/nashorn/api/tree/SpreadTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/StatementTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/SwitchTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/TemplateLiteralTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/ThrowTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/Tree
|
||||
|
||||
-class name jdk/nashorn/api/tree/Tree$Kind
|
||||
|
||||
-class name jdk/nashorn/api/tree/TreeVisitor
|
||||
|
||||
-class name jdk/nashorn/api/tree/TryTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/UnaryTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/UnknownTreeException
|
||||
|
||||
-class name jdk/nashorn/api/tree/VariableTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/WhileLoopTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/WithTree
|
||||
|
||||
-class name jdk/nashorn/api/tree/YieldTree
|
||||
|
||||
38
make/data/symbols/jdk.unsupported-F.sym.txt
Normal file
38
make/data/symbols/jdk.unsupported-F.sym.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 AUTOMATICALLY GENERATED. DO NOT EDIT. ###
|
||||
# ##########################################################
|
||||
#
|
||||
class name sun/misc/Unsafe
|
||||
header extends java/lang/Object flags 31 classAnnotations @Lsun/Proprietary+Annotation;
|
||||
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
|
||||
-method name shouldBeInitialized descriptor (Ljava/lang/Class;)Z
|
||||
-method name ensureClassInitialized descriptor (Ljava/lang/Class;)V
|
||||
-method name defineAnonymousClass descriptor (Ljava/lang/Class;[B[Ljava/lang/Object;)Ljava/lang/Class;
|
||||
method name shouldBeInitialized descriptor (Ljava/lang/Class;)Z flags 1 deprecated true signature (Ljava/lang/Class<*>;)Z runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")@Ljdk/internal/vm/annotation/ForceInline;
|
||||
method name ensureClassInitialized descriptor (Ljava/lang/Class;)V flags 1 deprecated true signature (Ljava/lang/Class<*>;)V runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="15")@Ljdk/internal/vm/annotation/ForceInline;
|
||||
method name defineAnonymousClass descriptor (Ljava/lang/Class;[B[Ljava/lang/Object;)Ljava/lang/Class; flags 1 deprecated true signature (Ljava/lang/Class<*>;[B[Ljava/lang/Object;)Ljava/lang/Class<*>; runtimeAnnotations @Ljdk/internal/vm/annotation/ForceInline;@Ljava/lang/Deprecated;(forRemoval=Zfalse,since="15")
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#command used to generate this file:
|
||||
#build.tools.symbolgenerator.CreateSymbols build-description-incremental-file symbols include.list 8 jdk8-updated.classes <none> --normalize-method-flags
|
||||
#
|
||||
generate platforms 7:8:9:A:B:C:D:E
|
||||
generate platforms 7:8:9:A:B:C:D:E:F
|
||||
platform version 8 files java.activation-8.sym.txt:java.base-8.sym.txt:java.compiler-8.sym.txt:java.corba-8.sym.txt:java.datatransfer-8.sym.txt:java.desktop-8.sym.txt:java.instrument-8.sym.txt:java.logging-8.sym.txt:java.management-8.sym.txt:java.management.rmi-8.sym.txt:java.naming-8.sym.txt:java.prefs-8.sym.txt:java.rmi-8.sym.txt:java.scripting-8.sym.txt:java.security.jgss-8.sym.txt:java.security.sasl-8.sym.txt:java.sql-8.sym.txt:java.sql.rowset-8.sym.txt:java.transaction-8.sym.txt:java.xml-8.sym.txt:java.xml.bind-8.sym.txt:java.xml.crypto-8.sym.txt:java.xml.ws-8.sym.txt:java.xml.ws.annotation-8.sym.txt:jdk.httpserver-8.sym.txt:jdk.management-8.sym.txt:jdk.scripting.nashorn-8.sym.txt:jdk.sctp-8.sym.txt:jdk.security.auth-8.sym.txt:jdk.security.jgss-8.sym.txt
|
||||
platform version 7 base 8 files java.base-7.sym.txt:java.compiler-7.sym.txt:java.datatransfer-7.sym.txt:java.desktop-7.sym.txt:java.logging-7.sym.txt:java.management-7.sym.txt:java.naming-7.sym.txt:java.prefs-7.sym.txt:java.rmi-7.sym.txt:java.scripting-7.sym.txt:java.security.jgss-7.sym.txt:java.security.sasl-7.sym.txt:java.sql-7.sym.txt:java.sql.rowset-7.sym.txt:java.xml-7.sym.txt:java.xml.bind-7.sym.txt:java.xml.ws.annotation-7.sym.txt:jdk.httpserver-7.sym.txt:jdk.management-7.sym.txt:jdk.scripting.nashorn-7.sym.txt:jdk.sctp-7.sym.txt:jdk.security.auth-7.sym.txt:jdk.security.jgss-7.sym.txt
|
||||
platform version 9 base 8 files java.activation-9.sym.txt:java.base-9.sym.txt:java.compiler-9.sym.txt:java.corba-9.sym.txt:java.datatransfer-9.sym.txt:java.desktop-9.sym.txt:java.instrument-9.sym.txt:java.logging-9.sym.txt:java.management-9.sym.txt:java.management.rmi-9.sym.txt:java.naming-9.sym.txt:java.prefs-9.sym.txt:java.rmi-9.sym.txt:java.scripting-9.sym.txt:java.se-9.sym.txt:java.se.ee-9.sym.txt:java.security.jgss-9.sym.txt:java.security.sasl-9.sym.txt:java.smartcardio-9.sym.txt:java.sql-9.sym.txt:java.sql.rowset-9.sym.txt:java.transaction-9.sym.txt:java.xml-9.sym.txt:java.xml.bind-9.sym.txt:java.xml.crypto-9.sym.txt:java.xml.ws-9.sym.txt:java.xml.ws.annotation-9.sym.txt:jdk.accessibility-9.sym.txt:jdk.attach-9.sym.txt:jdk.charsets-9.sym.txt:jdk.compiler-9.sym.txt:jdk.crypto.cryptoki-9.sym.txt:jdk.crypto.ec-9.sym.txt:jdk.dynalink-9.sym.txt:jdk.editpad-9.sym.txt:jdk.hotspot.agent-9.sym.txt:jdk.httpserver-9.sym.txt:jdk.incubator.httpclient-9.sym.txt:jdk.jartool-9.sym.txt:jdk.javadoc-9.sym.txt:jdk.jcmd-9.sym.txt:jdk.jconsole-9.sym.txt:jdk.jdeps-9.sym.txt:jdk.jdi-9.sym.txt:jdk.jdwp.agent-9.sym.txt:jdk.jlink-9.sym.txt:jdk.jshell-9.sym.txt:jdk.jsobject-9.sym.txt:jdk.jstatd-9.sym.txt:jdk.localedata-9.sym.txt:jdk.management-9.sym.txt:jdk.management.agent-9.sym.txt:jdk.naming.dns-9.sym.txt:jdk.naming.rmi-9.sym.txt:jdk.net-9.sym.txt:jdk.pack-9.sym.txt:jdk.policytool-9.sym.txt:jdk.rmic-9.sym.txt:jdk.scripting.nashorn-9.sym.txt:jdk.sctp-9.sym.txt:jdk.security.auth-9.sym.txt:jdk.security.jgss-9.sym.txt:jdk.unsupported-9.sym.txt:jdk.xml.dom-9.sym.txt:jdk.zipfs-9.sym.txt
|
||||
@@ -38,3 +38,4 @@ platform version B base A files java.activation-B.sym.txt:java.base-B.sym.txt:ja
|
||||
platform version C base B files java.base-C.sym.txt:java.compiler-C.sym.txt:java.desktop-C.sym.txt:java.naming-C.sym.txt:java.rmi-C.sym.txt:java.xml-C.sym.txt:jdk.compiler-C.sym.txt:jdk.jfr-C.sym.txt:jdk.jsobject-C.sym.txt:jdk.unsupported-C.sym.txt
|
||||
platform version D base C files java.base-D.sym.txt:java.compiler-D.sym.txt:java.desktop-D.sym.txt:java.management-D.sym.txt:java.management.rmi-D.sym.txt:java.net.http-D.sym.txt:java.security.jgss-D.sym.txt:java.xml-D.sym.txt:java.xml.crypto-D.sym.txt:jdk.compiler-D.sym.txt:jdk.httpserver-D.sym.txt:jdk.jartool-D.sym.txt:jdk.javadoc-D.sym.txt:jdk.jlink-D.sym.txt:jdk.jshell-D.sym.txt
|
||||
platform version E base D files java.base-E.sym.txt:java.compiler-E.sym.txt:java.desktop-E.sym.txt:java.xml-E.sym.txt:jdk.compiler-E.sym.txt:jdk.httpserver-E.sym.txt:jdk.incubator.foreign-E.sym.txt:jdk.incubator.jpackage-E.sym.txt:jdk.jfr-E.sym.txt:jdk.jlink-E.sym.txt:jdk.jshell-E.sym.txt:jdk.jsobject-E.sym.txt:jdk.management-E.sym.txt:jdk.net-E.sym.txt:jdk.pack-E.sym.txt
|
||||
platform version F base E files java.base-F.sym.txt:java.compiler-F.sym.txt:java.desktop-F.sym.txt:java.management.rmi-F.sym.txt:java.naming-F.sym.txt:java.rmi-F.sym.txt:java.xml-F.sym.txt:jdk.compiler-F.sym.txt:jdk.incubator.foreign-F.sym.txt:jdk.jartool-F.sym.txt:jdk.javadoc-F.sym.txt:jdk.jdi-F.sym.txt:jdk.net-F.sym.txt:jdk.nio.mapmode-F.sym.txt:jdk.rmic-F.sym.txt:jdk.scripting.nashorn-F.sym.txt:jdk.unsupported-F.sym.txt
|
||||
|
||||
@@ -23,40 +23,24 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# Build tools needed for the JFR source code generation
|
||||
|
||||
JFR_TOOLS_SRCDIR := $(TOPDIR)/make/src/classes
|
||||
JFR_TOOLS_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/buildtools/tools_classes
|
||||
|
||||
$(eval $(call SetupJavaCompilation, BUILD_JFR_TOOLS, \
|
||||
COMPILER := bootjdk, \
|
||||
SMALL_JAVA := false, \
|
||||
SRC := $(JFR_TOOLS_SRCDIR), \
|
||||
BIN := $(JFR_TOOLS_OUTPUTDIR), \
|
||||
DISABLED_WARNINGS := try, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_JFR_TOOLS)
|
||||
|
||||
################################################################################
|
||||
# Setup make rules for JFR gensrc file generation.
|
||||
#
|
||||
TOOL_JFR_GEN := $(JAVA_SMALL) -cp $(JFR_TOOLS_OUTPUTDIR) build.tools.jfr.GenerateJfrFiles
|
||||
|
||||
JFR_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jfrfiles
|
||||
include $(TOPDIR)/make/ToolsHotspot.gmk
|
||||
|
||||
JFR_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata
|
||||
JFR_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jfrfiles
|
||||
|
||||
# Changing these will trigger a rebuild of generated jfr files.
|
||||
METADATA_XML := $(JFR_SRCDIR)/metadata.xml
|
||||
METADATA_XSD := $(JFR_SRCDIR)/metadata.xsd
|
||||
|
||||
$(eval $(call SetupExecute, jfr_gen, \
|
||||
$(eval $(call SetupExecute, jfr_gen_headers, \
|
||||
INFO := Generating JFR header files, \
|
||||
DEPS := $(METADATA_XML) $(METADATA_XSD) $(BUILD_JFR_TOOLS), \
|
||||
DEPS := $(METADATA_XML) $(METADATA_XSD) $(BUILD_TOOLS_HOTSPOT), \
|
||||
OUTPUT_DIR := $(JFR_OUTPUTDIR), \
|
||||
COMMAND := $(TOOL_JFR_GEN) $(METADATA_XML) $(METADATA_XSD) $(JFR_OUTPUTDIR), \
|
||||
COMMAND := $(TOOL_JFR_GEN) --mode headers --xml $(METADATA_XML) --xsd $(METADATA_XSD) --output $(JFR_OUTPUTDIR), \
|
||||
))
|
||||
|
||||
JFR_FILES := $(jfr_gen_TARGET)
|
||||
TARGETS += $(JFR_FILES)
|
||||
TARGETS += $(jfr_gen_headers)
|
||||
|
||||
@@ -106,14 +106,16 @@ $(eval $(call SetupJvmtiGeneration, jvmti.h, jvmtiH.xsl, \
|
||||
$(eval $(call SetupJvmtiGeneration, jvmti.html, jvmti.xsl, \
|
||||
-PARAM majorversion $(VERSION_FEATURE)))
|
||||
|
||||
JVMTI_BC_SRCDIR := $(TOPDIR)/src/hotspot/share/interpreter
|
||||
JVMTI_BC_SRCDIR := $(TOPDIR)/src/hotspot/share/interpreter/zero
|
||||
|
||||
$(eval $(call SetupXslTransform, bytecodeInterpreterWithChecks.cpp, \
|
||||
XML_FILE := $(JVMTI_BC_SRCDIR)/bytecodeInterpreterWithChecks.xml, \
|
||||
XSL_FILE := $(JVMTI_BC_SRCDIR)/bytecodeInterpreterWithChecks.xsl, \
|
||||
OUTPUT_DIR := $(JVMTI_OUTPUTDIR), \
|
||||
DEPS := $(JVMTI_BC_SRCDIR)/bytecodeInterpreter.cpp, \
|
||||
))
|
||||
ifeq ($(call check-jvm-feature, zero), true)
|
||||
$(eval $(call SetupXslTransform, bytecodeInterpreterWithChecks.cpp, \
|
||||
XML_FILE := $(JVMTI_BC_SRCDIR)/bytecodeInterpreterWithChecks.xml, \
|
||||
XSL_FILE := $(JVMTI_BC_SRCDIR)/bytecodeInterpreterWithChecks.xsl, \
|
||||
OUTPUT_DIR := $(JVMTI_OUTPUTDIR), \
|
||||
DEPS := $(JVMTI_BC_SRCDIR)/bytecodeInterpreter.cpp, \
|
||||
))
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Copy jvmti.h to include dir
|
||||
|
||||
@@ -38,9 +38,8 @@ endif
|
||||
|
||||
################################################################################
|
||||
|
||||
# Disabling all warnings in gtest source code
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBGTEST, \
|
||||
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBGTEST, \
|
||||
NAME := gtest, \
|
||||
TYPE := STATIC_LIBRARY, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
@@ -50,8 +49,9 @@ $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBGTEST, \
|
||||
$(GTEST_FRAMEWORK_SRC)/googletest/src \
|
||||
$(GTEST_FRAMEWORK_SRC)/googlemock/src, \
|
||||
INCLUDE_FILES := gtest-all.cc gmock-all.cc, \
|
||||
CFLAGS := $(filter-out $(WARNING_CFLAGS_JVM), $(JVM_CFLAGS)) \
|
||||
-w \
|
||||
DISABLED_WARNINGS_gcc := undef unused-result format-nonliteral, \
|
||||
DISABLED_WARNINGS_clang := undef unused-result format-nonliteral, \
|
||||
CFLAGS := $(JVM_CFLAGS) \
|
||||
-I$(GTEST_FRAMEWORK_SRC)/googletest \
|
||||
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
|
||||
-I$(GTEST_FRAMEWORK_SRC)/googlemock \
|
||||
@@ -81,10 +81,9 @@ else
|
||||
$(call create-mapfile)
|
||||
endif
|
||||
|
||||
# Disabling undef, switch, format-nonliteral and tautological-undefined-compare
|
||||
# warnings for clang because of test source.
|
||||
# Additional disabled warnings are due to code in the test source.
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
|
||||
$(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
|
||||
NAME := jvm, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
||||
@@ -106,6 +105,7 @@ $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
|
||||
DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \
|
||||
undef switch format-nonliteral tautological-undefined-compare \
|
||||
self-assign-overloaded, \
|
||||
DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
|
||||
LDFLAGS := $(JVM_LDFLAGS), \
|
||||
LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/libgtest, \
|
||||
LIBS := $(JVM_LIBS), \
|
||||
@@ -127,7 +127,7 @@ TARGETS += $(BUILD_GTEST_LIBJVM)
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
|
||||
$(eval $(call SetupJdkExecutable, BUILD_GTEST_LAUNCHER, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
NAME := gtestLauncher, \
|
||||
TYPE := EXECUTABLE, \
|
||||
|
||||
@@ -95,9 +95,7 @@ DISABLED_WARNINGS_clang := tautological-compare \
|
||||
|
||||
DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
|
||||
|
||||
DISABLED_WARNINGS_microsoft :=
|
||||
|
||||
|
||||
DISABLED_WARNINGS_microsoft := 4100 4127 4201 4244 4291 4351 4511 4512 4514 4996
|
||||
|
||||
################################################################################
|
||||
# Platform specific setup
|
||||
@@ -126,13 +124,6 @@ else ifeq ($(call isTargetCpu, x86_64), true)
|
||||
JVM_EXCLUDE_PATTERNS += x86_32
|
||||
endif
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
ifeq ($(call isTargetCpuBits, 64), true)
|
||||
RC_DESC := 64-Bit$(SPACE)
|
||||
endif
|
||||
JVM_RCFLAGS += -D"HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(RC_DESC)$(JVM_VARIANT) VM"
|
||||
endif
|
||||
|
||||
JVM_OPTIMIZATION ?= HIGHEST_JVM
|
||||
|
||||
# Need to set JVM_STRIPFLAGS to the default value from SPEC since the STRIPFLAGS
|
||||
@@ -146,7 +137,7 @@ $(call FillFindCache, $(JVM_SRC_DIRS))
|
||||
################################################################################
|
||||
# Now set up the actual compilation of the main hotspot native library
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
|
||||
$(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
||||
NAME := jvm, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
|
||||
@@ -170,8 +161,7 @@ $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
|
||||
USE_MAPFILE_FOR_SYMBOLS := true, \
|
||||
STRIPFLAGS := $(JVM_STRIPFLAGS), \
|
||||
EMBED_MANIFEST := true, \
|
||||
RC_FLAGS := $(JVM_RCFLAGS), \
|
||||
VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
|
||||
RC_FILEDESC := $(HOTSPOT_VM_DISTRO) $(OPENJDK_TARGET_CPU_BITS)-Bit $(JVM_VARIANT) VM, \
|
||||
PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
|
||||
PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
|
||||
))
|
||||
|
||||
@@ -27,7 +27,7 @@ default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include NativeCompilation.gmk
|
||||
include JdkNativeCompilation.gmk
|
||||
|
||||
include HotspotCommon.gmk
|
||||
|
||||
|
||||
@@ -45,11 +45,17 @@ else
|
||||
endif
|
||||
|
||||
ifeq ($(call check-jvm-feature, zero), true)
|
||||
JVM_CFLAGS_FEATURES += -DZERO -DCC_INTERP -DZERO_LIBARCH='"$(OPENJDK_TARGET_CPU_LEGACY_LIB)"' $(LIBFFI_CFLAGS)
|
||||
JVM_EXCLUDES += opto libadt
|
||||
JVM_EXCLUDE_PATTERNS += c1_ c1/ c2_ runtime_ /c2/
|
||||
JVM_EXCLUDE_FILES += templateInterpreter.cpp templateInterpreterGenerator.cpp \
|
||||
bcEscapeAnalyzer.cpp ciTypeFlow.cpp
|
||||
JVM_CFLAGS_FEATURES += -DZERO -DZERO_LIBARCH='"$(OPENJDK_TARGET_CPU_LEGACY_LIB)"' $(LIBFFI_CFLAGS)
|
||||
JVM_LIBS_FEATURES += $(LIBFFI_LIBS)
|
||||
ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
|
||||
JVM_LDFLAGS_FEATURES += $(call SET_EXECUTABLE_ORIGIN,/..)
|
||||
endif
|
||||
else
|
||||
JVM_EXCLUDE_PATTERNS += /zero/
|
||||
endif
|
||||
|
||||
ifeq ($(JVM_VARIANT), custom)
|
||||
|
||||
@@ -62,6 +62,7 @@ ifeq ($(call isTargetOs, linux), true)
|
||||
JVM_PRECOMPILED_HEADER_EXCLUDE := \
|
||||
sharedRuntimeTrig.cpp \
|
||||
sharedRuntimeTrans.cpp \
|
||||
$(OPT_SPEED_SRC) \
|
||||
#
|
||||
endif
|
||||
|
||||
@@ -91,9 +92,6 @@ else ifeq ($(call isTargetOs, macosx), true)
|
||||
# NOTE: The old build tested clang version to make sure this workaround
|
||||
# for the clang bug was still needed.
|
||||
BUILD_LIBJVM_loopTransform.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||
ifneq ($(DEBUG_LEVEL), slowdebug)
|
||||
BUILD_LIBJVM_unsafe.cpp_CXXFLAGS := -O1
|
||||
endif
|
||||
|
||||
# The following files are compiled at various optimization
|
||||
# levels due to optimization issues encountered at the
|
||||
@@ -109,8 +107,8 @@ else ifeq ($(call isTargetOs, macosx), true)
|
||||
sharedRuntimeTrig.cpp \
|
||||
sharedRuntimeTrans.cpp \
|
||||
loopTransform.cpp \
|
||||
unsafe.cpp \
|
||||
jvmciCompilerToVM.cpp \
|
||||
$(OPT_SPEED_SRC) \
|
||||
#
|
||||
endif
|
||||
|
||||
|
||||
@@ -30,14 +30,13 @@ $(eval $(call IncludeCustomExtension, modules/java.base/Launcher.gmk))
|
||||
|
||||
JAVA_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/launcher/java.rc
|
||||
|
||||
JAVA_RC_FLAGS += -I$(TOPDIR)/src/java.base/windows/native/common
|
||||
JAVA_RC_FLAGS += -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
|
||||
JAVA_RCFLAGS ?= -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupBuildLauncher, java, \
|
||||
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
|
||||
EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \
|
||||
EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
|
||||
VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
))
|
||||
@@ -45,7 +44,7 @@ $(eval $(call SetupBuildLauncher, java, \
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
$(eval $(call SetupBuildLauncher, javaw, \
|
||||
CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
|
||||
EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \
|
||||
EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
|
||||
VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
|
||||
))
|
||||
endif
|
||||
|
||||
@@ -116,7 +116,7 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
LIBAWT_CFLAGS += -DMLIB_OS64BIT
|
||||
endif
|
||||
|
||||
LIBAWT_RC_FLAGS ?= -I $(TOPDIR)/src/java.base/windows/native/launcher/icons
|
||||
LIBAWT_RCFLAGS ?= -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
|
||||
LIBAWT_VERSIONINFO_RESOURCE := $(TOPDIR)/src/$(MODULE)/windows/native/libawt/windows/awt.rc
|
||||
endif
|
||||
|
||||
@@ -169,10 +169,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
|
||||
comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
|
||||
delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
|
||||
-D "JDK_FNAME=awt.dll" \
|
||||
-D "JDK_INTERNAL_NAME=awt" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
EXTRA_RCFLAGS := $(LIBAWT_RCFLAGS), \
|
||||
))
|
||||
|
||||
$(BUILD_LIBAWT): $(call FindLib, java.base, java)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2020, 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,17 +25,20 @@
|
||||
|
||||
include LauncherCommon.gmk
|
||||
|
||||
################################################################################
|
||||
# jabswitch
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
|
||||
JABSWITCH_SRC := $(TOPDIR)/src/jdk.accessibility/windows/native/jabswitch
|
||||
ACCESSBRIDGE_SRC := $(TOPDIR)/src/jdk.accessibility/windows/native/common
|
||||
ACCESSIBILITY_SRCDIR := $(TOPDIR)/src/jdk.accessibility/windows/native
|
||||
TOOLS_CFLAGS := $(addprefix -I, \
|
||||
$(ACCESSIBILITY_SRCDIR)/include/bridge \
|
||||
$(ACCESSIBILITY_SRCDIR)/common \
|
||||
$(ACCESSIBILITY_SRCDIR)/toolscommon)
|
||||
|
||||
##############################################################################
|
||||
# jabswitch
|
||||
|
||||
$(eval $(call SetupJdkExecutable, BUILD_JABSWITCH, \
|
||||
NAME := jabswitch, \
|
||||
SRC := $(JABSWITCH_SRC), \
|
||||
SRC := $(ACCESSIBILITY_SRCDIR)/jabswitch, \
|
||||
INCLUDE_FILES := jabswitch.cpp, \
|
||||
CFLAGS := $(filter-out -Zc:wchar_t-, $(CFLAGS_JDKEXE)) -Zc:wchar_t \
|
||||
-analyze- -Od -Gd -D_WINDOWS \
|
||||
@@ -43,21 +46,15 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
DISABLED_WARNINGS_microsoft := 4267 4996, \
|
||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
||||
LIBS := advapi32.lib version.lib user32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRC)/AccessBridgeStatusWindow.rc, \
|
||||
MANIFEST := $(JABSWITCH_SRC)/jabswitch.manifest, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSIBILITY_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
MANIFEST := $(ACCESSIBILITY_SRCDIR)/jabswitch/jabswitch.manifest, \
|
||||
MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_JABSWITCH)
|
||||
|
||||
################################################################################
|
||||
# jaccessinspector
|
||||
|
||||
TOPDIR := $(TOPDIR)/src/jdk.accessibility/windows/native
|
||||
TOOLS_CFLAGS := $(addprefix -I, \
|
||||
$(TOPDIR)/include/bridge \
|
||||
$(TOPDIR)/common \
|
||||
$(TOPDIR)/toolscommon)
|
||||
##############################################################################
|
||||
# jaccessinspector
|
||||
|
||||
define SetupInspector
|
||||
# Parameter 1 File name suffix
|
||||
@@ -65,20 +62,20 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
|
||||
$$(eval $$(call SetupJdkExecutable, BUILD_JACCESSINSPECTOR$1, \
|
||||
NAME := jaccessinspector$1, \
|
||||
SRC := $(TOPDIR)/jaccessinspector $(TOPDIR)/common \
|
||||
$(TOPDIR)/toolscommon $(TOPDIR)/bridge, \
|
||||
SRC := $(ACCESSIBILITY_SRCDIR)/jaccessinspector $(ACCESSIBILITY_SRCDIR)/common \
|
||||
$(ACCESSIBILITY_SRCDIR)/toolscommon $(ACCESSIBILITY_SRCDIR)/bridge, \
|
||||
CFLAGS := $$(CFLAGS_JDKEXE) $(TOOLS_CFLAGS) -DACCESSBRIDGE_ARCH_$2 -EHsc, \
|
||||
LDFLAGS := $$(LDFLAGS_JDKEXE) -stack:655360, \
|
||||
LIBS := advapi32.lib user32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(TOPDIR)/jaccessinspector/jaccessinspectorWindow.rc, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSIBILITY_SRCDIR)/jaccessinspector/jaccessinspectorWindow.rc, \
|
||||
))
|
||||
|
||||
TARGETS += $$(BUILD_JACCESSINSPECTOR$1)
|
||||
|
||||
endef
|
||||
|
||||
################################################################################
|
||||
# jaccesswalker
|
||||
##############################################################################
|
||||
# jaccesswalker
|
||||
|
||||
define SetupWalker
|
||||
# Parameter 1 File name suffix
|
||||
@@ -86,12 +83,12 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
|
||||
$$(eval $$(call SetupJdkExecutable, BUILD_JACCESSWALKER$1, \
|
||||
NAME := jaccesswalker$1, \
|
||||
SRC := $(TOPDIR)/jaccesswalker $(TOPDIR)/common \
|
||||
$(TOPDIR)/toolscommon $(TOPDIR)/bridge, \
|
||||
SRC := $(ACCESSIBILITY_SRCDIR)/jaccesswalker $(ACCESSIBILITY_SRCDIR)/common \
|
||||
$(ACCESSIBILITY_SRCDIR)/toolscommon $(ACCESSIBILITY_SRCDIR)/bridge, \
|
||||
CFLAGS := $$(CFLAGS_JDKEXE) $(TOOLS_CFLAGS) -DACCESSBRIDGE_ARCH_$2 -EHsc, \
|
||||
LDFLAGS := $$(LDFLAGS_JDKEXE) -stack:655360, \
|
||||
LIBS := advapi32.lib comctl32.lib gdi32.lib user32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(TOPDIR)/jaccesswalker/jaccesswalkerWindow.rc, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSIBILITY_SRCDIR)/jaccesswalker/jaccesswalkerWindow.rc, \
|
||||
))
|
||||
|
||||
TARGETS += $$(BUILD_JACCESSWALKER$1)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -29,7 +29,7 @@ include LibCommon.gmk
|
||||
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
|
||||
ROOT_SRCDIR := $(TOPDIR)/src/jdk.accessibility/windows/native
|
||||
ACCESSIBILITY_SRCDIR := $(TOPDIR)/src/jdk.accessibility/windows/native
|
||||
|
||||
define SetupJavaDLL
|
||||
# Parameter 1 Suffix
|
||||
@@ -52,7 +52,7 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
winspool.lib comdlg32.lib advapi32.lib shell32.lib \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.desktop/libjawt/jawt.lib \
|
||||
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(ROOT_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSIBILITY_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
)
|
||||
|
||||
$$(BUILD_JAVAACCESSBRIDGE$1): $(call FindStaticLib, java.desktop, jawt, /libjawt)
|
||||
@@ -75,11 +75,11 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
include/bridge \
|
||||
java.base:include, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
-def:$(ROOT_SRCDIR)/libwindowsaccessbridge/WinAccessBridge.DEF, \
|
||||
-def:$(ACCESSIBILITY_SRCDIR)/libwindowsaccessbridge/WinAccessBridge.DEF, \
|
||||
LIBS := kernel32.lib user32.lib gdi32.lib \
|
||||
winspool.lib comdlg32.lib advapi32.lib shell32.lib \
|
||||
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(ROOT_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSIBILITY_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
)
|
||||
|
||||
TARGETS += $$(BUILD_WINDOWSACCESSBRIDGE$1)
|
||||
@@ -93,7 +93,7 @@ ifeq ($(call isTargetOs, windows), true)
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB), \
|
||||
VERSIONINFO_RESOURCE := $(ROOT_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSIBILITY_SRCDIR)/common/AccessBridgeStatusWindow.rc, \
|
||||
)
|
||||
|
||||
TARGETS += $$(BUILD_ACCESSBRIDGESYSINFO)
|
||||
|
||||
@@ -27,14 +27,6 @@ include CopyCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupCopyFiles, COPY_JFR_METADATA, \
|
||||
SRC := $(TOPDIR)/src/hotspot/share/jfr/metadata, \
|
||||
DEST := $(JDK_OUTPUTDIR)/modules/jdk.jfr/jdk/jfr/internal/types, \
|
||||
FILES := metadata.xml \
|
||||
))
|
||||
|
||||
TARGETS += $(COPY_JFR_METADATA)
|
||||
|
||||
JFR_CONF_DIR := $(TOPDIR)/src/jdk.jfr/share/conf/jfr
|
||||
$(eval $(call SetupCopyFiles, COPY_JFR_CONF, \
|
||||
DEST := $(LIB_DST_DIR)/jfr, \
|
||||
|
||||
48
make/modules/jdk.jfr/Gendata.gmk
Normal file
48
make/modules/jdk.jfr/Gendata.gmk
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
|
||||
include ToolsHotspot.gmk
|
||||
include Execute.gmk
|
||||
|
||||
JFR_SRCDIR := $(TOPDIR)/src/hotspot/share/jfr/metadata
|
||||
JFR_DATA_OUTPUTDIR := $(OUTPUTDIR)/jdk/modules/jdk.jfr/jdk/jfr/internal/types
|
||||
JFR_DATA_OUTPUTFILE := $(JFR_DATA_OUTPUTDIR)/metadata.bin
|
||||
JFR_DATA_SUPPORTDIR := $(SUPPORT_OUTPUTDIR)/gendata/jdk.jfr
|
||||
|
||||
# Changing these will trigger a rebuild of generated jfr files.
|
||||
METADATA_XML := $(JFR_SRCDIR)/metadata.xml
|
||||
METADATA_XSD := $(JFR_SRCDIR)/metadata.xsd
|
||||
|
||||
$(eval $(call SetupExecute, jfr_gen_metadata, \
|
||||
INFO := Generating JFR metadata, \
|
||||
DEPS := $(METADATA_XML) $(METADATA_XSD) $(BUILD_TOOLS_HOTSPOT), \
|
||||
OUTPUT_FILE := $(JFR_DATA_OUTPUTFILE), \
|
||||
SUPPORT_DIR := $(JFR_DATA_SUPPORTDIR), \
|
||||
COMMAND := $(TOOL_JFR_GEN) --mode metadata --xml $(METADATA_XML) --xsd $(METADATA_XSD) --output $(JFR_DATA_OUTPUTFILE), \
|
||||
))
|
||||
|
||||
TARGETS += $(jfr_gen_metadata)
|
||||
@@ -1,16 +1,19 @@
|
||||
package build.tools.jfr;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.Closeable;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
import java.util.StringJoiner;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
@@ -25,94 +28,107 @@ import org.xml.sax.SAXException;
|
||||
import org.xml.sax.SAXParseException;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
/**
|
||||
* Purpose of this program is twofold:
|
||||
*
|
||||
* 1) Generate C++ classes to be used when writing native events for HotSpot.
|
||||
*
|
||||
* 2) Generate metadata (label, descriptions, field layout etc.) from XML
|
||||
* (metadata.xml) into a binary format (metadata.bin) that can be read quickly
|
||||
* during startup by the jdk.jfr module.
|
||||
*
|
||||
* INPUT FILES:
|
||||
*
|
||||
* - metadata.xml File that contains descriptions of events and types
|
||||
* - metadata.xsd Schema that verifies that metadata.xml is legit XML
|
||||
*
|
||||
* OUTPUT FILES:
|
||||
*
|
||||
* MODE: headers
|
||||
*
|
||||
* - jfrEventIds.hpp List of IDs so events can be identified from native
|
||||
* - jfrTypes.hpp List of IDs so types can be identified from native
|
||||
* - jfrPeriodic.hpp Dispatch mechanism so Java can emit native periodic events
|
||||
* - jfrEventControl.hpp Data structure for native event settings.
|
||||
* - jfrEventClasses.hpp C++ event classes that can write data into native buffers
|
||||
*
|
||||
* MODE: metadata
|
||||
*
|
||||
* - metadata.bin Binary representation of the information in metadata.xml
|
||||
*
|
||||
*/
|
||||
public class GenerateJfrFiles {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
if (args.length != 3) {
|
||||
System.err.println("Incorrect number of command line arguments.");
|
||||
System.err.println("Usage:");
|
||||
System.err.println("java GenerateJfrFiles[.java] <path-to-metadata.xml> <path-to-metadata.xsd> <output-directory>");
|
||||
System.exit(1);
|
||||
}
|
||||
try {
|
||||
File metadataXml = new File(args[0]);
|
||||
File metadataSchema = new File(args[1]);
|
||||
File outputDirectory = new File(args[2]);
|
||||
enum OutputMode {
|
||||
headers, metadata
|
||||
}
|
||||
|
||||
Metadata metadata = new Metadata(metadataXml, metadataSchema);
|
||||
private static void printUsage(PrintStream out) {
|
||||
out.println("Usage: java GenerateJfrFiles[.java]");
|
||||
out.println(" --mode <headers|metadata>");
|
||||
out.println(" --xml <path-to-metadata.xml> ");
|
||||
out.println(" --xsd <path-to-metadata.xsd>");
|
||||
out.println(" --output <output-file-or-directory>");
|
||||
}
|
||||
|
||||
private static String consumeOption(String option, List<String> argList) throws Exception {
|
||||
int index = argList.indexOf(option);
|
||||
if (index >= 0 && index <= argList.size() - 2) {
|
||||
String result = argList.get(index + 1);
|
||||
argList.remove(index);
|
||||
argList.remove(index);
|
||||
return result;
|
||||
}
|
||||
throw new IllegalArgumentException("missing option " + option);
|
||||
}
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
try {
|
||||
List<String> argList = new ArrayList<>();
|
||||
argList.addAll(Arrays.asList(args));
|
||||
String mode = consumeOption("--mode", argList);
|
||||
String output = consumeOption("--output", argList);
|
||||
String xml = consumeOption("--xml", argList);
|
||||
String xsd = consumeOption("--xsd", argList);
|
||||
if (!argList.isEmpty()) {
|
||||
throw new IllegalArgumentException("unknown option " + argList);
|
||||
}
|
||||
OutputMode outputMode = OutputMode.valueOf(mode);
|
||||
File xmlFile = new File(xml);
|
||||
File xsdFile = new File(xsd);
|
||||
|
||||
Metadata metadata = new Metadata(xmlFile, xsdFile);
|
||||
metadata.verify();
|
||||
metadata.wireUpTypes();
|
||||
|
||||
TypeCounter typeCounter = new TypeCounter();
|
||||
printJfrEventIdsHpp(metadata, typeCounter, outputDirectory);
|
||||
printJfrTypesHpp(metadata, typeCounter, outputDirectory);
|
||||
printJfrPeriodicHpp(metadata, outputDirectory);
|
||||
printJfrEventControlHpp(metadata, typeCounter, outputDirectory);
|
||||
printJfrEventClassesHpp(metadata, outputDirectory);
|
||||
if (outputMode == OutputMode.headers) {
|
||||
File outputDir = new File(output);
|
||||
printJfrEventIdsHpp(metadata, new File(outputDir, "jfrEventIds.hpp"));
|
||||
printJfrTypesHpp(metadata, new File(outputDir, "jfrTypes.hpp"));
|
||||
printJfrPeriodicHpp(metadata, new File(outputDir, "jfrPeriodic.hpp"));
|
||||
printJfrEventControlHpp(metadata, new File(outputDir, "jfrEventControl.hpp"));
|
||||
printJfrEventClassesHpp(metadata, new File(outputDir, "jfrEventClasses.hpp"));
|
||||
}
|
||||
|
||||
if (outputMode == OutputMode.metadata) {
|
||||
File outputFile = new File(output);
|
||||
try (var b = new DataOutputStream(
|
||||
new BufferedOutputStream(
|
||||
new FileOutputStream(outputFile)))) {
|
||||
metadata.persist(b);
|
||||
}
|
||||
}
|
||||
System.exit(0);
|
||||
} catch (IllegalArgumentException iae) {
|
||||
System.err.println();
|
||||
System.err.println("GenerateJfrFiles: " + iae.getMessage());
|
||||
System.err.println();
|
||||
printUsage(System.err);
|
||||
System.err.println();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
static class TypeCounter {
|
||||
final static long RESERVED_EVENT_COUNT = 2;
|
||||
long typeId = -1;
|
||||
long eventId = -1;
|
||||
long eventCount = 0;
|
||||
String firstTypeName;
|
||||
String lastTypeName;
|
||||
String firstEventName;
|
||||
String lastEventname;
|
||||
|
||||
public long nextEventId(String name) {
|
||||
eventCount++;
|
||||
if (eventId == -1) {
|
||||
eventId = firstEventId();
|
||||
firstEventName = lastEventname = name;
|
||||
return eventId;
|
||||
}
|
||||
lastEventname = name;
|
||||
return ++eventId;
|
||||
}
|
||||
|
||||
public long nextTypeId(String typeName) {
|
||||
if (typeId == -1) {
|
||||
lastTypeName = firstTypeName = typeName;
|
||||
typeId = lastEventId();
|
||||
}
|
||||
lastTypeName = typeName;
|
||||
return ++typeId;
|
||||
}
|
||||
|
||||
public long firstEventId() {
|
||||
return RESERVED_EVENT_COUNT;
|
||||
}
|
||||
|
||||
public long lastEventId() {
|
||||
return eventId == -1 ? firstEventId() : eventId;
|
||||
}
|
||||
|
||||
public long eventCount() {
|
||||
return eventCount;
|
||||
}
|
||||
|
||||
public String firstTypeName() {
|
||||
return firstTypeName;
|
||||
}
|
||||
|
||||
public String lastTypeName() {
|
||||
return lastTypeName;
|
||||
}
|
||||
|
||||
public String firstEventName() {
|
||||
return firstEventName;
|
||||
}
|
||||
|
||||
public String lastEventName() {
|
||||
return lastEventname;
|
||||
}
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
static class XmlType {
|
||||
@@ -121,28 +137,99 @@ public class GenerateJfrFiles {
|
||||
final String parameterType;
|
||||
final String javaType;
|
||||
final boolean unsigned;
|
||||
final String contentType;
|
||||
|
||||
XmlType(String name, String fieldType, String parameterType, String javaType, boolean unsigned) {
|
||||
XmlType(String name, String fieldType, String parameterType, String javaType, String contentType,
|
||||
boolean unsigned) {
|
||||
this.name = name;
|
||||
this.fieldType = fieldType;
|
||||
this.parameterType = parameterType;
|
||||
this.javaType = javaType;
|
||||
this.unsigned = unsigned;
|
||||
this.contentType = contentType;
|
||||
}
|
||||
}
|
||||
|
||||
static class XmlContentType {
|
||||
final String name;
|
||||
final String annotation;
|
||||
|
||||
XmlContentType(String name, String annotation) {
|
||||
this.name = name;
|
||||
this.annotation = annotation;
|
||||
}
|
||||
}
|
||||
|
||||
static class TypeElement {
|
||||
List<FieldElement> fields = new ArrayList<>();
|
||||
String name;
|
||||
String fieldType;
|
||||
String parameterType;
|
||||
boolean supportStruct;
|
||||
String javaType;
|
||||
String label = "";
|
||||
String description = "";
|
||||
String category = "";
|
||||
boolean thread;
|
||||
boolean stackTrace;
|
||||
boolean startTime;
|
||||
String period = "";
|
||||
boolean cutoff;
|
||||
boolean experimental;
|
||||
long id;
|
||||
boolean isEvent;
|
||||
boolean isRelation;
|
||||
boolean supportStruct = false;
|
||||
String commitState;
|
||||
public boolean primitive;
|
||||
|
||||
public void persist(DataOutputStream pos) throws IOException {
|
||||
pos.writeInt(fields.size());
|
||||
for (FieldElement field : fields) {
|
||||
field.persist(pos);
|
||||
}
|
||||
pos.writeUTF(javaType);
|
||||
pos.writeUTF(label);
|
||||
pos.writeUTF(description);
|
||||
pos.writeUTF(category);
|
||||
pos.writeBoolean(thread);
|
||||
pos.writeBoolean(stackTrace);
|
||||
pos.writeBoolean(startTime);
|
||||
pos.writeUTF(period);
|
||||
pos.writeBoolean(cutoff);
|
||||
pos.writeBoolean(experimental);
|
||||
pos.writeLong(id);
|
||||
pos.writeBoolean(isEvent);
|
||||
pos.writeBoolean(isRelation);
|
||||
}
|
||||
}
|
||||
|
||||
static class Metadata {
|
||||
static class TypeCounter {
|
||||
final long first;
|
||||
long last = -1;
|
||||
long count = 0;
|
||||
long id = -1;
|
||||
|
||||
TypeCounter(long startId) {
|
||||
this.first = startId;
|
||||
}
|
||||
|
||||
long next() {
|
||||
id = (id == -1) ? first : id + 1;
|
||||
count++;
|
||||
last = id;
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
||||
static int RESERVED_EVENT_COUNT = 2;
|
||||
final Map<String, TypeElement> types = new LinkedHashMap<>();
|
||||
final Map<String, XmlType> xmlTypes = new LinkedHashMap<>();
|
||||
Metadata(File metadataXml, File metadataSchema) throws ParserConfigurationException, SAXException, FileNotFoundException, IOException {
|
||||
final Map<String, XmlContentType> xmlContentTypes = new LinkedHashMap<>();
|
||||
int lastEventId;
|
||||
private TypeCounter eventCounter;
|
||||
private TypeCounter typeCounter;
|
||||
|
||||
Metadata(File metadataXml, File metadataSchema)
|
||||
throws ParserConfigurationException, SAXException, FileNotFoundException, IOException {
|
||||
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setSchema(schemaFactory.newSchema(metadataSchema));
|
||||
@@ -150,16 +237,19 @@ public class GenerateJfrFiles {
|
||||
sp.parse(metadataXml, new MetadataHandler(this));
|
||||
}
|
||||
|
||||
List<EventElement> getEvents() {
|
||||
return getList(t -> t.getClass() == EventElement.class);
|
||||
public void persist(DataOutputStream pos) throws IOException {
|
||||
pos.writeInt(types.values().size());
|
||||
for (TypeElement t : types.values()) {
|
||||
t.persist(pos);
|
||||
}
|
||||
}
|
||||
|
||||
List<TypeElement> getEvents() {
|
||||
return getList(t -> t.isEvent);
|
||||
}
|
||||
|
||||
List<TypeElement> getEventsAndStructs() {
|
||||
return getList(t -> t.getClass() == EventElement.class || t.supportStruct);
|
||||
}
|
||||
|
||||
List<TypeElement> getTypesAndStructs() {
|
||||
return getList(t -> t.getClass() == TypeElement.class || t.supportStruct);
|
||||
return getList(t -> t.isEvent || t.supportStruct);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -173,24 +263,25 @@ public class GenerateJfrFiles {
|
||||
return result;
|
||||
}
|
||||
|
||||
List<EventElement> getPeriodicEvents() {
|
||||
return getList(t -> t.getClass() == EventElement.class && ((EventElement) t).periodic);
|
||||
List<TypeElement> getPeriodicEvents() {
|
||||
return getList(t -> t.isEvent && !t.period.isEmpty());
|
||||
}
|
||||
|
||||
List<TypeElement> getTypes() {
|
||||
return getList(t -> t.getClass() == TypeElement.class);
|
||||
return getList(t -> !t.isEvent);
|
||||
}
|
||||
|
||||
List<TypeElement> getStructs() {
|
||||
return getList(t -> t.getClass() == TypeElement.class && t.supportStruct);
|
||||
return getList(t -> !t.isEvent && t.supportStruct);
|
||||
}
|
||||
|
||||
void verify() {
|
||||
void verify() {
|
||||
for (TypeElement t : types.values()) {
|
||||
for (FieldElement f : t.fields) {
|
||||
if (!xmlTypes.containsKey(f.typeName)) { // ignore primitives
|
||||
if (!types.containsKey(f.typeName)) {
|
||||
throw new IllegalStateException("Could not find definition of type '" + f.typeName + "' used by " + t.name + "#" + f.name);
|
||||
throw new IllegalStateException("Could not find definition of type '" + f.typeName
|
||||
+ "' used by " + t.name + "#" + f.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -198,26 +289,96 @@ public class GenerateJfrFiles {
|
||||
}
|
||||
|
||||
void wireUpTypes() {
|
||||
// Add Java primitives
|
||||
for (var t : xmlTypes.entrySet()) {
|
||||
String name = t.getKey();
|
||||
XmlType xmlType = t.getValue();
|
||||
// Excludes Thread and Class
|
||||
if (!types.containsKey(name)) {
|
||||
// Excludes u8, u4, u2, u1, Ticks and Ticksspan
|
||||
if (!xmlType.javaType.isEmpty() && !xmlType.unsigned) {
|
||||
TypeElement te = new TypeElement();
|
||||
te.name = name;
|
||||
te.javaType = xmlType.javaType;
|
||||
te.primitive = true;
|
||||
types.put(te.name, te);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Setup Java fully qualified names
|
||||
for (TypeElement t : types.values()) {
|
||||
if (t.isEvent) {
|
||||
t.javaType = "jdk." + t.name;
|
||||
} else {
|
||||
XmlType xmlType = xmlTypes.get(t.name);
|
||||
if (xmlType != null && !xmlType.javaType.isEmpty()) {
|
||||
t.javaType = xmlType.javaType;
|
||||
} else {
|
||||
t.javaType = "jdk.types." + t.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Setup content type, annotation, constant pool etc. for fields.
|
||||
for (TypeElement t : types.values()) {
|
||||
for (FieldElement f : t.fields) {
|
||||
TypeElement type = types.get(f.typeName);
|
||||
XmlType xmlType = xmlTypes.get(f.typeName);
|
||||
if (type == null) {
|
||||
if (xmlType == null) {
|
||||
throw new IllegalStateException("Unknown type");
|
||||
}
|
||||
if (f.contentType.isEmpty()) {
|
||||
f.contentType = xmlType.contentType;
|
||||
}
|
||||
String javaType = xmlType.javaType;
|
||||
type = types.get(javaType);
|
||||
Objects.requireNonNull(type);
|
||||
}
|
||||
if (type.primitive) {
|
||||
f.constantPool = false;
|
||||
}
|
||||
|
||||
if (xmlType != null) {
|
||||
f.unsigned = xmlType.unsigned;
|
||||
}
|
||||
|
||||
if (f.struct) {
|
||||
f.constantPool = false;
|
||||
type.supportStruct = true;
|
||||
}
|
||||
f.type = type;
|
||||
XmlContentType xmlContentType = xmlContentTypes.get(f.contentType);
|
||||
if (xmlContentType == null) {
|
||||
f.annotations = "";
|
||||
} else {
|
||||
f.annotations = xmlContentType.annotation;
|
||||
}
|
||||
if (!f.relation.isEmpty()) {
|
||||
f.relation = "jdk.types." + f.relation;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class EventElement extends TypeElement {
|
||||
String representation;
|
||||
boolean thread;
|
||||
boolean stackTrace;
|
||||
boolean startTime;
|
||||
boolean periodic;
|
||||
boolean cutoff;
|
||||
String commitState;
|
||||
// Low numbers for event so most of them
|
||||
// can fit in one byte with compressed integers
|
||||
eventCounter = new TypeCounter(RESERVED_EVENT_COUNT);
|
||||
for (TypeElement t : getEvents()) {
|
||||
t.id = eventCounter.next();
|
||||
}
|
||||
typeCounter = new TypeCounter(eventCounter.last + 1);
|
||||
for (TypeElement t : getTypes()) {
|
||||
t.id = typeCounter.next();
|
||||
}
|
||||
}
|
||||
|
||||
public String getName(long id) {
|
||||
for (TypeElement t : types.values()) {
|
||||
if (t.id == id) {
|
||||
return t.name;
|
||||
}
|
||||
}
|
||||
throw new IllegalStateException("Unexpected id " + id );
|
||||
}
|
||||
}
|
||||
|
||||
static class FieldElement {
|
||||
@@ -225,12 +386,36 @@ public class GenerateJfrFiles {
|
||||
TypeElement type;
|
||||
String name;
|
||||
String typeName;
|
||||
boolean struct;
|
||||
boolean constantPool = true;
|
||||
public String transition;
|
||||
public String contentType;
|
||||
private String label;
|
||||
private String description;
|
||||
private String relation;
|
||||
private boolean experimental;
|
||||
private boolean unsigned;
|
||||
private boolean array;
|
||||
private String annotations;
|
||||
public boolean struct;
|
||||
|
||||
FieldElement(Metadata metadata) {
|
||||
this.metadata = metadata;
|
||||
}
|
||||
|
||||
public void persist(DataOutputStream pos) throws IOException {
|
||||
pos.writeUTF(name);
|
||||
pos.writeUTF(type.javaType);
|
||||
pos.writeUTF(label);
|
||||
pos.writeUTF(description);
|
||||
pos.writeBoolean(constantPool);
|
||||
pos.writeBoolean(array);
|
||||
pos.writeBoolean(unsigned);
|
||||
pos.writeUTF(annotations);
|
||||
pos.writeUTF(transition);
|
||||
pos.writeUTF(relation);
|
||||
pos.writeBoolean(experimental);
|
||||
}
|
||||
|
||||
String getParameterType() {
|
||||
if (struct) {
|
||||
return "const JfrStruct" + typeName + "&";
|
||||
@@ -262,50 +447,75 @@ public class GenerateJfrFiles {
|
||||
final Metadata metadata;
|
||||
FieldElement currentField;
|
||||
TypeElement currentType;
|
||||
|
||||
MetadataHandler(Metadata metadata) {
|
||||
this.metadata = metadata;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(SAXParseException e) throws SAXException {
|
||||
throw e;
|
||||
throw e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
|
||||
public void startElement(String uri, String localName, String qName, Attributes attributes)
|
||||
throws SAXException {
|
||||
switch (qName) {
|
||||
case "XmlContentType":
|
||||
String n = attributes.getValue("name"); // mandatory
|
||||
String a = attributes.getValue("annotation"); // mandatory
|
||||
metadata.xmlContentTypes.put(n, new XmlContentType(n, a));
|
||||
break;
|
||||
case "XmlType":
|
||||
String name = attributes.getValue("name");
|
||||
String parameterType = attributes.getValue("parameterType");
|
||||
String fieldType = attributes.getValue("fieldType");
|
||||
String javaType = attributes.getValue("javaType");
|
||||
String name = attributes.getValue("name"); // mandatory
|
||||
String parameterType = attributes.getValue("parameterType"); // mandatory
|
||||
String fieldType = attributes.getValue("fieldType"); // mandatory
|
||||
String javaType = getString(attributes, "javaType");
|
||||
String contentType = getString(attributes, "contentType");
|
||||
boolean unsigned = getBoolean(attributes, "unsigned", false);
|
||||
metadata.xmlTypes.put(name, new XmlType(name, fieldType, parameterType, javaType, unsigned));
|
||||
metadata.xmlTypes.put(name,
|
||||
new XmlType(name, fieldType, parameterType, javaType, contentType, unsigned));
|
||||
break;
|
||||
case "Relation":
|
||||
case "Type":
|
||||
currentType = new TypeElement();
|
||||
currentType.name = attributes.getValue("name");
|
||||
break;
|
||||
case "Event":
|
||||
EventElement eventType = new EventElement();
|
||||
eventType.name = attributes.getValue("name");
|
||||
eventType.thread = getBoolean(attributes, "thread", false);
|
||||
eventType.stackTrace = getBoolean(attributes, "stackTrace", false);
|
||||
eventType.startTime = getBoolean(attributes, "startTime", true);
|
||||
eventType.periodic = attributes.getValue("period") != null;
|
||||
eventType.cutoff = getBoolean(attributes, "cutoff", false);
|
||||
eventType.commitState = attributes.getValue("commitState");
|
||||
currentType = eventType;
|
||||
currentType = new TypeElement();
|
||||
currentType.name = attributes.getValue("name"); // mandatory
|
||||
currentType.label = getString(attributes, "label");
|
||||
currentType.description = getString(attributes, "description");
|
||||
currentType.category = getString(attributes, "category");
|
||||
currentType.experimental = getBoolean(attributes, "experimental", false);
|
||||
currentType.thread = getBoolean(attributes, "thread", false);
|
||||
currentType.stackTrace = getBoolean(attributes, "stackTrace", false);
|
||||
currentType.startTime = getBoolean(attributes, "startTime", true);
|
||||
currentType.period = getString(attributes, "period");
|
||||
currentType.cutoff = getBoolean(attributes, "cutoff", false);
|
||||
currentType.commitState = getString(attributes, "commitState");
|
||||
currentType.isEvent = "Event".equals(qName);
|
||||
currentType.isRelation = "Relation".equals(qName);
|
||||
break;
|
||||
case "Field":
|
||||
currentField = new FieldElement(metadata);
|
||||
currentField.name = attributes.getValue("name"); // mandatory
|
||||
currentField.typeName = attributes.getValue("type"); // mandatory
|
||||
currentField.label = getString(attributes, "label");
|
||||
currentField.description = getString(attributes, "description");
|
||||
currentField.contentType = getString(attributes, "contentType");
|
||||
currentField.struct = getBoolean(attributes, "struct", false);
|
||||
currentField.name = attributes.getValue("name");
|
||||
currentField.typeName = attributes.getValue("type");
|
||||
currentField.array = getBoolean(attributes, "array", false);
|
||||
currentField.transition = getString(attributes, "transition");
|
||||
currentField.relation = getString(attributes, "relation");
|
||||
currentField.experimental = getBoolean(attributes, "experimental", false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean getBoolean(Attributes attributes, String name, boolean defaultValue) {
|
||||
private static String getString(Attributes attributes, String name) {
|
||||
String value = attributes.getValue(name);
|
||||
return value != null ? value : "";
|
||||
}
|
||||
|
||||
private static boolean getBoolean(Attributes attributes, String name, boolean defaultValue) {
|
||||
String value = attributes.getValue(name);
|
||||
return value == null ? defaultValue : Boolean.valueOf(value);
|
||||
}
|
||||
@@ -327,10 +537,11 @@ public class GenerateJfrFiles {
|
||||
}
|
||||
}
|
||||
|
||||
static class Printer implements AutoCloseable {
|
||||
static class Printer implements Closeable {
|
||||
final PrintStream out;
|
||||
Printer(File outputDirectory, String filename) throws FileNotFoundException {
|
||||
out = new PrintStream(new BufferedOutputStream(new FileOutputStream(new File(outputDirectory, filename))));
|
||||
|
||||
Printer(File outputFile) throws FileNotFoundException {
|
||||
out = new PrintStream(new BufferedOutputStream(new FileOutputStream(outputFile)));
|
||||
write("/* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */");
|
||||
write("");
|
||||
}
|
||||
@@ -341,13 +552,13 @@ public class GenerateJfrFiles {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws Exception {
|
||||
public void close() throws IOException {
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
|
||||
private static void printJfrPeriodicHpp(Metadata metadata, File outputDirectory) throws Exception {
|
||||
try (Printer out = new Printer(outputDirectory, "jfrPeriodic.hpp")) {
|
||||
private static void printJfrPeriodicHpp(Metadata metadata, File outputFile) throws Exception {
|
||||
try (var out = new Printer(outputFile)) {
|
||||
out.write("#ifndef JFRFILES_JFRPERIODICEVENTSET_HPP");
|
||||
out.write("#define JFRFILES_JFRPERIODICEVENTSET_HPP");
|
||||
out.write("");
|
||||
@@ -361,7 +572,7 @@ public class GenerateJfrFiles {
|
||||
out.write(" static void requestEvent(JfrEventId id) {");
|
||||
out.write(" switch(id) {");
|
||||
out.write(" ");
|
||||
for (EventElement e : metadata.getPeriodicEvents()) {
|
||||
for (TypeElement e : metadata.getPeriodicEvents()) {
|
||||
out.write(" case Jfr" + e.name + "Event:");
|
||||
out.write(" request" + e.name + "();");
|
||||
out.write(" break;");
|
||||
@@ -374,7 +585,7 @@ public class GenerateJfrFiles {
|
||||
out.write("");
|
||||
out.write(" private:");
|
||||
out.write("");
|
||||
for (EventElement e : metadata.getPeriodicEvents()) {
|
||||
for (TypeElement e : metadata.getPeriodicEvents()) {
|
||||
out.write(" static void request" + e.name + "(void);");
|
||||
out.write("");
|
||||
}
|
||||
@@ -385,8 +596,8 @@ public class GenerateJfrFiles {
|
||||
}
|
||||
}
|
||||
|
||||
private static void printJfrEventControlHpp(Metadata metadata, TypeCounter typeCounter, File outputDirectory) throws Exception {
|
||||
try (Printer out = new Printer(outputDirectory, "jfrEventControl.hpp")) {
|
||||
private static void printJfrEventControlHpp(Metadata metadata, File outputFile) throws Exception {
|
||||
try (var out = new Printer(outputFile)) {
|
||||
out.write("#ifndef JFRFILES_JFR_NATIVE_EVENTSETTING_HPP");
|
||||
out.write("#define JFRFILES_JFR_NATIVE_EVENTSETTING_HPP");
|
||||
out.write("");
|
||||
@@ -426,8 +637,8 @@ public class GenerateJfrFiles {
|
||||
}
|
||||
}
|
||||
|
||||
private static void printJfrEventIdsHpp(Metadata metadata, TypeCounter typeCounter, File outputDirectory) throws Exception {
|
||||
try (Printer out = new Printer(outputDirectory, "jfrEventIds.hpp")) {
|
||||
private static void printJfrEventIdsHpp(Metadata metadata, File outputFile) throws Exception {
|
||||
try (var out = new Printer(outputFile)) {
|
||||
out.write("#ifndef JFRFILES_JFREVENTIDS_HPP");
|
||||
out.write("#define JFRFILES_JFREVENTIDS_HPP");
|
||||
out.write("");
|
||||
@@ -438,23 +649,28 @@ public class GenerateJfrFiles {
|
||||
out.write(" JfrMetadataEvent = 0,");
|
||||
out.write(" JfrCheckpointEvent = 1,");
|
||||
for (TypeElement t : metadata.getEvents()) {
|
||||
String name = "Jfr" + t.name +"Event";
|
||||
out.write(" " + name + " = " + typeCounter.nextEventId(name) + ",");
|
||||
out.write(" " + jfrEventId(t.name) + " = " + t.id + ",");
|
||||
}
|
||||
out.write("};");
|
||||
out.write("typedef enum JfrEventId JfrEventId;");
|
||||
out.write("");
|
||||
out.write("static const JfrEventId FIRST_EVENT_ID = " + typeCounter.firstEventName() + ";");
|
||||
out.write("static const JfrEventId LAST_EVENT_ID = " + typeCounter.lastEventName() + ";");
|
||||
out.write("static const int NUMBER_OF_EVENTS = " + typeCounter.eventCount() + ";");
|
||||
out.write("static const int NUMBER_OF_RESERVED_EVENTS = " + TypeCounter.RESERVED_EVENT_COUNT + ";");
|
||||
String first = metadata.getName(metadata.eventCounter.first);
|
||||
String last = metadata.getName(metadata.eventCounter.last);
|
||||
out.write("static const JfrEventId FIRST_EVENT_ID = " + jfrEventId(first) + ";");
|
||||
out.write("static const JfrEventId LAST_EVENT_ID = " + jfrEventId(last) + ";");
|
||||
out.write("static const int NUMBER_OF_EVENTS = " + metadata.eventCounter.count + ";");
|
||||
out.write("static const int NUMBER_OF_RESERVED_EVENTS = " + Metadata.RESERVED_EVENT_COUNT + ";");
|
||||
out.write("#endif // INCLUDE_JFR");
|
||||
out.write("#endif // JFRFILES_JFREVENTIDS_HPP");
|
||||
}
|
||||
}
|
||||
|
||||
private static void printJfrTypesHpp(Metadata metadata, TypeCounter typeCounter, File outputDirectory) throws Exception {
|
||||
try (Printer out = new Printer(outputDirectory, "jfrTypes.hpp")) {
|
||||
private static String jfrEventId(String name) {
|
||||
return "Jfr" + name + "Event";
|
||||
}
|
||||
|
||||
private static void printJfrTypesHpp(Metadata metadata, File outputFile) throws Exception {
|
||||
try (var out = new Printer(outputFile)) {
|
||||
out.write("#ifndef JFRFILES_JFRTYPES_HPP");
|
||||
out.write("#define JFRFILES_JFRTYPES_HPP");
|
||||
out.write("");
|
||||
@@ -465,36 +681,27 @@ public class GenerateJfrFiles {
|
||||
out.write("#include \"memory/allocation.hpp\"");
|
||||
out.write("");
|
||||
out.write("enum JfrTypeId {");
|
||||
Map<String, XmlType> javaTypes = new LinkedHashMap<>();
|
||||
for (var t : metadata.xmlTypes.entrySet()) {
|
||||
String name = t.getKey();
|
||||
XmlType xmlType = t.getValue();
|
||||
if (xmlType.javaType != null && !xmlType.unsigned) {
|
||||
String typeName = "TYPE_" + name.toUpperCase();
|
||||
long typeId = typeCounter.nextTypeId(typeName);
|
||||
out.write(" " + typeName + " = " + typeId + ",");
|
||||
javaTypes.put(name, xmlType);
|
||||
}
|
||||
}
|
||||
for (TypeElement type : metadata.getTypes()) {
|
||||
String name = type.name;
|
||||
if (!javaTypes.containsKey(name)) {
|
||||
String typeName = "TYPE_" + name.toUpperCase();
|
||||
long typeId = typeCounter.nextTypeId(typeName);
|
||||
out.write(" " + typeName + " = " + typeId + ",");
|
||||
}
|
||||
out.write(" " + jfrTypeId(type.name) + " = " + type.id + ",");
|
||||
}
|
||||
out.write("};");
|
||||
out.write("");
|
||||
out.write("static const JfrTypeId FIRST_TYPE_ID = " + typeCounter.firstTypeName() + ";");
|
||||
out.write("static const JfrTypeId LAST_TYPE_ID = " + typeCounter.lastTypeName() + ";");
|
||||
|
||||
String first = metadata.getName(metadata.typeCounter.first);
|
||||
String last = metadata.getName(metadata.typeCounter.last);
|
||||
out.write("static const JfrTypeId FIRST_TYPE_ID = " + jfrTypeId(first) + ";");
|
||||
out.write("static const JfrTypeId LAST_TYPE_ID = " + jfrTypeId(last) + ";");
|
||||
out.write("");
|
||||
out.write("class JfrType : public AllStatic {");
|
||||
out.write(" public:");
|
||||
out.write(" static jlong name_to_id(const char* type_name) {");
|
||||
for (Entry<String, XmlType> m : javaTypes.entrySet()) {
|
||||
XmlType xmlType = m.getValue();
|
||||
|
||||
Map<String, XmlType> javaTypes = new LinkedHashMap<>();
|
||||
for (XmlType xmlType : metadata.xmlTypes.values()) {
|
||||
if (!xmlType.javaType.isEmpty()) {
|
||||
javaTypes.put(xmlType.javaType, xmlType);
|
||||
}
|
||||
}
|
||||
for (XmlType xmlType : javaTypes.values()) {
|
||||
String javaName = xmlType.javaType;
|
||||
String typeName = xmlType.name.toUpperCase();
|
||||
out.write(" if (strcmp(type_name, \"" + javaName + "\") == 0) {");
|
||||
@@ -508,11 +715,14 @@ public class GenerateJfrFiles {
|
||||
out.write("#endif // INCLUDE_JFR");
|
||||
out.write("#endif // JFRFILES_JFRTYPES_HPP");
|
||||
}
|
||||
;
|
||||
}
|
||||
|
||||
private static void printJfrEventClassesHpp(Metadata metadata, File outputDirectory) throws Exception {
|
||||
try (Printer out = new Printer(outputDirectory, "jfrEventClasses.hpp")) {
|
||||
private static String jfrTypeId(String name) {
|
||||
return "TYPE_" + name.toUpperCase();
|
||||
}
|
||||
|
||||
private static void printJfrEventClassesHpp(Metadata metadata, File outputFile) throws Exception {
|
||||
try (var out = new Printer(outputFile)) {
|
||||
out.write("#ifndef JFRFILES_JFREVENTCLASSES_HPP");
|
||||
out.write("#define JFRFILES_JFREVENTCLASSES_HPP");
|
||||
out.write("");
|
||||
@@ -566,7 +776,7 @@ public class GenerateJfrFiles {
|
||||
printType(out, t, empty);
|
||||
out.write("");
|
||||
}
|
||||
for (EventElement e : metadata.getEvents()) {
|
||||
for (TypeElement e : metadata.getEvents()) {
|
||||
printEvent(out, e, empty);
|
||||
out.write("");
|
||||
}
|
||||
@@ -576,81 +786,83 @@ public class GenerateJfrFiles {
|
||||
out.write("struct JfrStruct" + t.name);
|
||||
out.write("{");
|
||||
if (!empty) {
|
||||
out.write(" private:");
|
||||
for (FieldElement f : t.fields) {
|
||||
printField(out, f);
|
||||
}
|
||||
out.write("");
|
||||
out.write(" private:");
|
||||
for (FieldElement f : t.fields) {
|
||||
printField(out, f);
|
||||
}
|
||||
out.write("");
|
||||
}
|
||||
out.write(" public:");
|
||||
for (FieldElement f : t.fields) {
|
||||
printTypeSetter(out, f, empty);
|
||||
printTypeSetter(out, f, empty);
|
||||
}
|
||||
out.write("");
|
||||
if (!empty) {
|
||||
printWriteData(out, t.fields, null);
|
||||
printWriteData(out, t);
|
||||
}
|
||||
out.write("};");
|
||||
out.write("");
|
||||
}
|
||||
|
||||
private static void printEvent(Printer out, EventElement event, boolean empty) {
|
||||
private static void printEvent(Printer out, TypeElement event, boolean empty) {
|
||||
out.write("class Event" + event.name + " : public JfrEvent<Event" + event.name + ">");
|
||||
out.write("{");
|
||||
if (!empty) {
|
||||
out.write(" private:");
|
||||
for (FieldElement f : event.fields) {
|
||||
printField(out, f);
|
||||
}
|
||||
out.write("");
|
||||
out.write(" private:");
|
||||
for (FieldElement f : event.fields) {
|
||||
printField(out, f);
|
||||
}
|
||||
out.write("");
|
||||
}
|
||||
out.write(" public:");
|
||||
if (!empty) {
|
||||
out.write(" static const bool hasThread = " + event.thread + ";");
|
||||
out.write(" static const bool hasStackTrace = " + event.stackTrace + ";");
|
||||
out.write(" static const bool isInstant = " + !event.startTime + ";");
|
||||
out.write(" static const bool hasCutoff = " + event.cutoff + ";");
|
||||
out.write(" static const bool isRequestable = " + event.periodic + ";");
|
||||
out.write(" static const JfrEventId eventId = Jfr" + event.name + "Event;");
|
||||
out.write("");
|
||||
out.write(" static const bool hasThread = " + event.thread + ";");
|
||||
out.write(" static const bool hasStackTrace = " + event.stackTrace + ";");
|
||||
out.write(" static const bool isInstant = " + !event.startTime + ";");
|
||||
out.write(" static const bool hasCutoff = " + event.cutoff + ";");
|
||||
out.write(" static const bool isRequestable = " + !event.period.isEmpty() + ";");
|
||||
out.write(" static const JfrEventId eventId = Jfr" + event.name + "Event;");
|
||||
out.write("");
|
||||
}
|
||||
if (!empty) {
|
||||
out.write(" Event" + event.name + "(EventStartTime timing=TIMED) : JfrEvent<Event" + event.name + ">(timing) {}");
|
||||
out.write(" Event" + event.name + "(EventStartTime timing=TIMED) : JfrEvent<Event" + event.name
|
||||
+ ">(timing) {}");
|
||||
} else {
|
||||
out.write(" Event" + event.name + "(EventStartTime timing=TIMED) {}");
|
||||
out.write(" Event" + event.name + "(EventStartTime timing=TIMED) {}");
|
||||
}
|
||||
out.write("");
|
||||
int index = 0;
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" void set_" + f.name + "(" + f.getParameterType() + " " + f.getParameterName() + ") {");
|
||||
if (!empty) {
|
||||
out.write(" this->_" + f.name + " = " + f.getParameterName() + ";");
|
||||
out.write(" DEBUG_ONLY(set_field_bit(" + index++ + "));");
|
||||
out.write(" this->_" + f.name + " = " + f.getParameterName() + ";");
|
||||
out.write(" DEBUG_ONLY(set_field_bit(" + index++ + "));");
|
||||
}
|
||||
out.write(" }");
|
||||
}
|
||||
out.write("");
|
||||
if (!empty) {
|
||||
printWriteData(out, event.fields, event.commitState);
|
||||
out.write("");
|
||||
printWriteData(out, event);
|
||||
out.write("");
|
||||
}
|
||||
out.write(" using JfrEvent<Event" + event.name + ">::commit; // else commit() is hidden by overloaded versions in this class");
|
||||
out.write(" using JfrEvent<Event" + event.name
|
||||
+ ">::commit; // else commit() is hidden by overloaded versions in this class");
|
||||
printConstructor2(out, event, empty);
|
||||
printCommitMethod(out, event, empty);
|
||||
if (!empty) {
|
||||
printVerify(out, event.fields);
|
||||
printVerify(out, event.fields);
|
||||
}
|
||||
out.write("};");
|
||||
}
|
||||
|
||||
private static void printWriteData(Printer out, List<FieldElement> fields, String commitState) {
|
||||
private static void printWriteData(Printer out, TypeElement type) {
|
||||
out.write(" template <typename Writer>");
|
||||
out.write(" void writeData(Writer& w) {");
|
||||
if (("_thread_in_native").equals(commitState)) {
|
||||
if (("_thread_in_native").equals(type.commitState)) {
|
||||
out.write(" // explicit epoch synchronization check");
|
||||
out.write(" JfrEpochSynchronization sync;");
|
||||
}
|
||||
for (FieldElement field : fields) {
|
||||
for (FieldElement field : type.fields) {
|
||||
if (field.struct) {
|
||||
out.write(" _" + field.name + ".writeData(w);");
|
||||
} else {
|
||||
@@ -662,9 +874,10 @@ public class GenerateJfrFiles {
|
||||
|
||||
private static void printTypeSetter(Printer out, FieldElement field, boolean empty) {
|
||||
if (!empty) {
|
||||
out.write(" void set_" + field.name + "(" + field.getParameterType() + " new_value) { this->_" + field.name + " = new_value; }");
|
||||
out.write(" void set_" + field.name + "(" + field.getParameterType() + " new_value) { this->_" + field.name
|
||||
+ " = new_value; }");
|
||||
} else {
|
||||
out.write(" void set_" + field.name + "(" + field.getParameterType() + " new_value) { }");
|
||||
out.write(" void set_" + field.name + "(" + field.getParameterType() + " new_value) { }");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -674,13 +887,14 @@ public class GenerateJfrFiles {
|
||||
out.write(" void verify() const {");
|
||||
int index = 0;
|
||||
for (FieldElement f : fields) {
|
||||
out.write(" assert(verify_field_bit(" + index++ + "), \"Attempting to write an uninitialized event field: %s\", \"_" + f.name + "\");");
|
||||
out.write(" assert(verify_field_bit(" + index++
|
||||
+ "), \"Attempting to write an uninitialized event field: %s\", \"_" + f.name + "\");");
|
||||
}
|
||||
out.write(" }");
|
||||
out.write("#endif");
|
||||
}
|
||||
|
||||
private static void printCommitMethod(Printer out, EventElement event, boolean empty) {
|
||||
private static void printCommitMethod(Printer out, TypeElement event, boolean empty) {
|
||||
if (event.startTime) {
|
||||
StringJoiner sj = new StringJoiner(",\n ");
|
||||
for (FieldElement f : event.fields) {
|
||||
@@ -689,12 +903,12 @@ public class GenerateJfrFiles {
|
||||
out.write("");
|
||||
out.write(" void commit(" + sj.toString() + ") {");
|
||||
if (!empty) {
|
||||
out.write(" if (should_commit()) {");
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" set_" + f.name + "(" + f.name + ");");
|
||||
}
|
||||
out.write(" commit();");
|
||||
out.write(" }");
|
||||
out.write(" if (should_commit()) {");
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" set_" + f.name + "(" + f.name + ");");
|
||||
}
|
||||
out.write(" commit();");
|
||||
out.write(" }");
|
||||
}
|
||||
out.write(" }");
|
||||
}
|
||||
@@ -715,23 +929,23 @@ public class GenerateJfrFiles {
|
||||
}
|
||||
out.write(" static void commit(" + sj.toString() + ") {");
|
||||
if (!empty) {
|
||||
out.write(" Event" + event.name + " me(UNTIMED);");
|
||||
out.write("");
|
||||
out.write(" if (me.should_commit()) {");
|
||||
if (event.startTime) {
|
||||
out.write(" me.set_starttime(startTicks);");
|
||||
out.write(" me.set_endtime(endTicks);");
|
||||
}
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" me.set_" + f.name + "(" + f.name + ");");
|
||||
}
|
||||
out.write(" me.commit();");
|
||||
out.write(" }");
|
||||
out.write(" Event" + event.name + " me(UNTIMED);");
|
||||
out.write("");
|
||||
out.write(" if (me.should_commit()) {");
|
||||
if (event.startTime) {
|
||||
out.write(" me.set_starttime(startTicks);");
|
||||
out.write(" me.set_endtime(endTicks);");
|
||||
}
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" me.set_" + f.name + "(" + f.name + ");");
|
||||
}
|
||||
out.write(" me.commit();");
|
||||
out.write(" }");
|
||||
}
|
||||
out.write(" }");
|
||||
}
|
||||
|
||||
private static void printConstructor2(Printer out, EventElement event, boolean empty) {
|
||||
private static void printConstructor2(Printer out, TypeElement event, boolean empty) {
|
||||
if (!event.startTime) {
|
||||
out.write("");
|
||||
out.write("");
|
||||
@@ -744,14 +958,14 @@ public class GenerateJfrFiles {
|
||||
sj.add(f.getParameterType() + " " + f.name);
|
||||
}
|
||||
if (!empty) {
|
||||
out.write(" " + sj.toString() + ") : JfrEvent<Event" + event.name + ">(TIMED) {");
|
||||
out.write(" if (should_commit()) {");
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" set_" + f.name + "(" + f.name + ");");
|
||||
}
|
||||
out.write(" }");
|
||||
out.write(" " + sj.toString() + ") : JfrEvent<Event" + event.name + ">(TIMED) {");
|
||||
out.write(" if (should_commit()) {");
|
||||
for (FieldElement f : event.fields) {
|
||||
out.write(" set_" + f.name + "(" + f.name + ");");
|
||||
}
|
||||
out.write(" }");
|
||||
} else {
|
||||
out.write(" " + sj.toString() + ") {");
|
||||
out.write(" " + sj.toString() + ") {");
|
||||
}
|
||||
out.write(" }");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2020, 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,7 +32,7 @@
|
||||
|
||||
void report_error(char const * msg)
|
||||
{
|
||||
LPVOID lpMsgBuf;
|
||||
LPTSTR lpMsgBuf;
|
||||
DWORD dw = GetLastError();
|
||||
|
||||
FormatMessage(
|
||||
|
||||
@@ -43,12 +43,14 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \
|
||||
|
||||
TARGETS += $(BUILD_WB_JAR)
|
||||
|
||||
# test-lib.jar will contain only hprof classes until JDK-8081381 is resolved
|
||||
$(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \
|
||||
TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \
|
||||
SRC := $(TEST_LIB_SOURCE_DIR)/jdk/test/lib/hprof, \
|
||||
SRC := $(TEST_LIB_SOURCE_DIR), \
|
||||
EXCLUDES := jdk/test/lib/containers jdk/test/lib/security, \
|
||||
BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \
|
||||
HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \
|
||||
JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \
|
||||
DISABLED_WARNINGS := try deprecation rawtypes unchecked serial cast, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_TEST_LIB_JAR)
|
||||
|
||||
83
make/test/BuildTestLibNative.gmk
Normal file
83
make/test/BuildTestLibNative.gmk
Normal file
@@ -0,0 +1,83 @@
|
||||
#
|
||||
# Copyright (c) 2020, 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 builds the native component of testlib.
|
||||
# It also covers the test-image part, where the built files are copied to the
|
||||
# test image.
|
||||
################################################################################
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include TestFilesCompilation.gmk
|
||||
|
||||
################################################################################
|
||||
# Targets for building the native tests themselves.
|
||||
################################################################################
|
||||
|
||||
BUILD_LIBTEST_NATIVE_SRC := $(TOPDIR)/test/lib
|
||||
|
||||
BUILD_LIBTEST_OUTPUT_DIR := $(OUTPUTDIR)/support/test/lib/native
|
||||
|
||||
BUILD_LIBTEST_IMAGE_DIR := $(TEST_IMAGE_DIR)/lib
|
||||
|
||||
# This evaluation is expensive and should only be done if this target was
|
||||
# explicitly called.
|
||||
ifneq ($(filter build-test-lib-native, $(MAKECMDGOALS)), )
|
||||
$(eval $(call SetupTestFilesCompilation, BUILD_LIBTEST_LIBRARIES, \
|
||||
TYPE := LIBRARY, \
|
||||
SOURCE_DIRS := $(BUILD_LIBTEST_NATIVE_SRC), \
|
||||
OUTPUT_DIR := $(BUILD_LIBTEST_OUTPUT_DIR), \
|
||||
))
|
||||
endif
|
||||
|
||||
build-test-lib-native: $(BUILD_LIBTEST_LIBRARIES)
|
||||
|
||||
################################################################################
|
||||
# Targets for building test-image.
|
||||
################################################################################
|
||||
|
||||
# Copy to testlib test image. We need it in both hotspot and jdk.
|
||||
$(eval $(call SetupCopyFiles, COPY_LIBTEST_NATIVE_TO_HOTSPOT, \
|
||||
SRC := $(BUILD_LIBTEST_OUTPUT_DIR), \
|
||||
DEST := $(TEST_IMAGE_DIR)/hotspot/jtreg/native, \
|
||||
FILES := $(wildcard $(addprefix $(BUILD_LIBTEST_OUTPUT_DIR), /lib/*)), \
|
||||
FLATTEN := true, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupCopyFiles, COPY_LIBTEST_NATIVE_TO_JDK, \
|
||||
SRC := $(BUILD_LIBTEST_OUTPUT_DIR), \
|
||||
DEST := $(TEST_IMAGE_DIR)/jdk/jtreg/native, \
|
||||
FILES := $(wildcard $(addprefix $(BUILD_LIBTEST_OUTPUT_DIR), /lib/*)), \
|
||||
FLATTEN := true, \
|
||||
))
|
||||
|
||||
test-image-lib-native: $(COPY_LIBTEST_NATIVE_TO_HOTSPOT) $(COPY_LIBTEST_NATIVE_TO_JDK)
|
||||
|
||||
all: build-test-lib-native
|
||||
|
||||
.PHONY: default all build-test-lib-native test-image-lib-native
|
||||
@@ -105,6 +105,7 @@ ifeq ($(INCLUDE_GRAAL), true)
|
||||
$(SRC_DIR)/org.graalvm.compiler.nodes.test/src \
|
||||
$(SRC_DIR)/org.graalvm.compiler.options.test/src \
|
||||
$(SRC_DIR)/org.graalvm.compiler.phases.common.test/src \
|
||||
$(SRC_DIR)/org.graalvm.compiler.replacements.jdk10.test/src \
|
||||
$(SRC_DIR)/org.graalvm.compiler.replacements.jdk12.test/src \
|
||||
$(SRC_DIR)/org.graalvm.compiler.replacements.jdk9.test/src \
|
||||
$(SRC_DIR)/org.graalvm.compiler.replacements.test/src \
|
||||
|
||||
53
modules.list
Normal file
53
modules.list
Normal file
@@ -0,0 +1,53 @@
|
||||
java.base,
|
||||
java.compiler,
|
||||
java.datatransfer,
|
||||
java.desktop,
|
||||
java.instrument,
|
||||
java.logging,
|
||||
java.management,
|
||||
java.management.rmi,
|
||||
java.naming,
|
||||
java.net.http,
|
||||
java.prefs,
|
||||
java.rmi,
|
||||
java.scripting,
|
||||
java.se,
|
||||
java.security.jgss,
|
||||
java.security.sasl,
|
||||
java.smartcardio,
|
||||
java.sql,
|
||||
java.sql.rowset,
|
||||
java.transaction.xa,
|
||||
java.xml,
|
||||
java.xml.crypto,
|
||||
jdk.accessibility,
|
||||
jdk.aot,
|
||||
jdk.charsets,
|
||||
jdk.compiler,
|
||||
jdk.crypto.cryptoki,
|
||||
jdk.crypto.ec,
|
||||
jdk.dynalink,
|
||||
jdk.httpserver,
|
||||
jdk.internal.ed,
|
||||
jdk.internal.le,
|
||||
jdk.internal.vm.ci,
|
||||
jdk.internal.vm.compiler,
|
||||
jdk.internal.vm.compiler.management,
|
||||
jdk.jdi,
|
||||
jdk.jdwp.agent,
|
||||
jdk.jfr,
|
||||
jdk.jsobject,
|
||||
jdk.localedata,
|
||||
jdk.management,
|
||||
jdk.management.agent,
|
||||
jdk.management.jfr,
|
||||
jdk.naming.dns,
|
||||
jdk.naming.rmi,
|
||||
jdk.net,
|
||||
jdk.sctp,
|
||||
jdk.security.auth,
|
||||
jdk.security.jgss,
|
||||
jdk.unsupported,
|
||||
jdk.xml.dom,
|
||||
jdk.zipfs,
|
||||
jdk.hotspot.agent
|
||||
@@ -1955,16 +1955,20 @@ void BoxLockNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
|
||||
int offset = ra_->reg2offset(in_RegMask(0).find_first_elem());
|
||||
int reg = ra_->get_encode(this);
|
||||
|
||||
if (Assembler::operand_valid_for_add_sub_immediate(offset)) {
|
||||
__ add(as_Register(reg), sp, offset);
|
||||
} else {
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
// This add will handle any 24-bit signed offset. 24 bits allows an
|
||||
// 8 megabyte stack frame.
|
||||
__ add(as_Register(reg), sp, offset);
|
||||
}
|
||||
|
||||
uint BoxLockNode::size(PhaseRegAlloc *ra_) const {
|
||||
// BoxLockNode is not a MachNode, so we can't just call MachNode::size(ra_).
|
||||
return 4;
|
||||
int offset = ra_->reg2offset(in_RegMask(0).find_first_elem());
|
||||
|
||||
if (Assembler::operand_valid_for_add_sub_immediate(offset)) {
|
||||
return NativeInstruction::instruction_size;
|
||||
} else {
|
||||
return 2 * NativeInstruction::instruction_size;
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
@@ -3118,7 +3122,7 @@ encode %{
|
||||
|
||||
enc_class aarch64_enc_movw_imm(iRegI dst, immI src) %{
|
||||
C2_MacroAssembler _masm(&cbuf);
|
||||
u_int32_t con = (u_int32_t)$src$$constant;
|
||||
uint32_t con = (uint32_t)$src$$constant;
|
||||
Register dst_reg = as_Register($dst$$reg);
|
||||
if (con == 0) {
|
||||
__ movw(dst_reg, zr);
|
||||
@@ -3130,7 +3134,7 @@ encode %{
|
||||
enc_class aarch64_enc_mov_imm(iRegL dst, immL src) %{
|
||||
C2_MacroAssembler _masm(&cbuf);
|
||||
Register dst_reg = as_Register($dst$$reg);
|
||||
u_int64_t con = (u_int64_t)$src$$constant;
|
||||
uint64_t con = (uint64_t)$src$$constant;
|
||||
if (con == 0) {
|
||||
__ mov(dst_reg, zr);
|
||||
} else {
|
||||
@@ -3172,7 +3176,7 @@ encode %{
|
||||
enc_class aarch64_enc_mov_p1(iRegP dst, immP_1 src) %{
|
||||
C2_MacroAssembler _masm(&cbuf);
|
||||
Register dst_reg = as_Register($dst$$reg);
|
||||
__ mov(dst_reg, (u_int64_t)1);
|
||||
__ mov(dst_reg, (uint64_t)1);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_mov_byte_map_base(iRegP dst, immByteMapBase src) %{
|
||||
@@ -3297,7 +3301,7 @@ encode %{
|
||||
enc_class aarch64_enc_cmpw_imm(iRegI src1, immI src2) %{
|
||||
C2_MacroAssembler _masm(&cbuf);
|
||||
Register reg1 = as_Register($src1$$reg);
|
||||
u_int32_t val = (u_int32_t)$src2$$constant;
|
||||
uint32_t val = (uint32_t)$src2$$constant;
|
||||
__ movw(rscratch1, val);
|
||||
__ cmpw(reg1, rscratch1);
|
||||
%}
|
||||
@@ -3319,7 +3323,7 @@ encode %{
|
||||
__ adds(zr, reg, -val);
|
||||
} else {
|
||||
// aargh, Long.MIN_VALUE is a special case
|
||||
__ orr(rscratch1, zr, (u_int64_t)val);
|
||||
__ orr(rscratch1, zr, (uint64_t)val);
|
||||
__ subs(zr, reg, rscratch1);
|
||||
}
|
||||
%}
|
||||
@@ -3327,7 +3331,7 @@ encode %{
|
||||
enc_class aarch64_enc_cmp_imm(iRegL src1, immL src2) %{
|
||||
C2_MacroAssembler _masm(&cbuf);
|
||||
Register reg1 = as_Register($src1$$reg);
|
||||
u_int64_t val = (u_int64_t)$src2$$constant;
|
||||
uint64_t val = (uint64_t)$src2$$constant;
|
||||
__ mov(rscratch1, val);
|
||||
__ cmp(reg1, rscratch1);
|
||||
%}
|
||||
@@ -13845,7 +13849,7 @@ instruct MoveL2D_reg_reg(vRegD dst, iRegL src) %{
|
||||
instruct clearArray_reg_reg(iRegL_R11 cnt, iRegP_R10 base, Universe dummy, rFlagsReg cr)
|
||||
%{
|
||||
match(Set dummy (ClearArray cnt base));
|
||||
effect(USE_KILL cnt, USE_KILL base);
|
||||
effect(USE_KILL cnt, USE_KILL base, KILL cr);
|
||||
|
||||
ins_cost(4 * INSN_COST);
|
||||
format %{ "ClearArray $cnt, $base" %}
|
||||
@@ -13859,8 +13863,8 @@ instruct clearArray_reg_reg(iRegL_R11 cnt, iRegP_R10 base, Universe dummy, rFlag
|
||||
|
||||
instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, Universe dummy, rFlagsReg cr)
|
||||
%{
|
||||
predicate((u_int64_t)n->in(2)->get_long()
|
||||
< (u_int64_t)(BlockZeroingLowLimit >> LogBytesPerWord));
|
||||
predicate((uint64_t)n->in(2)->get_long()
|
||||
< (uint64_t)(BlockZeroingLowLimit >> LogBytesPerWord));
|
||||
match(Set dummy (ClearArray cnt base));
|
||||
effect(USE_KILL base);
|
||||
|
||||
@@ -13868,7 +13872,7 @@ instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, Universe dummy, rFlagsReg
|
||||
format %{ "ClearArray $cnt, $base" %}
|
||||
|
||||
ins_encode %{
|
||||
__ zero_words($base$$Register, (u_int64_t)$cnt$$constant);
|
||||
__ zero_words($base$$Register, (uint64_t)$cnt$$constant);
|
||||
%}
|
||||
|
||||
ins_pipe(pipe_class_memory);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "c1/c1_LIRAssembler.hpp"
|
||||
#include "c1/c1_MacroAssembler.hpp"
|
||||
#include "c1/c1_Runtime1.hpp"
|
||||
#include "classfile/javaClasses.hpp"
|
||||
#include "nativeInst_aarch64.hpp"
|
||||
#include "runtime/sharedRuntime.hpp"
|
||||
#include "vmreg_aarch64.inline.hpp"
|
||||
|
||||
@@ -2016,7 +2016,7 @@ void LIR_Assembler::comp_fl2i(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Op
|
||||
} else if (code == lir_cmp_l2i) {
|
||||
Label done;
|
||||
__ cmp(left->as_register_lo(), right->as_register_lo());
|
||||
__ mov(dst->as_register(), (u_int64_t)-1L);
|
||||
__ mov(dst->as_register(), (uint64_t)-1L);
|
||||
__ br(Assembler::LT, done);
|
||||
__ csinc(dst->as_register(), zr, zr, Assembler::EQ);
|
||||
__ bind(done);
|
||||
|
||||
@@ -749,7 +749,7 @@ extern "C" void npf() {
|
||||
extern "C" void pf(unsigned long sp, unsigned long fp, unsigned long pc,
|
||||
unsigned long bcx, unsigned long thread) {
|
||||
if (!reg_map) {
|
||||
reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtNone);
|
||||
reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtInternal);
|
||||
::new (reg_map) RegisterMap((JavaThread*)thread, false);
|
||||
} else {
|
||||
*reg_map = RegisterMap((JavaThread*)thread, false);
|
||||
|
||||
@@ -48,7 +48,7 @@ void LIR_OpShenandoahCompareAndSwap::emit_code(LIR_Assembler* masm) {
|
||||
newval = tmp2;
|
||||
}
|
||||
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(masm->masm(), addr, cmpval, newval, /*acquire*/ false, /*release*/ true, /*weak*/ false, /*is_cae*/ false, result);
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(masm->masm(), addr, cmpval, newval, /*acquire*/ false, /*release*/ true, /*is_cae*/ false, result);
|
||||
}
|
||||
|
||||
#undef __
|
||||
|
||||
@@ -449,9 +449,64 @@ void ShenandoahBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler
|
||||
__ bind(done);
|
||||
}
|
||||
|
||||
|
||||
void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, Register addr, Register expected, Register new_val,
|
||||
bool acquire, bool release, bool weak, bool is_cae,
|
||||
// Special Shenandoah CAS implementation that handles false negatives due
|
||||
// to concurrent evacuation. The service is more complex than a
|
||||
// traditional CAS operation because the CAS operation is intended to
|
||||
// succeed if the reference at addr exactly matches expected or if the
|
||||
// reference at addr holds a pointer to a from-space object that has
|
||||
// been relocated to the location named by expected. There are two
|
||||
// races that must be addressed:
|
||||
// a) A parallel thread may mutate the contents of addr so that it points
|
||||
// to a different object. In this case, the CAS operation should fail.
|
||||
// b) A parallel thread may heal the contents of addr, replacing a
|
||||
// from-space pointer held in addr with the to-space pointer
|
||||
// representing the new location of the object.
|
||||
// Upon entry to cmpxchg_oop, it is assured that new_val equals NULL
|
||||
// or it refers to an object that is not being evacuated out of
|
||||
// from-space, or it refers to the to-space version of an object that
|
||||
// is being evacuated out of from-space.
|
||||
//
|
||||
// By default, this operation implements sequential consistency and the
|
||||
// value held in the result register following execution of the
|
||||
// generated code sequence is 0 to indicate failure of CAS, non-zero
|
||||
// to indicate success. Arguments support variations on this theme:
|
||||
//
|
||||
// acquire: Allow relaxation of the memory ordering on CAS from
|
||||
// sequential consistency. This can be useful when
|
||||
// sequential consistency is not required, such as when
|
||||
// another sequentially consistent operation is already
|
||||
// present in the execution stream. If acquire, successful
|
||||
// execution has the side effect of assuring that memory
|
||||
// values updated by other threads and "released" will be
|
||||
// visible to any read operations perfomed by this thread
|
||||
// which follow this operation in program order. This is a
|
||||
// special optimization that should not be enabled by default.
|
||||
// release: Allow relaxation of the memory ordering on CAS from
|
||||
// sequential consistency. This can be useful when
|
||||
// sequential consistency is not required, such as when
|
||||
// another sequentially consistent operation is already
|
||||
// present in the execution stream. If release, successful
|
||||
// completion of this operation has the side effect of
|
||||
// assuring that all writes to memory performed by this
|
||||
// thread that precede this operation in program order are
|
||||
// visible to all other threads that subsequently "acquire"
|
||||
// before reading the respective memory values. This is a
|
||||
// special optimization that should not be enabled by default.
|
||||
// is_cae: This turns CAS (compare and swap) into CAE (compare and
|
||||
// exchange). This HotSpot convention is that CAE makes
|
||||
// available to the caller the "failure witness", which is
|
||||
// the value that was stored in memory which did not match
|
||||
// the expected value. If is_cae, the result is the value
|
||||
// most recently fetched from addr rather than a boolean
|
||||
// success indicator.
|
||||
//
|
||||
// Clobbers rscratch1, rscratch2
|
||||
void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm,
|
||||
Register addr,
|
||||
Register expected,
|
||||
Register new_val,
|
||||
bool acquire, bool release,
|
||||
bool is_cae,
|
||||
Register result) {
|
||||
Register tmp1 = rscratch1;
|
||||
Register tmp2 = rscratch2;
|
||||
@@ -460,48 +515,124 @@ void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, Register a
|
||||
|
||||
assert_different_registers(addr, expected, new_val, tmp1, tmp2);
|
||||
|
||||
Label retry, done, fail;
|
||||
Label step4, done;
|
||||
|
||||
// CAS, using LL/SC pair.
|
||||
__ bind(retry);
|
||||
__ load_exclusive(tmp1, addr, size, acquire);
|
||||
if (is_narrow) {
|
||||
__ cmpw(tmp1, expected);
|
||||
} else {
|
||||
__ cmp(tmp1, expected);
|
||||
}
|
||||
__ br(Assembler::NE, fail);
|
||||
__ store_exclusive(tmp2, new_val, addr, size, release);
|
||||
if (weak) {
|
||||
__ cmpw(tmp2, 0u); // If the store fails, return NE to our caller
|
||||
} else {
|
||||
__ cbnzw(tmp2, retry);
|
||||
}
|
||||
__ b(done);
|
||||
// There are two ways to reach this label. Initial entry into the
|
||||
// cmpxchg_oop code expansion starts at step1 (which is equivalent
|
||||
// to label step4). Additionally, in the rare case that four steps
|
||||
// are required to perform the requested operation, the fourth step
|
||||
// is the same as the first. On a second pass through step 1,
|
||||
// control may flow through step 2 on its way to failure. It will
|
||||
// not flow from step 2 to step 3 since we are assured that the
|
||||
// memory at addr no longer holds a from-space pointer.
|
||||
//
|
||||
// The comments that immediately follow the step4 label apply only
|
||||
// to the case in which control reaches this label by branch from
|
||||
// step 3.
|
||||
|
||||
__ bind (step4);
|
||||
|
||||
// Step 4. CAS has failed because the value most recently fetched
|
||||
// from addr (which is now held in tmp1) is no longer the from-space
|
||||
// pointer held in tmp2. If a different thread replaced the
|
||||
// in-memory value with its equivalent to-space pointer, then CAS
|
||||
// may still be able to succeed. The value held in the expected
|
||||
// register has not changed.
|
||||
//
|
||||
// It is extremely rare we reach this point. For this reason, the
|
||||
// implementation opts for smaller rather than potentially faster
|
||||
// code. Ultimately, smaller code for this rare case most likely
|
||||
// delivers higher overall throughput by enabling improved icache
|
||||
// performance.
|
||||
|
||||
// Step 1. Fast-path.
|
||||
//
|
||||
// Try to CAS with given arguments. If successful, then we are done.
|
||||
//
|
||||
// No label required for step 1.
|
||||
|
||||
__ cmpxchg(addr, expected, new_val, size, acquire, release, false, tmp2);
|
||||
// EQ flag set iff success. tmp2 holds value fetched.
|
||||
|
||||
// If expected equals null but tmp2 does not equal null, the
|
||||
// following branches to done to report failure of CAS. If both
|
||||
// expected and tmp2 equal null, the following branches to done to
|
||||
// report success of CAS. There's no need for a special test of
|
||||
// expected equal to null.
|
||||
|
||||
__ br(Assembler::EQ, done);
|
||||
// if CAS failed, fall through to step 2
|
||||
|
||||
// Step 2. CAS has failed because the value held at addr does not
|
||||
// match expected. This may be a false negative because the value fetched
|
||||
// from addr (now held in tmp2) may be a from-space pointer to the
|
||||
// original copy of same object referenced by to-space pointer expected.
|
||||
//
|
||||
// To resolve this, it suffices to find the forward pointer associated
|
||||
// with fetched value. If this matches expected, retry CAS with new
|
||||
// parameters. If this mismatches, then we have a legitimate
|
||||
// failure, and we're done.
|
||||
//
|
||||
// No need for step2 label.
|
||||
|
||||
// overwrite tmp1 with from-space pointer fetched from memory
|
||||
__ mov(tmp1, tmp2);
|
||||
|
||||
__ bind(fail);
|
||||
// Check if rb(expected)==rb(tmp1)
|
||||
// Shuffle registers so that we have memory value ready for next expected.
|
||||
__ mov(tmp2, expected);
|
||||
__ mov(expected, tmp1);
|
||||
if (is_narrow) {
|
||||
// Decode tmp1 in order to resolve its forward pointer
|
||||
__ decode_heap_oop(tmp1, tmp1);
|
||||
__ decode_heap_oop(tmp2, tmp2);
|
||||
}
|
||||
resolve_forward_pointer(masm, tmp1);
|
||||
resolve_forward_pointer(masm, tmp2);
|
||||
__ cmp(tmp1, tmp2);
|
||||
// Retry with expected now being the value we just loaded from addr.
|
||||
__ br(Assembler::EQ, retry);
|
||||
if (is_cae && is_narrow) {
|
||||
// For cmp-and-exchange and narrow oops, we need to restore
|
||||
// the compressed old-value. We moved it to 'expected' a few lines up.
|
||||
__ mov(tmp1, expected);
|
||||
}
|
||||
__ bind(done);
|
||||
// Encode tmp1 to compare against expected.
|
||||
__ encode_heap_oop(tmp1, tmp1);
|
||||
|
||||
// Does forwarded value of fetched from-space pointer match original
|
||||
// value of expected? If tmp1 holds null, this comparison will fail
|
||||
// because we know from step1 that expected is not null. There is
|
||||
// no need for a separate test for tmp1 (the value originally held
|
||||
// in memory) equal to null.
|
||||
__ cmp(tmp1, expected);
|
||||
|
||||
// If not, then the failure was legitimate and we're done.
|
||||
// Branching to done with NE condition denotes failure.
|
||||
__ br(Assembler::NE, done);
|
||||
|
||||
// Fall through to step 3. No need for step3 label.
|
||||
|
||||
// Step 3. We've confirmed that the value originally held in memory
|
||||
// (now held in tmp2) pointed to from-space version of original
|
||||
// expected value. Try the CAS again with the from-space expected
|
||||
// value. If it now succeeds, we're good.
|
||||
//
|
||||
// Note: tmp2 holds encoded from-space pointer that matches to-space
|
||||
// object residing at expected. tmp2 is the new "expected".
|
||||
|
||||
// Note that macro implementation of __cmpxchg cannot use same register
|
||||
// tmp2 for result and expected since it overwrites result before it
|
||||
// compares result with expected.
|
||||
__ cmpxchg(addr, tmp2, new_val, size, acquire, release, false, tmp1);
|
||||
// EQ flag set iff success. tmp2 holds value fetched.
|
||||
|
||||
// If fetched value did not equal the new expected, this could
|
||||
// still be a false negative because some other thread may have
|
||||
// newly overwritten the memory value with its to-space equivalent.
|
||||
__ br(Assembler::NE, step4);
|
||||
|
||||
if (is_cae) {
|
||||
__ mov(result, tmp1);
|
||||
// We're falling through to done to indicate success. Success
|
||||
// with is_cae is denoted by returning the value of expected as
|
||||
// result.
|
||||
__ mov(tmp2, expected);
|
||||
}
|
||||
|
||||
__ bind(done);
|
||||
// At entry to done, the Z (EQ) flag is on iff if the CAS
|
||||
// operation was successful. Additionally, if is_cae, tmp2 holds
|
||||
// the value most recently fetched from addr. In this case, success
|
||||
// is denoted by tmp2 matching expected.
|
||||
|
||||
if (is_cae) {
|
||||
__ mov(result, tmp2);
|
||||
} else {
|
||||
__ cset(result, Assembler::EQ);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public:
|
||||
virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
|
||||
Register obj, Register tmp, Label& slowpath);
|
||||
void cmpxchg_oop(MacroAssembler* masm, Register addr, Register expected, Register new_val,
|
||||
bool acquire, bool release, bool weak, bool is_cae, Register result);
|
||||
bool acquire, bool release, bool is_cae, Register result);
|
||||
|
||||
virtual void barrier_stubs_init();
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ false, /*release*/ true, /*weak*/ false, /*is_cae*/ false, $res$$Register);
|
||||
/*acquire*/ false, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
|
||||
enc_class aarch64_enc_cmpxchg_acq_oop_shenandoah(memory mem, iRegP oldval, iRegP newval, iRegPNoSp tmp, iRegINoSp res) %{
|
||||
@@ -42,7 +42,7 @@ encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ true, /*release*/ true, /*weak*/ false, /*is_cae*/ false, $res$$Register);
|
||||
/*acquire*/ true, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
%}
|
||||
|
||||
@@ -76,7 +76,7 @@ instruct compareAndSwapN_shenandoah(iRegINoSp res, indirect mem, iRegN oldval, i
|
||||
ins_encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register, /*acquire*/ false, /*release*/ true, /*weak*/ false, /*is_cae*/ false, $res$$Register);
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register, /*acquire*/ false, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
|
||||
ins_pipe(pipe_slow);
|
||||
@@ -114,7 +114,7 @@ instruct compareAndSwapNAcq_shenandoah(iRegINoSp res, indirect mem, iRegN oldval
|
||||
ins_encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register, /*acquire*/ true, /*release*/ true, /*weak*/ false, /*is_cae*/ false, $res$$Register);
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register, /*acquire*/ true, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
|
||||
ins_pipe(pipe_slow);
|
||||
@@ -131,7 +131,7 @@ instruct compareAndExchangeN_shenandoah(iRegNNoSp res, indirect mem, iRegN oldva
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ false, /*release*/ true, /*weak*/ false, /*is_cae*/ true, $res$$Register);
|
||||
/*acquire*/ false, /*release*/ true, /*is_cae*/ true, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -147,7 +147,7 @@ instruct compareAndExchangeP_shenandoah(iRegPNoSp res, indirect mem, iRegP oldva
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ false, /*release*/ true, /*weak*/ false, /*is_cae*/ true, $res$$Register);
|
||||
/*acquire*/ false, /*release*/ true, /*is_cae*/ true, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -164,7 +164,7 @@ instruct compareAndExchangeNAcq_shenandoah(iRegNNoSp res, indirect mem, iRegN ol
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ true, /*release*/ true, /*weak*/ false, /*is_cae*/ true, $res$$Register);
|
||||
/*acquire*/ true, /*release*/ true, /*is_cae*/ true, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -181,7 +181,7 @@ instruct compareAndExchangePAcq_shenandoah(iRegPNoSp res, indirect mem, iRegP ol
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ true, /*release*/ true, /*weak*/ false, /*is_cae*/ true, $res$$Register);
|
||||
/*acquire*/ true, /*release*/ true, /*is_cae*/ true, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -197,8 +197,9 @@ instruct weakCompareAndSwapN_shenandoah(iRegINoSp res, indirect mem, iRegN oldva
|
||||
ins_encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
// Weak is not currently supported by ShenandoahBarrierSet::cmpxchg_oop
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ false, /*release*/ true, /*weak*/ true, /*is_cae*/ false, $res$$Register);
|
||||
/*acquire*/ false, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -213,8 +214,9 @@ instruct weakCompareAndSwapP_shenandoah(iRegINoSp res, indirect mem, iRegP oldva
|
||||
ins_encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
// Weak is not currently supported by ShenandoahBarrierSet::cmpxchg_oop
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ false, /*release*/ true, /*weak*/ true, /*is_cae*/ false, $res$$Register);
|
||||
/*acquire*/ false, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -231,8 +233,9 @@ instruct weakCompareAndSwapNAcq_shenandoah(iRegINoSp res, indirect mem, iRegN ol
|
||||
ins_encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
// Weak is not currently supported by ShenandoahBarrierSet::cmpxchg_oop
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ true, /*release*/ true, /*weak*/ true, /*is_cae*/ false, $res$$Register);
|
||||
/*acquire*/ true, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -249,8 +252,9 @@ instruct weakCompareAndSwapPAcq_shenandoah(iRegINoSp res, indirect mem, iRegP ol
|
||||
ins_encode %{
|
||||
Register tmp = $tmp$$Register;
|
||||
__ mov(tmp, $oldval$$Register); // Must not clobber oldval.
|
||||
// Weak is not currently supported by ShenandoahBarrierSet::cmpxchg_oop
|
||||
ShenandoahBarrierSet::assembler()->cmpxchg_oop(&_masm, $mem$$Register, tmp, $newval$$Register,
|
||||
/*acquire*/ true, /*release*/ true, /*weak*/ true, /*is_cae*/ false, $res$$Register);
|
||||
/*acquire*/ true, /*release*/ true, /*is_cae*/ false, $res$$Register);
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include "immediate_aarch64.hpp"
|
||||
|
||||
// there are at most 2^13 possible logical immediate encodings
|
||||
@@ -34,14 +35,14 @@ static int li_table_entry_count;
|
||||
// for forward lookup we just use a direct array lookup
|
||||
// and assume that the cient has supplied a valid encoding
|
||||
// table[encoding] = immediate
|
||||
static u_int64_t LITable[LI_TABLE_SIZE];
|
||||
static uint64_t LITable[LI_TABLE_SIZE];
|
||||
|
||||
// for reverse lookup we need a sparse map so we store a table of
|
||||
// immediate and encoding pairs sorted by immediate value
|
||||
|
||||
struct li_pair {
|
||||
u_int64_t immediate;
|
||||
u_int32_t encoding;
|
||||
uint64_t immediate;
|
||||
uint32_t encoding;
|
||||
};
|
||||
|
||||
static struct li_pair InverseLITable[LI_TABLE_SIZE];
|
||||
@@ -63,9 +64,9 @@ int compare_immediate_pair(const void *i1, const void *i2)
|
||||
// helper functions used by expandLogicalImmediate
|
||||
|
||||
// for i = 1, ... N result<i-1> = 1 other bits are zero
|
||||
static inline u_int64_t ones(int N)
|
||||
static inline uint64_t ones(int N)
|
||||
{
|
||||
return (N == 64 ? (u_int64_t)-1UL : ((1UL << N) - 1));
|
||||
return (N == 64 ? (uint64_t)-1UL : ((1UL << N) - 1));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -73,49 +74,49 @@ static inline u_int64_t ones(int N)
|
||||
*/
|
||||
|
||||
// 32 bit mask with bits [hi,...,lo] set
|
||||
static inline u_int32_t mask32(int hi = 31, int lo = 0)
|
||||
static inline uint32_t mask32(int hi = 31, int lo = 0)
|
||||
{
|
||||
int nbits = (hi + 1) - lo;
|
||||
return ((1 << nbits) - 1) << lo;
|
||||
}
|
||||
|
||||
static inline u_int64_t mask64(int hi = 63, int lo = 0)
|
||||
static inline uint64_t mask64(int hi = 63, int lo = 0)
|
||||
{
|
||||
int nbits = (hi + 1) - lo;
|
||||
return ((1L << nbits) - 1) << lo;
|
||||
}
|
||||
|
||||
// pick bits [hi,...,lo] from val
|
||||
static inline u_int32_t pick32(u_int32_t val, int hi = 31, int lo = 0)
|
||||
static inline uint32_t pick32(uint32_t val, int hi = 31, int lo = 0)
|
||||
{
|
||||
return (val & mask32(hi, lo));
|
||||
}
|
||||
|
||||
// pick bits [hi,...,lo] from val
|
||||
static inline u_int64_t pick64(u_int64_t val, int hi = 31, int lo = 0)
|
||||
static inline uint64_t pick64(uint64_t val, int hi = 31, int lo = 0)
|
||||
{
|
||||
return (val & mask64(hi, lo));
|
||||
}
|
||||
|
||||
// mask [hi,lo] and shift down to start at bit 0
|
||||
static inline u_int32_t pickbits32(u_int32_t val, int hi = 31, int lo = 0)
|
||||
static inline uint32_t pickbits32(uint32_t val, int hi = 31, int lo = 0)
|
||||
{
|
||||
return (pick32(val, hi, lo) >> lo);
|
||||
}
|
||||
|
||||
// mask [hi,lo] and shift down to start at bit 0
|
||||
static inline u_int64_t pickbits64(u_int64_t val, int hi = 63, int lo = 0)
|
||||
static inline uint64_t pickbits64(uint64_t val, int hi = 63, int lo = 0)
|
||||
{
|
||||
return (pick64(val, hi, lo) >> lo);
|
||||
}
|
||||
|
||||
// result<0> to val<N>
|
||||
static inline u_int64_t pickbit(u_int64_t val, int N)
|
||||
static inline uint64_t pickbit(uint64_t val, int N)
|
||||
{
|
||||
return pickbits64(val, N, N);
|
||||
}
|
||||
|
||||
static inline u_int32_t uimm(u_int32_t val, int hi, int lo)
|
||||
static inline uint32_t uimm(uint32_t val, int hi, int lo)
|
||||
{
|
||||
return pickbits32(val, hi, lo);
|
||||
}
|
||||
@@ -123,11 +124,11 @@ static inline u_int32_t uimm(u_int32_t val, int hi, int lo)
|
||||
// SPEC bits(M*N) Replicate(bits(M) x, integer N);
|
||||
// this is just an educated guess
|
||||
|
||||
u_int64_t replicate(u_int64_t bits, int nbits, int count)
|
||||
uint64_t replicate(uint64_t bits, int nbits, int count)
|
||||
{
|
||||
u_int64_t result = 0;
|
||||
uint64_t result = 0;
|
||||
// nbits may be 64 in which case we want mask to be -1
|
||||
u_int64_t mask = ones(nbits);
|
||||
uint64_t mask = ones(nbits);
|
||||
for (int i = 0; i < count ; i++) {
|
||||
result <<= nbits;
|
||||
result |= (bits & mask);
|
||||
@@ -140,24 +141,24 @@ u_int64_t replicate(u_int64_t bits, int nbits, int count)
|
||||
// encoding must be treated as an UNALLOC instruction
|
||||
|
||||
// construct a 32 bit immediate value for a logical immediate operation
|
||||
int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
|
||||
u_int32_t imms, u_int64_t &bimm)
|
||||
int expandLogicalImmediate(uint32_t immN, uint32_t immr,
|
||||
uint32_t imms, uint64_t &bimm)
|
||||
{
|
||||
int len; // ought to be <= 6
|
||||
u_int32_t levels; // 6 bits
|
||||
u_int32_t tmask_and; // 6 bits
|
||||
u_int32_t wmask_and; // 6 bits
|
||||
u_int32_t tmask_or; // 6 bits
|
||||
u_int32_t wmask_or; // 6 bits
|
||||
u_int64_t imm64; // 64 bits
|
||||
u_int64_t tmask, wmask; // 64 bits
|
||||
u_int32_t S, R, diff; // 6 bits?
|
||||
int len; // ought to be <= 6
|
||||
uint32_t levels; // 6 bits
|
||||
uint32_t tmask_and; // 6 bits
|
||||
uint32_t wmask_and; // 6 bits
|
||||
uint32_t tmask_or; // 6 bits
|
||||
uint32_t wmask_or; // 6 bits
|
||||
uint64_t imm64; // 64 bits
|
||||
uint64_t tmask, wmask; // 64 bits
|
||||
uint32_t S, R, diff; // 6 bits?
|
||||
|
||||
if (immN == 1) {
|
||||
len = 6; // looks like 7 given the spec above but this cannot be!
|
||||
} else {
|
||||
len = 0;
|
||||
u_int32_t val = (~imms & 0x3f);
|
||||
uint32_t val = (~imms & 0x3f);
|
||||
for (int i = 5; i > 0; i--) {
|
||||
if (val & (1 << i)) {
|
||||
len = i;
|
||||
@@ -170,7 +171,7 @@ int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
|
||||
// for valid inputs leading 1s in immr must be less than leading
|
||||
// zeros in imms
|
||||
int len2 = 0; // ought to be < len
|
||||
u_int32_t val2 = (~immr & 0x3f);
|
||||
uint32_t val2 = (~immr & 0x3f);
|
||||
for (int i = 5; i > 0; i--) {
|
||||
if (!(val2 & (1 << i))) {
|
||||
len2 = i;
|
||||
@@ -199,12 +200,12 @@ int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
int nbits = 1 << i;
|
||||
u_int64_t and_bit = pickbit(tmask_and, i);
|
||||
u_int64_t or_bit = pickbit(tmask_or, i);
|
||||
u_int64_t and_bits_sub = replicate(and_bit, 1, nbits);
|
||||
u_int64_t or_bits_sub = replicate(or_bit, 1, nbits);
|
||||
u_int64_t and_bits_top = (and_bits_sub << nbits) | ones(nbits);
|
||||
u_int64_t or_bits_top = (0 << nbits) | or_bits_sub;
|
||||
uint64_t and_bit = pickbit(tmask_and, i);
|
||||
uint64_t or_bit = pickbit(tmask_or, i);
|
||||
uint64_t and_bits_sub = replicate(and_bit, 1, nbits);
|
||||
uint64_t or_bits_sub = replicate(or_bit, 1, nbits);
|
||||
uint64_t and_bits_top = (and_bits_sub << nbits) | ones(nbits);
|
||||
uint64_t or_bits_top = (0 << nbits) | or_bits_sub;
|
||||
|
||||
tmask = ((tmask
|
||||
& (replicate(and_bits_top, 2 * nbits, 32 / nbits)))
|
||||
@@ -218,12 +219,12 @@ int expandLogicalImmediate(u_int32_t immN, u_int32_t immr,
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
int nbits = 1 << i;
|
||||
u_int64_t and_bit = pickbit(wmask_and, i);
|
||||
u_int64_t or_bit = pickbit(wmask_or, i);
|
||||
u_int64_t and_bits_sub = replicate(and_bit, 1, nbits);
|
||||
u_int64_t or_bits_sub = replicate(or_bit, 1, nbits);
|
||||
u_int64_t and_bits_top = (ones(nbits) << nbits) | and_bits_sub;
|
||||
u_int64_t or_bits_top = (or_bits_sub << nbits) | 0;
|
||||
uint64_t and_bit = pickbit(wmask_and, i);
|
||||
uint64_t or_bit = pickbit(wmask_or, i);
|
||||
uint64_t and_bits_sub = replicate(and_bit, 1, nbits);
|
||||
uint64_t or_bits_sub = replicate(or_bit, 1, nbits);
|
||||
uint64_t and_bits_top = (ones(nbits) << nbits) | and_bits_sub;
|
||||
uint64_t or_bits_top = (or_bits_sub << nbits) | 0;
|
||||
|
||||
wmask = ((wmask
|
||||
& (replicate(and_bits_top, 2 * nbits, 32 / nbits)))
|
||||
@@ -248,9 +249,9 @@ static void initLITables()
|
||||
{
|
||||
li_table_entry_count = 0;
|
||||
for (unsigned index = 0; index < LI_TABLE_SIZE; index++) {
|
||||
u_int32_t N = uimm(index, 12, 12);
|
||||
u_int32_t immr = uimm(index, 11, 6);
|
||||
u_int32_t imms = uimm(index, 5, 0);
|
||||
uint32_t N = uimm(index, 12, 12);
|
||||
uint32_t immr = uimm(index, 11, 6);
|
||||
uint32_t imms = uimm(index, 5, 0);
|
||||
if (expandLogicalImmediate(N, immr, imms, LITable[index])) {
|
||||
InverseLITable[li_table_entry_count].immediate = LITable[index];
|
||||
InverseLITable[li_table_entry_count].encoding = index;
|
||||
@@ -264,12 +265,12 @@ static void initLITables()
|
||||
|
||||
// public APIs provided for logical immediate lookup and reverse lookup
|
||||
|
||||
u_int64_t logical_immediate_for_encoding(u_int32_t encoding)
|
||||
uint64_t logical_immediate_for_encoding(uint32_t encoding)
|
||||
{
|
||||
return LITable[encoding];
|
||||
}
|
||||
|
||||
u_int32_t encoding_for_logical_immediate(u_int64_t immediate)
|
||||
uint32_t encoding_for_logical_immediate(uint64_t immediate)
|
||||
{
|
||||
struct li_pair pair;
|
||||
struct li_pair *result;
|
||||
@@ -293,15 +294,15 @@ u_int32_t encoding_for_logical_immediate(u_int64_t immediate)
|
||||
// fpimm[3:0] = fraction (assuming leading 1)
|
||||
// i.e. F = s * 1.f * 2^(e - b)
|
||||
|
||||
u_int64_t fp_immediate_for_encoding(u_int32_t imm8, int is_dp)
|
||||
uint64_t fp_immediate_for_encoding(uint32_t imm8, int is_dp)
|
||||
{
|
||||
union {
|
||||
float fpval;
|
||||
double dpval;
|
||||
u_int64_t val;
|
||||
uint64_t val;
|
||||
};
|
||||
|
||||
u_int32_t s, e, f;
|
||||
uint32_t s, e, f;
|
||||
s = (imm8 >> 7 ) & 0x1;
|
||||
e = (imm8 >> 4) & 0x7;
|
||||
f = imm8 & 0xf;
|
||||
@@ -329,7 +330,7 @@ u_int64_t fp_immediate_for_encoding(u_int32_t imm8, int is_dp)
|
||||
return val;
|
||||
}
|
||||
|
||||
u_int32_t encoding_for_fp_immediate(float immediate)
|
||||
uint32_t encoding_for_fp_immediate(float immediate)
|
||||
{
|
||||
// given a float which is of the form
|
||||
//
|
||||
@@ -341,10 +342,10 @@ u_int32_t encoding_for_fp_immediate(float immediate)
|
||||
|
||||
union {
|
||||
float fpval;
|
||||
u_int32_t val;
|
||||
uint32_t val;
|
||||
};
|
||||
fpval = immediate;
|
||||
u_int32_t s, r, f, res;
|
||||
uint32_t s, r, f, res;
|
||||
// sign bit is 31
|
||||
s = (val >> 31) & 0x1;
|
||||
// exponent is bits 30-23 but we only want the bottom 3 bits
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
* encoding then a map lookup will return 0xffffffff.
|
||||
*/
|
||||
|
||||
u_int64_t logical_immediate_for_encoding(u_int32_t encoding);
|
||||
u_int32_t encoding_for_logical_immediate(u_int64_t immediate);
|
||||
u_int64_t fp_immediate_for_encoding(u_int32_t imm8, int is_dp);
|
||||
u_int32_t encoding_for_fp_immediate(float immediate);
|
||||
uint64_t logical_immediate_for_encoding(uint32_t encoding);
|
||||
uint32_t encoding_for_logical_immediate(uint64_t immediate);
|
||||
uint64_t fp_immediate_for_encoding(uint32_t imm8, int is_dp);
|
||||
uint32_t encoding_for_fp_immediate(float immediate);
|
||||
|
||||
#endif // _IMMEDIATE_H
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#include "jvmci/jvmciCodeInstaller.hpp"
|
||||
#include "jvmci/jvmci.hpp"
|
||||
#include "jvmci/jvmciCodeInstaller.hpp"
|
||||
#include "jvmci/jvmciRuntime.hpp"
|
||||
#include "jvmci/jvmciCompilerToVM.hpp"
|
||||
#include "jvmci/jvmciJavaClasses.hpp"
|
||||
@@ -72,12 +73,12 @@ void CodeInstaller::pd_patch_MetaspaceConstant(int pc_offset, JVMCIObject consta
|
||||
if (jvmci_env()->get_HotSpotMetaspaceConstantImpl_compressed(constant)) {
|
||||
narrowKlass narrowOop = record_narrow_metadata_reference(_instructions, pc, constant, JVMCI_CHECK);
|
||||
MacroAssembler::patch_narrow_klass(pc, narrowOop);
|
||||
TRACE_jvmci_3("relocating (narrow metaspace constant) at " PTR_FORMAT "/0x%x", p2i(pc), narrowOop);
|
||||
JVMCI_event_3("relocating (narrow metaspace constant) at " PTR_FORMAT "/0x%x", p2i(pc), narrowOop);
|
||||
} else {
|
||||
NativeMovConstReg* move = nativeMovConstReg_at(pc);
|
||||
void* reference = record_metadata_reference(_instructions, pc, constant, JVMCI_CHECK);
|
||||
move->set_data((intptr_t) reference);
|
||||
TRACE_jvmci_3("relocating (metaspace constant) at " PTR_FORMAT "/" PTR_FORMAT, p2i(pc), p2i(reference));
|
||||
JVMCI_event_3("relocating (metaspace constant) at " PTR_FORMAT "/" PTR_FORMAT, p2i(pc), p2i(reference));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +89,7 @@ void CodeInstaller::pd_patch_DataSectionReference(int pc_offset, int data_offset
|
||||
|| (NativeInstruction::maybe_cpool_ref(pc))) {
|
||||
address dest = _constants->start() + data_offset;
|
||||
_instructions->relocate(pc, section_word_Relocation::spec((address) dest, CodeBuffer::SECT_CONSTS));
|
||||
TRACE_jvmci_3("relocating at " PTR_FORMAT " (+%d) with destination at %d", p2i(pc), pc_offset, data_offset);
|
||||
JVMCI_event_3("relocating at " PTR_FORMAT " (+%d) with destination at %d", p2i(pc), pc_offset, data_offset);
|
||||
} else {
|
||||
JVMCI_ERROR("unknown load or move instruction at " PTR_FORMAT, p2i(pc));
|
||||
}
|
||||
@@ -115,7 +116,7 @@ void CodeInstaller::pd_relocate_ForeignCall(NativeInstruction* inst, jlong forei
|
||||
} else {
|
||||
JVMCI_ERROR("unknown call or jump instruction at " PTR_FORMAT, p2i(pc));
|
||||
}
|
||||
TRACE_jvmci_3("relocating (foreign call) at " PTR_FORMAT, p2i(inst));
|
||||
JVMCI_event_3("relocating (foreign call) at " PTR_FORMAT, p2i(inst));
|
||||
}
|
||||
|
||||
void CodeInstaller::pd_relocate_JavaMethod(CodeBuffer &cbuf, JVMCIObject hotspot_method, jint pc_offset, JVMCI_TRAPS) {
|
||||
|
||||
@@ -93,7 +93,7 @@ int MacroAssembler::pd_patch_instruction_size(address branch, address target) {
|
||||
offset = target-branch;
|
||||
int shift = Instruction_aarch64::extract(insn, 31, 31);
|
||||
if (shift) {
|
||||
u_int64_t dest = (u_int64_t)target;
|
||||
uint64_t dest = (uint64_t)target;
|
||||
uint64_t pc_page = (uint64_t)branch >> 12;
|
||||
uint64_t adr_page = (uint64_t)target >> 12;
|
||||
unsigned offset_lo = dest & 0xfff;
|
||||
@@ -146,7 +146,7 @@ int MacroAssembler::pd_patch_instruction_size(address branch, address target) {
|
||||
Instruction_aarch64::spatch(branch, 23, 5, offset);
|
||||
Instruction_aarch64::patch(branch, 30, 29, offset_lo);
|
||||
} else if (Instruction_aarch64::extract(insn, 31, 21) == 0b11010010100) {
|
||||
u_int64_t dest = (u_int64_t)target;
|
||||
uint64_t dest = (uint64_t)target;
|
||||
// Move wide constant
|
||||
assert(nativeInstruction_at(branch+4)->is_movk(), "wrong insns in patch");
|
||||
assert(nativeInstruction_at(branch+8)->is_movk(), "wrong insns in patch");
|
||||
@@ -272,13 +272,13 @@ address MacroAssembler::target_addr_for_insn(address insn_addr, unsigned insn) {
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
} else if (Instruction_aarch64::extract(insn, 31, 23) == 0b110100101) {
|
||||
u_int32_t *insns = (u_int32_t *)insn_addr;
|
||||
uint32_t *insns = (uint32_t *)insn_addr;
|
||||
// Move wide constant: movz, movk, movk. See movptr().
|
||||
assert(nativeInstruction_at(insns+1)->is_movk(), "wrong insns in patch");
|
||||
assert(nativeInstruction_at(insns+2)->is_movk(), "wrong insns in patch");
|
||||
return address(u_int64_t(Instruction_aarch64::extract(insns[0], 20, 5))
|
||||
+ (u_int64_t(Instruction_aarch64::extract(insns[1], 20, 5)) << 16)
|
||||
+ (u_int64_t(Instruction_aarch64::extract(insns[2], 20, 5)) << 32));
|
||||
return address(uint64_t(Instruction_aarch64::extract(insns[0], 20, 5))
|
||||
+ (uint64_t(Instruction_aarch64::extract(insns[1], 20, 5)) << 16)
|
||||
+ (uint64_t(Instruction_aarch64::extract(insns[2], 20, 5)) << 32));
|
||||
} else if (Instruction_aarch64::extract(insn, 31, 22) == 0b1011100101 &&
|
||||
Instruction_aarch64::extract(insn, 4, 0) == 0b11111) {
|
||||
return 0;
|
||||
@@ -1491,7 +1491,7 @@ void MacroAssembler::null_check(Register reg, int offset) {
|
||||
|
||||
void MacroAssembler::mov(Register r, Address dest) {
|
||||
code_section()->relocate(pc(), dest.rspec());
|
||||
u_int64_t imm64 = (u_int64_t)dest.target();
|
||||
uint64_t imm64 = (uint64_t)dest.target();
|
||||
movptr(r, imm64);
|
||||
}
|
||||
|
||||
@@ -1524,20 +1524,20 @@ void MacroAssembler::movptr(Register r, uintptr_t imm64) {
|
||||
// imm32 == hex abcdefgh T2S: Vd = abcdefghabcdefgh
|
||||
// imm32 == hex abcdefgh T4S: Vd = abcdefghabcdefghabcdefghabcdefgh
|
||||
// T1D/T2D: invalid
|
||||
void MacroAssembler::mov(FloatRegister Vd, SIMD_Arrangement T, u_int32_t imm32) {
|
||||
void MacroAssembler::mov(FloatRegister Vd, SIMD_Arrangement T, uint32_t imm32) {
|
||||
assert(T != T1D && T != T2D, "invalid arrangement");
|
||||
if (T == T8B || T == T16B) {
|
||||
assert((imm32 & ~0xff) == 0, "extraneous bits in unsigned imm32 (T8B/T16B)");
|
||||
movi(Vd, T, imm32 & 0xff, 0);
|
||||
return;
|
||||
}
|
||||
u_int32_t nimm32 = ~imm32;
|
||||
uint32_t nimm32 = ~imm32;
|
||||
if (T == T4H || T == T8H) {
|
||||
assert((imm32 & ~0xffff) == 0, "extraneous bits in unsigned imm32 (T4H/T8H)");
|
||||
imm32 &= 0xffff;
|
||||
nimm32 &= 0xffff;
|
||||
}
|
||||
u_int32_t x = imm32;
|
||||
uint32_t x = imm32;
|
||||
int movi_cnt = 0;
|
||||
int movn_cnt = 0;
|
||||
while (x) { if (x & 0xff) movi_cnt++; x >>= 8; }
|
||||
@@ -1561,7 +1561,7 @@ void MacroAssembler::mov(FloatRegister Vd, SIMD_Arrangement T, u_int32_t imm32)
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::mov_immediate64(Register dst, u_int64_t imm64)
|
||||
void MacroAssembler::mov_immediate64(Register dst, uint64_t imm64)
|
||||
{
|
||||
#ifndef PRODUCT
|
||||
{
|
||||
@@ -1575,7 +1575,7 @@ void MacroAssembler::mov_immediate64(Register dst, u_int64_t imm64)
|
||||
} else {
|
||||
// we can use a combination of MOVZ or MOVN with
|
||||
// MOVK to build up the constant
|
||||
u_int64_t imm_h[4];
|
||||
uint64_t imm_h[4];
|
||||
int zero_count = 0;
|
||||
int neg_count = 0;
|
||||
int i;
|
||||
@@ -1596,7 +1596,7 @@ void MacroAssembler::mov_immediate64(Register dst, u_int64_t imm64)
|
||||
} else if (zero_count == 3) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (imm_h[i] != 0L) {
|
||||
movz(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movz(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1604,7 +1604,7 @@ void MacroAssembler::mov_immediate64(Register dst, u_int64_t imm64)
|
||||
// one MOVN will do
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (imm_h[i] != 0xffffL) {
|
||||
movn(dst, (u_int32_t)imm_h[i] ^ 0xffffL, (i << 4));
|
||||
movn(dst, (uint32_t)imm_h[i] ^ 0xffffL, (i << 4));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1612,69 +1612,69 @@ void MacroAssembler::mov_immediate64(Register dst, u_int64_t imm64)
|
||||
// one MOVZ and one MOVK will do
|
||||
for (i = 0; i < 3; i++) {
|
||||
if (imm_h[i] != 0L) {
|
||||
movz(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movz(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (;i < 4; i++) {
|
||||
if (imm_h[i] != 0L) {
|
||||
movk(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movk(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
}
|
||||
}
|
||||
} else if (neg_count == 2) {
|
||||
// one MOVN and one MOVK will do
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (imm_h[i] != 0xffffL) {
|
||||
movn(dst, (u_int32_t)imm_h[i] ^ 0xffffL, (i << 4));
|
||||
movn(dst, (uint32_t)imm_h[i] ^ 0xffffL, (i << 4));
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (;i < 4; i++) {
|
||||
if (imm_h[i] != 0xffffL) {
|
||||
movk(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movk(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
}
|
||||
}
|
||||
} else if (zero_count == 1) {
|
||||
// one MOVZ and two MOVKs will do
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (imm_h[i] != 0L) {
|
||||
movz(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movz(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (;i < 4; i++) {
|
||||
if (imm_h[i] != 0x0L) {
|
||||
movk(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movk(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
}
|
||||
}
|
||||
} else if (neg_count == 1) {
|
||||
// one MOVN and two MOVKs will do
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (imm_h[i] != 0xffffL) {
|
||||
movn(dst, (u_int32_t)imm_h[i] ^ 0xffffL, (i << 4));
|
||||
movn(dst, (uint32_t)imm_h[i] ^ 0xffffL, (i << 4));
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (;i < 4; i++) {
|
||||
if (imm_h[i] != 0xffffL) {
|
||||
movk(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movk(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// use a MOVZ and 3 MOVKs (makes it easier to debug)
|
||||
movz(dst, (u_int32_t)imm_h[0], 0);
|
||||
movz(dst, (uint32_t)imm_h[0], 0);
|
||||
for (i = 1; i < 4; i++) {
|
||||
movk(dst, (u_int32_t)imm_h[i], (i << 4));
|
||||
movk(dst, (uint32_t)imm_h[i], (i << 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::mov_immediate32(Register dst, u_int32_t imm32)
|
||||
void MacroAssembler::mov_immediate32(Register dst, uint32_t imm32)
|
||||
{
|
||||
#ifndef PRODUCT
|
||||
{
|
||||
@@ -1688,7 +1688,7 @@ void MacroAssembler::mov_immediate32(Register dst, u_int32_t imm32)
|
||||
} else {
|
||||
// we can use MOVZ, MOVN or two calls to MOVK to build up the
|
||||
// constant
|
||||
u_int32_t imm_h[2];
|
||||
uint32_t imm_h[2];
|
||||
imm_h[0] = imm32 & 0xffff;
|
||||
imm_h[1] = ((imm32 >> 16) & 0xffff);
|
||||
if (imm_h[0] == 0) {
|
||||
@@ -4835,7 +4835,7 @@ void MacroAssembler::zero_words(Register ptr, Register cnt)
|
||||
// base: Address of a buffer to be zeroed, 8 bytes aligned.
|
||||
// cnt: Immediate count in HeapWords.
|
||||
#define SmallArraySize (18 * BytesPerLong)
|
||||
void MacroAssembler::zero_words(Register base, u_int64_t cnt)
|
||||
void MacroAssembler::zero_words(Register base, uint64_t cnt)
|
||||
{
|
||||
BLOCK_COMMENT("zero_words {");
|
||||
int i = cnt & 1; // store any odd word to start
|
||||
|
||||
@@ -456,8 +456,8 @@ class MacroAssembler: public Assembler {
|
||||
// first two private routines for loading 32 bit or 64 bit constants
|
||||
private:
|
||||
|
||||
void mov_immediate64(Register dst, u_int64_t imm64);
|
||||
void mov_immediate32(Register dst, u_int32_t imm32);
|
||||
void mov_immediate64(Register dst, uint64_t imm64);
|
||||
void mov_immediate32(Register dst, uint32_t imm32);
|
||||
|
||||
int push(unsigned int bitset, Register stack);
|
||||
int pop(unsigned int bitset, Register stack);
|
||||
@@ -486,22 +486,22 @@ public:
|
||||
|
||||
inline void mov(Register dst, address addr)
|
||||
{
|
||||
mov_immediate64(dst, (u_int64_t)addr);
|
||||
mov_immediate64(dst, (uint64_t)addr);
|
||||
}
|
||||
|
||||
inline void mov(Register dst, u_int64_t imm64)
|
||||
inline void mov(Register dst, uint64_t imm64)
|
||||
{
|
||||
mov_immediate64(dst, imm64);
|
||||
}
|
||||
|
||||
inline void movw(Register dst, u_int32_t imm32)
|
||||
inline void movw(Register dst, uint32_t imm32)
|
||||
{
|
||||
mov_immediate32(dst, imm32);
|
||||
}
|
||||
|
||||
inline void mov(Register dst, long l)
|
||||
{
|
||||
mov(dst, (u_int64_t)l);
|
||||
mov(dst, (uint64_t)l);
|
||||
}
|
||||
|
||||
inline void mov(Register dst, int i)
|
||||
@@ -518,7 +518,7 @@ public:
|
||||
|
||||
void movptr(Register r, uintptr_t imm64);
|
||||
|
||||
void mov(FloatRegister Vd, SIMD_Arrangement T, u_int32_t imm32);
|
||||
void mov(FloatRegister Vd, SIMD_Arrangement T, uint32_t imm32);
|
||||
|
||||
void mov(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) {
|
||||
orr(Vd, T, Vn, Vn);
|
||||
@@ -1237,7 +1237,7 @@ public:
|
||||
int elem_size);
|
||||
|
||||
void fill_words(Register base, Register cnt, Register value);
|
||||
void zero_words(Register base, u_int64_t cnt);
|
||||
void zero_words(Register base, uint64_t cnt);
|
||||
void zero_words(Register ptr, Register cnt);
|
||||
void zero_dcache_blocks(Register base, Register cnt);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2018, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "asm/macroAssembler.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
#include "code/compiledIC.hpp"
|
||||
#include "memory/resourceArea.hpp"
|
||||
#include "nativeInst_aarch64.hpp"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2108, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -102,9 +102,6 @@ class NativeInstruction {
|
||||
|
||||
public:
|
||||
|
||||
// unit test stuff
|
||||
static void test() {} // override for testing
|
||||
|
||||
inline friend NativeInstruction* nativeInstruction_at(address address);
|
||||
|
||||
static bool is_adrp_at(address instr);
|
||||
@@ -321,9 +318,6 @@ class NativeMovConstReg: public NativeInstruction {
|
||||
void verify();
|
||||
void print();
|
||||
|
||||
// unit test stuff
|
||||
static void test() {}
|
||||
|
||||
// Creation
|
||||
inline friend NativeMovConstReg* nativeMovConstReg_at(address address);
|
||||
inline friend NativeMovConstReg* nativeMovConstReg_before(address address);
|
||||
@@ -397,9 +391,6 @@ class NativeMovRegMem: public NativeInstruction {
|
||||
void verify();
|
||||
void print ();
|
||||
|
||||
// unit test stuff
|
||||
static void test() {}
|
||||
|
||||
private:
|
||||
inline friend NativeMovRegMem* nativeMovRegMem_at (address address);
|
||||
};
|
||||
@@ -432,8 +423,6 @@ class NativeLoadAddress: public NativeInstruction {
|
||||
void verify();
|
||||
void print ();
|
||||
|
||||
// unit test stuff
|
||||
static void test() {}
|
||||
};
|
||||
|
||||
// adrp x16, #page
|
||||
@@ -488,9 +477,6 @@ class NativeJump: public NativeInstruction {
|
||||
|
||||
void verify();
|
||||
|
||||
// Unit testing stuff
|
||||
static void test() {}
|
||||
|
||||
// Insertion of native jump instruction
|
||||
static void insert(address code_pos, address entry);
|
||||
// MT-safe insertion of native jump at verified method entry
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "asm/macroAssembler.hpp"
|
||||
#include "code/compiledMethod.hpp"
|
||||
#include "code/relocInfo.hpp"
|
||||
#include "nativeInst_aarch64.hpp"
|
||||
#include "oops/oop.inline.hpp"
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "precompiled.hpp"
|
||||
#include "asm/macroAssembler.hpp"
|
||||
#include "asm/macroAssembler.inline.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
#include "code/debugInfoRec.hpp"
|
||||
#include "code/icBuffer.hpp"
|
||||
#include "code/vtableStubs.hpp"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user