Re: [Ping2?] [8u] RFR: 8210283: Support git as an SCM alternative in the build

2022-02-14 Thread Andrew Hughes
On 14:09 Thu 10 Feb , Severin Gehwolf wrote:
> 
> Latest webrev:
> https://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8210283/02/webrev/
> 
> OK?
> 
> Thanks,
> Severin
> 

This looks fine. Please flag for approval.

Thanks,
-- 
Andrew :)
Pronouns: he / him or they / them
Senior Free Java Software Engineer
OpenJDK Package Owner
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null [v4]

2022-02-14 Thread Tim Prinzing
> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

Tim Prinzing has updated the pull request incrementally with one additional 
commit since the last revision:

  remove excess description

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7447/files
  - new: https://git.openjdk.java.net/jdk/pull/7447/files/c803a93b..7d1b97fe

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=7447=03
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=7447=02-03

  Stats: 2 lines in 1 file changed: 0 ins; 1 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7447.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7447/head:pull/7447

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: 8203290: [AIX] Check functionality of JDK-8199712 (Flight Recorder) [v21]

2022-02-14 Thread Tyler Steele
On Mon, 14 Feb 2022 23:44:40 GMT, Tyler Steele  wrote:

>> Just in time for the holidays I have completed an implementation of the JFR 
>> functionality for AIX. As a side note, this is my first submission to 
>> OpenJDK 
>> 
>> ### Implementation notes and alternatives considered
>> 
>> After modifying the build system to allow the --enable-jvm-feature-jfr to 
>> work on AIX, my task was to implement the interfaces from os_perf.hpp. The 
>> os_perf_aix.cpp implementation that existed was, I believe, a copy of the 
>> Linux implementation. A review of the code in that file showed that 
>> NetworkInterface, CPUPerformanceInterface, and SystemProcessInterface would 
>> require modification to work on AIX. Using the Linux implementation as a 
>> guide, I initially expected to use files from the aix procfs like 
>> /proc//psinfo, and /proc//status in a manner similar to the Linux 
>> implementation. However, I ended up using libperfstat for all functionality 
>> required by the interfaces.
>> 
>> ### Testing
>> 
>> Testing for JFR seems to be quite light in the repo both before and after 
>> this change. In addition to performing manual testing, I have added some 
>> basic sanity checks that ensure events can be created and committed (using 
>> jtreg), and performs some basic checks on the results of the interface 
>> member functions (using gtest).
>> 
>> ### More notes
>> 
>> I've sent an email to the JFR group about a TOC overflow warning I 
>> encountered while building (for the release server target). I believe the 
>> fix is to pass -qpic=large when using the xlc toolchain, but my 
>> modifications to flags-cflags.m4 have not been successful in removing this 
>> warning.
>
> Tyler Steele has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains eight commits:
> 
>  - Adds Oracle & IBM copyrights as per guidance from IBM legal team.
>  - Removes incorrect Oracle copyright line from libperfstat_aix.cpp/hpp, and 
> loadlib_aix.hpp
>  - Edit thread_aix.cpp to match thread_linux.cpp in 
> pd_get_top_fram_for_profiling and ...for_signal_handler
>  - Addresses issues from review and other sm fixes
>
>- Adds commenting in regards to memory handling by SystemProcess &
>NetworkInterface classes
>- Replaces explicit initialization and copy of structs with memcpy
>and memset as appropriate
>- Renames internal struct definitions in os_perf_aix
>- Other minor fixes
>  - Changes macoss -> macosx in problem list
>  - Refactors loadlib_aix: Removes redundant c++ class
>  - Merge branch 'master' into JDK-8203290
>  - Implements JFR on AIX
>
>- Implements interfaces from os_perf.hpp in os_perf_aix.cpp
>- Updates libperfstat_aix to contain functionality needed by os_perf_aix
>- Implements missing functionality in loadlib_aix (Fixes failure noted
>by TestNativeLibraies.java)
>- Removes platform checks for --enable-feature-jfr (Now enable-able on
>all platforms)
>- Enables TestNetworkUtilizationEvent.java which now passes on AIX
>- Updates AIX JavaThread::pd_get_top_frame_for_profiling with changes from 
> Linux

Updated to remove IBM from the copyright header when only a small change to the 
file took place. I am ready to integrate, but I will leave it open for a day or 
so to allow for any more comments.

-

PR: https://git.openjdk.java.net/jdk/pull/6885


Re: RFR: 8203290: [AIX] Check functionality of JDK-8199712 (Flight Recorder) [v20]

2022-02-14 Thread Tyler Steele
On Mon, 14 Feb 2022 17:11:12 GMT, Thomas Stuefe  wrote:

>> make/autoconf/jvm-features.m4 line 3:
>> 
>>> 1: #
>>> 2: # Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights 
>>> reserved.
>>> 3: # Copyright (c) 2022, IBM Corp.
>> 
>> I understand the discussion about copyright lines has plagued this PR, but 
>> this really looks odd: adding an IBM copyright line when just removing code. 
>> That does not make sense to me.
>
> +1 Removing code does not add anything copyrightable; I'd remove that 
> copyright line.

I agree. I no longer add the IBM copyright for files where a one line change, 
or only removals took place.

-

PR: https://git.openjdk.java.net/jdk/pull/6885


Re: RFR: 8203290: [AIX] Check functionality of JDK-8199712 (Flight Recorder) [v21]

2022-02-14 Thread Tyler Steele
> Just in time for the holidays I have completed an implementation of the JFR 
> functionality for AIX. As a side note, this is my first submission to OpenJDK 
> 
> 
> ### Implementation notes and alternatives considered
> 
> After modifying the build system to allow the --enable-jvm-feature-jfr to 
> work on AIX, my task was to implement the interfaces from os_perf.hpp. The 
> os_perf_aix.cpp implementation that existed was, I believe, a copy of the 
> Linux implementation. A review of the code in that file showed that 
> NetworkInterface, CPUPerformanceInterface, and SystemProcessInterface would 
> require modification to work on AIX. Using the Linux implementation as a 
> guide, I initially expected to use files from the aix procfs like 
> /proc//psinfo, and /proc//status in a manner similar to the Linux 
> implementation. However, I ended up using libperfstat for all functionality 
> required by the interfaces.
> 
> ### Testing
> 
> Testing for JFR seems to be quite light in the repo both before and after 
> this change. In addition to performing manual testing, I have added some 
> basic sanity checks that ensure events can be created and committed (using 
> jtreg), and performs some basic checks on the results of the interface member 
> functions (using gtest).
> 
> ### More notes
> 
> I've sent an email to the JFR group about a TOC overflow warning I 
> encountered while building (for the release server target). I believe the fix 
> is to pass -qpic=large when using the xlc toolchain, but my modifications to 
> flags-cflags.m4 have not been successful in removing this warning.

Tyler Steele has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains eight commits:

 - Adds Oracle & IBM copyrights as per guidance from IBM legal team.
 - Removes incorrect Oracle copyright line from libperfstat_aix.cpp/hpp, and 
loadlib_aix.hpp
 - Edit thread_aix.cpp to match thread_linux.cpp in 
pd_get_top_fram_for_profiling and ...for_signal_handler
 - Addresses issues from review and other sm fixes
   
   - Adds commenting in regards to memory handling by SystemProcess &
   NetworkInterface classes
   - Replaces explicit initialization and copy of structs with memcpy
   and memset as appropriate
   - Renames internal struct definitions in os_perf_aix
   - Other minor fixes
 - Changes macoss -> macosx in problem list
 - Refactors loadlib_aix: Removes redundant c++ class
 - Merge branch 'master' into JDK-8203290
 - Implements JFR on AIX
   
   - Implements interfaces from os_perf.hpp in os_perf_aix.cpp
   - Updates libperfstat_aix to contain functionality needed by os_perf_aix
   - Implements missing functionality in loadlib_aix (Fixes failure noted
   by TestNativeLibraies.java)
   - Removes platform checks for --enable-feature-jfr (Now enable-able on
   all platforms)
   - Enables TestNetworkUtilizationEvent.java which now passes on AIX
   - Updates AIX JavaThread::pd_get_top_frame_for_profiling with changes from 
Linux

-

Changes: https://git.openjdk.java.net/jdk/pull/6885/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk=6885=20
  Stats: 1231 lines in 10 files changed: 461 ins; 502 del; 268 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6885.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6885/head:pull/6885

PR: https://git.openjdk.java.net/jdk/pull/6885


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null [v3]

2022-02-14 Thread Tim Prinzing
> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

Tim Prinzing has updated the pull request incrementally with one additional 
commit since the last revision:

  missing dot

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7447/files
  - new: https://git.openjdk.java.net/jdk/pull/7447/files/02d00ecb..c803a93b

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=7447=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=7447=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7447.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7447/head:pull/7447

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null [v2]

2022-02-14 Thread Tim Prinzing
> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

Tim Prinzing has updated the pull request incrementally with one additional 
commit since the last revision:

  Changes from feedback.
  
  - Improved javadoc.
  - Single copyright date in new files.
  - Informative string in exception that is thrown.
  - Shortened the test name.

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7447/files
  - new: https://git.openjdk.java.net/jdk/pull/7447/files/1bb6316f..02d00ecb

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=7447=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=7447=00-01

  Stats: 152 lines in 5 files changed: 77 ins; 70 del; 5 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7447.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7447/head:pull/7447

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread John R Rose
On Mon, 14 Feb 2022 18:10:37 GMT, Alan Bateman  wrote:

>> `MethodHandles::publicLookup` can be called instead to get a public Lookup 
>> to invoke a method with a Lookup parameter.   The dilemma here is whether 
>> the API should be made null-caller friendly or using a proper API 
>> `MethodHandles::publicLookup` for such case.
>
> You are right. If a JNI attached thread with no Java frames wants a Lookup 
> then it can invoke publicLookup. I think the proposal here is good.

Agreed.  In this case there is no caller and any kind of fail-over to a 
designated caller would risk privilege escalation.  So we should throw.  I have 
no objection to throwing something more "diagnostic" than a NPE.

Arguably, JNI code is full-privileged, so someone might suggest, "just return a 
fully privileged lookup on some designated class".  But, even if such a class 
could be designated somehow (e.g., by rummaging down the  stack), handing out 
privileges on that class might be unexpected to the JNI author.  In fact, if 
the JNI code is working on behalf of a *low-privileged class* (whatever that 
means in context), then handing back a `Lookup` with higher privileges 
potentially leaks those privileges to the low-privileged class (depending on 
data flow, of course).  Trying to guess at a `Lookup` in this case would only 
create potential privilege escalations.  So we throw, and require the JNI 
programmer to say something clearer about their intentions.

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread John R Rose
On Fri, 11 Feb 2022 20:32:46 GMT, Tim Prinzing  wrote:

> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

Marked as reviewed by jrose (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Mandy Chung
On Fri, 11 Feb 2022 20:32:46 GMT, Tim Prinzing  wrote:

> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

This needs a CSR and the spec needs update.  

The test name could be shortened to 
`s/exeNullCallerMethodHandlesLookup/exeNullCallerLookup/`.

src/java.base/share/classes/java/lang/invoke/MethodHandles.java line 121:

> 119: Class c = Reflection.getCallerClass();
> 120: if (c == null) {
> 121: throw new IllegalCallerException();

Suggestion:

throw new IllegalCallerException("no caller frame");

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Mandy Chung
On Mon, 14 Feb 2022 18:28:09 GMT, Mandy Chung  wrote:

>> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null
>
> src/java.base/share/classes/java/lang/invoke/MethodHandles.java line 121:
> 
>> 119: Class c = Reflection.getCallerClass();
>> 120: if (c == null) {
>> 121: throw new IllegalCallerException();
> 
> Suggestion:
> 
> throw new IllegalCallerException("no caller frame");

The javadoc needs to be updated to specify this `IllegalCallerException` be 
thrown.


* @throws IllegalCallerException if there is no caller frame on the stack 
when called
* directly from a JNI attached thread

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Alan Bateman
On Fri, 11 Feb 2022 20:32:46 GMT, Tim Prinzing  wrote:

> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

test/jdk/java/lang/invoke/MethodHandles/exeNullCallerMethodHandlesLookup/NullCallerMethodHandlesLookupTest.java
 line 2:

> 1: /*
> 2:  * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights 
> reserved.

As this is a new file then I assume it should be 2022 only.

test/jdk/java/lang/invoke/MethodHandles/exeNullCallerMethodHandlesLookup/NullCallerMethodHandlesLookupTest.java
 line 48:

> 46: public class NullCallerMethodHandlesLookupTest {
> 47: public static void main(String[] args) throws IOException {
> 48: Path launcher = Paths.get(System.getProperty("test.nativepath"), 
> "NullCallerMethodHandlesLookupTest");

Path.of might be nicer here but doesn't matter.

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Alan Bateman
On Mon, 14 Feb 2022 18:03:45 GMT, Mandy Chung  wrote:

>> src/java.base/share/classes/java/lang/invoke/MethodHandles.java line 121:
>> 
>>> 119: Class c = Reflection.getCallerClass();
>>> 120: if (c == null) {
>>> 121: throw new IllegalCallerException();
>> 
>> Throwing ICE is probably okay here, I just wonder if there is any practical 
>> advantage to having it return publicLookup instead, e.g. is there any 
>> scenario where a JNI attached thread might want to invoke a method with a 
>> Lookup parameter?
>
> `MethodHandles::publicLookup` can be called instead to get a public Lookup to 
> invoke a method with a Lookup parameter.   The dilemma here is whether the 
> API should be made null-caller friendly or using a proper API 
> `MethodHandles::publicLookup` for such case.

You are right. If a JNI attached thread with no Java frames wants a Lookup then 
it can invoke publicLookup. I think the proposal here is good.

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Mandy Chung
On Mon, 14 Feb 2022 11:56:16 GMT, Alan Bateman  wrote:

>> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null
>
> src/java.base/share/classes/java/lang/invoke/MethodHandles.java line 121:
> 
>> 119: Class c = Reflection.getCallerClass();
>> 120: if (c == null) {
>> 121: throw new IllegalCallerException();
> 
> Throwing ICE is probably okay here, I just wonder if there is any practical 
> advantage to having it return publicLookup instead, e.g. is there any 
> scenario where a JNI attached thread might want to invoke a method with a 
> Lookup parameter?

`MethodHandles::publicLookup` can be called instead to get a public Lookup to 
invoke a method with a Lookup parameter.   The dilemma here is whether the API 
should be made null-caller friendly or using a proper API 
`MethodHandles::publicLookup` for such case.

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: 8246033: bin/print_config.js script uses nashorn jjs tool

2022-02-14 Thread Erik Joelsson
On Mon, 14 Feb 2022 16:23:20 GMT, Magnus Ihse Bursie  wrote:

> The print_config.js tool was written for Nashorn. With the removal of 
> Nashorn, this script serves no function and should be removed.

Marked as reviewed by erikj (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/7464


Re: RFR: 8203290: [AIX] Check functionality of JDK-8199712 (Flight Recorder) [v20]

2022-02-14 Thread Thomas Stuefe
On Mon, 14 Feb 2022 10:32:11 GMT, Magnus Ihse Bursie  wrote:

>> Tyler Steele has updated the pull request with a new target base due to a 
>> merge or a rebase. The pull request now contains ten commits:
>> 
>>  - Merge branch 'master' into JDK-8203290
>>  - Adds Oracle & IBM copyrights as per guidance from IBM legal team.
>>  - Removes incorrect Oracle copyright line from libperfstat_aix.cpp/hpp, and 
>> loadlib_aix.hpp
>>  - Edit thread_aix.cpp to match thread_linux.cpp in 
>> pd_get_top_fram_for_profiling and ...for_signal_handler
>>  - Addresses issues from review and other sm fixes
>>
>>- Adds commenting in regards to memory handling by SystemProcess &
>>NetworkInterface classes
>>- Replaces explicit initialization and copy of structs with memcpy
>>and memset as appropriate
>>- Renames internal struct definitions in os_perf_aix
>>- Other minor fixes
>>  - Changes macoss -> macosx in problem list
>>  - Refactors loadlib_aix: Removes redundant c++ class
>>  - Merge branch 'master' into JDK-8203290
>>  - Implements JFR on AIX
>>
>>- Implements interfaces from os_perf.hpp in os_perf_aix.cpp
>>- Updates libperfstat_aix to contain functionality needed by os_perf_aix
>>- Implements missing functionality in loadlib_aix (Fixes failure noted
>>by TestNativeLibraies.java)
>>- Removes platform checks for --enable-feature-jfr (Now enable-able on
>>all platforms)
>>- Enables TestNetworkUtilizationEvent.java which now passes on AIX
>>- Updates AIX JavaThread::pd_get_top_frame_for_profiling with changes 
>> from Linux
>
> make/autoconf/jvm-features.m4 line 3:
> 
>> 1: #
>> 2: # Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights 
>> reserved.
>> 3: # Copyright (c) 2022, IBM Corp.
> 
> I understand the discussion about copyright lines has plagued this PR, but 
> this really looks odd: adding an IBM copyright line when just removing code. 
> That does not make sense to me.

+1 Removing code does not add anything copyrightable; I'd remove that copyright 
line.

-

PR: https://git.openjdk.java.net/jdk/pull/6885


RFR: 8246033: bin/print_config.js script uses nashorn jjs tool

2022-02-14 Thread Magnus Ihse Bursie
The print_config.js tool was written for Nashorn. With the removal of Nashorn, 
this script serves no function and should be removed.

-

Commit messages:
 - 8246033: bin/print_config.js script uses nashorn jjs tool

Changes: https://git.openjdk.java.net/jdk/pull/7464/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk=7464=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8246033
  Stats: 45 lines in 1 file changed: 0 ins; 45 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7464.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7464/head:pull/7464

PR: https://git.openjdk.java.net/jdk/pull/7464


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Magnus Ihse Bursie
On Fri, 11 Feb 2022 20:32:46 GMT, Tim Prinzing  wrote:

> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

Build changes are OK

-

Marked as reviewed by ihse (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: JDK-8281000 ClassLoader::registerAsParallelCapable throws NPE if caller is null

2022-02-14 Thread Magnus Ihse Bursie
On Fri, 11 Feb 2022 20:36:26 GMT, Tim Prinzing  wrote:

> JDK-8281000 ClassLoader::registerAsParallelCapable throws NPE if caller is 
> null

Build changes LGTM.

-

Marked as reviewed by ihse (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/7448


Re: RFR: JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

2022-02-14 Thread Alan Bateman
On Fri, 11 Feb 2022 20:32:46 GMT, Tim Prinzing  wrote:

> JDK-8281003 - MethodHandles::lookup throws NPE if caller is null

src/java.base/share/classes/java/lang/invoke/MethodHandles.java line 121:

> 119: Class c = Reflection.getCallerClass();
> 120: if (c == null) {
> 121: throw new IllegalCallerException();

Throwing ICE is probably okay here, I just wonder if there is any practical 
advantage to having it return publicLookup instead, e.g. is there any scenario 
where a JNI attached thread might want to invoke a method with a Lookup 
parameter?

-

PR: https://git.openjdk.java.net/jdk/pull/7447


Re: RFR: 8203290: [AIX] Check functionality of JDK-8199712 (Flight Recorder) [v20]

2022-02-14 Thread Magnus Ihse Bursie
On Fri, 4 Feb 2022 00:25:43 GMT, Tyler Steele  wrote:

>> Just in time for the holidays I have completed an implementation of the JFR 
>> functionality for AIX. As a side note, this is my first submission to 
>> OpenJDK 
>> 
>> ### Implementation notes and alternatives considered
>> 
>> After modifying the build system to allow the --enable-jvm-feature-jfr to 
>> work on AIX, my task was to implement the interfaces from os_perf.hpp. The 
>> os_perf_aix.cpp implementation that existed was, I believe, a copy of the 
>> Linux implementation. A review of the code in that file showed that 
>> NetworkInterface, CPUPerformanceInterface, and SystemProcessInterface would 
>> require modification to work on AIX. Using the Linux implementation as a 
>> guide, I initially expected to use files from the aix procfs like 
>> /proc//psinfo, and /proc//status in a manner similar to the Linux 
>> implementation. However, I ended up using libperfstat for all functionality 
>> required by the interfaces.
>> 
>> ### Testing
>> 
>> Testing for JFR seems to be quite light in the repo both before and after 
>> this change. In addition to performing manual testing, I have added some 
>> basic sanity checks that ensure events can be created and committed (using 
>> jtreg), and performs some basic checks on the results of the interface 
>> member functions (using gtest).
>> 
>> ### More notes
>> 
>> I've sent an email to the JFR group about a TOC overflow warning I 
>> encountered while building (for the release server target). I believe the 
>> fix is to pass -qpic=large when using the xlc toolchain, but my 
>> modifications to flags-cflags.m4 have not been successful in removing this 
>> warning.
>
> Tyler Steele has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains ten commits:
> 
>  - Merge branch 'master' into JDK-8203290
>  - Adds Oracle & IBM copyrights as per guidance from IBM legal team.
>  - Removes incorrect Oracle copyright line from libperfstat_aix.cpp/hpp, and 
> loadlib_aix.hpp
>  - Edit thread_aix.cpp to match thread_linux.cpp in 
> pd_get_top_fram_for_profiling and ...for_signal_handler
>  - Addresses issues from review and other sm fixes
>
>- Adds commenting in regards to memory handling by SystemProcess &
>NetworkInterface classes
>- Replaces explicit initialization and copy of structs with memcpy
>and memset as appropriate
>- Renames internal struct definitions in os_perf_aix
>- Other minor fixes
>  - Changes macoss -> macosx in problem list
>  - Refactors loadlib_aix: Removes redundant c++ class
>  - Merge branch 'master' into JDK-8203290
>  - Implements JFR on AIX
>
>- Implements interfaces from os_perf.hpp in os_perf_aix.cpp
>- Updates libperfstat_aix to contain functionality needed by os_perf_aix
>- Implements missing functionality in loadlib_aix (Fixes failure noted
>by TestNativeLibraies.java)
>- Removes platform checks for --enable-feature-jfr (Now enable-able on
>all platforms)
>- Enables TestNetworkUtilizationEvent.java which now passes on AIX
>- Updates AIX JavaThread::pd_get_top_frame_for_profiling with changes from 
> Linux

make/autoconf/jvm-features.m4 line 3:

> 1: #
> 2: # Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights 
> reserved.
> 3: # Copyright (c) 2022, IBM Corp.

I understand the discussion about copyright lines has plagued this PR, but this 
really looks odd: adding an IBM copyright line when just removing code. That 
does not make sense to me.

-

PR: https://git.openjdk.java.net/jdk/pull/6885


Integrated: 8274980: Improve adhoc build version strings

2022-02-14 Thread Magnus Ihse Bursie
On Thu, 28 Oct 2021 09:34:07 GMT, Magnus Ihse Bursie  wrote:

> Current adhoc version build strings are not ideal. Some of the problems:
>  * A build number of "0" is inserted, which make the version string look like 
> it's an official build, at least when not reading carefully
>  * The version string gives little indication on what source code the build 
> was based
> 
> Also, an error was discovered in how the build system generates version 
> strings without a build number (since this basically never happened before). 
> A version without a build number,  and without a PRE value, but with an OPT 
> value, should have a "+-" separator, according to JEP 223. While this was 
> correctly handled, the "+-" separator was also applied to versions without a 
> build, but with both PRE and OPT. In this case, the "+" should be omitted, 
> according to JEP 223. This bug is fixed by this commit.
> 
> Ideally, the adhoc version string should include something along the lines of 
> the output of `git describe`. However, since the version string is set at 
> configure time, not build time, this will almost immediately become 
> misleading. :-( A substitute is proposed in this patch, where the branch name 
> is included in the OPT string (if it's not `master`).
> 
> Finally, this patch fixes hotspot so it can properly build without a build 
> number. This was the last blocker for why the build system always required 
> the "0" as build number before. To facilitate interoperability with external 
> tools (like jib) that still sets build number to "0" to really signal "no 
> build number", a build number exactly matching "0" will be interpreted as 
> having no build number.

This pull request has now been integrated.

Changeset: 95f198b2
Author:Magnus Ihse Bursie 
URL:   
https://git.openjdk.java.net/jdk/commit/95f198b2b1b2d5437515dc837cc160e4224c0ff3
Stats: 92 lines in 7 files changed: 29 ins; 10 del; 53 mod

8274980: Improve adhoc build version strings

Reviewed-by: shade, erikj

-

PR: https://git.openjdk.java.net/jdk/pull/6152