From naoto at openjdk.java.net Fri Oct 1 19:04:47 2021 From: naoto at openjdk.java.net (Naoto Sato) Date: Fri, 1 Oct 2021 19:04:47 GMT Subject: RFR: 8274658: ISO 4217 Amendment #170 Update Message-ID: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> This is to incorporate the ISO 4217 amendment #170, which has been released today, effective immediately. ------------- Commit messages: - 8274658: ISO 4217 Amendment #170 Update Changes: https://git.openjdk.java.net/jdk/pull/5790/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5790&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8274658 Stats: 15 lines in 6 files changed: 3 ins; 0 del; 12 mod Patch: https://git.openjdk.java.net/jdk/pull/5790.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5790/head:pull/5790 PR: https://git.openjdk.java.net/jdk/pull/5790 From lancea at openjdk.java.net Fri Oct 1 20:06:27 2021 From: lancea at openjdk.java.net (Lance Andersen) Date: Fri, 1 Oct 2021 20:06:27 GMT Subject: RFR: 8274658: ISO 4217 Amendment #170 Update In-Reply-To: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> References: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> Message-ID: On Fri, 1 Oct 2021 18:57:28 GMT, Naoto Sato wrote: > This is to incorporate the ISO 4217 amendment #170, which has been released today, effective immediately. Marked as reviewed by lancea (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5790 From iris at openjdk.java.net Sat Oct 2 02:44:30 2021 From: iris at openjdk.java.net (Iris Clark) Date: Sat, 2 Oct 2021 02:44:30 GMT Subject: RFR: 8274658: ISO 4217 Amendment 170 Update In-Reply-To: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> References: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> Message-ID: On Fri, 1 Oct 2021 18:57:28 GMT, Naoto Sato wrote: > This is to incorporate the ISO 4217 amendment #170, which has been released today, effective immediately. Marked as reviewed by iris (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5790 From jiefu at openjdk.java.net Sat Oct 2 03:10:31 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Sat, 2 Oct 2021 03:10:31 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern In-Reply-To: References: <4RQ7uX1dWVQYPu8WFnqt0bx4nFoq3ijIUQ6WMSP-INc=.e1274b05-a6e9-4227-9588-08310c3cffac@github.com> Message-ID: On Thu, 30 Sep 2021 23:41:20 GMT, Jie Fu wrote: > > I will do your experiment next week. This is because it's already our National Day week and I can't find an English Windows machine until next week. I'll let you know the result as soon as possible. Thanks. > > No need to hurry :-). In case you can't find an English Windows, I think you can use the `chcp 65001` command mentioned in https://stackoverflow.com/questions/388490/how-to-use-unicode-characters-in-windows-command-line to change your command-line window to use the UTF8 codepage. Hi @iklam , methodMatcher.obj [1] built with `System Locale: zh-cn;Chinese (China)` methodMatcher.obj [2] built with `System Locale: en-us;English (United States)"` There seems no difference when checking with `strings methodMatcher.obj`. The warnings disappear when the system locale is `en-us;English (United States)`. But unfortunately, I can't reproduce the "CJK" test example, which means non-ASCII chars for CompileCommand still fail for both jdk images (even when built with en-us locale, no warnings at all). So it's far more complicated than I had thought. I will just close this pr since we can't remove the non-ASCII code, which works in some countries. Thank you all for your help and valuable comments. Best regards, Jie [1] https://github.com/DamonFool/experiment/blob/main/JDK-8274329/ch-methodMatcher.obj [2] https://github.com/DamonFool/experiment/blob/main/JDK-8274329/en-methodMatcher.obj ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From egahlin at openjdk.java.net Mon Oct 4 11:14:18 2021 From: egahlin at openjdk.java.net (Erik Gahlin) Date: Mon, 4 Oct 2021 11:14:18 GMT Subject: RFR: 8274559: JFR: Typo in 'jfr help configure' text Message-ID: Hi, Could I have review of a typo. Testing: jdk/jdk/jfr Thanks Erik ------------- Commit messages: - Initial Changes: https://git.openjdk.java.net/jdk/pull/5803/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5803&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8274559 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/5803.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5803/head:pull/5803 PR: https://git.openjdk.java.net/jdk/pull/5803 From rrich at openjdk.java.net Mon Oct 4 13:59:23 2021 From: rrich at openjdk.java.net (Richard Reingruber) Date: Mon, 4 Oct 2021 13:59:23 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. Message-ID: The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: All threads suspended by the thread-level **resume** command or the VM-level **resume** command are resumed as many times as necessary for them to run. It should be changed to All threads suspended by the thread-level **suspend** command or the VM-level **suspend** command are resumed as many times as necessary for them to run. [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) ------------- Commit messages: - Correct JDWP spec, Dispose command. Changes: https://git.openjdk.java.net/jdk/pull/5804/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5804&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8274716 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jdk/pull/5804.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5804/head:pull/5804 PR: https://git.openjdk.java.net/jdk/pull/5804 From alanb at openjdk.java.net Mon Oct 4 14:26:10 2021 From: alanb at openjdk.java.net (Alan Bateman) Date: Mon, 4 Oct 2021 14:26:10 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. In-Reply-To: References: Message-ID: On Mon, 4 Oct 2021 13:44:44 GMT, Richard Reingruber wrote: > The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: > > All threads suspended by the thread-level **resume** command or the VM-level > **resume** command are resumed as many times as necessary for them to run. > > It should be changed to > > All threads suspended by the thread-level **suspend** command or the VM-level > **suspend** command are resumed as many times as necessary for them to run. > > [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) It looks like this typo goes all the way back to JDK 1.2 but was not noticed. ------------- Marked as reviewed by alanb (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5804 From rrich at openjdk.java.net Mon Oct 4 14:33:08 2021 From: rrich at openjdk.java.net (Richard Reingruber) Date: Mon, 4 Oct 2021 14:33:08 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. In-Reply-To: References: Message-ID: On Mon, 4 Oct 2021 14:22:50 GMT, Alan Bateman wrote: > > > It looks like this typo goes all the way back to JDK 1.2 but was not noticed. Thanks for reviewing. JDK 1.2 is surely long ago. Nevertheless not too many will have read that sentence since then I reckon ;) ------------- PR: https://git.openjdk.java.net/jdk/pull/5804 From naoto at openjdk.java.net Mon Oct 4 15:10:13 2021 From: naoto at openjdk.java.net (Naoto Sato) Date: Mon, 4 Oct 2021 15:10:13 GMT Subject: Integrated: 8274658: ISO 4217 Amendment 170 Update In-Reply-To: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> References: <7zuKEb7vzszIUU9VGj6c_VZRqsDhtyTSwvjDXL6b3TY=.e792b2b2-73cf-4c38-8d7c-88dc6405f9ea@github.com> Message-ID: On Fri, 1 Oct 2021 18:57:28 GMT, Naoto Sato wrote: > This is to incorporate the ISO 4217 amendment #170, which has been released today, effective immediately. This pull request has now been integrated. Changeset: f2404d60 Author: Naoto Sato URL: https://git.openjdk.java.net/jdk/commit/f2404d60de2b58c590bf885f5cce50c289073673 Stats: 15 lines in 6 files changed: 3 ins; 0 del; 12 mod 8274658: ISO 4217 Amendment 170 Update Reviewed-by: lancea, iris ------------- PR: https://git.openjdk.java.net/jdk/pull/5790 From mseledtsov at openjdk.java.net Mon Oct 4 17:24:10 2021 From: mseledtsov at openjdk.java.net (Mikhailo Seledtsov) Date: Mon, 4 Oct 2021 17:24:10 GMT Subject: RFR: 8274610: Add linux-aarch64 to bootcycle build profiles In-Reply-To: References: Message-ID: On Thu, 30 Sep 2021 22:01:51 GMT, Mikhailo Seledtsov wrote: > Please review this simple/trivial change that add linux-aarch64 platform to bootcycle build profiles. Thank you Erik. ------------- PR: https://git.openjdk.java.net/jdk/pull/5783 From mseledtsov at openjdk.java.net Mon Oct 4 17:24:11 2021 From: mseledtsov at openjdk.java.net (Mikhailo Seledtsov) Date: Mon, 4 Oct 2021 17:24:11 GMT Subject: Integrated: 8274610: Add linux-aarch64 to bootcycle build profiles In-Reply-To: References: Message-ID: <6LEESq46ZI39q4VP_6Rz0FUJV6d-c54oXiNSTzX8KBc=.5b6d3143-c715-4af7-a4d6-c90e83334196@github.com> On Thu, 30 Sep 2021 22:01:51 GMT, Mikhailo Seledtsov wrote: > Please review this simple/trivial change that add linux-aarch64 platform to bootcycle build profiles. This pull request has now been integrated. Changeset: 9914e5c4 Author: Mikhailo Seledtsov URL: https://git.openjdk.java.net/jdk/commit/9914e5c416b518f408837e31ba0a35138bfcadc7 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod 8274610: Add linux-aarch64 to bootcycle build profiles Reviewed-by: erikj ------------- PR: https://git.openjdk.java.net/jdk/pull/5783 From cjplummer at openjdk.java.net Mon Oct 4 18:24:08 2021 From: cjplummer at openjdk.java.net (Chris Plummer) Date: Mon, 4 Oct 2021 18:24:08 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. In-Reply-To: References: Message-ID: On Mon, 4 Oct 2021 13:44:44 GMT, Richard Reingruber wrote: > The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: > > All threads suspended by the thread-level **resume** command or the VM-level > **resume** command are resumed as many times as necessary for them to run. > > It should be changed to > > All threads suspended by the thread-level **suspend** command or the VM-level > **suspend** command are resumed as many times as necessary for them to run. > > [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) Can you update the copyright please? I checked the JDI spec and it looks correct there, which is actually surprising since errors like this usually appear in both specs. ------------- Marked as reviewed by cjplummer (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5804 From iklam at openjdk.java.net Tue Oct 5 06:41:08 2021 From: iklam at openjdk.java.net (Ioi Lam) Date: Tue, 5 Oct 2021 06:41:08 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern In-Reply-To: References: Message-ID: On Sun, 26 Sep 2021 09:55:00 GMT, Jie Fu wrote: > Hi all, > > I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). > However, I failed with C4474 and C4778 warnings as below: > > Compiling 100 properties into resource bundles for java.desktop > Compiling 3038 files for java.base > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided > > > The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. > In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. > And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. > > So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). > And I think it's safe to do so. > > This is because: > 1) There are actually no non-ASCII chars for package/class/method/signature names. > 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. > > You may argue that the non-ASCII may be used by the parser itself. > But I didn't find that usage at all. (Please let me know if I miss something.) > > So I suggest to remove these non-ASCII code to make HotSpot to be more portable. > And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. > > Testing: > - Build tests on Windows > - tier1~3 on Linux/x64 > > Thanks. > Best regards, > Jie > > [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 > [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 > [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html > [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ > [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 My experiments above with ` -XX:CompileCommand='compileonly,*::??'` was done on Linux. I tried doing the same on Windows. On US-English Windows, the default codepage is 437 (DOS Latin US). If I change it to 65001 (UTF8) then Java is able to output CJK characters to the console. public class CJK { public static void main(String args[]) { System.out.println(args[0]); \u722a\u54c7(); } static void \u722a\u54c7() { // Chinese word for "Java" Thread.dumpStack(); } } c:\ade>chcp Active code page: 437 c:\ade>jdk-17\bin\java -cp . CJK 123 123 java.lang.Exception: Stack trace at java.base/java.lang.Thread.dumpStack(Thread.java:1380) at CJK.??(CJK.java:8) at CJK.main(CJK.java:4) c:\ade>chcp 65001 Active code page: 65001 c:\ade>jdk-17\bin\java -cp . CJK ?? ?? java.lang.Exception: Stack trace at java.base/java.lang.Thread.dumpStack(Thread.java:1380) at CJK.??(CJK.java:8) at CJK.main(CJK.java:4) As you can see, the CJK characters in the command-line arguments can't even be correctly passed as arguments to the Java main class. If that doesn't work, I can't see how we can get `-XX:CompileCommand` to work with CJK characters. ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From rrich at openjdk.java.net Tue Oct 5 07:38:28 2021 From: rrich at openjdk.java.net (Richard Reingruber) Date: Tue, 5 Oct 2021 07:38:28 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. [v2] In-Reply-To: References: Message-ID: > The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: > > All threads suspended by the thread-level **resume** command or the VM-level > **resume** command are resumed as many times as necessary for them to run. > > It should be changed to > > All threads suspended by the thread-level **suspend** command or the VM-level > **suspend** command are resumed as many times as necessary for them to run. > > [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision: Updated copyright. ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5804/files - new: https://git.openjdk.java.net/jdk/pull/5804/files/97396416..1d896c41 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5804&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5804&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/5804.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5804/head:pull/5804 PR: https://git.openjdk.java.net/jdk/pull/5804 From rrich at openjdk.java.net Tue Oct 5 07:43:09 2021 From: rrich at openjdk.java.net (Richard Reingruber) Date: Tue, 5 Oct 2021 07:43:09 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. [v2] In-Reply-To: References: Message-ID: On Mon, 4 Oct 2021 18:20:42 GMT, Chris Plummer wrote: > > > Can you update the copyright please? Sure, thanks! > I checked the JDI spec and it looks correct there, which is actually surprising since errors like this usually appear in both specs. Yes I noticed this too. Thanks for reviewing, Richard. ------------- PR: https://git.openjdk.java.net/jdk/pull/5804 From sspitsyn at openjdk.java.net Tue Oct 5 07:59:07 2021 From: sspitsyn at openjdk.java.net (Serguei Spitsyn) Date: Tue, 5 Oct 2021 07:59:07 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. [v2] In-Reply-To: References: Message-ID: On Tue, 5 Oct 2021 07:38:28 GMT, Richard Reingruber wrote: >> The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: >> >> All threads suspended by the thread-level **resume** command or the VM-level >> **resume** command are resumed as many times as necessary for them to run. >> >> It should be changed to >> >> All threads suspended by the thread-level **suspend** command or the VM-level >> **suspend** command are resumed as many times as necessary for them to run. >> >> [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) > > Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision: > > Updated copyright. Marked as reviewed by sspitsyn (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5804 From magnus.ihse.bursie at oracle.com Tue Oct 5 08:09:46 2021 From: magnus.ihse.bursie at oracle.com (Magnus Ihse Bursie) Date: Tue, 5 Oct 2021 10:09:46 +0200 Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern In-Reply-To: References: Message-ID: On 2021-10-05 08:41, Ioi Lam wrote: > As you can see, the CJK characters in the command-line arguments can't > even be correctly passed as arguments to the Java main class. If that > doesn't work, I can't see how we can get `-XX:CompileCommand` to work > with CJK characters. So, what does that mean? That we should explicitly limit `-XX:CompileCommand`to work with ASCII-only arguments? I accept that we might not get all characters to work in all circumstances due to limitations in Windows, but the current state of affairs still feel unsatisfactory. We should at least have a better failure mode, and document any limitations. /Magnus From bruno.borges at gmail.com Tue Oct 5 17:40:59 2021 From: bruno.borges at gmail.com (Bruno Borges) Date: Tue, 5 Oct 2021 10:40:59 -0700 Subject: help In-Reply-To: References: Message-ID: Apologies all On Tue, Oct 5, 2021 at 10:35 AM Bruno Borges wrote: > > --- > *Bruno Borges* > brunoborges.io > From andrew at openjdk.java.net Wed Oct 6 02:09:16 2021 From: andrew at openjdk.java.net (Andrew John Hughes) Date: Wed, 6 Oct 2021 02:09:16 GMT Subject: RFR: 8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux [v3] In-Reply-To: References: Message-ID: <4c3mNrXIiTqcgFfgjy5jD_04YzQwPYguxxV8OOy5r8U=.a3312d01-4570-4294-8006-b02f5a66f561@github.com> On Tue, 16 Mar 2021 16:56:22 GMT, Phil Race wrote: >> From a build perspective this partially reverts https://bugs.openjdk.java.net/browse/JDK-8249821 except that it keeps >> the harfbuzz sources separate and still supports building and running against a system harfbuzz which is only of interest or relevance on Linux. >> >> I ended up having to go this way because its is the least unsatisfactory solution. >> I did not want us to build a devkit to link against a system linux only to find we couldn't use it at runtime >> because too many systems have to old a version of harfbuzz. >> >> This solves the Manjaro Linux problem and I've manually verified building against a system hardbuxz on Ubuntu 20.10 >> >> There are couple of incidental fixes in here too >> - "libharfbuzz" should not have been in the EXTRA_HEADERS var when building against a system version >> - harfbuzz/hb-ucdn is gone and should not be listed as a header directory needed to build the bundled copy >> - I expect it also resolves https://bugs.openjdk.java.net/browse/JDK-8262502 > > Phil Race has updated the pull request incrementally with one additional commit since the last revision: > > 8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux Yes, it would fail at runtime, perhaps in subtle ways if the issue is not a missing function but a difference in behaviour. In the scenario I'm considering, the build and runtime environments are effectively the same, as we're building packages for Fedora or RHEL on a specific version of that OS, which is then provided for that OS alone. We tend to use system libraries where possible as we know the library is going to be the same or newer than what we built against, and we benefit from fixes to the system library without rebuilding OpenJDK. Rather than relying on failures being found in an older environment at runtime, I'd like the build to check it is being built against is suitable. With that early build failure, we can then flip those builds to using the in-tree library. You do, however, make a good point that this check can be overridden at runtime if the build is run on a different system. So, if possible, it would be good to also have a runtime check if there is some clear entry point to add one. I'll try and look into a fix for both once the October security update cycle is out of the way. That's taking up most of my time right now. ------------- PR: https://git.openjdk.java.net/jdk/pull/2982 From jiefu at openjdk.java.net Wed Oct 6 02:33:30 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Wed, 6 Oct 2021 02:33:30 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v2] In-Reply-To: References: Message-ID: > Hi all, > > I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). > However, I failed with C4474 and C4778 warnings as below: > > Compiling 100 properties into resource bundles for java.desktop > Compiling 3038 files for java.base > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided > > > The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. > In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. > And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. > > So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). > And I think it's safe to do so. > > This is because: > 1) There are actually no non-ASCII chars for package/class/method/signature names. > 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. > > You may argue that the non-ASCII may be used by the parser itself. > But I didn't find that usage at all. (Please let me know if I miss something.) > > So I suggest to remove these non-ASCII code to make HotSpot to be more portable. > And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. > > Testing: > - Build tests on Windows > - tier1~3 on Linux/x64 > > Thanks. > Best regards, > Jie > > [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 > [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 > [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html > [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ > [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 Jie Fu has updated the pull request incrementally with one additional commit since the last revision: Disable non-ASCII for Windows only ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5704/files - new: https://git.openjdk.java.net/jdk/pull/5704/files/d4b84f2b..e1271085 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5704&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5704&range=00-01 Stats: 30 lines in 1 file changed: 30 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jdk/pull/5704.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5704/head:pull/5704 PR: https://git.openjdk.java.net/jdk/pull/5704 From jiefu at openjdk.java.net Wed Oct 6 02:39:05 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Wed, 6 Oct 2021 02:39:05 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern In-Reply-To: References: Message-ID: <0KVMr9z6dJBABtm8QAMoBNm_pEYWHl61ZMnI8n8WxYo=.2cafcf48-db78-4a61-b400-d5c22307bd2b@github.com> On Tue, 5 Oct 2021 06:38:05 GMT, Ioi Lam wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > My experiments above with ` -XX:CompileCommand='compileonly,*::??'` was done on Linux. I tried doing the same on Windows. On US-English Windows, the default codepage is 437 (DOS Latin US). If I change it to 65001 (UTF8) then Java is able to output CJK characters to the console. > > > public class CJK { > public static void main(String args[]) { > System.out.println(args[0]); > \u722a\u54c7(); > } > > static void \u722a\u54c7() { // Chinese word for "Java" > Thread.dumpStack(); > } > } > > > > c:\ade>chcp > Active code page: 437 > > c:\ade>jdk-17\bin\java -cp . CJK 123 > 123 > java.lang.Exception: Stack trace > at java.base/java.lang.Thread.dumpStack(Thread.java:1380) > at CJK.??(CJK.java:8) > at CJK.main(CJK.java:4) > > c:\ade>chcp 65001 > Active code page: 65001 > > c:\ade>jdk-17\bin\java -cp . CJK ?? > ?? > java.lang.Exception: Stack trace > at java.base/java.lang.Thread.dumpStack(Thread.java:1380) > at CJK.??(CJK.java:8) > at CJK.main(CJK.java:4) > > > As you can see, the CJK characters in the command-line arguments can't even be correctly passed as arguments to the Java main class. If that doesn't work, I can't see how we can get `-XX:CompileCommand` to work with CJK characters. Thanks @iklam and @magicus for your experiments and comments. My experiments show that CompileCommand doesn't work with non-US-English env Windows. And @iklam 's experiments show that it doesn't work with US-English env Windows either. So I suggest we disable non-ASCII chars for Windows. The patch has been updated. 1. On non-Windows platforms, CompileCommand still works as before. 2. On Windows, it will be limited to work with ASCII-only arguments. For non-ASCII chars, the parser will fail like this: ``` >java -XX:CompileCommand=compileonly,*::?? -version CompileCommand: An error occurred during parsing Error: Non-ASCII characters are not supported on Windows. Line: 'compileonly,*::??' ``` What do you think? Thanks. ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From naoto at openjdk.java.net Wed Oct 6 03:17:27 2021 From: naoto at openjdk.java.net (Naoto Sato) Date: Wed, 6 Oct 2021 03:17:27 GMT Subject: RFR: 8274407: (tz) Update Timezone Data to 2021c Message-ID: This PR is to upgrade the time zone data in the JDK to IANA's tzdata2021c level. Note that the tz data is "as is", as released by IANA. No `merged links` are retracted. The PR also fixes two issues along with the 2021c upgrade. ------------- Commit messages: - Fix for Asia/Amman test case error - Test fix for Samoa not observing DST - tzdata2021c - 8274407: (tz) Update Timezone Data to 2021b Changes: https://git.openjdk.java.net/jdk/pull/5832/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5832&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8274407 Stats: 635 lines in 13 files changed: 228 ins; 329 del; 78 mod Patch: https://git.openjdk.java.net/jdk/pull/5832.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5832/head:pull/5832 PR: https://git.openjdk.java.net/jdk/pull/5832 From iklam at openjdk.java.net Wed Oct 6 04:35:07 2021 From: iklam at openjdk.java.net (Ioi Lam) Date: Wed, 6 Oct 2021 04:35:07 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v2] In-Reply-To: References: Message-ID: <9ECYcKawGi-4z-z8pPMHpIokPABv6jr1JUwbnSyTH3Q=.df279737-30dc-473d-b460-eb841e409570@github.com> On Wed, 6 Oct 2021 02:33:30 GMT, Jie Fu wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > Jie Fu has updated the pull request incrementally with one additional commit since the last revision: > > Disable non-ASCII for Windows only The idea looks good to me. I just have a suggestion to make the code more readable. src/hotspot/share/compiler/methodMatcher.cpp line 77: > 75: "\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" \ > 76: "\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" > 77: #endif It's hard to tell what's the difference between these two RANGEBASE definitions. How about doing it like this to make the code more readable? #define RANGEBASE_ASCII "....." #define RANGEBASE_NON_ASCII "....." #ifdef WINDOWS #define RANGEBASE RANGEBASE_ASCII #else #define RANGEBASE RANGEBASE_ASCII RANGEBASE_NON_ASCII #endif ------------- Marked as reviewed by iklam (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5704 From jiefu at openjdk.java.net Wed Oct 6 05:17:28 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Wed, 6 Oct 2021 05:17:28 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v2] In-Reply-To: <9ECYcKawGi-4z-z8pPMHpIokPABv6jr1JUwbnSyTH3Q=.df279737-30dc-473d-b460-eb841e409570@github.com> References: <9ECYcKawGi-4z-z8pPMHpIokPABv6jr1JUwbnSyTH3Q=.df279737-30dc-473d-b460-eb841e409570@github.com> Message-ID: On Wed, 6 Oct 2021 04:30:12 GMT, Ioi Lam wrote: > It's hard to tell what's the difference between these two RANGEBASE definitions. How about doing it like this to make the code more readable? > > ``` > #define RANGEBASE_ASCII "....." > #define RANGEBASE_NON_ASCII "....." > #ifdef WINDOWS > #define RANGEBASE RANGEBASE_ASCII > #else > #define RANGEBASE RANGEBASE_ASCII RANGEBASE_NON_ASCII > #endif > ``` Good suggestion! Updated. Thanks. ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From jiefu at openjdk.java.net Wed Oct 6 05:17:28 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Wed, 6 Oct 2021 05:17:28 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v3] In-Reply-To: References: Message-ID: > Hi all, > > I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). > However, I failed with C4474 and C4778 warnings as below: > > Compiling 100 properties into resource bundles for java.desktop > Compiling 3038 files for java.base > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided > > > The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. > In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. > And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. > > So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). > And I think it's safe to do so. > > This is because: > 1) There are actually no non-ASCII chars for package/class/method/signature names. > 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. > > You may argue that the non-ASCII may be used by the parser itself. > But I didn't find that usage at all. (Please let me know if I miss something.) > > So I suggest to remove these non-ASCII code to make HotSpot to be more portable. > And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. > > Testing: > - Build tests on Windows > - tier1~3 on Linux/x64 > > Thanks. > Best regards, > Jie > > [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 > [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 > [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html > [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ > [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 Jie Fu has updated the pull request incrementally with one additional commit since the last revision: Split with RANGEBASE_ASCII and RANGEBASE_NON_ASCII ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5704/files - new: https://git.openjdk.java.net/jdk/pull/5704/files/e1271085..d0070680 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5704&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5704&range=01-02 Stats: 15 lines in 1 file changed: 1 ins; 9 del; 5 mod Patch: https://git.openjdk.java.net/jdk/pull/5704.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5704/head:pull/5704 PR: https://git.openjdk.java.net/jdk/pull/5704 From iklam at openjdk.java.net Wed Oct 6 06:44:08 2021 From: iklam at openjdk.java.net (Ioi Lam) Date: Wed, 6 Oct 2021 06:44:08 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v3] In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 05:17:28 GMT, Jie Fu wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > Jie Fu has updated the pull request incrementally with one additional commit since the last revision: > > Split with RANGEBASE_ASCII and RANGEBASE_NON_ASCII Marked as reviewed by iklam (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From ihse at openjdk.java.net Wed Oct 6 10:42:10 2021 From: ihse at openjdk.java.net (Magnus Ihse Bursie) Date: Wed, 6 Oct 2021 10:42:10 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v3] In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 05:17:28 GMT, Jie Fu wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > Jie Fu has updated the pull request incrementally with one additional commit since the last revision: > > Split with RANGEBASE_ASCII and RANGEBASE_NON_ASCII I think this was the best possible solution. ------------- Marked as reviewed by ihse (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5704 From kvn at openjdk.java.net Wed Oct 6 15:02:09 2021 From: kvn at openjdk.java.net (Vladimir Kozlov) Date: Wed, 6 Oct 2021 15:02:09 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v3] In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 05:17:28 GMT, Jie Fu wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > Jie Fu has updated the pull request incrementally with one additional commit since the last revision: > > Split with RANGEBASE_ASCII and RANGEBASE_NON_ASCII Looks good to me. Let me test it before approval. ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From rriggs at openjdk.java.net Wed Oct 6 17:26:09 2021 From: rriggs at openjdk.java.net (Roger Riggs) Date: Wed, 6 Oct 2021 17:26:09 GMT Subject: RFR: 8274407: (tz) Update Timezone Data to 2021c In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 01:24:49 GMT, Naoto Sato wrote: > This PR is to upgrade the time zone data in the JDK to IANA's tzdata2021c level. Note that the tz data is "as is", as released by IANA. No `merged links` are retracted. > The PR also fixes two issues along with the 2021c upgrade. Marked as reviewed by rriggs (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5832 From kvn at openjdk.java.net Wed Oct 6 17:46:08 2021 From: kvn at openjdk.java.net (Vladimir Kozlov) Date: Wed, 6 Oct 2021 17:46:08 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern [v3] In-Reply-To: References: Message-ID: <8dHIMkQlRDuNctLP7QxzPsMJ7WWmHtWJVZYa4Klr1ck=.39b0f76f-8a0a-4f2f-b0c2-b29aeed18c8d@github.com> On Wed, 6 Oct 2021 05:17:28 GMT, Jie Fu wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > Jie Fu has updated the pull request incrementally with one additional commit since the last revision: > > Split with RANGEBASE_ASCII and RANGEBASE_NON_ASCII Passed my tier1-3 testing ------------- Marked as reviewed by kvn (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5704 From iris at openjdk.java.net Wed Oct 6 18:11:12 2021 From: iris at openjdk.java.net (Iris Clark) Date: Wed, 6 Oct 2021 18:11:12 GMT Subject: RFR: 8274407: (tz) Update Timezone Data to 2021c In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 01:24:49 GMT, Naoto Sato wrote: > This PR is to upgrade the time zone data in the JDK to IANA's tzdata2021c level. Note that the tz data is "as is", as released by IANA. No `merged links` are retracted. > The PR also fixes two issues along with the 2021c upgrade. Marked as reviewed by iris (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5832 From nradomski at openjdk.java.net Wed Oct 6 19:38:32 2021 From: nradomski at openjdk.java.net (Niklas Radomski) Date: Wed, 6 Oct 2021 19:38:32 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le Message-ID: Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. ------------- Commit messages: - Port zgc to linux on ppc64le Changes: https://git.openjdk.java.net/jdk/pull/5842/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5842&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8274851 Stats: 1275 lines in 11 files changed: 1264 ins; 0 del; 11 mod Patch: https://git.openjdk.java.net/jdk/pull/5842.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5842/head:pull/5842 PR: https://git.openjdk.java.net/jdk/pull/5842 From coffeys at openjdk.java.net Wed Oct 6 19:47:05 2021 From: coffeys at openjdk.java.net (Sean Coffey) Date: Wed, 6 Oct 2021 19:47:05 GMT Subject: RFR: 8274407: (tz) Update Timezone Data to 2021c In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 01:24:49 GMT, Naoto Sato wrote: > This PR is to upgrade the time zone data in the JDK to IANA's tzdata2021c level. Note that the tz data is "as is", as released by IANA. No `merged links` are retracted. > The PR also fixes two issues along with the 2021c upgrade. Marked as reviewed by coffeys (Reviewer). pre-1970 data for some time zones is lost or becomes inaccurate with this tzdata release. Do we plan to release-note that point ? ------------- PR: https://git.openjdk.java.net/jdk/pull/5832 From naoto at openjdk.java.net Wed Oct 6 19:55:05 2021 From: naoto at openjdk.java.net (Naoto Sato) Date: Wed, 6 Oct 2021 19:55:05 GMT Subject: RFR: 8274407: (tz) Update Timezone Data to 2021c In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 19:43:06 GMT, Sean Coffey wrote: >> This PR is to upgrade the time zone data in the JDK to IANA's tzdata2021c level. Note that the tz data is "as is", as released by IANA. No `merged links` are retracted. >> The PR also fixes two issues along with the 2021c upgrade. > > pre-1970 data for some time zones is lost or becomes inaccurate with this tzdata release. Do we plan to release-note that point ? Good point, @coffeys. I'll make sure they are described in the release note. ------------- PR: https://git.openjdk.java.net/jdk/pull/5832 From jiefu at openjdk.java.net Wed Oct 6 23:26:12 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Wed, 6 Oct 2021 23:26:12 GMT Subject: Integrated: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern In-Reply-To: References: Message-ID: <4w6EdU1pLWMhdMbjG4HVon7jXmTqel12ED_OfsxCW4E=.86c166d0-eb1c-486b-bf9c-a61aaea2b467@github.com> On Sun, 26 Sep 2021 09:55:00 GMT, Jie Fu wrote: > Hi all, > > I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). > However, I failed with C4474 and C4778 warnings as below: > > Compiling 100 properties into resource bundles for java.desktop > Compiling 3038 files for java.base > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string > e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided > > > The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. > In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. > And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. > > So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). > And I think it's safe to do so. > > This is because: > 1) There are actually no non-ASCII chars for package/class/method/signature names. > 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. > > You may argue that the non-ASCII may be used by the parser itself. > But I didn't find that usage at all. (Please let me know if I miss something.) > > So I suggest to remove these non-ASCII code to make HotSpot to be more portable. > And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. > > Testing: > - Build tests on Windows > - tier1~3 on Linux/x64 > > Thanks. > Best regards, > Jie > > [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 > [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 > [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html > [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ > [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 This pull request has now been integrated. Changeset: c833b4d1 Author: Jie Fu URL: https://git.openjdk.java.net/jdk/commit/c833b4d130fabfa6a6f3a38313f76eb7e392c6a5 Stats: 23 lines in 1 file changed: 15 ins; 5 del; 3 mod 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern Reviewed-by: iklam, ihse, kvn ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From jiefu at openjdk.java.net Wed Oct 6 23:26:12 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Wed, 6 Oct 2021 23:26:12 GMT Subject: RFR: 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern In-Reply-To: References: Message-ID: On Tue, 5 Oct 2021 06:38:05 GMT, Ioi Lam wrote: >> Hi all, >> >> I tried to build OpenJDK on Cygwin (Windows 2016 + VS2019). >> However, I failed with C4474 and C4778 warnings as below: >> >> Compiling 100 properties into resource bundles for java.desktop >> Compiling 3038 files for java.base >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): error C2220: the following warning is treated as an error >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4778: 'sscanf' : unterminated format string '%255[*\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e\x97%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(269): note: placeholders and their parameters expect 1 variadic arguments, but 3 were provided >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4778: 'sscanf' : unterminated format string '%1022[[);/\x01\x02\x03\x04\x05\x06\a\b\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"#$%&'*+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz{|}~\xe2\x82\xac\xe4\xba\x97\xe5\x84\x8e\xe5\x8e%n' >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): warning C4474: 'sscanf' : too many arguments passed for format string >> e:\jiefu\ws\jdk\src\hotspot\share\compiler\methodMatcher.cpp(319): note: placeholders and their parameters expect 0 variadic arguments, but 2 were provided >> >> >> The failure is caused by non-ASCII chars in the format string of sscanf [1][2], which is non-portable on our Windows platform. >> In fact, these non-ASCII coding also triggers C4819 warning, which had been disabled in JDK-8216154 [3]. >> And I also found an article showing that sscanf may fail with non-ASCII in the format string [4]. >> >> So it would be nice to remove these non-ASCII chars (`\x80 ~ \xef`). >> And I think it's safe to do so. >> >> This is because: >> 1) There are actually no non-ASCII chars for package/class/method/signature names. >> 2) I don't think there is a use case, in which people will input non-ASCII for `CompileCommand`. >> >> You may argue that the non-ASCII may be used by the parser itself. >> But I didn't find that usage at all. (Please let me know if I miss something.) >> >> So I suggest to remove these non-ASCII code to make HotSpot to be more portable. >> And if we do so, we can also remove the only one `PRAGMA_DISABLE_MSVC_WARNING(4819)` [5]. >> >> Testing: >> - Build tests on Windows >> - tier1~3 on Linux/x64 >> >> Thanks. >> Best regards, >> Jie >> >> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L269 >> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L319 >> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-January/032014.html >> [4] https://jeffpar.github.io/kbarchive/kb/047/Q47369/ >> [5] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/methodMatcher.cpp#L246 > > My experiments above with ` -XX:CompileCommand='compileonly,*::??'` was done on Linux. I tried doing the same on Windows. On US-English Windows, the default codepage is 437 (DOS Latin US). If I change it to 65001 (UTF8) then Java is able to output CJK characters to the console. > > > public class CJK { > public static void main(String args[]) { > System.out.println(args[0]); > \u722a\u54c7(); > } > > static void \u722a\u54c7() { // Chinese word for "Java" > Thread.dumpStack(); > } > } > > > > c:\ade>chcp > Active code page: 437 > > c:\ade>jdk-17\bin\java -cp . CJK 123 > 123 > java.lang.Exception: Stack trace > at java.base/java.lang.Thread.dumpStack(Thread.java:1380) > at CJK.??(CJK.java:8) > at CJK.main(CJK.java:4) > > c:\ade>chcp 65001 > Active code page: 65001 > > c:\ade>jdk-17\bin\java -cp . CJK ?? > ?? > java.lang.Exception: Stack trace > at java.base/java.lang.Thread.dumpStack(Thread.java:1380) > at CJK.??(CJK.java:8) > at CJK.main(CJK.java:4) > > > As you can see, the CJK characters in the command-line arguments can't even be correctly passed as arguments to the Java main class. If that doesn't work, I can't see how we can get `-XX:CompileCommand` to work with CJK characters. Thanks @iklam @magicus and @vnkozlov . ------------- PR: https://git.openjdk.java.net/jdk/pull/5704 From ihse at openjdk.java.net Thu Oct 7 07:38:08 2021 From: ihse at openjdk.java.net (Magnus Ihse Bursie) Date: Thu, 7 Oct 2021 07:38:08 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le In-Reply-To: References: Message-ID: On Wed, 6 Oct 2021 19:27:26 GMT, Niklas Radomski wrote: > Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. Changes requested by ihse (Reviewer). make/autoconf/jvm-features.m4 line 365: > 363: AC_MSG_RESULT([yes]) > 364: else > 365: AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU]) Please use the `$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU` error message per the pattern above. make/hotspot/gensrc/GensrcAdlc.gmk line 3: > 1: # > 2: # Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. > 3: # Copyright (c) 2021 SAP SE. All rights reserved. I must say I'm a bit surprised to see these new copyright headers for trivial changes. At the very least, this has not been SAP practice before. Is this in accordance with SAP legal recommendations? ------------- PR: https://git.openjdk.java.net/jdk/pull/5842 From rrich at openjdk.java.net Thu Oct 7 08:24:14 2021 From: rrich at openjdk.java.net (Richard Reingruber) Date: Thu, 7 Oct 2021 08:24:14 GMT Subject: RFR: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. [v2] In-Reply-To: References: Message-ID: <8A_QrLoJmA_4geXNGdSXDGPih87WJK-MLDtWjHulr74=.0ca7e57a-ea66-4f94-a8f0-a41a682fe79c@github.com> On Tue, 5 Oct 2021 07:38:28 GMT, Richard Reingruber wrote: >> The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: >> >> All threads suspended by the thread-level **resume** command or the VM-level >> **resume** command are resumed as many times as necessary for them to run. >> >> It should be changed to >> >> All threads suspended by the thread-level **suspend** command or the VM-level >> **suspend** command are resumed as many times as necessary for them to run. >> >> [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) > > Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision: > > Updated copyright. Thanks for the reviews! ------------- PR: https://git.openjdk.java.net/jdk/pull/5804 From rrich at openjdk.java.net Thu Oct 7 08:24:15 2021 From: rrich at openjdk.java.net (Richard Reingruber) Date: Thu, 7 Oct 2021 08:24:15 GMT Subject: Integrated: 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. In-Reply-To: References: Message-ID: On Mon, 4 Oct 2021 13:44:44 GMT, Richard Reingruber wrote: > The following sentence in the JDWP Specification describing the Dispose command confuses resume with suspend [1]: > > All threads suspended by the thread-level **resume** command or the VM-level > **resume** command are resumed as many times as necessary for them to run. > > It should be changed to > > All threads suspended by the thread-level **suspend** command or the VM-level > **suspend** command are resumed as many times as necessary for them to run. > > [1] [JDWP Spec, Dispose Command (JDK17).](https://docs.oracle.com/en/java/javase/17/docs/specs/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_Dispose) This pull request has now been integrated. Changeset: 29dcbb72 Author: Richard Reingruber URL: https://git.openjdk.java.net/jdk/commit/29dcbb72a2d9b224203d92ad3224cf149a7d08de Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. Reviewed-by: alanb, cjplummer, sspitsyn ------------- PR: https://git.openjdk.java.net/jdk/pull/5804 From nradomski at openjdk.java.net Thu Oct 7 08:27:50 2021 From: nradomski at openjdk.java.net (Niklas Radomski) Date: Thu, 7 Oct 2021 08:27:50 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: On Thu, 7 Oct 2021 07:33:47 GMT, Magnus Ihse Bursie wrote: >> Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: >> >> - Update autoconf error message >> - Remove copyright headers > > make/hotspot/gensrc/GensrcAdlc.gmk line 3: > >> 1: # >> 2: # Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. >> 3: # Copyright (c) 2021 SAP SE. All rights reserved. > > I must say I'm a bit surprised to see these new copyright headers for trivial changes. At the very least, this has not been SAP practice before. Is this in accordance with SAP legal recommendations? I removed them, thank you for the heads-up! ------------- PR: https://git.openjdk.java.net/jdk/pull/5842 From nradomski at openjdk.java.net Thu Oct 7 08:27:47 2021 From: nradomski at openjdk.java.net (Niklas Radomski) Date: Thu, 7 Oct 2021 08:27:47 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: > Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: - Update autoconf error message - Remove copyright headers ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5842/files - new: https://git.openjdk.java.net/jdk/pull/5842/files/17946ddf..5da8c1b7 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5842&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5842&range=00-01 Stats: 3 lines in 2 files changed: 0 ins; 2 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/5842.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5842/head:pull/5842 PR: https://git.openjdk.java.net/jdk/pull/5842 From ihse at openjdk.java.net Thu Oct 7 12:14:07 2021 From: ihse at openjdk.java.net (Magnus Ihse Bursie) Date: Thu, 7 Oct 2021 12:14:07 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: On Thu, 7 Oct 2021 08:27:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: > > - Update autoconf error message > - Remove copyright headers Build changes look good now. I leave it to others to determine the actual code changes. ------------- Marked as reviewed by ihse (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5842 From pliden at openjdk.java.net Thu Oct 7 14:07:12 2021 From: pliden at openjdk.java.net (Per Liden) Date: Thu, 7 Oct 2021 14:07:12 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: On Thu, 7 Oct 2021 08:27:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: > > - Update autoconf error message > - Remove copyright headers Nice to see ZGC ported to linux/ppc! I don't have a lot to say about the ppc-specific code. As you know, we at Oracle don't build and test on that platform, so any problems here will go unnoticed by us. It would be good to see a review or two from your colleagues at SAP. src/hotspot/share/gc/z/zBarrierSetAssembler.cpp line 30: > 28: > 29: Address ZBarrierSetAssemblerBase::address_bad_mask_from_thread(Register thread) { > 30: return Address(thread, (intptr_t) ZThreadLocalData::address_bad_mask_offset()); Instead of casting here in this platform agnostic code, I'd suggest that you add a new constructor for `Address` on PPC, one that takes `(Register, ByteSize)` arguments. Other platforms have that, so I'm a bit surprised that PPC doesn't already have that too. src/hotspot/share/gc/z/zBarrierSetAssembler.cpp line 34: > 32: > 33: Address ZBarrierSetAssemblerBase::address_bad_mask_from_jni_env(Register env) { > 34: return Address(env, (intptr_t) (ZThreadLocalData::address_bad_mask_offset() - JavaThread::jni_environment_offset())); .... and we would avoid there cast here also. ------------- Changes requested by pliden (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5842 From naoto at openjdk.java.net Thu Oct 7 15:35:15 2021 From: naoto at openjdk.java.net (Naoto Sato) Date: Thu, 7 Oct 2021 15:35:15 GMT Subject: Integrated: 8274407: (tz) Update Timezone Data to 2021c In-Reply-To: References: Message-ID: <_NX0H0er1wkmnT5nKFEBD8ChF26s46LrDsEgIn0A5VU=.bd4ba204-8052-4545-8e97-1b1e6fd8881b@github.com> On Wed, 6 Oct 2021 01:24:49 GMT, Naoto Sato wrote: > This PR is to upgrade the time zone data in the JDK to IANA's tzdata2021c level. Note that the tz data is "as is", as released by IANA. No `merged links` are retracted. > The PR also fixes two issues along with the 2021c upgrade. This pull request has now been integrated. Changeset: 8ca08461 Author: Naoto Sato URL: https://git.openjdk.java.net/jdk/commit/8ca084617f331b6af934179f3f776c8158da5bba Stats: 635 lines in 13 files changed: 228 ins; 329 del; 78 mod 8274407: (tz) Update Timezone Data to 2021c 8274467: TestZoneInfo310.java fails with tzdata2021b 8274468: TimeZoneTest.java fails with tzdata2021b Reviewed-by: rriggs, iris, coffeys ------------- PR: https://git.openjdk.java.net/jdk/pull/5832 From github.com+18036229+chengjin01 at openjdk.java.net Fri Oct 8 04:53:10 2021 From: github.com+18036229+chengjin01 at openjdk.java.net (Cheng Jin) Date: Fri, 8 Oct 2021 04:53:10 GMT Subject: RFR: 8268129: LibraryLookup::ofDefault leaks symbols from loaded libraries In-Reply-To: <1RwBnwfTi0XsUzPYQHKHTZ7jxgkhgsJfEG28Q33RahA=.6a992ad3-b289-4c93-9dc9-72a948f67581@github.com> References: <1RwBnwfTi0XsUzPYQHKHTZ7jxgkhgsJfEG28Q33RahA=.6a992ad3-b289-4c93-9dc9-72a948f67581@github.com> Message-ID: <-Sgl3wbFP-k2nDAbFsX3fZ9vs_7-Fno-FeyThJ_VBDY=.a6da9845-64ab-4bdf-bd0e-fd8c4ba77da7@github.com> On Wed, 2 Jun 2021 20:13:34 GMT, Maurizio Cimadamore wrote: >> This patch overhauls the library loading mechanism used by the Foreign Linker API. We realized that, while handy, the *default* lookup abstraction (`LibraryLookup::ofDefault`) was behaving inconsistentlt across platforms. >> >> This patch replaces `LibraryLookup` with a simpler `SymbolLookup` abstraction, a functional interface. Crucially, `SymbolLookup` does not concern with library loading, only symbol lookup. For this reason, two factories are added: >> >> * `SymbolLookup::loaderLookup` - which obtains a lookup that can be used to lookup symbols in libraries loaded by current loader >> * `CLinker::systemLookup` - a more stable replacement for the *default* lookup, which looks for symbols in libc.so (or its equivalent in other platforms). The contents of this lookup are unspecified. >> >> Both factories are *restricted*, so they can only be called when `--enable-native-access` is set. > >> _Mailing list message from [Chapman Flack](mailto:chap at anastigmatix.net) on [security-dev](mailto:security-dev at mail.openjdk.java.net):_ >> >> On 06/02/21 13:30, Maurizio Cimadamore wrote: >> >> > This patch replaces `LibraryLookup` with a simpler `SymbolLookup` >> > abstraction, a functional interface. Crucially, `SymbolLookup` does not >> > concern with library loading, only symbol lookup. For this reason, two >> > factories are added: >> >> Hi, >> >> While I am thinking about this, what will be the behavior when the JVM >> itself has been dynamically loaded into an embedding application, and >> launched with the JNI invocation API? >> >> Will there be a *Lookup flavor that is able to find any exported symbol >> known in the embedding environment the JVM was loaded into? (This is the >> sort of condition the Mac OS linker checks when given the -bundle_loader >> option.) >> >> Regards, >> Chapman Flack (maintainer of a project that happens to work that way) > > Hi, > at the moment we don't have plans to add such a lookup, but I believe it should be possible to build such a lookup using `dlopen` and the linker API. I have provided an example elsewhere of how easy it easy to build a wrapper lookup around dlopen/dlsym: > > https://gist.github.com/mcimadamore/0883ea6f4836ae0c1d2a31c48197da1a > > Perhaps something like that could be useful in the use case you mention? Hi @mcimadamore, As you mentioned at https://github.com/openjdk/jdk/pull/4316#issuecomment-853238872, the system lookup is supported by the underlying `NativeLibraries` which also works on OpenJDK16 to support `LibraryLookup::ofDefault`. But my finding is that it `LibraryLookup::ofDefault` works good on AIX (with `libc.a`) in OpenJDK16 but `CLinker.systemLookup()` ended up with `NoSuchElementException` after changing the code in `SystemLookup.java` and `CABI.java` as follows: private static final SymbolLookup syslookup = switch (CABI.current()) { case SysV, LinuxAArch64, MacOsAArch64, AIX -> libLookup(libs -> libs.loadLibrary("syslookup")); case Win64 -> makeWindowsLookup(); // out of line to workaround javac crash }; with a simple test & output: import jdk.incubator.foreign.CLinker; import static jdk.incubator.foreign.CLinker.*; import jdk.incubator.foreign.SymbolLookup; import jdk.incubator.foreign.Addressable; public class Test { private static CLinker clinker = CLinker.getInstance(); private static final SymbolLookup defaultLibLookup = CLinker.systemLookup(); public static void main(String args[]) throws Throwable { Addressable strlenSymbol = defaultLibLookup.lookup("strlen").get(); } } bin/java --enable-native-access=ALL-UNNAMED --add-modules jdk.incubator.foreign -Dforeign.restricted=permit Test WARNING: Using incubator modules: jdk.incubator.foreign Exception in thread "main" java.util.NoSuchElementException: No value present <----- at java.base/java.util.Optional.get(Optional.java:143) at Test.main(Test.java:11) So I am wondering what happened to the system lookup in such case given there should be no fundamental difference in leveraging `NativeLibraries` (I assume the library loading in OpenJDK16 & 17 is the same at this point) unless there is something else new in OpenJDK17 I am unaware of (e.g. the changes in `Lib.gmk` or `lib-std.m4`, or a custom system lookup is required on AIX, etc). Thanks. ------------- PR: https://git.openjdk.java.net/jdk/pull/4316 From mdoerr at openjdk.java.net Fri Oct 8 12:38:12 2021 From: mdoerr at openjdk.java.net (Martin Doerr) Date: Fri, 8 Oct 2021 12:38:12 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: On Thu, 7 Oct 2021 08:27:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: > > - Update autoconf error message > - Remove copyright headers Nice contribution! Thanks for doing the changes I had requested during my offline review. New version needs a few minor fixes, but looks great in general. src/hotspot/cpu/ppc/ppc.ad line 8142: > 8140: match(Set res (CompareAndExchangeP mem_ptr (Binary src1 src2))); > 8141: predicate((((CompareAndSwapNode*)n)->order() != MemNode::acquire && ((CompareAndSwapNode*)n)->order() != MemNode::seqcst) > 8142: && n->as_Load()->barrier_data() == 0); Needs to be `as_LoadStore()`. src/hotspot/cpu/ppc/ppc.ad line 8157: > 8155: match(Set res (CompareAndExchangeP mem_ptr (Binary src1 src2))); > 8156: predicate((((CompareAndSwapNode*)n)->order() == MemNode::acquire || ((CompareAndSwapNode*)n)->order() == MemNode::seqcst) > 8157: && n->as_Load()->barrier_data() == 0); Needs to be `as_LoadStore()`. src/hotspot/cpu/ppc/ppc.ad line 8379: > 8377: instruct getAndSetP(iRegPdst res, iRegPdst mem_ptr, iRegPsrc src, flagsRegCR0 cr0) %{ > 8378: match(Set res (GetAndSetP mem_ptr src)); > 8379: predicate(n->as_Load()->barrier_data() == 0); Needs to be `as_LoadStore()`. ------------- Changes requested by mdoerr (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5842 From eosterlund at openjdk.java.net Fri Oct 8 15:22:10 2021 From: eosterlund at openjdk.java.net (Erik =?UTF-8?B?w5ZzdGVybHVuZA==?=) Date: Fri, 8 Oct 2021 15:22:10 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: On Thu, 7 Oct 2021 08:27:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: > > - Update autoconf error message > - Remove copyright headers Thank you for contributing a ZGC port to PPC. Apart from what has already been said, this looks good to me. ------------- Marked as reviewed by eosterlund (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5842 From nradomski at openjdk.java.net Fri Oct 8 15:41:47 2021 From: nradomski at openjdk.java.net (Niklas Radomski) Date: Fri, 8 Oct 2021 15:41:47 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v3] In-Reply-To: References: Message-ID: > Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. Niklas Radomski has updated the pull request incrementally with three additional commits since the last revision: - Remove superfluous copyright change - Fix predicate conditions - Add ByteSize constructor to Address ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5842/files - new: https://git.openjdk.java.net/jdk/pull/5842/files/5da8c1b7..052ad5c8 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5842&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5842&range=01-02 Stats: 9 lines in 3 files changed: 3 ins; 0 del; 6 mod Patch: https://git.openjdk.java.net/jdk/pull/5842.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5842/head:pull/5842 PR: https://git.openjdk.java.net/jdk/pull/5842 From nradomski at openjdk.java.net Fri Oct 8 15:41:51 2021 From: nradomski at openjdk.java.net (Niklas Radomski) Date: Fri, 8 Oct 2021 15:41:51 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v2] In-Reply-To: References: Message-ID: On Thu, 7 Oct 2021 13:54:16 GMT, Per Liden wrote: >> Niklas Radomski has updated the pull request incrementally with two additional commits since the last revision: >> >> - Update autoconf error message >> - Remove copyright headers > > src/hotspot/share/gc/z/zBarrierSetAssembler.cpp line 30: > >> 28: >> 29: Address ZBarrierSetAssemblerBase::address_bad_mask_from_thread(Register thread) { >> 30: return Address(thread, (intptr_t) ZThreadLocalData::address_bad_mask_offset()); > > Instead of casting here in this platform agnostic code, I'd suggest that you add a new constructor for `Address` on PPC, one that takes `(Register, ByteSize)` arguments. Other platforms have that, so I'm a bit surprised that PPC doesn't already have that too. Good catch, thank you for the suggestion! Totally agreed, I changed it accordingly. ------------- PR: https://git.openjdk.java.net/jdk/pull/5842 From pliden at openjdk.java.net Fri Oct 8 17:14:08 2021 From: pliden at openjdk.java.net (Per Liden) Date: Fri, 8 Oct 2021 17:14:08 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v3] In-Reply-To: References: Message-ID: On Fri, 8 Oct 2021 15:41:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with three additional commits since the last revision: > > - Remove superfluous copyright change > - Fix predicate conditions > - Add ByteSize constructor to Address Marked as reviewed by pliden (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/5842 From JohnC at synel-americas.com Fri Oct 8 17:46:09 2021 From: JohnC at synel-americas.com (John Cummings) Date: Fri, 8 Oct 2021 17:46:09 +0000 Subject: Unable to build Client/Server variant for OpenJDK-11 on ARMv7-A Message-ID: Hello all, I have been attempting to build OpenJDK-11 for an ARMv7-A system using Cortex-A7. Output of uname -a for this system is Linux sun6i 3.3.0 #125 SMP PREEMPT Fri Feb 5 07:04:03 CST 2021 armv7l GNU/Linux I am at the point where I am unsure where to proceed or what to change, and haven't been able to find a solution anywhere thus far to build a client version of OpenJDK-11. If there's any additional information I can/should provide, please let me know. I am using the source from https://hg.openjdk.java.net/jdk/jdk11. Previously I have attempted a toolchain using buildroot with the 3.4 sunxi kernel with hard float, 3.3 release kernel with softfp and hard float, both with glibc 2.18, and attempted binutils 2.23.2 and 2.32 on both, and both built on Ubuntu 20.04. As well as a yocto build with a bananapi config using meta-openembedded, meta-open-oe, and meta-sunxi on branch fido built on ubuntu 14.04. The most success I've had was creating a buildroot toolchain with the release 3.3 kernel, glibc 2.18, binutils 2.23.2 and using that I was able to make a working jre-legacy-image and jdk-image for a zero build but every time I try the same on either the client or server variant it crashes immediately, usually with the following message: # /usr/lib/jvm/jdk11/client/jre/bin/java -version # # A fatal error has been detected by the Java Runtime Environment: # # SIGILL (0x4) at pc=0xb43e2f90, pid=1572, tid=1573 # # JRE version: (11.0) (build ) # Java VM: OpenJDK Client VM (11-internal+0-adhoc.johnc.jdk11, mixed mode, serial gc, linux-) # Problematic frame: # j java.lang.ThreadGroup.add(Ljava/lang/ThreadGroup;)V+20 java.base # # Core dump will be written. Default location: /home/core # # An error report file with more information is saved as: # /home/hs_err_pid1572.log Could not load hsdis-arm.so; library not loadable; PrintAssembly is disabled # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # Aborted (core dumped) Occasionally it would give me a segment of a java stack trace giving me a NullPointerException at java.base/java.lang.ThreadGroup.java line 812. This particular bit happens infrequently, and I wasn't able to recreate it to get something to paste in here, but I did have it down as line 812. I am using the following to configure it: bash configure --target=arm-unknown-linux-gnueabihf --build=x86_64-linux --host=arm-unknown-linux-gnueabihf --with-native-debug-symbols=none --disable-warnings-as-errors --with-abi-profile=arm-vfp-hflt --disable-ccache --with-sysroot=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/ --with-toolchain-path=/opt/x-tools/arm-unknown-linux-gnueabihf/bin --with-build-jdk=/opt/jdk11/build/linux-x86_64-normal-server-release/images/jdk --with-x=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-cups=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-fontconfig=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-freetype-lib=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib --with-freetype-include=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include --with-alsa=/opt/buildroot-2021.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-stdc++lib=dynamic --with-extra-cxxflags='-Os -pipe -g -feliminate-unused-debug-types -fcommon -fno-delete-null-pointer-checks -fvisibility-inlines-hidden -march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard' --with-extra-cflags='-Os -pipe -g -feliminate-unused-debug-types -fcommon -fno-delete-null-pointer-checks -march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard' --with-extra-ldflags='-Wl,-Os -Wl,--hash-style=gnu -Wl,--as-needed' --with-jobs=8 --with-jvm-variants=client The output of hs_err_pid1572.log is # cat /home/hs_err_pid1572.log # # A fatal error has been detected by the Java Runtime Environment: # # SIGILL (0x4) at pc=0xb43e2f90, pid=1572, tid=1573 # # JRE version: (11.0) (build ) # Java VM: OpenJDK Client VM (11-internal+0-adhoc.johnc.jdk11, mixed mode, serial gc, linux-) # Problematic frame: # j java.lang.ThreadGroup.add(Ljava/lang/ThreadGroup;)V+20 java.base # # Core dump will be written. Default location: /home/core # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # --------------- S U M M A R Y ------------ Command Line: Host: ARMv7 Processor rev 4 (v7l), 2 cores, 794M, Buildroot 2017.08 Time: Fri Oct 8 13:11:24 2021 EDT elapsed time: 0 seconds (0d 0h 0m 0s) --------------- T H R E A D --------------- Current thread (0xb6509c00): JavaThread "Unknown thread" [_thread_in_Java, id=1573, stack(0xb665f000,0xb66af000)] Stack: [0xb665f000,0xb66af000], sp=0xb66ad938, free space=314k Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code) j java.lang.ThreadGroup.add(Ljava/lang/ThreadGroup;)V+20 java.base j java.lang.ThreadGroup.(Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V+37 java.base j java.lang.ThreadGroup.(Ljava/lang/ThreadGroup;Ljava/lang/String;)V+7 java.base v ~StubRoutines::call_stub C 0x00000000 siginfo: si_signo: 4 (SIGILL), si_code: 1 (ILL_ILLOPC), si_addr: 0xb43e2f90 Register to memory mapping: r0 = 0xb66ad914 0xb66ad914 is pointing into the stack for thread: 0xb6509c00 r1 = 0x00000003 0x00000003 is an unknown value r2 = 0x00000028 0x00000028 is an unknown value r3 = 0xa7a05af0 0xa7a05af0 is an oop java.lang.ThreadGroup {0xa7a05af0} - klass: 'java/lang/ThreadGroup' r4 = 0x84000009 0x84000009 is an unknown value r5 = 0x00000008 0x00000008 is an unknown value r6 = 0xb6d51584 0xb6d51584: in /usr/lib/jvm/jdk11/client/jre/lib/client/libjvm.so at 0xb6801000 r7 = 0xa75dcdcc 0xa75dcdcc is pointing into metadata r8 = 0xb66ad978 0xb66ad978 is pointing into the stack for thread: 0xb6509c00 r9 = 0xa75dce30 {method} {0xa75dce30} 'add' '(Ljava/lang/ThreadGroup;)V' in 'java/lang/ThreadGroup' r10 = 0xb6509c00 0xb6509c00 is a thread fp = 0xb66ad964 0xb66ad964 is pointing into the stack for thread: 0xb6509c00 r12 = 0xb66ad938 0xb66ad938 is pointing into the stack for thread: 0xb6509c00 sp = 0xb66ad938 0xb66ad938 is pointing into the stack for thread: 0xb6509c00 lr = 0xb6a5a64b 0xb6a5a64b: in /usr/lib/jvm/jdk11/client/jre/lib/client/libjvm.so at 0xb6801000 pc = 0xb43e2f90 0xb43e2f90 is at code_begin+400 in an Interpreter codelet getfield 180 getfield [0xb43e2e00, 0xb43e2ff0] 496 bytes Registers: r0 = 0xb66ad914 r1 = 0x00000003 r2 = 0x00000028 r3 = 0xa7a05af0 r4 = 0x84000009 r5 = 0x00000008 r6 = 0xb6d51584 r7 = 0xa75dcdcc r8 = 0xb66ad978 r9 = 0xa75dce30 r10 = 0xb6509c00 fp = 0xb66ad964 r12 = 0xb66ad938 sp = 0xb66ad938 lr = 0xb6a5a64b pc = 0xb43e2f90 cpsr = 0x20030010 Top of Stack: (sp=0xb66ad938) 0xb66ad938: 00000001 a7a05af0 b66ad938 a75dcdcc 0xb66ad948: b66ad978 a765dd98 00000000 a7a01ac8 0xb66ad958: a75dce30 00000000 b66ad974 b66ad9a0 0xb66ad968: b43d9bb0 00000000 a7a05af0 a7a05b80 0xb66ad978: a7a05af0 b66ad97c a75dbddd b66ad9b4 0xb66ad988: a765dd98 00000000 a7a01ac8 a75dbde8 0xb66ad998: b66ad974 b66ad9a8 b66ad9dc b43d9bb0 0xb66ad9a8: a7a05b50 a7a05af0 00000000 a7a05b80 Instructions: (pc=0xb43e2f90) 0xb43e2f70: e5c70000 ea000014 e083c002 e89c0003 0xb43e2f80: e92d0003 e3a000ce e5c70000 ea00000e 0xb43e2f90: f7fbc402 e52d0004 e3a000cb e5c70000 0xb43e2fa0: ea000009 e92ddfff e59f0004 e1a0100d getfield 180 getfield [0xb43e2e00, 0xb43e2ff0] 496 bytes --------------- P R O C E S S --------------- Threads class SMR info: _java_thread_list=0xb6557628, length=1, elements={ 0xb6509c00 } Java Threads: ( => current thread ) =>0xb6509c00 JavaThread "Unknown thread" [_thread_in_Java, id=1573, stack(0xb665f000,0xb66af000)] Other Threads: 0xb6557800 VMThread "VM Thread" [stack: 0xb422e000,0xb42ae000] [id=1574] Threads with active compile tasks: VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap: def new generation total 4352K, used 79K [0xa7a00000, 0xa7ea0000, 0xabca0000) eden space 3968K, 2% used [0xa7a00000, 0xa7a13d80, 0xa7de0000) from space 384K, 0% used [0xa7de0000, 0xa7de0000, 0xa7e40000) to space 384K, 0% used [0xa7e40000, 0xa7e40000, 0xa7ea0000) tenured generation total 9600K, used 0K [0xabca0000, 0xac600000, 0xb4200000) the space 9600K, 0% used [0xabca0000, 0xabca0000, 0xabca0200, 0xac600000) Metaspace used 680K, capacity 2200K, committed 2200K, reserved 4400K Card table byte_map: [0xb42f1000,0xb4356000] _byte_map_base: 0xb3db4000 Polling page: 0xb6ee5000 Metaspace: Usage: 2.15 MB capacity, 680.58 KB ( 31%) used, 1.48 MB ( 69%) free+waste, 40 bytes ( <1%) overhead. Virtual space: 4.30 MB reserved, 2.15 MB ( 50%) committed Chunk freelists: 0 bytes CodeCache: size=32768Kb used=181Kb max_used=189Kb free=32586Kb bounds [0xb43d6000, 0xb4406000, 0xb63d6000] total_blobs=73 nmethods=0 adapters=37 compilation: enabled stopped_count=0, restarted_count=0 full_count=0 Compilation events (0 events): No events GC Heap History (0 events): No events Deoptimization events (0 events): No events Classes redefined (0 events): No events Internal exceptions (0 events): No events Events (10 events): Event: 0.137 loading class java/lang/NullPointerException done Event: 0.137 loading class java/lang/ArithmeticException Event: 0.137 loading class java/lang/ArithmeticException done Event: 0.146 Thread 0xb6509c00 Thread added: 0xb6509c00 Event: 0.149 loading class java/io/ObjectStreamField Event: 0.149 loading class java/io/ObjectStreamField done Event: 0.149 loading class java/lang/String$CaseInsensitiveComparator Event: 0.150 loading class java/util/Comparator Event: 0.150 loading class java/util/Comparator done Event: 0.151 loading class java/lang/String$CaseInsensitiveComparator done Dynamic libraries: 00008000-00009000 r-xp 00000000 b3:01 273474 /usr/lib/jvm/jdk11/client/jre/bin/java 00010000-00011000 rw-p 00000000 b3:01 273474 /usr/lib/jvm/jdk11/client/jre/bin/java 00011000-00032000 rw-p 00000000 00:00 0 [heap] a7400000-a7421000 rw-p 00000000 00:00 0 a7421000-a7500000 ---p 00000000 00:00 0 a7559000-a77da000 rw-p 00000000 00:00 0 a77da000-a7a00000 ---p 00000000 00:00 0 a7a00000-a7ea0000 rw-p 00000000 00:00 0 a7ea0000-abca0000 ---p 00000000 00:00 0 abca0000-ac600000 rw-p 00000000 00:00 0 ac600000-b4200000 ---p 00000000 00:00 0 b422d000-b422e000 ---p 00000000 00:00 0 b422e000-b42b3000 rw-p 00000000 00:00 0 b42b3000-b42f1000 ---p 00000000 00:00 0 b42f1000-b42f4000 rw-p 00000000 00:00 0 b42f4000-b4312000 ---p 00000000 00:00 0 b4312000-b4317000 rw-p 00000000 00:00 0 b4317000-b4355000 ---p 00000000 00:00 0 b4355000-b4357000 rw-p 00000000 00:00 0 b4357000-b43d6000 ---p 00000000 00:00 0 b43d6000-b4406000 rwxp 00000000 00:00 0 b4406000-b63d6000 ---p 00000000 00:00 0 b63d6000-b64ec000 r--s 00000000 b3:01 273445 /usr/lib/jvm/jdk11/client/jre/lib/modules b64ec000-b64f7000 r-xp 00000000 b3:01 272372 /lib/arm-linux-gnueabihf/libnss_files-2.18.so b64f7000-b64fe000 ---p 0000b000 b3:01 272372 /lib/arm-linux-gnueabihf/libnss_files-2.18.so b64fe000-b64ff000 r--p 0000a000 b3:01 272372 /lib/arm-linux-gnueabihf/libnss_files-2.18.so b64ff000-b6500000 rw-p 0000b000 b3:01 272372 /lib/arm-linux-gnueabihf/libnss_files-2.18.so b6500000-b655c000 rw-p 00000000 00:00 0 b655c000-b6600000 ---p 00000000 00:00 0 b6603000-b6606000 r-xp 00000000 b3:01 273430 /usr/lib/jvm/jdk11/client/jre/lib/libjimage.so b6606000-b660d000 ---p 00003000 b3:01 273430 /usr/lib/jvm/jdk11/client/jre/lib/libjimage.so b660d000-b660e000 rw-p 00002000 b3:01 273430 /usr/lib/jvm/jdk11/client/jre/lib/libjimage.so b660e000-b6613000 r-xp 00000000 b3:01 273444 /usr/lib/jvm/jdk11/client/jre/lib/libzip.so b6613000-b661a000 ---p 00005000 b3:01 273444 /usr/lib/jvm/jdk11/client/jre/lib/libzip.so b661a000-b661b000 rw-p 00004000 b3:01 273444 /usr/lib/jvm/jdk11/client/jre/lib/libzip.so b661b000-b6635000 r-xp 00000000 b3:01 273466 /usr/lib/jvm/jdk11/client/jre/lib/libjava.so b6635000-b663d000 ---p 0001a000 b3:01 273466 /usr/lib/jvm/jdk11/client/jre/lib/libjava.so b663d000-b663e000 rw-p 0001a000 b3:01 273466 /usr/lib/jvm/jdk11/client/jre/lib/libjava.so b663e000-b6647000 r-xp 00000000 b3:01 273443 /usr/lib/jvm/jdk11/client/jre/lib/libverify.so b6647000-b664f000 ---p 00009000 b3:01 273443 /usr/lib/jvm/jdk11/client/jre/lib/libverify.so b664f000-b6650000 rw-p 00009000 b3:01 273443 /usr/lib/jvm/jdk11/client/jre/lib/libverify.so b6650000-b6656000 r-xp 00000000 b3:01 272378 /lib/arm-linux-gnueabihf/librt-2.18.so b6656000-b665d000 ---p 00006000 b3:01 272378 /lib/arm-linux-gnueabihf/librt-2.18.so b665d000-b665e000 r--p 00005000 b3:01 272378 /lib/arm-linux-gnueabihf/librt-2.18.so b665e000-b665f000 rw-p 00006000 b3:01 272378 /lib/arm-linux-gnueabihf/librt-2.18.so b665f000-b6662000 ---p 00000000 00:00 0 b6662000-b66af000 rw-p 00000000 00:00 0 b66af000-b66ce000 r-xp 00000000 b3:01 272360 /lib/arm-linux-gnueabihf/libgcc_s.so.1 b66ce000-b66d5000 ---p 0001f000 b3:01 272360 /lib/arm-linux-gnueabihf/libgcc_s.so.1 b66d5000-b66d6000 rw-p 0001e000 b3:01 272360 /lib/arm-linux-gnueabihf/libgcc_s.so.1 b66d6000-b6740000 r-xp 00000000 b3:01 272366 /lib/arm-linux-gnueabihf/libm-2.18.so b6740000-b6748000 ---p 0006a000 b3:01 272366 /lib/arm-linux-gnueabihf/libm-2.18.so b6748000-b6749000 r--p 0006a000 b3:01 272366 /lib/arm-linux-gnueabihf/libm-2.18.so b6749000-b674a000 rw-p 0006b000 b3:01 272366 /lib/arm-linux-gnueabihf/libm-2.18.so b674a000-b67e6000 r-xp 00000000 b3:01 264327 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.20 b67e6000-b67f5000 ---p 0009c000 b3:01 264327 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.20 b67f5000-b67f9000 r--p 0009b000 b3:01 264327 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.20 b67f9000-b67fb000 rw-p 0009f000 b3:01 264327 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.20 b67fb000-b6801000 rw-p 00000000 00:00 0 b6801000-b6d0a000 r-xp 00000000 b3:01 273449 /usr/lib/jvm/jdk11/client/jre/lib/client/libjvm.so b6d0a000-b6d11000 ---p 00509000 b3:01 273449 /usr/lib/jvm/jdk11/client/jre/lib/client/libjvm.so b6d11000-b6d26000 r--p 00508000 b3:01 273449 /usr/lib/jvm/jdk11/client/jre/lib/client/libjvm.so b6d26000-b6d3b000 rw-p 0051d000 b3:01 273449 /usr/lib/jvm/jdk11/client/jre/lib/client/libjvm.so b6d3b000-b6d62000 rw-p 00000000 00:00 0 b6d62000-b6d77000 r-xp 00000000 b3:01 272376 /lib/arm-linux-gnueabihf/libpthread-2.18.so b6d77000-b6d7e000 ---p 00015000 b3:01 272376 /lib/arm-linux-gnueabihf/libpthread-2.18.so b6d7e000-b6d7f000 r--p 00014000 b3:01 272376 /lib/arm-linux-gnueabihf/libpthread-2.18.so b6d7f000-b6d80000 rw-p 00015000 b3:01 272376 /lib/arm-linux-gnueabihf/libpthread-2.18.so b6d80000-b6d82000 rw-p 00000000 00:00 0 b6d82000-b6d94000 r-xp 00000000 b3:01 273131 /lib/arm-linux-gnueabihf/libz.so.1.2.11 b6d94000-b6d9b000 ---p 00012000 b3:01 273131 /lib/arm-linux-gnueabihf/libz.so.1.2.11 b6d9b000-b6d9c000 rw-p 00011000 b3:01 273131 /lib/arm-linux-gnueabihf/libz.so.1.2.11 b6d9c000-b6ec8000 r-xp 00000000 b3:01 272356 /lib/arm-linux-gnueabihf/libc-2.18.so b6ec8000-b6ecf000 ---p 0012c000 b3:01 272356 /lib/arm-linux-gnueabihf/libc-2.18.so b6ecf000-b6ed1000 r--p 0012b000 b3:01 272356 /lib/arm-linux-gnueabihf/libc-2.18.so b6ed1000-b6ed2000 rw-p 0012d000 b3:01 272356 /lib/arm-linux-gnueabihf/libc-2.18.so b6ed2000-b6ed5000 rw-p 00000000 00:00 0 b6edd000-b6ee5000 rw-s 00000000 00:0c 8272 /tmp/hsperfdata_root/1572 b6ee5000-b6ee6000 r--p 00000000 00:00 0 b6ee6000-b6ef0000 r-xp 00000000 b3:01 273436 /usr/lib/jvm/jdk11/client/jre/lib/jli/libjli.so b6ef0000-b6ef7000 ---p 0000a000 b3:01 273436 /usr/lib/jvm/jdk11/client/jre/lib/jli/libjli.so b6ef7000-b6ef8000 rw-p 00009000 b3:01 273436 /usr/lib/jvm/jdk11/client/jre/lib/jli/libjli.so b6ef8000-b6f0f000 r-xp 00000000 b3:01 260047 /lib/arm-linux-gnueabihf/ld-2.19.so b6f0f000-b6f11000 rw-p 00000000 00:00 0 b6f11000-b6f13000 r-xp 00000000 b3:01 272358 /lib/arm-linux-gnueabihf/libdl-2.18.so b6f13000-b6f1a000 ---p 00002000 b3:01 272358 /lib/arm-linux-gnueabihf/libdl-2.18.so b6f1a000-b6f1b000 r--p 00001000 b3:01 272358 /lib/arm-linux-gnueabihf/libdl-2.18.so b6f1b000-b6f1c000 rw-p 00002000 b3:01 272358 /lib/arm-linux-gnueabihf/libdl-2.18.so b6f1c000-b6f1f000 rw-p 00000000 00:00 0 b6f1f000-b6f20000 r--p 00017000 b3:01 260047 /lib/arm-linux-gnueabihf/ld-2.19.so b6f20000-b6f21000 rw-p 00018000 b3:01 260047 /lib/arm-linux-gnueabihf/ld-2.19.so befae000-befcf000 rw-p 00000000 00:00 0 [stack] ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors] VM Arguments: java_command: java_class_path (initial): Launcher Type: SUN_STANDARD [Global flags] size_t InitialHeapSize = 14680064 {product} {ergonomic} size_t MaxHeapSize = 209715200 {product} {ergonomic} size_t MaxNewSize = 69861376 {product} {ergonomic} size_t MinHeapDeltaBytes = 131072 {product} {ergonomic} size_t NewSize = 4849664 {product} {ergonomic} uintx NonProfiledCodeHeapSize = 0 {pd product} {ergonomic} size_t OldSize = 9830400 {product} {ergonomic} uintx ProfiledCodeHeapSize = 0 {pd product} {ergonomic} bool UseAOT = false {product} {ergonomic} bool UseSerialGC = true {product} {ergonomic} Logging: Log output configuration: #0: stdout all=warning uptime,level,tags #1: stderr all=off uptime,level,tags Environment Variables: PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin:/root/synergy2416/sbin LD_LIBRARY_PATH=/usr/lib:/usr/lib/jvm/java-8/lib:/usr/lib/fpu:/usr/lib/fpu/jni:/root/synergy2416/lib SHELL=/bin/sh DISPLAY=:0 Signal Handlers: SIGSEGV: [libjvm.so+0x48008d], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGBUS: [libjvm.so+0x48008d], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGFPE: [libjvm.so+0x48008d], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGPIPE: [libjvm.so+0x39c941], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGXFSZ: [libjvm.so+0x39c941], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGILL: [libjvm.so+0x48008d], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO SIGUSR2: [libjvm.so+0x39ca7d], sa_mask[0]=00000000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none --------------- S Y S T E M --------------- OS:NAME=Buildroot VERSION=2017.08 ID=buildroot VERSION_ID=2017.08 PRETTY_NAME="Buildroot 2017.08" uname:Linux 3.3.0 #125 SMP PREEMPT Fri Feb 5 07:04:03 CST 2021 armv7l libc:glibc 2.18 NPTL 2.18 rlimit: STACK 8192k, CORE infinity, NPROC 6317, NOFILE 4096, AS infinity, DATA infinity, FSIZE infinity load average:0.01 0.11 0.24 /proc/meminfo: MemTotal: 814012 kB MemFree: 16904 kB Buffers: 39124 kB Cached: 681976 kB SwapCached: 0 kB Active: 349288 kB Inactive: 406504 kB Active(anon): 46852 kB Inactive(anon): 636 kB Active(file): 302436 kB Inactive(file): 405868 kB Unevictable: 12136 kB Mlocked: 0 kB HighTotal: 270336 kB HighFree: 576 kB LowTotal: 543676 kB LowFree: 16328 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 4216 kB Writeback: 0 kB AnonPages: 46856 kB Mapped: 17836 kB Shmem: 660 kB Slab: 22584 kB SReclaimable: 18176 kB SUnreclaim: 4408 kB KernelStack: 744 kB PageTables: 580 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 407004 kB Committed_AS: 146396 kB VmallocTotal: 245760 kB VmallocUsed: 5276 kB VmallocChunk: 212992 kB /proc/sys/kernel/threads-max (system-wide limit on the number of threads): 12635 /proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 65530 /proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 32768 CPU:total 2 (initial active 2) (ARMv7), vfp /proc/cpuinfo: Processor : ARMv7 Processor rev 4 (v7l) processor : 0 BogoMIPS : 1810.43 processor : 1 BogoMIPS : 1823.53 Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 4 Hardware : sun7i Revision : 0000 Serial : 07c1120f5552484880758685165166cb Memory: 4k page, physical 814012k(16904k free), swap 0k(0k free) vm_info: OpenJDK Client VM (11-internal+0-adhoc.johnc.jdk11) for linux--vfp-hflt JRE (11-internal+0-adhoc.johnc.jdk11), built on Oct 8 2021 08:33:33 by "johnc" with gcc 4.8.5 END. jdk/jdk11: log - OpenJDK Mercurial Repositories age author description; Wed, 22 Aug 2018 21:50:12 +0200: jwilhelm: Added tag jdk-11+28 for changeset 76072a077ee1 default tip: Tue, 21 Aug 2018 12:48:10 -0700: jjg: 8209806: API docs should be updated to refer to javase11 jdk-11+28: Tue, 21 Aug 2018 11:30:48 -0700 hg.openjdk.java.net ? ? The information contained in this message may be privileged, confidential, and protected from disclosure. If the reader of this message is not the intended recipient, or any employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message and deleting it from your computer. Thank you. From mcimadamore at openjdk.java.net Fri Oct 8 21:32:12 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 8 Oct 2021 21:32:12 GMT Subject: RFR: 8268129: LibraryLookup::ofDefault leaks symbols from loaded libraries In-Reply-To: <-Sgl3wbFP-k2nDAbFsX3fZ9vs_7-Fno-FeyThJ_VBDY=.a6da9845-64ab-4bdf-bd0e-fd8c4ba77da7@github.com> References: <1RwBnwfTi0XsUzPYQHKHTZ7jxgkhgsJfEG28Q33RahA=.6a992ad3-b289-4c93-9dc9-72a948f67581@github.com> <-Sgl3wbFP-k2nDAbFsX3fZ9vs_7-Fno-FeyThJ_VBDY=.a6da9845-64ab-4bdf-bd0e-fd8c4ba77da7@github.com> Message-ID: On Fri, 8 Oct 2021 04:43:08 GMT, Cheng Jin wrote: > So I am wondering what happened to the system lookup in such case given there should be no fundamental difference in leveraging `NativeLibraries` (I assume the library loading in OpenJDK16 & 17 is the same at this point) unless there is something else new in OpenJDK17 I am unaware of (e.g. the changes in `Lib.gmk` or `lib-std.m4`, or a custom system lookup is required on AIX, etc). Thanks. In 17, SystemLookup loads a specific library that is generated at build time - which contains all the c stdlib symbols. That's what the Lib.gmk changes are for. What I suspect is that the library is not generated at all, or not correctly on AIX, which then causes the system lookup to misbehave. I would start by double checking that you have a file like this: /lib/libsyslookup.so And then, if the library exists, check that it has the right dependency; on my linux it's an empty library, but which depends on libc, libm and libdl: ldd lib/libsyslookup.so linux-vdso.so.1 (0x00007fff2bdf7000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f35f1def000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f35f1ca0000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f35f1c9a000) ------------- PR: https://git.openjdk.java.net/jdk/pull/4316 From github.com+18036229+chengjin01 at openjdk.java.net Fri Oct 8 21:49:10 2021 From: github.com+18036229+chengjin01 at openjdk.java.net (Cheng Jin) Date: Fri, 8 Oct 2021 21:49:10 GMT Subject: RFR: 8268129: LibraryLookup::ofDefault leaks symbols from loaded libraries In-Reply-To: References: <1RwBnwfTi0XsUzPYQHKHTZ7jxgkhgsJfEG28Q33RahA=.6a992ad3-b289-4c93-9dc9-72a948f67581@github.com> <-Sgl3wbFP-k2nDAbFsX3fZ9vs_7-Fno-FeyThJ_VBDY=.a6da9845-64ab-4bdf-bd0e-fd8c4ba77da7@github.com> Message-ID: On Fri, 8 Oct 2021 21:29:19 GMT, Maurizio Cimadamore wrote: >> Hi @mcimadamore, >> >> As you mentioned at https://github.com/openjdk/jdk/pull/4316#issuecomment-853238872, the system lookup is supported by the underlying `NativeLibraries` which also works on OpenJDK16 to support `LibraryLookup::ofDefault`. >> >> But my finding is that it `LibraryLookup::ofDefault` works good on AIX (with `libc.a`) in OpenJDK16 but `CLinker.systemLookup()` ended up with `NoSuchElementException` after changing the code in `SystemLookup.java` and `CABI.java` as follows: >> >> private static final SymbolLookup syslookup = switch (CABI.current()) { >> case SysV, LinuxAArch64, MacOsAArch64, AIX -> libLookup(libs -> libs.loadLibrary("syslookup")); >> case Win64 -> makeWindowsLookup(); // out of line to workaround javac crash >> }; >> >> with a simple test & output: >> >> import jdk.incubator.foreign.CLinker; >> import static jdk.incubator.foreign.CLinker.*; >> import jdk.incubator.foreign.SymbolLookup; >> import jdk.incubator.foreign.Addressable; >> >> public class Test { >> private static CLinker clinker = CLinker.getInstance(); >> private static final SymbolLookup defaultLibLookup = CLinker.systemLookup(); >> >> public static void main(String args[]) throws Throwable { >> Addressable strlenSymbol = defaultLibLookup.lookup("strlen").get(); >> } >> } >> >> bin/java --enable-native-access=ALL-UNNAMED --add-modules jdk.incubator.foreign -Dforeign.restricted=permit Test >> WARNING: Using incubator modules: jdk.incubator.foreign >> Exception in thread "main" java.util.NoSuchElementException: No value present <----- >> at java.base/java.util.Optional.get(Optional.java:143) >> at Test.main(Test.java:11) >> >> >> So I am wondering what happened to the system lookup in such case given there should be no fundamental difference in leveraging `NativeLibraries` (I assume the library loading in OpenJDK16 & 17 is the same at this point) unless there is something else new in OpenJDK17 I am unaware of (e.g. the changes in `Lib.gmk` or `lib-std.m4`, or a custom system lookup is required on AIX, etc). Thanks. > >> So I am wondering what happened to the system lookup in such case given there should be no fundamental difference in leveraging `NativeLibraries` (I assume the library loading in OpenJDK16 & 17 is the same at this point) unless there is something else new in OpenJDK17 I am unaware of (e.g. the changes in `Lib.gmk` or `lib-std.m4`, or a custom system lookup is required on AIX, etc). Thanks. > > In 17, SystemLookup loads a specific library that is generated at build time - which contains all the c stdlib symbols. That's what the Lib.gmk changes are for. What I suspect is that the library is not generated at all, or not correctly on AIX, which then causes the system lookup to misbehave. > > I would start by double checking that you have a file like this: > > /lib/libsyslookup.so > > And then, if the library exists, check that it has the right dependency; on my linux it's an empty library, but which depends on libc, libm and libdl: > > > ldd lib/libsyslookup.so > linux-vdso.so.1 (0x00007fff2bdf7000) > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f35f1def000) > libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f35f1ca0000) > libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f35f1c9a000) Hi @mcimadamore, Here's output of `libsyslookup.so` on AIX: $ ldd ./lib/libsyslookup.so ./lib/libsyslookup.so needs: <--- nothing here $ whereis libc libc: /usr/lib/libc.a /usr/lib/libc128.a /usr/ccs/lib/libc.a So it is high likely that there were no dependencies in this generated library. > perhaps on AIX something similar to what we did for Windows [1] would be better. That's what I thought to be the only way around but might need to figure out the specifics on AIX. ------------- PR: https://git.openjdk.java.net/jdk/pull/4316 From shade at redhat.com Sat Oct 9 05:58:04 2021 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 9 Oct 2021 07:58:04 +0200 Subject: Unable to build Client/Server variant for OpenJDK-11 on ARMv7-A In-Reply-To: References: Message-ID: Hi, This does not look a build issue per se, but rather a Hotspot bug. On 10/8/21 7:46 PM, John Cummings wrote: > I am using the source from https://hg.openjdk.java.net/jdk/jdk11. This is an extremely old JDK 11 tree. The most actual one is here: https://github.com/openjdk/jdk11u-dev/ FWIW, ARM32 builds from that repo work for me on RPi 4: https://builds.shipilev.net/openjdk-jdk11-dev/ > I am at the point where I am unsure where to proceed or what to change, and haven't been able to > find a solution anywhere thus far to build a client version of OpenJDK-11. If there's any > additional information I can/should provide, please let me know. Additional things to try: *) Build fastdebug, trying to see if any VM assert is triggered; pass --with-debug-level=fastdebug to configure *) Build/test the JDK mainline (https://github.com/openjdk/jdk/), trying to see if this is a fixed issue that is missing a 11u backport *) Trim down --with-extra-cflags and --with-extra-cxxflags, looking for some special flag that triggers the bug There were plenty of ARM32 bugs fixed (backported) in 11u, but I also see some that are only fixed in later JDKs, for example: https://bugs.openjdk.java.net/browse/JDK-8222825 -- Thanks, -Aleksey From jiefu at openjdk.java.net Sun Oct 10 13:12:19 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Sun, 10 Oct 2021 13:12:19 GMT Subject: RFR: 8275008: gtest build failure due to stringop-overflow warning with gcc11 Message-ID: Hi all, gtest build fails due to stringop-overflow warning with gcc11. This is because gcc11 seems to be smart enough to detect the following stringop-overflow at test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11. * For target hotspot_variant-server_libjvm_gtest_objs_test_guardedMemory.o: In file included from /usr/include/string.h:495, from /home/jdk/src/hotspot/share/utilities/globalDefinitions_gcc.hpp:35, from /home/jdk/src/hotspot/share/utilities/globalDefinitions.hpp:35, from /home/jdk/src/hotspot/share/memory/allocation.hpp:29, from /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:25: In function 'void* memset(void*, int, size_t)', inlined from 'virtual void GuardedMemory_buffer_overrun_tail_Test::TestBody()' at /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11: ------------- Commit messages: - Update copyright year - 8275008: gtest build failure due to stringop-overflow warning with gcc11 Changes: https://git.openjdk.java.net/jdk/pull/5881/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5881&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8275008 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jdk/pull/5881.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5881/head:pull/5881 PR: https://git.openjdk.java.net/jdk/pull/5881 From serb at openjdk.java.net Sun Oct 10 23:36:14 2021 From: serb at openjdk.java.net (Sergey Bylokhov) Date: Sun, 10 Oct 2021 23:36:14 GMT Subject: RFR: 8272167: AbsPathsInImage.java should skip *.dSYM directories Message-ID: This fix changes the AbsPathsInImage test to skip *.dSYM directories. ------------- Commit messages: - Update AbsPathsInImage.java Changes: https://git.openjdk.java.net/jdk/pull/5885/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5885&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8272167 Stats: 11 lines in 1 file changed: 9 ins; 1 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/5885.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5885/head:pull/5885 PR: https://git.openjdk.java.net/jdk/pull/5885 From dholmes at openjdk.java.net Mon Oct 11 00:50:07 2021 From: dholmes at openjdk.java.net (David Holmes) Date: Mon, 11 Oct 2021 00:50:07 GMT Subject: RFR: 8275008: gtest build failure due to stringop-overflow warning with gcc11 In-Reply-To: References: Message-ID: <6sK-nSHp3y89v1lQSX0p7EI4ZH1QF9WKp0OUwZDJLQ4=.da28c120-05db-4000-aafa-7e9937e4f374@github.com> On Sun, 10 Oct 2021 13:05:40 GMT, Jie Fu wrote: > Hi all, > > gtest build fails due to stringop-overflow warning with gcc11. > > This is because gcc11 seems to be smart enough to detect the following stringop-overflow at test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11. > > * For target hotspot_variant-server_libjvm_gtest_objs_test_guardedMemory.o: > In file included from /usr/include/string.h:495, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions_gcc.hpp:35, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions.hpp:35, > from /home/jdk/src/hotspot/share/memory/allocation.hpp:29, > from /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:25: > In function 'void* memset(void*, int, size_t)', > inlined from 'virtual void GuardedMemory_buffer_overrun_tail_Test::TestBody()' at /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11: Hi Jie, Can we not just disable the warning in this specific test? Thanks, David ------------- PR: https://git.openjdk.java.net/jdk/pull/5881 From david.holmes at oracle.com Mon Oct 11 01:22:25 2021 From: david.holmes at oracle.com (David Holmes) Date: Mon, 11 Oct 2021 11:22:25 +1000 Subject: Unable to build Client/Server variant for OpenJDK-11 on ARMv7-A In-Reply-To: References: Message-ID: <618eb555-c987-6f25-ab8c-2143900d6c5c@oracle.com> On 9/10/2021 3:58 pm, Aleksey Shipilev wrote: > Hi, > > This does not look a build issue per se, but rather a Hotspot bug. The SIGILL in ThreadGroup.add looks to me like an issue with atomic operations as that is the first synchronized method that gets executed during VM initialization. David ----- > On 10/8/21 7:46 PM, John Cummings wrote: >> I am using the source from https://hg.openjdk.java.net/jdk/jdk11. > > This is an extremely old JDK 11 tree. The most actual one is here: > ? https://github.com/openjdk/jdk11u-dev/ > > FWIW, ARM32 builds from that repo work for me on RPi 4: > ? https://builds.shipilev.net/openjdk-jdk11-dev/ > >> I am at the point where I am unsure where to proceed or what to >> change, and haven't been able to >> find a solution anywhere thus far to build a client version of >> OpenJDK-11. If there's any >> additional information I can/should provide, please let me know. > > Additional things to try: > ?*) Build fastdebug, trying to see if any VM assert is triggered; pass > --with-debug-level=fastdebug to configure > ?*) Build/test the JDK mainline (https://github.com/openjdk/jdk/), > trying to see if this is a fixed issue that is missing a 11u backport > ?*) Trim down --with-extra-cflags and --with-extra-cxxflags, looking > for some special flag that triggers the bug > > There were plenty of ARM32 bugs fixed (backported) in 11u, but I also > see some that are only fixed in later JDKs, for example: > ? https://bugs.openjdk.java.net/browse/JDK-8222825 > From jiefu at openjdk.java.net Mon Oct 11 02:04:06 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Mon, 11 Oct 2021 02:04:06 GMT Subject: RFR: 8275008: gtest build failure due to stringop-overflow warning with gcc11 In-Reply-To: <6sK-nSHp3y89v1lQSX0p7EI4ZH1QF9WKp0OUwZDJLQ4=.da28c120-05db-4000-aafa-7e9937e4f374@github.com> References: <6sK-nSHp3y89v1lQSX0p7EI4ZH1QF9WKp0OUwZDJLQ4=.da28c120-05db-4000-aafa-7e9937e4f374@github.com> Message-ID: On Mon, 11 Oct 2021 00:47:38 GMT, David Holmes wrote: > Hi Jie, > > Can we not just disable the warning in this specific test? > > Thanks, David Thanks @dholmes-ora for your review. According to this comment [1], gtest source code warnings are disabled in build script. Maybe, it would be better to also follow that style here. What do you think? Thanks. [1] https://github.com/openjdk/jdk/blob/master/make/hotspot/lib/CompileGtest.gmk#L84 ------------- PR: https://git.openjdk.java.net/jdk/pull/5881 From dholmes at openjdk.java.net Mon Oct 11 02:38:07 2021 From: dholmes at openjdk.java.net (David Holmes) Date: Mon, 11 Oct 2021 02:38:07 GMT Subject: RFR: 8275008: gtest build failure due to stringop-overflow warning with gcc11 In-Reply-To: References: Message-ID: On Sun, 10 Oct 2021 13:05:40 GMT, Jie Fu wrote: > Hi all, > > gtest build fails due to stringop-overflow warning with gcc11. > > This is because gcc11 seems to be smart enough to detect the following stringop-overflow at test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11. > > * For target hotspot_variant-server_libjvm_gtest_objs_test_guardedMemory.o: > In file included from /usr/include/string.h:495, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions_gcc.hpp:35, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions.hpp:35, > from /home/jdk/src/hotspot/share/memory/allocation.hpp:29, > from /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:25: > In function 'void* memset(void*, int, size_t)', > inlined from 'virtual void GuardedMemory_buffer_overrun_tail_Test::TestBody()' at /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11: Okay. Seems a bit heavy handed to disable across all gtests but okay. Thanks, David ------------- Marked as reviewed by dholmes (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5881 From ihse at openjdk.java.net Mon Oct 11 10:27:16 2021 From: ihse at openjdk.java.net (Magnus Ihse Bursie) Date: Mon, 11 Oct 2021 10:27:16 GMT Subject: RFR: 8275008: gtest build failure due to stringop-overflow warning with gcc11 In-Reply-To: References: Message-ID: On Sun, 10 Oct 2021 13:05:40 GMT, Jie Fu wrote: > Hi all, > > gtest build fails due to stringop-overflow warning with gcc11. > > This is because gcc11 seems to be smart enough to detect the following stringop-overflow at test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11. > > * For target hotspot_variant-server_libjvm_gtest_objs_test_guardedMemory.o: > In file included from /usr/include/string.h:495, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions_gcc.hpp:35, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions.hpp:35, > from /home/jdk/src/hotspot/share/memory/allocation.hpp:29, > from /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:25: > In function 'void* memset(void*, int, size_t)', > inlined from 'virtual void GuardedMemory_buffer_overrun_tail_Test::TestBody()' at /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11: Marked as reviewed by ihse (Reviewer). We do not currently have a way to disable warnings for individual files in a library. The only other way to disable warnings for a specific place is to use `#pragma`. Looks good. ------------- PR: https://git.openjdk.java.net/jdk/pull/5881 From ihse at openjdk.java.net Mon Oct 11 10:29:07 2021 From: ihse at openjdk.java.net (Magnus Ihse Bursie) Date: Mon, 11 Oct 2021 10:29:07 GMT Subject: RFR: 8272167: AbsPathsInImage.java should skip *.dSYM directories In-Reply-To: References: Message-ID: <9UCf36XPcKKByvcTCRmiZWom-xxdweQL_tnnyMELIx8=.f047a355-0188-4967-88b3-efffe44ba4c8@github.com> On Sun, 10 Oct 2021 22:35:40 GMT, Sergey Bylokhov wrote: > This fix changes the AbsPathsInImage test to skip *.dSYM directories. LGTM ------------- Marked as reviewed by ihse (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5885 From jiefu at openjdk.java.net Mon Oct 11 10:55:14 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Mon, 11 Oct 2021 10:55:14 GMT Subject: RFR: 8275008: gtest build failure due to stringop-overflow warning with gcc11 In-Reply-To: References: Message-ID: <70xGJj61b0-h2XdMcRAXFHVVUIlHJSvedrCAY-gqNSA=.e590f702-f135-4bc5-b8c5-fceb58110f68@github.com> On Mon, 11 Oct 2021 02:35:20 GMT, David Holmes wrote: >> Hi all, >> >> gtest build fails due to stringop-overflow warning with gcc11. >> >> This is because gcc11 seems to be smart enough to detect the following stringop-overflow at test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11. >> >> * For target hotspot_variant-server_libjvm_gtest_objs_test_guardedMemory.o: >> In file included from /usr/include/string.h:495, >> from /home/jdk/src/hotspot/share/utilities/globalDefinitions_gcc.hpp:35, >> from /home/jdk/src/hotspot/share/utilities/globalDefinitions.hpp:35, >> from /home/jdk/src/hotspot/share/memory/allocation.hpp:29, >> from /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:25: >> In function 'void* memset(void*, int, size_t)', >> inlined from 'virtual void GuardedMemory_buffer_overrun_tail_Test::TestBody()' at /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11: > > Okay. Seems a bit heavy handed to disable across all gtests but okay. > > Thanks, > David Thanks @dholmes-ora and @magicus . ------------- PR: https://git.openjdk.java.net/jdk/pull/5881 From jiefu at openjdk.java.net Mon Oct 11 10:55:14 2021 From: jiefu at openjdk.java.net (Jie Fu) Date: Mon, 11 Oct 2021 10:55:14 GMT Subject: Integrated: 8275008: gtest build failure due to stringop-overflow warning with gcc11 In-Reply-To: References: Message-ID: <40WH0u7GwlfHC_Wx6MaqIc9szcYyt4EI5UMk-Ev5GbU=.4ca4ed89-1957-4e29-aa78-8dc3a93ec424@github.com> On Sun, 10 Oct 2021 13:05:40 GMT, Jie Fu wrote: > Hi all, > > gtest build fails due to stringop-overflow warning with gcc11. > > This is because gcc11 seems to be smart enough to detect the following stringop-overflow at test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11. > > * For target hotspot_variant-server_libjvm_gtest_objs_test_guardedMemory.o: > In file included from /usr/include/string.h:495, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions_gcc.hpp:35, > from /home/jdk/src/hotspot/share/utilities/globalDefinitions.hpp:35, > from /home/jdk/src/hotspot/share/memory/allocation.hpp:29, > from /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:25: > In function 'void* memset(void*, int, size_t)', > inlined from 'virtual void GuardedMemory_buffer_overrun_tail_Test::TestBody()' at /home/jdk/test/hotspot/gtest/memory/test_guardedMemory.cpp:125:11: This pull request has now been integrated. Changeset: c55dd365 Author: Jie Fu URL: https://git.openjdk.java.net/jdk/commit/c55dd365e3463670697b09de0ff70877203e5a69 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod 8275008: gtest build failure due to stringop-overflow warning with gcc11 Reviewed-by: dholmes, ihse ------------- PR: https://git.openjdk.java.net/jdk/pull/5881 From erikj at openjdk.java.net Mon Oct 11 13:02:10 2021 From: erikj at openjdk.java.net (Erik Joelsson) Date: Mon, 11 Oct 2021 13:02:10 GMT Subject: RFR: 8272167: AbsPathsInImage.java should skip *.dSYM directories In-Reply-To: References: Message-ID: On Sun, 10 Oct 2021 22:35:40 GMT, Sergey Bylokhov wrote: > This fix changes the AbsPathsInImage test to skip *.dSYM directories. Thanks for fixing this! ------------- Marked as reviewed by erikj (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5885 From mdoerr at openjdk.java.net Mon Oct 11 18:28:56 2021 From: mdoerr at openjdk.java.net (Martin Doerr) Date: Mon, 11 Oct 2021 18:28:56 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v3] In-Reply-To: References: Message-ID: <4dGhPv7DKhCFo7EdlOW5AmNHgmTsI9gR_ExPcRqb6wM=.008ec779-aeba-4f0f-97f6-5e04ca8f4ed0@github.com> On Fri, 8 Oct 2021 15:41:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with three additional commits since the last revision: > > - Remove superfluous copyright change > - Fix predicate conditions > - Add ByteSize constructor to Address Thanks for doing the requested fixes. LGTM. ------------- Marked as reviewed by mdoerr (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/5842 From nradomski at openjdk.java.net Mon Oct 11 20:18:54 2021 From: nradomski at openjdk.java.net (Niklas Radomski) Date: Mon, 11 Oct 2021 20:18:54 GMT Subject: RFR: 8274851: [PPC64] Port zgc to linux on ppc64le [v3] In-Reply-To: References: Message-ID: <1R7fNrUlVve0iCeLPoSqdffRJzwjNMBjv7ELUcE3fNc=.bbc9ad55-a976-4129-9da0-dad205a7a50a@github.com> On Fri, 8 Oct 2021 15:41:47 GMT, Niklas Radomski wrote: >> Port the Z garbage collector ([JDK-8209683](https://bugs.openjdk.java.net/browse/JDK-8209683)) to linux on ppc64le. > > Niklas Radomski has updated the pull request incrementally with three additional commits since the last revision: > > - Remove superfluous copyright change > - Fix predicate conditions > - Add ByteSize constructor to Address Thank you for your reviews! Glad to see that the changes have been so well received. ------------- PR: https://git.openjdk.java.net/jdk/pull/5842 From serb at openjdk.java.net Tue Oct 12 00:16:52 2021 From: serb at openjdk.java.net (Sergey Bylokhov) Date: Tue, 12 Oct 2021 00:16:52 GMT Subject: Integrated: 8272167: AbsPathsInImage.java should skip *.dSYM directories In-Reply-To: References: Message-ID: <6-mJeovfN2GH8WN1FlaskTKKDJw3YO82Un5Aq-ayLvs=.c4432247-2093-49b2-8a38-9ccbb49eeeef@github.com> On Sun, 10 Oct 2021 22:35:40 GMT, Sergey Bylokhov wrote: > This fix changes the AbsPathsInImage test to skip *.dSYM directories. This pull request has now been integrated. Changeset: dd93c6e2 Author: Sergey Bylokhov URL: https://git.openjdk.java.net/jdk/commit/dd93c6e27b66acebb221583fd28d03c65bfc1f24 Stats: 11 lines in 1 file changed: 9 ins; 1 del; 1 mod 8272167: AbsPathsInImage.java should skip *.dSYM directories Reviewed-by: ihse, erikj ------------- PR: https://git.openjdk.java.net/jdk/pull/5885 From joe.darcy at oracle.com Tue Oct 12 04:47:34 2021 From: joe.darcy at oracle.com (Joseph D. Darcy) Date: Mon, 11 Oct 2021 21:47:34 -0700 Subject: RFR: 8274083: Update testing docs to mention tiered testing [v5] In-Reply-To: References: Message-ID: On 9/23/2021 11:00 PM, Alan Bateman wrote: > On Thu, 23 Sep 2021 12:53:23 GMT, Aleksey Shipilev wrote: > >>> Now that OpenJDK has more or less complete `tier{1,2,3,4}` definitions, let's mention them in `testing.md`. >>> >>> Current patch is my braindump, I am open for suggestions :) >> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: >> >> More fixes > Marked as reviewed by alanb (Reviewer). > > doc/testing.html line 80: > >> 78: