Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v4]

2024-06-26 Thread Matthias Baesken
On Tue, 25 Jun 2024 11:20:38 GMT, Matthias Baesken  wrote:

>> Sometimes it would be helpful to have configure-support for adding 
>> additional ubsan check options.
>> E.g. support new configure option 
>> '--with-additional-ubsan-checks=' .
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   adjust UTIL_ARG_WITH

Thanks for the reviews !
The langtools error in  'Pre-submit tests - linux-x64 / test - Test (tier1) ' 
seems to be unrelated.

-

PR Comment: https://git.openjdk.org/jdk/pull/19802#issuecomment-2191723714


Integrated: 8334618: ubsan: support setting additional ubsan check options

2024-06-26 Thread Matthias Baesken
On Thu, 20 Jun 2024 11:31:05 GMT, Matthias Baesken  wrote:

> Sometimes it would be helpful to have configure-support for adding additional 
> ubsan check options.
> E.g. support new configure option 
> '--with-additional-ubsan-checks=' .

This pull request has now been integrated.

Changeset: efb905e5
Author:    Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/efb905e57ab7a5299952419fa9961316541056c2
Stats: 7 lines in 1 file changed: 6 ins; 0 del; 1 mod

8334618: ubsan: support setting additional ubsan check options

Reviewed-by: stuefe, lucy

-

PR: https://git.openjdk.org/jdk/pull/19802


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v3]

2024-06-25 Thread Matthias Baesken
On Mon, 24 Jun 2024 08:46:10 GMT, Erik Joelsson  wrote:

> We could have both --with-ubsan-checks= and --with-additional-ubsan-checks if 
> you think it would be useful.

What are the preferences of the others ?  Yeah it might be useful indeed (Kim 
proposed a flag for replacing the checks in the other JBS issue).

-

PR Comment: https://git.openjdk.org/jdk/pull/19802#issuecomment-2188669278


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v4]

2024-06-25 Thread Matthias Baesken
> Sometimes it would be helpful to have configure-support for adding additional 
> ubsan check options.
> E.g. support new configure option 
> '--with-additional-ubsan-checks=' .

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  adjust UTIL_ARG_WITH

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/19802/files
  - new: https://git.openjdk.org/jdk/pull/19802/files/ad51358a..0b7402e0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=19802=03
 - incr: https://webrevs.openjdk.org/?repo=jdk=19802=02-03

  Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/19802.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19802/head:pull/19802

PR: https://git.openjdk.org/jdk/pull/19802


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v3]

2024-06-22 Thread Matthias Baesken
On Fri, 21 Jun 2024 23:07:57 GMT, Kim Barrett  wrote:

> [Just a drive-by comment, not a review and not planning to review.] As a 
> user, syntactically I think I'd prefer something like the 
> `with-ubsan[=parameters]` approach suggested in the the probably duplicate 
> issue https://bugs.openjdk.org/browse/JDK-8306710. But that's not a strongly 
> held opinion. And I have no idea what would be better for the implementation.

Your idea is more flexible (you can not just add something but overwrite the 
existing settings).
However you have to set more ubsan parameters on the other hand, so both 
approaches have pros and cons.

-

PR Comment: https://git.openjdk.org/jdk/pull/19802#issuecomment-2183951780


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v3]

2024-06-22 Thread Matthias Baesken
On Sat, 22 Jun 2024 07:21:15 GMT, Thomas Stuefe  wrote:

> Stupid question, could I not just pass `--with-extra-cxxflags` or similar, 
> and have the same effect?

Technically probably yes, but wouldn't that be cflags AND cxxflags ? 
Another positive point with this PR - the added settings show up on the command 
line together with the other ubsan flags.

-

PR Comment: https://git.openjdk.org/jdk/pull/19802#issuecomment-2183951312


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v3]

2024-06-21 Thread Matthias Baesken
> Sometimes it would be helpful to have configure-support for adding additional 
> ubsan check options.
> E.g. support new configure option 
> '--with-additional-ubsan-checks=' .

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  more lines

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/19802/files
  - new: https://git.openjdk.org/jdk/pull/19802/files/6246d85a..ad51358a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=19802=02
 - incr: https://webrevs.openjdk.org/?repo=jdk=19802=01-02

  Stats: 6 lines in 1 file changed: 4 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/19802.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19802/head:pull/19802

PR: https://git.openjdk.org/jdk/pull/19802


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v2]

2024-06-21 Thread Matthias Baesken
On Thu, 20 Jun 2024 12:48:40 GMT, Matthias Baesken  wrote:

>> Sometimes it would be helpful to have configure-support for adding 
>> additional ubsan check options.
>> E.g. support new configure option 
>> '--with-additional-ubsan-checks=' .
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   use UTIL_ARG_WITH

I adjusted the lines a bit.

-

PR Comment: https://git.openjdk.org/jdk/pull/19802#issuecomment-2182263398


Re: RFR: 8334618: ubsan: support setting additional ubsan check options

2024-06-20 Thread Matthias Baesken
On Thu, 20 Jun 2024 11:31:05 GMT, Matthias Baesken  wrote:

> Sometimes it would be helpful to have configure-support for adding additional 
> ubsan check options.
> E.g. support new configure option 
> '--with-additional-ubsan-checks=' .

Thanks for the advice, UTIL_ARG_WITH makes the change much smaller.

-

PR Comment: https://git.openjdk.org/jdk/pull/19802#issuecomment-2180581690


Re: RFR: 8334618: ubsan: support setting additional ubsan check options [v2]

2024-06-20 Thread Matthias Baesken
> Sometimes it would be helpful to have configure-support for adding additional 
> ubsan check options.
> E.g. support new configure option 
> '--with-additional-ubsan-checks=' .

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  use UTIL_ARG_WITH

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/19802/files
  - new: https://git.openjdk.org/jdk/pull/19802/files/7c8cba89..6246d85a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=19802=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=19802=00-01

  Stats: 6 lines in 1 file changed: 0 ins; 5 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/19802.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19802/head:pull/19802

PR: https://git.openjdk.org/jdk/pull/19802


RFR: 8334618: ubsan: support setting additional ubsan check options

2024-06-20 Thread Matthias Baesken
Sometimes it would be helpful to have configure-support for adding additional 
ubsan check options.
E.g. support new configure option 
'--with-additional-ubsan-checks=' .

-

Commit messages:
 - JDK-8334618

Changes: https://git.openjdk.org/jdk/pull/19802/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk=19802=00
  Issue: https://bugs.openjdk.org/browse/JDK-8334618
  Stats: 8 lines in 1 file changed: 7 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/19802.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19802/head:pull/19802

PR: https://git.openjdk.org/jdk/pull/19802


Integrated: 8332699: ubsan: jfrEventSetting.inline.hpp:31:43: runtime error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'

2024-06-12 Thread Matthias Baesken
On Mon, 10 Jun 2024 12:30:59 GMT, Matthias Baesken  wrote:

> When running hs :tier1 tests or jdk/jfr tests, with ubsan enabled (configure 
> flag --enable-ubsan), in a lot of jfr related tests like
> compiler/intrinsics/klass/CastNullCheckDroppingsTest.jtr
> serviceability/jvmti/RedefineClasses/RedefineSharedClassJFR.jtr
> this oob error can be seen :
> 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31:43: runtime 
> error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'
> #0 0x7f6b75a8634b in JfrEventSetting::setting(JfrEventId) 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31
> #1 0x7f6b75a8634b in JfrEventSetting::set_stacktrace(long, bool) 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.cpp:47
> 
> Looks like the array in generated code is too small.
> With
> `jfrNativeEventSetting bits[NUMBER_OF_EVENTS];`
> and
> 
> static const int NUMBER_OF_EVENTS = 162;
> static const int NUMBER_OF_RESERVED_EVENTS = 2;
> 
> 
> Access at index 163 cannot work.
> But it looks like there is always enough memory after the array so we do not 
> crash and it was not noticed before.

This pull request has now been integrated.

Changeset: abbf45b5
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/abbf45b57edf2f5bf9a3f2fa408f35a43ebe9bb9
Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod

8332699: ubsan: jfrEventSetting.inline.hpp:31:43: runtime error: index 163 out 
of bounds for type 'jfrNativeEventSetting [162]'

Reviewed-by: jbechberger, stuefe

-

PR: https://git.openjdk.org/jdk/pull/19628


Re: RFR: 8332699: ubsan: jfrEventSetting.inline.hpp:31:43: runtime error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'

2024-06-12 Thread Matthias Baesken
On Mon, 10 Jun 2024 12:30:59 GMT, Matthias Baesken  wrote:

> When running hs :tier1 tests or jdk/jfr tests, with ubsan enabled (configure 
> flag --enable-ubsan), in a lot of jfr related tests like
> compiler/intrinsics/klass/CastNullCheckDroppingsTest.jtr
> serviceability/jvmti/RedefineClasses/RedefineSharedClassJFR.jtr
> this oob error can be seen :
> 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31:43: runtime 
> error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'
> #0 0x7f6b75a8634b in JfrEventSetting::setting(JfrEventId) 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31
> #1 0x7f6b75a8634b in JfrEventSetting::set_stacktrace(long, bool) 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.cpp:47
> 
> Looks like the array in generated code is too small.
> With
> `jfrNativeEventSetting bits[NUMBER_OF_EVENTS];`
> and
> 
> static const int NUMBER_OF_EVENTS = 162;
> static const int NUMBER_OF_RESERVED_EVENTS = 2;
> 
> 
> Access at index 163 cannot work.
> But it looks like there is always enough memory after the array so we do not 
> crash and it was not noticed before.

Hi Thomas and Johannes, thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/19628#issuecomment-2162188598


Re: RFR: 8332699: ubsan: jfrEventSetting.inline.hpp:31:43: runtime error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'

2024-06-11 Thread Matthias Baesken
On Mon, 10 Jun 2024 12:30:59 GMT, Matthias Baesken  wrote:

> When running hs :tier1 tests or jdk/jfr tests, with ubsan enabled (configure 
> flag --enable-ubsan), in a lot of jfr related tests like
> compiler/intrinsics/klass/CastNullCheckDroppingsTest.jtr
> serviceability/jvmti/RedefineClasses/RedefineSharedClassJFR.jtr
> this oob error can be seen :
> 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31:43: runtime 
> error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'
> #0 0x7f6b75a8634b in JfrEventSetting::setting(JfrEventId) 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31
> #1 0x7f6b75a8634b in JfrEventSetting::set_stacktrace(long, bool) 
> /jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.cpp:47
> 
> Looks like the array in generated code is too small.
> With
> `jfrNativeEventSetting bits[NUMBER_OF_EVENTS];`
> and
> 
> static const int NUMBER_OF_EVENTS = 162;
> static const int NUMBER_OF_RESERVED_EVENTS = 2;
> 
> 
> Access at index 163 cannot work.
> But it looks like there is always enough memory after the array so we do not 
> crash and it was not noticed before.

My maximum JfrEventId  is 163 , see the generated  
hotspot/variant-server/gensrc/jfrfiles/jfrEventIds.hpp



enum JfrEventId {
  JfrMetadataEvent = 0,
  JfrCheckpointEvent = 1,
  JfrDurationEvent = 2,
  JfrInstantEvent = 3,
  JfrValueEvent = 4,
  JfrTextEvent = 5,
  JfrZThreadDebugEvent = 6,
   .
  JfrJavaAgentEvent = 161,
  JfrNativeAgentEvent = 162,
  JfrDeprecatedInvocationEvent = 163,
};

so NUMBER_OF_EVENTS + NUMBER_OF_RESERVED_EVENTS looks fine to me.
163 is the highest I could see while testing.

-

PR Comment: https://git.openjdk.org/jdk/pull/19628#issuecomment-2160953294


RFR: 8332699: ubsan: jfrEventSetting.inline.hpp:31:43: runtime error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'

2024-06-10 Thread Matthias Baesken
When running hs :tier1 tests or jdk/jfr tests, with ubsan enabled (configure 
flag --enable-ubsan), in a lot of jfr related tests like
compiler/intrinsics/klass/CastNullCheckDroppingsTest.jtr
serviceability/jvmti/RedefineClasses/RedefineSharedClassJFR.jtr
this oob error can be seen :

/jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31:43: runtime 
error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'
#0 0x7f6b75a8634b in JfrEventSetting::setting(JfrEventId) 
/jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp:31
#1 0x7f6b75a8634b in JfrEventSetting::set_stacktrace(long, bool) 
/jdk/src/hotspot/share/jfr/recorder/jfrEventSetting.cpp:47

Looks like the array in generated code is too small.
With
`jfrNativeEventSetting bits[NUMBER_OF_EVENTS];`
and

static const int NUMBER_OF_EVENTS = 162;
static const int NUMBER_OF_RESERVED_EVENTS = 2;


Access at index 163 cannot work.
But it looks like there is always enough memory after the array so we do not 
crash and it was not noticed before.

-

Commit messages:
 - JDK-8332699

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

PR: https://git.openjdk.org/jdk/pull/19628


Integrated: 8331298: avoid alignment checks in UBSAN enabled build

2024-04-30 Thread Matthias Baesken
On Mon, 29 Apr 2024 12:15:55 GMT, Matthias Baesken  wrote:

> Currently we run into some alignment related issues when building with 
> '--enable-ubsan' . Those errors already occur in the build. Fixing them might 
> take some time and maybe also some discussion if it is worth the effort ,
> So for now the alignment related checks should be disabled to get the UBSAN 
> build working.
> Example :
> 
> /jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:128:13: runtime error: store 
> to misaligned address 0x15099c3cf4ce for type 'int', which requires 4 byte 
> alignment
> 0x15099c3cf4ce: note: pointer points here
>  00 80 0f 86 00 00 00 00 3d 06 00 00 80 76 60 3d 07 00 00 80 76 40 3d 08 00 
> 00 80 76 20 3d 1e 00
>  ^
> #0 0x1509b3b04f10 in MacroAssembler::pd_patch_instruction(unsigned char*, 
> unsigned char*, char const*, int) 
> /jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:128
> #1 0x1509b3b04f10 in Label::patch_instructions(MacroAssembler*) 
> /jdk/src/hotspot/share/asm/assembler.cpp:201
> #2 0x1509b940b6d8 in VM_Version_StubGenerator::generate_get_cpu_info() 
> /jdk/src/hotspot/cpu/x86/vm_version_x86.cpp:381
> #3 0x1509b94059bd in VM_Version::initialize() 
> /jdk/src/hotspot/cpu/x86/vm_version_x86.cpp:2138
> #4 0x1509b93fb56e in VM_Version_init() 
> /jdk/src/hotspot/share/runtime/vm_version.cpp:32
> #5 0x1509b61ef947 in init_globals() 
> /jdk/src/hotspot/share/runtime/init.cpp:126
> #6 0x1509b8fb0e29 in Threads::create_vm(JavaVMInitArgs*, bool*) 
> /jdk/src/hotspot/share/runtime/threads.cpp:553
> #7 0x1509b67da3d7 in JNI_CreateJavaVM_inner 
> /jdk/src/hotspot/share/prims/jni.cpp:3581
> #8 0x1509b67da3d7 in JNI_CreateJavaVM 
> /jdk/src/hotspot/share/prims/jni.cpp:3672
> #9 0x1509c0eed957 in InitializeJVM 
> /jdk/src/java.base/share/native/libjli/java.c:1550
> #10 0x1509c0eed957 in JavaMain 
> /jdk/src/java.base/share/native/libjli/java.c:491
>    ... (rest of output omitted)

This pull request has now been integrated.

Changeset: 60b61e58
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/60b61e588c1252b4b1fbc64d0f818a85670f7146
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod

8331298: avoid alignment checks in UBSAN enabled build

Reviewed-by: erikj, mdoerr

-

PR: https://git.openjdk.org/jdk/pull/18998


Re: RFR: 8331298: avoid alignment checks in UBSAN enabled build

2024-04-30 Thread Matthias Baesken
On Mon, 29 Apr 2024 12:15:55 GMT, Matthias Baesken  wrote:

> Currently we run into some alignment related issues when building with 
> '--enable-ubsan' . Those errors already occur in the build. Fixing them might 
> take some time and maybe also some discussion if it is worth the effort ,
> So for now the alignment related checks should be disabled to get the UBSAN 
> build working.
> Example :
> 
> /jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:128:13: runtime error: store 
> to misaligned address 0x15099c3cf4ce for type 'int', which requires 4 byte 
> alignment
> 0x15099c3cf4ce: note: pointer points here
>  00 80 0f 86 00 00 00 00 3d 06 00 00 80 76 60 3d 07 00 00 80 76 40 3d 08 00 
> 00 80 76 20 3d 1e 00
>  ^
> #0 0x1509b3b04f10 in MacroAssembler::pd_patch_instruction(unsigned char*, 
> unsigned char*, char const*, int) 
> /jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:128
> #1 0x1509b3b04f10 in Label::patch_instructions(MacroAssembler*) 
> /jdk/src/hotspot/share/asm/assembler.cpp:201
> #2 0x1509b940b6d8 in VM_Version_StubGenerator::generate_get_cpu_info() 
> /jdk/src/hotspot/cpu/x86/vm_version_x86.cpp:381
> #3 0x1509b94059bd in VM_Version::initialize() 
> /jdk/src/hotspot/cpu/x86/vm_version_x86.cpp:2138
> #4 0x1509b93fb56e in VM_Version_init() 
> /jdk/src/hotspot/share/runtime/vm_version.cpp:32
> #5 0x1509b61ef947 in init_globals() 
> /jdk/src/hotspot/share/runtime/init.cpp:126
> #6 0x1509b8fb0e29 in Threads::create_vm(JavaVMInitArgs*, bool*) 
> /jdk/src/hotspot/share/runtime/threads.cpp:553
> #7 0x1509b67da3d7 in JNI_CreateJavaVM_inner 
> /jdk/src/hotspot/share/prims/jni.cpp:3581
> #8 0x1509b67da3d7 in JNI_CreateJavaVM 
> /jdk/src/hotspot/share/prims/jni.cpp:3672
> #9 0x1509c0eed957 in InitializeJVM 
> /jdk/src/java.base/share/native/libjli/java.c:1550
> #10 0x1509c0eed957 in JavaMain 
> /jdk/src/java.base/share/native/libjli/java.c:491
>... (rest of output omitted)

Thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/18998#issuecomment-2084588114


RFR: 8331298: avoid alignment checks in UBSAN enabled build

2024-04-29 Thread Matthias Baesken
Currently we run into some alignment related issues when building with 
'--enable-ubsan' . Those errors already occur in the build. Fixing them might 
take some time and maybe also some discussion if it is worth the effort ,
So for now the alignment related checks should be disabled to get the UBSAN 
build working.
Example :

/jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:128:13: runtime error: store to 
misaligned address 0x15099c3cf4ce for type 'int', which requires 4 byte 
alignment
0x15099c3cf4ce: note: pointer points here
 00 80 0f 86 00 00 00 00 3d 06 00 00 80 76 60 3d 07 00 00 80 76 40 3d 08 00 00 
80 76 20 3d 1e 00
 ^
#0 0x1509b3b04f10 in MacroAssembler::pd_patch_instruction(unsigned char*, 
unsigned char*, char const*, int) 
/jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:128
#1 0x1509b3b04f10 in Label::patch_instructions(MacroAssembler*) 
/jdk/src/hotspot/share/asm/assembler.cpp:201
#2 0x1509b940b6d8 in VM_Version_StubGenerator::generate_get_cpu_info() 
/jdk/src/hotspot/cpu/x86/vm_version_x86.cpp:381
#3 0x1509b94059bd in VM_Version::initialize() 
/jdk/src/hotspot/cpu/x86/vm_version_x86.cpp:2138
#4 0x1509b93fb56e in VM_Version_init() 
/jdk/src/hotspot/share/runtime/vm_version.cpp:32
#5 0x1509b61ef947 in init_globals() 
/jdk/src/hotspot/share/runtime/init.cpp:126
#6 0x1509b8fb0e29 in Threads::create_vm(JavaVMInitArgs*, bool*) 
/jdk/src/hotspot/share/runtime/threads.cpp:553
#7 0x1509b67da3d7 in JNI_CreateJavaVM_inner 
/jdk/src/hotspot/share/prims/jni.cpp:3581
#8 0x1509b67da3d7 in JNI_CreateJavaVM 
/jdk/src/hotspot/share/prims/jni.cpp:3672
#9 0x1509c0eed957 in InitializeJVM 
/jdk/src/java.base/share/native/libjli/java.c:1550
#10 0x1509c0eed957 in JavaMain 
/jdk/src/java.base/share/native/libjli/java.c:491
   ... (rest of output omitted)

-

Commit messages:
 - JDK-8331298

Changes: https://git.openjdk.org/jdk/pull/18998/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk=18998=00
  Issue: https://bugs.openjdk.org/browse/JDK-8331298
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/18998.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18998/head:pull/18998

PR: https://git.openjdk.org/jdk/pull/18998


Re: RFR: 8314488: Compile the JDK as C++17 [v7]

2024-04-17 Thread Matthias Baesken
On Wed, 20 Mar 2024 05:44:48 GMT, Julian Waters  wrote:

>> Compile the JDK as C++17, enabling the use of all C++17 language features
>
> Julian Waters has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains 11 commits:
> 
>  - Merge branch 'master' into patch-7
>  - Require clang 13 in toolchain.m4
>  - Remove unnecessary -std=c++17 option in Lib.gmk
>  - Merge branch 'openjdk:master' into patch-7
>  - Compiler versions in toolchain.m4
>  - Merge branch 'openjdk:master' into patch-7
>  - Merge branch 'openjdk:master' into patch-7
>  - Revert vm_version_linux_riscv.cpp
>  - vm_version_linux_riscv.cpp
>  - allocation.cpp
>  - ... and 1 more: https://git.openjdk.org/jdk/compare/269163d5...9286a964

Seems we use already a little bit of C++17 coding in the Linux codebase .
Just came across this little error when trying to build with clang on Linux

jdk/src/hotspot/os/linux/os_linux.cpp:2975:65: error: 'static_assert' with no 
message is a C++17 extension [-Werror,-Wc++17-extensions]
  static_assert(MADV_POPULATE_WRITE == MADV_POPULATE_WRITE_value);

So switching to C++17 would make our codebase compile :-)  (at least in this 
case)  !
(to be more serious, I guess I better file a JBS bug and post a PR/fix for this 
 static_assert)

-

PR Comment: https://git.openjdk.org/jdk/pull/14988#issuecomment-2061233028


Re: RFR: 8330110: AIX build fails after JDK-8329704 - issue with libjli.a

2024-04-12 Thread Matthias Baesken
On Fri, 12 Apr 2024 12:26:06 GMT, Magnus Ihse Bursie  wrote:

> Unfortunately, after 
> [JDK-8329704](https://bugs.openjdk.org/browse/JDK-8329704) AIX fails to 
> build. The reason is that libjli is specially treated on AIX, and built like 
> a static library. I tried to compensate for this (and had tested on an 
> earlier draft), but some late-minute changes in JDK-8329704 made this check 
> fail.
> 
> At this point, I will not add any more checks for `$1_$2_STATIC_LIBRARY` in 
> `ResolveLibPath`. From reading the code, it become apparent that building 
> with `STATIC_BUILD` (n.b. -- not `STATIC_LIBS`!) will likely fail. This has 
> on the other hand not been tested for a long time, and is likely bit-rotten 
> anyway. Also, I will very soon address all of these shortcomings in the 
> upcoming rewrite for proper static builds.

This resolves the AIX build problem.

-

Marked as reviewed by mbaesken (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/18759#pullrequestreview-1997232221


Re: RFR: 8329131: Fold libjli_static back into libjli on AIX

2024-03-28 Thread Matthias Baesken
On Tue, 26 Mar 2024 19:30:01 GMT, Magnus Ihse Bursie  wrote:

> On AIX, we need a static libjli, since the linker cannot find other libraries 
> (like libjvm.so and libjava.so) using a relative path, as on other platforms.
> 
> However, for reasons unclear, we still build a dynamic libjli.so on AIX, even 
> though this is never used. Instead, we also build a static libjli_static.a 
> library (which is then forced to have a different name as to not collide with 
> the dynamic library).
> 
> This should be fixed. We should build exactly one libjli on all platforms, be 
> it static or dynamic.

Unfortunately the  AIX build fails with this patch 


* For target 
support_test_jdk_jtreg_native_support_exeJliLaunchTest_BUILD_TEST_exeJliLaunchTest_link:
ld: 0706-006 Cannot find or open library file: -l jli
ld:open(): No such file or directory
.ibm-clang: error: linker command failed with exit code 255 (use -v to see 
invocation)

-

PR Comment: https://git.openjdk.org/jdk/pull/18497#issuecomment-2024638873


Re: RFR: JDK-8329074: AIX build fails after JDK-8328824

2024-03-26 Thread Matthias Baesken
On Tue, 26 Mar 2024 09:21:20 GMT, Matthias Baesken  wrote:

> After [JDK-8328824](https://bugs.openjdk.org/browse/JDK-8328824), we run in 
> the AIX build into this failure :
> 
> /opt/freeware/bin/bash: -c: line 1: syntax error near unexpected token `('
> gmake[3]: *** [lib/CoreLibraries.gmk:194: 
> /openjdk/nb/aix_ppc64/jdk-dev-opt/support/native/java.base/libjli_static/args.o]
>  Error 2
> gmake[3]: *** Waiting for unfinished jobs
> 
> Looks like an addprefix usage is wrong, a '$' is missing.

windows aarch64 failure is unrelated, fails with some download
[build.sh][INFO] Downloading 
https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.8-bin.zip to 
/d/a/jdk/jdk/jtreg/src/make/../build/deps/apache-ant-1.10.8-bin.zip
Error: sh][ERROR] wget exited with exit code 4

Thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/18484#issuecomment-2019994055
PR Comment: https://git.openjdk.org/jdk/pull/18484#issuecomment-2019997165


Integrated: JDK-8329074: AIX build fails after JDK-8328824

2024-03-26 Thread Matthias Baesken
On Tue, 26 Mar 2024 09:21:20 GMT, Matthias Baesken  wrote:

> After [JDK-8328824](https://bugs.openjdk.org/browse/JDK-8328824), we run in 
> the AIX build into this failure :
> 
> /opt/freeware/bin/bash: -c: line 1: syntax error near unexpected token `('
> gmake[3]: *** [lib/CoreLibraries.gmk:194: 
> /openjdk/nb/aix_ppc64/jdk-dev-opt/support/native/java.base/libjli_static/args.o]
>  Error 2
> gmake[3]: *** Waiting for unfinished jobs
> 
> Looks like an addprefix usage is wrong, a '$' is missing.

This pull request has now been integrated.

Changeset: b9c76ded
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/b9c76dedf4aa2248a5e561a535c9e3e181f7836a
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod

8329074: AIX build fails after JDK-8328824

Reviewed-by: clanger, goetz

-

PR: https://git.openjdk.org/jdk/pull/18484


RFR: JDK-8329074: AIX build fails after JDK-8328824

2024-03-26 Thread Matthias Baesken
After [JDK-8328824](https://bugs.openjdk.org/browse/JDK-8328824), we run in the 
AIX build into this failure :

/opt/freeware/bin/bash: -c: line 1: syntax error near unexpected token `('
gmake[3]: *** [lib/CoreLibraries.gmk:194: 
/openjdk/nb/aix_ppc64/jdk-dev-opt/support/native/java.base/libjli_static/args.o]
 Error 2
gmake[3]: *** Waiting for unfinished jobs

Looks like an addprefix usage is wrong, a '$' is missing.

-

Commit messages:
 - JDK-8329074

Changes: https://git.openjdk.org/jdk/pull/18484/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk=18484=00
  Issue: https://bugs.openjdk.org/browse/JDK-8329074
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/18484.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18484/head:pull/18484

PR: https://git.openjdk.org/jdk/pull/18484


Re: RFR: 8327701: Remove the xlc toolchain [v4]

2024-03-13 Thread Matthias Baesken
On Tue, 12 Mar 2024 15:27:29 GMT, Magnus Ihse Bursie  wrote:

>> As of [JDK-8325880](https://bugs.openjdk.org/browse/JDK-8325880), building 
>> the JDK requires version 17 of IBM Open XL C/C++ (xlc). This is in effect 
>> clang by another name, and it uses the clang toolchain in the JDK build. 
>> Thus the old xlc toolchain is no longer supported, and should be removed.
>
> Magnus Ihse Bursie has updated the pull request incrementally with two 
> additional commits since the last revision:
> 
>  - Replace CC_VERSION_OUTPUT with CC_VERSION_STRING
>  - We need CC_VERSION_OUTPUT before we can check it

Seems  `HOTSPOT_TOOLCHAIN_TYPE=xlc ` and  `TARGET_COMPILER_xlc`  macros stay, 
is this intended ?
(not saying this is a wrong thing to do, but I believed first that all the xlc 
toolchain references are replaced by clang?)

-

PR Comment: https://git.openjdk.org/jdk/pull/18172#issuecomment-1993844670


Re: RFR: 8327701: Remove the xlc toolchain [v2]

2024-03-13 Thread Matthias Baesken
On Tue, 12 Mar 2024 16:02:41 GMT, Matthias Baesken  wrote:

> > Please re-test.
> 
> Hi Magnus, thanks for the adjustments. I reenabled your patch in our 
> build/test queue .

Builds and test results on AIX (product and fastdebug) are fine with the latest 
version of the PR .

-

PR Comment: https://git.openjdk.org/jdk/pull/18172#issuecomment-1993808324


Re: RFR: 8327701: Remove the xlc toolchain [v2]

2024-03-12 Thread Matthias Baesken
On Tue, 12 Mar 2024 15:24:21 GMT, Magnus Ihse Bursie  wrote:

> Please re-test.

Hi Magnus, thanks for the adjustments.  I reenabled your patch in our 
build/test queue .

-

PR Comment: https://git.openjdk.org/jdk/pull/18172#issuecomment-1992009593


Re: RFR: 8327701: Remove the xlc toolchain [v2]

2024-03-11 Thread Matthias Baesken
On Fri, 8 Mar 2024 15:48:08 GMT, Magnus Ihse Bursie  wrote:

>> As of [JDK-8325880](https://bugs.openjdk.org/browse/JDK-8325880), building 
>> the JDK requires version 17 of IBM Open XL C/C++ (xlc). This is in effect 
>> clang by another name, and it uses the clang toolchain in the JDK build. 
>> Thus the old xlc toolchain is no longer supported, and should be removed.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Revert SEARCH_PATH changes

With this change added, currently  configure fails 


checking for ibm-llvm-cxxfilt... /opt/IBM/openxlC/17.1.1/tools/ibm-llvm-cxxfilt
configure: error: ibm-clang_r version output check failed, output: 
configure exiting with result code 

maybe  related to what Joachim pointed out ?

-

PR Comment: https://git.openjdk.org/jdk/pull/18172#issuecomment-1988358518


Re: RFR: 8327701: Remove the xlc toolchain [v2]

2024-03-11 Thread Matthias Baesken
On Fri, 8 Mar 2024 15:48:08 GMT, Magnus Ihse Bursie  wrote:

>> As of [JDK-8325880](https://bugs.openjdk.org/browse/JDK-8325880), building 
>> the JDK requires version 17 of IBM Open XL C/C++ (xlc). This is in effect 
>> clang by another name, and it uses the clang toolchain in the JDK build. 
>> Thus the old xlc toolchain is no longer supported, and should be removed.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Revert SEARCH_PATH changes

Hi, thanks for doing this cleanup change.  I put it into our build/test queue 
to see the results on AIX.

-

PR Comment: https://git.openjdk.org/jdk/pull/18172#issuecomment-1987807579


Re: RFR: 8017234: Hotspot should stop using mapfiles [v5]

2024-02-23 Thread Matthias Baesken
On Fri, 23 Feb 2024 12:33:48 GMT, Magnus Ihse Bursie  wrote:

> > We had the PR in our SAP internal build/test queue, so issues seen with it.
> 
> What issues did you see? Or was that a typo for "no issues"?

Sorry Magnus, tests were fine no issues were observed.

-

PR Comment: https://git.openjdk.org/jdk/pull/17955#issuecomment-1961250951


Re: RFR: 8017234: Hotspot should stop using mapfiles [v5]

2024-02-23 Thread Matthias Baesken
On Fri, 23 Feb 2024 11:01:47 GMT, Magnus Ihse Bursie  wrote:

> Just to confirm: this PR passes tier 1-5.

We had the PR in our SAP internal build/test queue, so issues seen with it.

-

PR Comment: https://git.openjdk.org/jdk/pull/17955#issuecomment-1961232277


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-08 Thread Matthias Baesken
On Tue, 6 Feb 2024 08:05:14 GMT, Matthias Baesken  wrote:

>>> I hope finally the AIX part of this PR is done.
>> 
>> Thanks for the AIX related effort ; I put it again into our internal 
>> build/test queue.
>
>> 
>> Thanks for the AIX related effort ; I put it again into our internal 
>> build/test queue.
> 
> With the latest commit the build again fails on AIX with this error
> 
> /jdk/src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c:381:27: 
> error: incompatible pointer types passing 'struct statvfs64 *' to parameter 
> of type 'struct statvfs *' [-Werror,-Wincompatible-pointer-types]
> result = fstatvfs(fd, _stat);
>   ^~
> /usr/include/sys/statvfs.h:102:42: note: passing argument to parameter here
> extern int fstatvfs(int, struct statvfs *);

> Well, well... The code at least looks cleaner without these AIX defines, so I 
> really hope that this is the end of the AIX saga, at the `n+1`th time. 
> @MBaesken Can you rerun AIX testing with the latest commit?

Latest commit looks still good on AIX.

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1933652124


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v9]

2024-02-06 Thread Matthias Baesken
On Tue, 6 Feb 2024 08:18:14 GMT, Magnus Ihse Bursie  wrote:

>> Similar to [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we 
>> should use -D_FILE_OFFSET_BITS=64, and not -D_LARGEFILE64_SOURCE in the JDK 
>> native libraries.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Also fix fstatvfs on AIX

AIX build is fixed now after latest commit, thanks for handling the AIX special 
cases.

-

Marked as reviewed by mbaesken (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/17538#pullrequestreview-1865270571


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-06 Thread Matthias Baesken
On Mon, 5 Feb 2024 14:15:44 GMT, Matthias Baesken  wrote:

> 
> Thanks for the AIX related effort ; I put it again into our internal 
> build/test queue.

With the latest commit the build again fails on AIX with this error

/jdk/src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c:381:27: 
error: incompatible pointer types passing 'struct statvfs64 *' to parameter of 
type 'struct statvfs *' [-Werror,-Wincompatible-pointer-types]
result = fstatvfs(fd, _stat);
  ^~
/usr/include/sys/statvfs.h:102:42: note: passing argument to parameter here
extern int fstatvfs(int, struct statvfs *);

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1928972961


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-05 Thread Matthias Baesken
On Mon, 5 Feb 2024 14:03:45 GMT, Magnus Ihse Bursie  wrote:

> I hope finally the AIX part of this PR is done.

Thanks for the AIX related effort ; I put it again into our internal build/test 
queue.

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1927105669


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-05 Thread Matthias Baesken
On Mon, 5 Feb 2024 12:38:03 GMT, Magnus Ihse Bursie  wrote:

> It seems like the statvfs64 is a pre-existing bug in AIX in that case. I have 
> not removed any statvfs64 for AIX; all such changes are guarded by `#ifdef 
> _ALLBSD_SOURCE`, which I presume is not defined on AIX.
> 
> I recommend that I push this PR as-is first, and then you can do a follow-up 
> fix to define statvfs to statvfs64 on AIX.

Java_sun_nio_fs_UnixNativeDispatcher_statvfs0  is changed from statvfs64 to  
statvfs,  did I miss  something ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1926925394


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-05 Thread Matthias Baesken
On Mon, 5 Feb 2024 12:17:33 GMT, Joachim Kern  wrote:

> Yes, if statvfs64() is replaced by statvfs() in the code, we will fallback on 
> AIX to 32-Bit. _LARGE_FILES really does not help in this case!

Thanks for confirming. I think we do not want to fallback on AIX, so the <*>64 
variant needs to stay on AIX.

Seems the other symbols are covered by _LARGE_FILES according to the table in 
the linked IBM AIX doc (table in  
https://www.ibm.com/docs/en/aix/7.1?topic=volumes-writing-programs-that-access-large-files
 ) , is that correct (Joachim?) or did I miss something ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1926874075


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-05 Thread Matthias Baesken
On Fri, 2 Feb 2024 06:55:19 GMT, Magnus Ihse Bursie  wrote:

>> Similar to [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we 
>> should use -D_FILE_OFFSET_BITS=64, and not -D_LARGEFILE64_SOURCE in the JDK 
>> native libraries.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Add kludge to BufferedRenderPipe.c for AIX

Current commit compiles nicely on AIX.
One issue we might still have
statvfs/statvfs64  is not mentioned here in the table of functions/structs 
redefined on AIX
https://www.ibm.com/docs/en/aix/7.1?topic=volumes-writing-programs-that-access-large-files
so would we fall back to statvfs from the *64  - variant ?
The define _LARGE_FILES might not help in this case on AIX .

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1926848063


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v7]

2024-02-05 Thread Matthias Baesken
On Fri, 2 Feb 2024 06:55:19 GMT, Magnus Ihse Bursie  wrote:

>> Similar to [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we 
>> should use -D_FILE_OFFSET_BITS=64, and not -D_LARGEFILE64_SOURCE in the JDK 
>> native libraries.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Add kludge to BufferedRenderPipe.c for AIX

I noticed that in the file src/java.base/share/native/libzip/zlib/zconf.h
we seem to still use `off64_t` , is this okay (at most other locations it was 
replaced) 
https://github.com/openjdk/jdk/blob/master/src/java.base/share/native/libzip/zlib/zconf.h#L541

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1926448109


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v4]

2024-02-01 Thread Matthias Baesken
On Thu, 1 Feb 2024 13:47:45 GMT, Matthias Baesken  wrote:

>> After adding this additional patch I  fully build fastdebug on AIX (hav to 
>> admit it does not look very nice).
>> 
>> 
>> diff --git 
>> a/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c 
>> b/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
>> index 823475b0a23..ee0109b6806 100644
>> --- a/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
>> +++ b/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
>> @@ -31,6 +31,10 @@
>>  #include "SpanIterator.h"
>>  #include "Trace.h"
>>  
>> +#if defined(_AIX) && defined(open)
>> +#undef open
>> +#endif
>> +
>>  /* The "header" consists of a jint opcode and a jint span count value */
>>  #define INTS_PER_HEADER  2
>>  #define BYTES_PER_HEADER 8
>
>> @MBaesken So my fix in 
>> [25c691d](https://github.com/openjdk/jdk/pull/17538/commits/25c691df823eb9d9db1451637f28d59dd9508386)
>>  did not help? Maybe then it is some other system library that drags in 
>> `fcntl.h`; I assumed it was stdlib or stdio. That header file includes way 
>> too much that it does not need, so we can surely strip it of even more 
>> standard includes if that is what is required to fix this.
> 
> 
> Unfortunately it did not help.

> @MBaesken How annoying. :( I have now tried to remove _all_ system includes 
> from `debug_util.h`. Can you please try again building debug on AIX, to see 
> if it works without the `#undef` in `BufferedRenderPipe.c`?

The AIX (fast)debug  build still fails .

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1921645170


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v4]

2024-02-01 Thread Matthias Baesken
On Wed, 31 Jan 2024 09:19:39 GMT, Matthias Baesken  wrote:

>> Magnus Ihse Bursie has updated the pull request with a new target base due 
>> to a merge or a rebase. The incremental webrev excludes the unrelated 
>> changes brought in by the merge/rebase. The pull request contains seven 
>> additional commits since the last revision:
>> 
>>  - Merge branch 'master' into jdk-FOB64
>>  - Move #include  out of debug_util.h
>>  - Restore AIX dirent64 et al defines
>>  - Rollback AIX changes since they are now tracked in JDK-8324834
>>  - Remove superfluous setting of FOB64
>>  - Replace all foo64() with foo() for large-file functions in the JDK
>>  - 8324539: Do not use LFS64 symbols in JDK libs
>
> After adding this additional patch I  fully build fastdebug on AIX (hav to 
> admit it does not look very nice).
> 
> 
> diff --git 
> a/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c 
> b/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
> index 823475b0a23..ee0109b6806 100644
> --- a/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
> +++ b/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
> @@ -31,6 +31,10 @@
>  #include "SpanIterator.h"
>  #include "Trace.h"
>  
> +#if defined(_AIX) && defined(open)
> +#undef open
> +#endif
> +
>  /* The "header" consists of a jint opcode and a jint span count value */
>  #define INTS_PER_HEADER  2
>  #define BYTES_PER_HEADER 8

> @MBaesken So my fix in 
> [25c691d](https://github.com/openjdk/jdk/pull/17538/commits/25c691df823eb9d9db1451637f28d59dd9508386)
>  did not help? Maybe then it is some other system library that drags in 
> `fcntl.h`; I assumed it was stdlib or stdio. That header file includes way 
> too much that it does not need, so we can surely strip it of even more 
> standard includes if that is what is required to fix this.


Unfortunately it did not help.

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1921367368


Re: RFR: 8324834: Use _LARGE_FILES on AIX [v2]

2024-02-01 Thread Matthias Baesken
On Thu, 1 Feb 2024 09:04:47 GMT, Magnus Ihse Bursie  wrote:

> I added a compile-time check that hotspot on AIX is indeed compiled with 
> _LARGE_FILES.
> 
> @MBaesken Are you happy with this PR now?

Thanks for adding this, I approved the PR .

-

PR Comment: https://git.openjdk.org/jdk/pull/17611#issuecomment-1921204582


Re: RFR: 8324834: Use _LARGE_FILES on AIX [v2]

2024-02-01 Thread Matthias Baesken
On Tue, 30 Jan 2024 12:25:47 GMT, Magnus Ihse Bursie  wrote:

>> In the same spirit as 
>> [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we should adapt 
>> the AIX-specific code in hotspot so it uses the well-defined posix `` 
>> functions, instead of `64`. By setting the define _LARGE_FILES, this 
>> will make `` behave as `64`, just as _FILE_OFFSET_BITS=64 does on 
>> gcc. (Reference: 
>> https://www.ibm.com/docs/en/aix/7.1?topic=volumes-writing-programs-that-access-large-files)
>> 
>> In theory, it should not even be necessary to set this, since we only 
>> compile for 64-bit AIX platforms, and this is only relevant on 32-bit 
>> platforms. But let's add the define anyway, for good measure. It shows at 
>> least that we have thought about the matter. :-)
>> 
>> I have not been able to test this on AIX. I hope someone with AIX access can 
>> take this for a spin.
>> 
>> The reason I'm doing this is for 
>> [JDK-8324539](https://bugs.openjdk.org/browse/JDK-8324539). After both these 
>> bugs are fixed, there will be no more `64` function calls in the code 
>> base.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Revert "8324753: [AIX] adjust os_posix after JDK-8318696"
>   
>   This reverts commit 8950d68ddb36d35831fbb4b98969cd0537527070.

Marked as reviewed by mbaesken (Reviewer).

-

PR Review: https://git.openjdk.org/jdk/pull/17611#pullrequestreview-1855922518


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs [v4]

2024-01-31 Thread Matthias Baesken
On Tue, 30 Jan 2024 14:15:57 GMT, Magnus Ihse Bursie  wrote:

>> Similar to [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we 
>> should use -D_FILE_OFFSET_BITS=64, and not -D_LARGEFILE64_SOURCE in the JDK 
>> native libraries.
>
> Magnus Ihse Bursie has updated the pull request with a new target base due to 
> a merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains seven additional 
> commits since the last revision:
> 
>  - Merge branch 'master' into jdk-FOB64
>  - Move #include  out of debug_util.h
>  - Restore AIX dirent64 et al defines
>  - Rollback AIX changes since they are now tracked in JDK-8324834
>  - Remove superfluous setting of FOB64
>  - Replace all foo64() with foo() for large-file functions in the JDK
>  - 8324539: Do not use LFS64 symbols in JDK libs

After adding this additional patch I  fully build fastdebug on AIX (hav to 
admit it does not look very nice).


diff --git 
a/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c 
b/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
index 823475b0a23..ee0109b6806 100644
--- a/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
+++ b/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c
@@ -31,6 +31,10 @@
 #include "SpanIterator.h"
 #include "Trace.h"
 
+#if defined(_AIX) && defined(open)
+#undef open
+#endif
+
 /* The "header" consists of a jint opcode and a jint span count value */
 #define INTS_PER_HEADER  2
 #define BYTES_PER_HEADER 8

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1918699480


Re: RFR: 8324834: Use _LARGE_FILES on AIX [v2]

2024-01-31 Thread Matthias Baesken
On Wed, 31 Jan 2024 08:49:58 GMT, Magnus Ihse Bursie  wrote:

> I suspect this worry of yours were more directed at the change for the JDK

Yes it is more a general worry, not especially related to Hotspot.
We could also add some kind of check (e.g. static assert  or configure check) 
to address it.

-

PR Comment: https://git.openjdk.org/jdk/pull/17611#issuecomment-1918679294


Re: RFR: 8324834: Use _LARGE_FILES on AIX

2024-01-31 Thread Matthias Baesken
On Mon, 29 Jan 2024 13:13:44 GMT, Matthias Baesken  wrote:

>> In the same spirit as 
>> [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we should adapt 
>> the AIX-specific code in hotspot so it uses the well-defined posix `` 
>> functions, instead of `64`. By setting the define _LARGE_FILES, this 
>> will make `` behave as `64`, just as _FILE_OFFSET_BITS=64 does on 
>> gcc. (Reference: 
>> https://www.ibm.com/docs/en/aix/7.1?topic=volumes-writing-programs-that-access-large-files)
>> 
>> In theory, it should not even be necessary to set this, since we only 
>> compile for 64-bit AIX platforms, and this is only relevant on 32-bit 
>> platforms. But let's add the define anyway, for good measure. It shows at 
>> least that we have thought about the matter. :-)
>> 
>> I have not been able to test this on AIX. I hope someone with AIX access can 
>> take this for a spin.
>> 
>> The reason I'm doing this is for 
>> [JDK-8324539](https://bugs.openjdk.org/browse/JDK-8324539). After both these 
>> bugs are fixed, there will be no more `64` function calls in the code 
>> base.
>
> Using the '_LARGE_FILES' should be okay, I checked this in a small example in 
> the binary and it showed the the 64bit/large file function was used.

> Looks good from my end now. I leave the final approval to @MBaesken since he 
> ran this through our testing I believe.

I put it into our build/test queue (so far had only a look at the change).
Unfortunately with going away from the 64  functions on AIX, it gets very 
intransparent. In case we lose the compile flag (or the compile flags gets 
filtered out/is not set for some compilation unit)  we silently fall back to 
"short files" support instead of "large files" support.

https://www.ibm.com/docs/en/aix/7.1?topic=volumes-writing-programs-that-access-large-files
"It has the disadvantage of creating some ambiguity in the code because the 
size of the various data items cannot be determined from looking at the code"

-

PR Comment: https://git.openjdk.org/jdk/pull/17611#issuecomment-1918611708


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs

2024-01-30 Thread Matthias Baesken
On Tue, 30 Jan 2024 13:54:45 GMT, Magnus Ihse Bursie  wrote:

> I'd appreciate if you could take the latest version for a spin, particularly 
> a debug build...

Yes we pick up the latest version of the PR in a couple of hours for the 
build+'lots of tests'  (and this includes a fastdebug too).

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1916925827


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs

2024-01-30 Thread Matthias Baesken
On Tue, 30 Jan 2024 13:02:53 GMT, Magnus Ihse Bursie  wrote:

> @MBaesken You gotta be kidding me... They just put in a `#define open open64` 
> in a convenient place? 
> 
> But why do only slowdebug fail? Weird.

Yes there is a nice define in the AIX header

ifdef _LARGE_FILES
#define openopen64


Why only fastdebug (we build product and fastdebug nightly) - no idea .

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1916881475


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs

2024-01-30 Thread Matthias Baesken
On Tue, 23 Jan 2024 15:42:55 GMT, Magnus Ihse Bursie  wrote:

> Similar to [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we 
> should use -D_FILE_OFFSET_BITS=64, and not -D_LARGEFILE64_SOURCE in the JDK 
> native libraries.

AIX fastdebug build fails with the patch, build error is


/priv/jenkins/client-home/workspace/openjdk-jdk-dev-aix_ppc64-dbg/jdk/src/java.desktop/share/native/libawt/java2d/pipe/BufferedRenderPipe.c:101:24:
 error: no member named 'open64' in 'SpanIteratorFuncs'; did you mean 'open'?
srData = (*pFuncs->open)(env, si);
   ^~~~
   open
/usr/include/fcntl.h:115:14: note: expanded from macro 'open'
#define openopen64
^
/priv/jenkins/client-home/workspace/openjdk-jdk-dev-aix_ppc64-dbg/jdk/src/java.desktop/share/native/libawt/java2d/pipe/SpanIterator.h:37:17:
 note: 'open' declared here
void *(*open)(JNIEnv *env, jobject iterator);

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1916295477


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs

2024-01-29 Thread Matthias Baesken
On Mon, 29 Jan 2024 13:54:35 GMT, Joachim Kern  wrote:

> Why not CFLAGS_OS_DEF_JVM="-DAIX -D_LARGE_FILES" as the equivalent on Linux

I think this PR is intended to be just about the JDK libs, not JVM compilation.

-

PR Review Comment: https://git.openjdk.org/jdk/pull/17538#discussion_r1469835487


Re: RFR: 8324539: Do not use LFS64 symbols in JDK libs

2024-01-29 Thread Matthias Baesken
On Tue, 23 Jan 2024 15:42:55 GMT, Magnus Ihse Bursie  wrote:

> Similar to [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we 
> should use -D_FILE_OFFSET_BITS=64, and not -D_LARGEFILE64_SOURCE in the JDK 
> native libraries.

I put it into our build/test patch list to see how it behaves on your 
environments (especially AIX).

-

PR Comment: https://git.openjdk.org/jdk/pull/17538#issuecomment-1914724741


Re: RFR: 8324834: Use _LARGE_FILES on AIX

2024-01-29 Thread Matthias Baesken
On Mon, 29 Jan 2024 11:44:34 GMT, Magnus Ihse Bursie  wrote:

> In the same spirit as 
> [JDK-8318696](https://bugs.openjdk.org/browse/JDK-8318696), we should adapt 
> the AIX-specific code in hotspot so it uses the well-defined posix `` 
> functions, instead of `64`. By setting the define _LARGE_FILES, this 
> will make `` behave as `64`, just as _FILE_OFFSET_BITS=64 does on 
> gcc. (Reference: 
> https://www.ibm.com/docs/en/aix/7.1?topic=volumes-writing-programs-that-access-large-files)
> 
> In theory, it should not even be necessary to set this, since we only compile 
> for 64-bit AIX platforms, and this is only relevant on 32-bit platforms. But 
> let's add the define anyway, for good measure. It shows at least that we have 
> thought about the matter. :-)
> 
> I have not been able to test this on AIX. I hope someone with AIX access can 
> take this for a spin.
> 
> The reason I'm doing this is for 
> [JDK-8324539](https://bugs.openjdk.org/browse/JDK-8324539). After both these 
> bugs are fixed, there will be no more `64` function calls in the code 
> base.

> I believe this has missed 2 callsites in os_posix.cpp, which recently swapped 
> to the 64 suffixed variant that is controlled the AIX_ONLY macro #17587

Yes the  2 changes 'overlapped' .

Using the '_LARGE_FILES' should be okay, I checked this in a small example in 
the binary and it showed the the 64bit/large file function was used.

-

PR Comment: https://git.openjdk.org/jdk/pull/17611#issuecomment-1914669910
PR Comment: https://git.openjdk.org/jdk/pull/17611#issuecomment-1914672408


Re: RFR: 8318696: Do not use LFS64 symbols on Linux [v5]

2024-01-23 Thread Matthias Baesken
On Mon, 22 Jan 2024 12:19:25 GMT, Sam James  wrote:

> Could someone run the other commands again for older branches for me as well? 
> I don't have access.

Will look into 17 as well.  Might make sense to have some other minor backports 
to jdk17u-dev before,  to make the backport easier (maybe [almost] clean) .

-

PR Comment: https://git.openjdk.org/jdk/pull/16329#issuecomment-1905617230


Re: RFR: 8318696: Do not use LFS64 symbols on Linux [v4]

2024-01-19 Thread Matthias Baesken
On Fri, 19 Jan 2024 10:37:42 GMT, Sam James  wrote:

>> The LFS64 symbols provided by glibc are not part of any standard and were 
>> gated behind -D_LARGEFILE64_SOURCE in musl 1.2.4 (to be removed in 1.2.5). 
>> This commit replaces the usage of LFS64 symbols with their regular 
>> counterparts and defines -D_FILE_OFFSET_BITS=64, ensuring that functions 
>> will always act as their -64 variants on glibc.
>
> Sam James has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - sendfile64 -> sendfile
>
>Signed-off-by: Sam James 
>  - buf64->buf
>
>Signed-off-by: Sam James 

Looks good to me, but please also adjust COPYRIGHT headers (e.g. 
flags-cflags.m4) .

Btw. I can confirm that with your patch applied, the build is fixed on Alpine 
3.19 (see also [JDK-8324153](https://bugs.openjdk.org/browse/JDK-8324153) build 
fails on Alpine x86_64 3.19  for details on the failures) .

-

Marked as reviewed by mbaesken (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/16329#pullrequestreview-1832719082


Re: RFR: JDK-8323008: filter out harmful -std* flags added by autoconf from CXX [v4]

2024-01-12 Thread Matthias Baesken
On Fri, 12 Jan 2024 13:32:28 GMT, Julian Waters  wrote:

>As I mentioned above, the autoconf inserting of those compiler flags can be 
>disabled by setting ac_prog_cc_stdc and >ac_prog_cxx_stdcxx to readonly empty 
>values. It's also a workaround, but is slightly less hacky than filtering out 
>the CXX values >like this. Maybe a topic for another changeset?

Yes maybe something for another changeset .
[RealCLanger](https://github.com/RealCLanger)  did you try this, maybe you 
mentioned something like this ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1889234006


Integrated: JDK-8323008: filter out harmful -std* flags added by autoconf from CXX

2024-01-12 Thread Matthias Baesken
On Mon, 8 Jan 2024 10:16:21 GMT, Matthias Baesken  wrote:

> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
> -std=gnu++11 by default to CXX in the configure process .
> This is not really wanted so better remove / filter out those -std* flags 
> added by autoconf from CXX .
> 
> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>  dates back to JDK 9.
> 
> See the discussion about this issue : 
> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html

This pull request has now been integrated.

Changeset: 68c42860
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/68c4286026bc2c0ec0f594e0b96fe03fe5624d6d
Stats: 8 lines in 2 files changed: 4 ins; 0 del; 4 mod

8323008: filter out harmful -std* flags added by autoconf from CXX

Reviewed-by: erikj, clanger, ihse

-

PR: https://git.openjdk.org/jdk/pull/17301


Re: RFR: JDK-8323008: filter out harmful -std* flags added by autoconf from CXX [v4]

2024-01-12 Thread Matthias Baesken
On Thu, 11 Jan 2024 14:31:47 GMT, Matthias Baesken  wrote:

>> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
>> -std=gnu++11 by default to CXX in the configure process .
>> This is not really wanted so better remove / filter out those -std* flags 
>> added by autoconf from CXX .
>> 
>> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
>> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>>  dates back to JDK 9.
>> 
>> See the discussion about this issue : 
>> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   adjust GREP, remove unneeded test

Thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1889055298


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX [v4]

2024-01-11 Thread Matthias Baesken
On Thu, 11 Jan 2024 14:31:47 GMT, Matthias Baesken  wrote:

>> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
>> -std=gnu++11 by default to CXX in the configure process .
>> This is not really wanted so better remove / filter out any -std* flags 
>> added by autoconf from CC/CXX .
>> 
>> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
>> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>>  dates back to JDK 9.
>> 
>> See the discussion about this issue : 
>> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   adjust GREP, remove unneeded test

Erik  (and Magnus?) are you okay with the latest version of the patch ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1888588338


Re: RFR: 8314488: Compile the JDK as C++17 [v6]

2024-01-11 Thread Matthias Baesken
On Fri, 12 Jan 2024 06:32:34 GMT, Kim Barrett  wrote:

> > Thanks! We may switch to clang 14 on MacOS at some point of time, but it's 
> > better to have that disentangled. Some people build JDK 11 and 23 on the 
> > same machine and that is easier if they don't have to switch Xcode.
> 
> I think the minimum clang version should not be greater than what’s provided 
> by the minimum Open XL C/C++ version.
> 
> If the aix-ppc port only requires Open XL C/C++ 17.1.1 then that’s clang 13. 
> If the aix-ppc port were to instead jump further forward, to 17.1.2, then 
> that’s clang 15.
> 
> I've asked the aix-ppc folks if requiring 17.1.2 would be okay, but haven't 
> heard back yet.

We at SAP use  and document xlC  17.1.1.4   for jdk22 (use the same for jdk23)
https://wiki.openjdk.org/display/Build/Supported+Build+Platforms

version 17.1.1.4  is already clang15 (at least that's what the compiler output 
is telling me) 

/opt/IBM/openxlC/17.1.1/bin/ibm-clang++_r -v
IBM Open XL C/C++ for AIX 17.1.1 (5725-C72, 5765-J18), version 17.1.1.4, clang 
version 15.0.0 (build ca7115e)
Target: powerpc-ibm-aix7.2.0.0

-

PR Comment: https://git.openjdk.org/jdk/pull/14988#issuecomment-1888583559


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX

2024-01-11 Thread Matthias Baesken
On Thu, 11 Jan 2024 13:54:01 GMT, Christoph Langer  wrote:

> Makes sense. It's the same pattern.

I adjusted the second GREP too and removed the` if test` .

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1887318284


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX [v4]

2024-01-11 Thread Matthias Baesken
> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
> -std=gnu++11 by default to CXX in the configure process .
> This is not really wanted so better remove / filter out any -std* flags added 
> by autoconf from CC/CXX .
> 
> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>  dates back to JDK 9.
> 
> See the discussion about this issue : 
> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  adjust GREP, remove unneeded test

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/17301/files
  - new: https://git.openjdk.org/jdk/pull/17301/files/98046dfc..2ae6e0c2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=17301=03
 - incr: https://webrevs.openjdk.org/?repo=jdk=17301=02-03

  Stats: 4 lines in 2 files changed: 0 ins; 2 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/17301.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17301/head:pull/17301

PR: https://git.openjdk.org/jdk/pull/17301


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX [v3]

2024-01-11 Thread Matthias Baesken
> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
> -std=gnu++11 by default to CXX in the configure process .
> This is not really wanted so better remove / filter out any -std* flags added 
> by autoconf from CC/CXX .
> 
> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>  dates back to JDK 9.
> 
> See the discussion about this issue : 
> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  adjust COPYRIGHT year

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/17301/files
  - new: https://git.openjdk.org/jdk/pull/17301/files/63300451..98046dfc

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=17301=02
 - incr: https://webrevs.openjdk.org/?repo=jdk=17301=01-02

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

PR: https://git.openjdk.org/jdk/pull/17301


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX [v2]

2024-01-11 Thread Matthias Baesken
On Thu, 11 Jan 2024 11:19:01 GMT, Magnus Ihse Bursie  wrote:

>> Matthias Baesken has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Adjust GREP call
>
> make/autoconf/toolchain.m4 line 395:
> 
>> 393:   # filter out some unwanted additions autoconf may add to CXX; we saw 
>> this on macOS with autoconf 2.72
>> 394:   UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 
>> -std=gnu++11)
>> 395:   if test "x$cxx_filtered" != x; then
> 
> Why this test? If CXX is empty, then xcc_filtered will be empty too, right? 
> And if CXX is exactly `-std=c++11`, then this test will render cxx_filter 
> empty too, which will not change CXX -- which I believe is not what you want?

Probably you are right; I think I 'borrowed'  the pattern with the additional` 
if test` from some other places where UTIL_GET_NON_MATCHING_VALUES is used 
(e.g. jvm-features.m4).
Should I remove the  test ?

-

PR Review Comment: https://git.openjdk.org/jdk/pull/17301#discussion_r1448847359


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX

2024-01-11 Thread Matthias Baesken
On Thu, 11 Jan 2024 11:06:02 GMT, Christoph Langer  wrote:

> > Strange, I noticed that for some reason the 
> > UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 -std=gnu++11) 
> > seems not to remove the flags as expected, did I misinterpret how 
> > UTIL_GET_NON_MATCHING_VALUES works ? Any ideas ? An `CXX=`echo $CXX | cut 
> > -d ' ' -f1`` extracted what we want (not sure if we want to do it that way, 
> > in case we have blanks in the CXX value ?
> 
> Hi Matthias,
> 
> I believe that I've figured out the problem with 
> UTIL_GET_NON_MATCHING_VALUES. The string `-std=c++11` is interpreted as an 
> option to GREP. This can be fixed by changing from `$GREP -Fvx 
> "$legal_values" <<< "$values_to_check"` to `$GREP -Fvx -- "$legal_values" <<< 
> "$values_to_check"` in [this place in 
> util.m4](https://github.com/openjdk/jdk/blob/b922f8d45951250b7c39cb179b9bc1a8a6256a9e/make/autoconf/util.m4#L202C5-L202C79).
>  Note the `--` which marks the end of arguments and signals that 
> `$legal_values` is the pattern.
> 
> I verified that it works.
> 
> Cheers Christoph


Thanks , seems GREP was indeed 'harmed' by the parameters we use here.
Btw there is a similar place here where we would run into the same issue
https://github.com/openjdk/jdk/blob/b922f8d45951250b7c39cb179b9bc1a8a6256a9e/make/autoconf/util.m4#L229
should I adjust this too ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1887131296


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX [v2]

2024-01-11 Thread Matthias Baesken
> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
> -std=gnu++11 by default to CXX in the configure process .
> This is not really wanted so better remove / filter out any -std* flags added 
> by autoconf from CC/CXX .
> 
> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>  dates back to JDK 9.
> 
> See the discussion about this issue : 
> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  Adjust GREP call

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/17301/files
  - new: https://git.openjdk.org/jdk/pull/17301/files/ce2ef781..63300451

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=17301=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=17301=00-01

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

PR: https://git.openjdk.org/jdk/pull/17301


Re: RFR: 8314488: Compile the JDK as C++17 [v5]

2024-01-10 Thread Matthias Baesken
On Wed, 10 Jan 2024 13:11:38 GMT, Julian Waters  wrote:

>> Compile the JDK as C++17, enabling the use of all C++17 language features
>
> Julian Waters has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Remove unnecessary -std=c++17 option in Lib.gmk

Hi Martin, probably we can update our devkit if really needed.
But 
https://clang.llvm.org/cxx_status.html
states that c++17 is supported for a very long time, so probably  clang 13.1 is 
sufficient too (or is there a real showstopper known with this release) .

-

PR Comment: https://git.openjdk.org/jdk/pull/14988#issuecomment-1884892708


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX

2024-01-09 Thread Matthias Baesken
On Tue, 9 Jan 2024 17:03:43 GMT, Julian Waters  wrote:

> Rather than filtering through the added flags like this, is it possible to 
> figure out why macOS trips the C++11 heuristic and fix the problem there?

That might be a bit tricky, because on my macOS test machine, with a self 
compiled autoconf 2.72,  I did not even get this strange behavior.  But it was 
a different macOS version .   So it seems to be a problem of very specific 
environment.

> Failing that, a temporary solution of setting the shell var ac_prog_cc_stdc 
> to yes might help as a band aid solution, as autoconf does not perform the 
> check if that is set to anything other than no

Can we set this somewhere in the OpenJDK m4 files, would be better for us than 
on the shell before configure.
Should we set this in general , or do we want autoconf to add sometimes flags 
like these to  CXX  (or maybe  CC) ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1884339468


Re: RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX

2024-01-09 Thread Matthias Baesken
On Mon, 8 Jan 2024 10:16:21 GMT, Matthias Baesken  wrote:

> It was observed, that autoconf 2.72 added on macOS x86_64 the flag 
> -std=gnu++11 by default to CXX in the configure process .
> This is not really wanted so better remove / filter out any -std* flags added 
> by autoconf from CC/CXX .
> 
> Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
> TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
>  dates back to JDK 9.
> 
> See the discussion about this issue : 
> https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html

Strange, I noticed that for some reason the  
UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 -std=gnu++11)  
seems not to remove the flags as expected, did I misinterpret how 
UTIL_GET_NON_MATCHING_VALUES works ? Any ideas ?
An
`CXX=`echo $CXX | cut -d ' ' -f1``
extracted what we want (not sure if we want to do it that way,  in case we have 
blanks in the CXX value ?

-

PR Comment: https://git.openjdk.org/jdk/pull/17301#issuecomment-1883357259


RFR: JDK-8323008: filter out any -std* flags added by autoconf from CC/CXX

2024-01-08 Thread Matthias Baesken
It was observed, that autoconf 2.72 added on macOS x86_64 the flag -std=gnu++11 
by default to CXX in the configure process .
This is not really wanted so better remove / filter out any -std* flags added 
by autoconf from CC/CXX .

Seems we have something similar for some time for CFLAGS and CXXFLAGS ( see 
TOOLCHAIN_POST_DETECTION in make/autoconf/toolchain.m4) that
 dates back to JDK 9.

See the discussion about this issue : 
https://mail.openjdk.org/pipermail/build-dev/2024-January/042551.html

-

Commit messages:
 - JDK-8323008

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

PR: https://git.openjdk.org/jdk/pull/17301


Re: RFR: 8295159: DSO created with -ffast-math breaks Java floating-point arithmetic [v20]

2023-11-09 Thread Matthias Baesken
On Fri, 3 Nov 2023 14:46:39 GMT, Andrew Haley  wrote:

>> A bug in GCC causes shared libraries linked with -ffast-math to disable 
>> denormal arithmetic. This breaks Java's floating-point semantics.
>> 
>> The bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522
>> 
>> One solution is to save and restore the floating-point control word around 
>> System.loadLibrary(). This isn't perfect, because some shared library might 
>> load another shared library at runtime, but it's a lot better than what we 
>> do now. 
>> 
>> However, this fix is not complete. `dlopen()` is called from many places in 
>> the JDK. I guess the best thing to do is find and wrap them all. I'd like to 
>> hear people's opinions.
>
> Andrew Haley has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Delete src/hotspot/os/linux/.#os_linux.cpp

This leads now to lots of assertions in the jdk tier4 javax/sound tests on our 
RHEL 9.3 Linux aarch64 box.
Opened 
https://bugs.openjdk.org/browse/JDK-8319708
8319708: Assertion 'fsetenv didn't work' in jdk tier4 tests after 8295159 on 
Linux aarch64 RHEL9.3

Unfortunately , the shared libs loaded by the JDK native C code (and the 
dependencies of those libs) are not covered at all, so it is unclear to me what 
exactly caused the issue. Maybe some sound-related lib on RHEL ?

-

PR Comment: https://git.openjdk.org/jdk/pull/10661#issuecomment-1803816232


Integrated: JDK-8318961: increase javacserver connection timeout values and max retry attempts

2023-10-30 Thread Matthias Baesken
On Fri, 27 Oct 2023 10:43:58 GMT, Matthias Baesken  wrote:

> Increase javacserver connection timeout values and max retry attempts for 
> better make stability on some slower machines.

This pull request has now been integrated.

Changeset: b9983c72
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/b9983c72295a31e5f5079bc96c892177fbea3a6e
Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod

8318961: increase javacserver connection timeout values and max retry attempts

Reviewed-by: clanger, erikj

-

PR: https://git.openjdk.org/jdk/pull/16397


Re: RFR: JDK-8318961: increase javacserver connection timeout values and max retry attempts [v2]

2023-10-30 Thread Matthias Baesken
On Mon, 30 Oct 2023 09:29:05 GMT, Matthias Baesken  wrote:

>> Increase javacserver connection timeout values and max retry attempts for 
>> better make stability on some slower machines.
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Adjust WAIT_BETWEEN_CONNECT_ATTEMPTS

Hi Christoph and Erik, thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/16397#issuecomment-1785134884


Re: RFR: JDK-8318961: increase javacserver connection timeout values and max retry attempts [v2]

2023-10-30 Thread Matthias Baesken
> Increase javacserver connection timeout values and max retry attempts for 
> better make stability on some slower machines.

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  Adjust WAIT_BETWEEN_CONNECT_ATTEMPTS

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/16397/files
  - new: https://git.openjdk.org/jdk/pull/16397/files/314ddfbb..a165403f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=16397=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=16397=00-01

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

PR: https://git.openjdk.org/jdk/pull/16397


Re: RFR: JDK-8318961: increase javacserver connection timeout values and max retry attempts

2023-10-30 Thread Matthias Baesken
On Fri, 27 Oct 2023 10:43:58 GMT, Matthias Baesken  wrote:

> Increase javacserver connection timeout values and max retry attempts for 
> better make stability on some slower machines.

I adjusted the WAIT_BETWEEN_CONNECT_ATTEMPTS; Let's how this works.

-

PR Comment: https://git.openjdk.org/jdk/pull/16397#issuecomment-1784793547


RFR: JDK-8318961: increase javacserver connection timeout values and max retry attempts

2023-10-27 Thread Matthias Baesken
Increase javacserver connection timeout values and max retry attempts for 
better make stability on some slower machines.

-

Commit messages:
 - JDK-8318961

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

PR: https://git.openjdk.org/jdk/pull/16397


Integrated: JDK-8316894: make test TEST="jtreg:test/jdk/..." fails on AIX

2023-09-28 Thread Matthias Baesken
On Wed, 27 Sep 2023 08:18:45 GMT, Matthias Baesken  wrote:

> Running jtreg tests with make test, for example
> make test TEST="jtreg:test/jdk/java/util/prefs" fails currently on AIX 
> without setting the number of JOBS manually.
> We get this error message:
> Error: Bad use of -concurrency
> 
> Log of cmdargs shows :
> -vmoption:-Xmx768m
> -agentvm
> -verbose:fail,error,summary
> -retain:fail,error
> -concurrency:7.00
> 
> 
> So currently a float is used for the concurrency value, seems this is not 
> supported.
> Reason is an old gawk printing float values instead of the needed ints, so 
> better print ints in the makefile by using %d .

This pull request has now been integrated.

Changeset: 29348b3c
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/29348b3cf65951e1aacd52c517b6b0d29449a78e
Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod

8316894: make test TEST="jtreg:test/jdk/..." fails on AIX

Reviewed-by: ihse, erikj

-

PR: https://git.openjdk.org/jdk/pull/15941


Re: RFR: JDK-8316894: make test TEST="jtreg:test/jdk/..." fails on AIX [v2]

2023-09-28 Thread Matthias Baesken
On Thu, 28 Sep 2023 12:57:07 GMT, Matthias Baesken  wrote:

>> Running jtreg tests with make test, for example
>> make test TEST="jtreg:test/jdk/java/util/prefs" fails currently on AIX 
>> without setting the number of JOBS manually.
>> We get this error message:
>> Error: Bad use of -concurrency
>> 
>> Log of cmdargs shows :
>> -vmoption:-Xmx768m
>> -agentvm
>> -verbose:fail,error,summary
>> -retain:fail,error
>> -concurrency:7.00
>> 
>> 
>> So currently a float is used for the concurrency value, seems this is not 
>> supported.
>> Reason is an old gawk printing float values instead of the needed ints, so 
>> better print ints in the makefile by using %d .
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Add 0.5 to avoid rounding issues

Hi Magnus and Erik,  thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/15941#issuecomment-1739593418


Re: RFR: JDK-8316894: make test TEST="jtreg:test/jdk/..." fails on AIX [v2]

2023-09-28 Thread Matthias Baesken
> Running jtreg tests with make test, for example
> make test TEST="jtreg:test/jdk/java/util/prefs" fails currently on AIX 
> without setting the number of JOBS manually.
> We get this error message:
> Error: Bad use of -concurrency
> 
> Log of cmdargs shows :
> -vmoption:-Xmx768m
> -agentvm
> -verbose:fail,error,summary
> -retain:fail,error
> -concurrency:7.00
> 
> 
> So currently a float is used for the concurrency value, seems this is not 
> supported.
> Reason is an old gawk printing float values instead of the needed ints, so 
> better print ints in the makefile by using %d .

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  Add 0.5 to avoid rounding issues

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/15941/files
  - new: https://git.openjdk.org/jdk/pull/15941/files/32531634..8319f695

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=15941=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=15941=00-01

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

PR: https://git.openjdk.org/jdk/pull/15941


Re: RFR: JDK-8316894: make test TEST="jtreg:test/jdk/..." fails on AIX

2023-09-28 Thread Matthias Baesken
On Wed, 27 Sep 2023 17:09:04 GMT, Erik Joelsson  wrote:

> To work around this, perhaps add 0.5 to c before converting to int?

Hi Erik, sure  we can do so , I adjusted the change.

-

PR Comment: https://git.openjdk.org/jdk/pull/15941#issuecomment-1739103028


Re: RFR: JDK-8316894: make test TEST="jtreg:test/jdk/..." fails on AIX

2023-09-27 Thread Matthias Baesken
On Wed, 27 Sep 2023 12:15:18 GMT, Magnus Ihse Bursie  wrote:

> Looks good. Have you verified that this works with nawk as well as old gawk 
> versions?

On AIX I have both nawk and gawk on the machine and both work with the change.
On Linux I have just gawk (more recent one) and this works too.

-

PR Comment: https://git.openjdk.org/jdk/pull/15941#issuecomment-1737516357


RFR: JDK-8316894: make test TEST="jtreg:test/jdk/..." fails on AIX

2023-09-27 Thread Matthias Baesken
Running jtreg tests with make test, for example
make test TEST="jtreg:test/jdk/java/util/prefs" fails currently on AIX without 
setting the number of JOBS manually.
We get this error message:
Error: Bad use of -concurrency

Log of cmdargs shows :
-vmoption:-Xmx768m
-agentvm
-verbose:fail,error,summary
-retain:fail,error
-concurrency:7.00


So currently a float is used for the concurrency value, seems this is not 
supported.
Reason is an old gawk printing float values instead of the needed ints, so 
better print ints in the makefile by using %d .

-

Commit messages:
 - JDK-8316894

Changes: https://git.openjdk.org/jdk/pull/15941/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=15941=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316894
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/15941.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15941/head:pull/15941

PR: https://git.openjdk.org/jdk/pull/15941


Re: RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen [v3]

2023-09-05 Thread Matthias Baesken
On Mon, 4 Sep 2023 07:40:11 GMT, Matthias Baesken  wrote:

>> After looking at the build results of a jdk22 build on RHEL 8.4 Linux 
>> ppc64le that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
>> devkit we observed those unwanted paths in libsplashscreen.so .
>> See those objdump and ldd output :
>> 
>> objdump -x ./lib/libsplashscreen.so | grep PATH
>>   RUNPATH 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN
>> 
>> 
>> ldd ./lib/libsplashscreen.so
>> ldd: warning: you do not have execution permission for 
>> `./lib/libsplashscreen.so'
>>   . . .
>>libX11.so.6 => 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
>>  (0x7fffa392)
>>libXext.so.6 => 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
>>  (0x7fffa38e)
>>. . .
>> 
>> These paths were introduced by the '-R' setting, but it seems to be highly 
>> dependent on the environment.  But the '-R' setting should better be avoided 
>> anyway when the devkit is used.
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   with_x case needs to be handled

Hi Erik, thanks for the review !

-

PR Comment: https://git.openjdk.org/jdk/pull/15534#issuecomment-1706556893


Integrated: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen

2023-09-05 Thread Matthias Baesken
On Fri, 1 Sep 2023 11:02:36 GMT, Matthias Baesken  wrote:

> After looking at the build results of a jdk22 build on RHEL 8.4 Linux ppc64le 
> that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
> devkit we observed those unwanted paths in libsplashscreen.so .
> See those objdump and ldd output :
> 
> objdump -x ./lib/libsplashscreen.so | grep PATH
>   RUNPATH 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN
> 
> 
> ldd ./lib/libsplashscreen.so
> ldd: warning: you do not have execution permission for 
> `./lib/libsplashscreen.so'
>   . . .
>libX11.so.6 => 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
>  (0x7fffa392)
>libXext.so.6 => 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
>  (0x7fffa38e)
>. . .
> 
> These paths were introduced by the '-R' setting, but it seems to be highly 
> dependent on the environment.  But the '-R' setting should better be avoided 
> anyway when the devkit is used.

This pull request has now been integrated.

Changeset: ed2b4673
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/ed2b4673de6893047407c61f82b5e68741459876
Stats: 5 lines in 1 file changed: 2 ins; 0 del; 3 mod

8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into 
libsplashscreen

Reviewed-by: erikj

-

PR: https://git.openjdk.org/jdk/pull/15534


Re: RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen [v3]

2023-09-05 Thread Matthias Baesken
On Mon, 4 Sep 2023 07:40:11 GMT, Matthias Baesken  wrote:

>> After looking at the build results of a jdk22 build on RHEL 8.4 Linux 
>> ppc64le that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
>> devkit we observed those unwanted paths in libsplashscreen.so .
>> See those objdump and ldd output :
>> 
>> objdump -x ./lib/libsplashscreen.so | grep PATH
>>   RUNPATH 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN
>> 
>> 
>> ldd ./lib/libsplashscreen.so
>> ldd: warning: you do not have execution permission for 
>> `./lib/libsplashscreen.so'
>>   . . .
>>libX11.so.6 => 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
>>  (0x7fffa392)
>>libXext.so.6 => 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
>>  (0x7fffa38e)
>>. . .
>> 
>> These paths were introduced by the '-R' setting, but it seems to be highly 
>> dependent on the environment.  But the '-R' setting should better be avoided 
>> anyway when the devkit is used.
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   with_x case needs to be handled

Hi Erik, are you fine with the latest revision ?

-

PR Comment: https://git.openjdk.org/jdk/pull/15534#issuecomment-1706097969


Re: RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen [v2]

2023-09-04 Thread Matthias Baesken
On Fri, 1 Sep 2023 16:55:21 GMT, Erik Joelsson  wrote:

>> Matthias Baesken has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   check for SYSROOT and xlib-setting
>
> make/autoconf/lib-x11.m4 line 38:
> 
>> 36: X_LIBS=
>> 37:   else
>> 38: x_libraries_orig="$x_libraries"
> 
> This needs to capture the value from `with_x` as well. Both are variants of 
> user input.

Hi Erik, I added a check in the with_x case.

-

PR Review Comment: https://git.openjdk.org/jdk/pull/15534#discussion_r1314568197


Re: RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen [v3]

2023-09-04 Thread Matthias Baesken
> After looking at the build results of a jdk22 build on RHEL 8.4 Linux ppc64le 
> that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
> devkit we observed those unwanted paths in libsplashscreen.so .
> See those objdump and ldd output :
> 
> objdump -x ./lib/libsplashscreen.so | grep PATH
>   RUNPATH 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN
> 
> 
> ldd ./lib/libsplashscreen.so
> ldd: warning: you do not have execution permission for 
> `./lib/libsplashscreen.so'
>   . . .
>libX11.so.6 => 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
>  (0x7fffa392)
>libXext.so.6 => 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
>  (0x7fffa38e)
>. . .
> 
> These paths were introduced by the '-R' setting, but it seems to be highly 
> dependent on the environment.  But the '-R' setting should better be avoided 
> anyway when the devkit is used.

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  with_x case needs to be handled

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/15534/files
  - new: https://git.openjdk.org/jdk/pull/15534/files/9eb03929..1bed7a2e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=15534=02
 - incr: https://webrevs.openjdk.org/?repo=jdk=15534=01-02

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

PR: https://git.openjdk.org/jdk/pull/15534


Re: RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen [v2]

2023-09-01 Thread Matthias Baesken
> After looking at the build results of a jdk22 build on RHEL 8.4 Linux ppc64le 
> that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
> devkit we observed those unwanted paths in libsplashscreen.so .
> See those objdump and ldd output :
> 
> objdump -x ./lib/libsplashscreen.so | grep PATH
>   RUNPATH 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN
> 
> 
> ldd ./lib/libsplashscreen.so
> ldd: warning: you do not have execution permission for 
> `./lib/libsplashscreen.so'
>   . . .
>libX11.so.6 => 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
>  (0x7fffa392)
>libXext.so.6 => 
> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
>  (0x7fffa38e)
>. . .
> 
> These paths were introduced by the '-R' setting, but it seems to be highly 
> dependent on the environment.  But the '-R' setting should better be avoided 
> anyway when the devkit is used.

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  check for SYSROOT and xlib-setting

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/15534/files
  - new: https://git.openjdk.org/jdk/pull/15534/files/1d722756..9eb03929

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=15534=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=15534=00-01

  Stats: 7 lines in 1 file changed: 1 ins; 4 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/15534.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15534/head:pull/15534

PR: https://git.openjdk.org/jdk/pull/15534


Re: RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen

2023-09-01 Thread Matthias Baesken
On Fri, 1 Sep 2023 12:54:45 GMT, Erik Joelsson  wrote:

>> After looking at the build results of a jdk22 build on RHEL 8.4 Linux 
>> ppc64le that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
>> devkit we observed those unwanted paths in libsplashscreen.so .
>> See those objdump and ldd output :
>> 
>> objdump -x ./lib/libsplashscreen.so | grep PATH
>>   RUNPATH 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN
>> 
>> 
>> ldd ./lib/libsplashscreen.so
>> ldd: warning: you do not have execution permission for 
>> `./lib/libsplashscreen.so'
>>   . . .
>>libX11.so.6 => 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
>>  (0x7fffa392)
>>libXext.so.6 => 
>> /mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
>>  (0x7fffa38e)
>>. . .
>> 
>> These paths were introduced by the '-R' setting, but it seems to be highly 
>> dependent on the environment.  But the '-R' setting should better be avoided 
>> anyway when the devkit is used.
>
> make/autoconf/lib-x11.m4 line 90:
> 
>> 88: fi
>> 89: # Also remove the -R setting for devkit usage
>> 90: if test "x$with_devkit" != "x" && test "x$with_devkit" != "xno"; then
> 
> This should rather check if `$SYSROOT` has a value and should also check that 
> `$x_libraries` is `NONE` (see how it's done on line 64). A sysroot can be 
> configured without a devkit, and if we find the X libraries in the sysroot, 
> then we shouldn't add an -R path. If however a user needs to specifically 
> point out the x libraries, I think we need to trust the built in macros as 
> the user may have them in a non standard place.
> 
> Can we combine the conditionals to avoid having to repeat the if body?

Hi Erik,  unfortunately  `x_libraries`  is already modified in the SYSROOT 
cases (see line 64 and below) , so can I check that `$x_libraries` is `NONE`  
or should I cache somehow the original value ?

-

PR Review Comment: https://git.openjdk.org/jdk/pull/15534#discussion_r1313043724


RFR: JDK-8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen

2023-09-01 Thread Matthias Baesken
After looking at the build results of a jdk22 build on RHEL 8.4 Linux ppc64le 
that uses a ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0
devkit we observed those unwanted paths in libsplashscreen.so .
See those objdump and ldd output :

objdump -x ./lib/libsplashscreen.so | grep PATH
  RUNPATH 
/mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64:$ORIGIN


ldd ./lib/libsplashscreen.so
ldd: warning: you do not have execution permission for 
`./lib/libsplashscreen.so'
  . . .
   libX11.so.6 => 
/mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libX11.so.6
 (0x7fffa392)
   libXext.so.6 => 
/mydevkitsfolder/devkits/ppc64le-linux-gnu-to-ppc64le-linux-gnu-fedora27-gcc11.3.0/ppc64le-linux-gnu/sysroot/usr/lib64/libXext.so.6
 (0x7fffa38e)
   . . .

These paths were introduced by the '-R' setting, but it seems to be highly 
dependent on the environment.  But the '-R' setting should better be avoided 
anyway when the devkit is used.

-

Commit messages:
 - JDK-8315499

Changes: https://git.openjdk.org/jdk/pull/15534/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=15534=00
  Issue: https://bugs.openjdk.org/browse/JDK-8315499
  Stats: 5 lines in 1 file changed: 4 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/15534.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15534/head:pull/15534

PR: https://git.openjdk.org/jdk/pull/15534


Re: RFR: JDK-8313764: Offer JVM HS functionality to shared lib load operations done by the JDK codebase [v2]

2023-08-28 Thread Matthias Baesken
On Mon, 28 Aug 2023 02:26:30 GMT, David Holmes  wrote:

> Sorry but looking at the hotspot part of this I do not like the code in 
> jvm.cpp at all - it is far too messy. I expected to see a simple interface to 
> os::dlopen which then handles all the platform specific issues.
> 
> I'm also somewhat dubious about having all the JDK code use a VM interface 
> for this, The usual coupling to the VM is to just provide native 
> implementations of core library methods, not to have the VM provide a general 
> purpose utility interface like dynamic library loading.


Hi David, so would you prefer to call into 'os::dll_load' (probably you meant 
that) instead ?  That would indeed make the coding smaller and less 'messy' .
However 'os::dll_load' has no flags parameter but uses a default, have to check 
if this might be a problem ...

-

PR Comment: https://git.openjdk.org/jdk/pull/15264#issuecomment-1695142975


Re: RFR: JDK-8313764: Offer JVM HS functionality to shared lib load operations done by the JDK codebase

2023-08-24 Thread Matthias Baesken
On Wed, 23 Aug 2023 12:26:36 GMT, Martin Doerr  wrote:

> Please check windows-aarch64 build error: unresolved external symbol 
> dlopen_ext

Hi Martin, thanks !  I did a small adjustment, now the windows aarch64 build 
works.

-

PR Comment: https://git.openjdk.org/jdk/pull/15264#issuecomment-1691148432


Re: RFR: JDK-8313764: Offer JVM HS functionality to shared lib load operations done by the JDK codebase [v2]

2023-08-23 Thread Matthias Baesken
> Currently there is a number of functionality that would be interesting to 
> have for shared lib load operations in the JDK C code.
> Some examples :
> Events::log_dll_message for hs-err files reporting
> JFR event NativeLibraryLoad
> There is the need to update the shared lib Cache on AIX ( see 
> LoadedLibraries::reload() , see also 
> https://bugs.openjdk.org/browse/JDK-8314152 ),
> this is currently not fully in sync with libs loaded form jdk c-libs and 
> sometimes reports outdated information
> 
> Offer an interface (e.g. jvm.cpp) to support this.

Matthias Baesken has updated the pull request incrementally with one additional 
commit since the last revision:

  windows aarch64 build issues

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/15264/files
  - new: https://git.openjdk.org/jdk/pull/15264/files/94e25ad7..9ceec5e5

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=15264=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=15264=00-01

  Stats: 2 lines in 2 files changed: 1 ins; 1 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/15264.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15264/head:pull/15264

PR: https://git.openjdk.org/jdk/pull/15264


Re: RFR: JDK-8313764: Offer JVM HS functionality to shared lib load operations done by the JDK codebase

2023-08-15 Thread Matthias Baesken
On Mon, 14 Aug 2023 07:48:00 GMT, Matthias Baesken  wrote:

> Currently there is a number of functionality that would be interesting to 
> have for shared lib load operations in the JDK C code.
> Some examples :
> Events::log_dll_message for hs-err files reporting
> JFR event NativeLibraryLoad
> There is the need to update the shared lib Cache on AIX ( see 
> LoadedLibraries::reload() , see also 
> https://bugs.openjdk.org/browse/JDK-8314152 ),
> this is currently not fully in sync with libs loaded form jdk c-libs and 
> sometimes reports outdated information
> 
> Offer an interface (e.g. jvm.cpp) to support this.

Hi Phil, yes there are of course more call sites of dlopen in the JDK C 
codebase.
I could cover them too, if this is wished.

> . but I'm still not sure I understand .. why is what you are doing only 
> wanted for the AIX cases ?

The lib cache update ` LoadedLibraries::reload();`   is  AIX specific;  the UL 
and JFR events are cross platform.

( Btw. in our proprietary JVM we have this approach for many years )

-

PR Comment: https://git.openjdk.org/jdk/pull/15264#issuecomment-1678538226


Re: RFR: JDK-8313764: Offer JVM HS functionality to shared lib load operations done by the JDK codebase

2023-08-14 Thread Matthias Baesken
On Mon, 14 Aug 2023 07:48:00 GMT, Matthias Baesken  wrote:

> Currently there is a number of functionality that would be interesting to 
> have for shared lib load operations in the JDK C code.
> Some examples :
> Events::log_dll_message for hs-err files reporting
> JFR event NativeLibraryLoad
> There is the need to update the shared lib Cache on AIX ( see 
> LoadedLibraries::reload() , see also 
> https://bugs.openjdk.org/browse/JDK-8314152 ),
> this is currently not fully in sync with libs loaded form jdk c-libs and 
> sometimes reports outdated information
> 
> Offer an interface (e.g. jvm.cpp) to support this.

Hi Alan,

> JDK-8314152 seems to very AIX specific with shared lib caching that I would 
> hope complicate interfaces for other ports.

yes this is of course AIX specific.  However I found something that might be 
similar on Windows, there we have in case of successful LoadLibrary in  
os::dll_load   calls to  SymbolEngine::recalc_search_path();
However I did not check the details on this; but for AIX we have a real problem 
with outdated/incomplete stacks in hs_err files.

-

PR Comment: https://git.openjdk.org/jdk/pull/15264#issuecomment-1677045118


RFR: JDK-8313764: Offer JVM HS functionality to shared lib load operations done by the JDK codebase

2023-08-14 Thread Matthias Baesken
Currently there is a number of functionality that would be interesting to have 
for shared lib load operations in the JDK C code.
Some examples :
Events::log_dll_message for hs-err files reporting
JFR event NativeLibraryLoad
There is the need to update the shared lib Cache on AIX ( see 
LoadedLibraries::reload() , see also 
https://bugs.openjdk.org/browse/JDK-8314152 ),
this is currently not fully in sync with libs loaded form jdk c-libs and 
sometimes reports outdated information

Offer an interface (e.g. jvm.cpp) to support this.

-

Commit messages:
 - JDK-8313764

Changes: https://git.openjdk.org/jdk/pull/15264/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=15264=00
  Issue: https://bugs.openjdk.org/browse/JDK-8313764
  Stats: 150 lines in 7 files changed: 150 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/15264.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15264/head:pull/15264

PR: https://git.openjdk.org/jdk/pull/15264


Re: RFR: JDK-8313244: NM flags handling in configure process [v4]

2023-08-10 Thread Matthias Baesken
On Wed, 9 Aug 2023 15:26:05 GMT, Andreas Steiner  wrote:

>> On AIX we need the -X64 option for NM in the build. The handling is 
>> equivalent to the other used tools flags like AR.
>> This change will replace the quick fix done in 
>> https://bugs.openjdk.org/browse/JDK-8312466.
>
> Andreas Steiner has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   add NMFLAGS in NativeCompilation.gmk for consistency

Marked as reviewed by mbaesken (Reviewer).

-

PR Review: https://git.openjdk.org/jdk/pull/15150#pullrequestreview-1571163156


Integrated: JDK-8312467: relax the builddir check in make/autoconf/basic.m4

2023-08-09 Thread Matthias Baesken
On Tue, 25 Jul 2023 12:00:56 GMT, Matthias Baesken  wrote:

> In case of issues in the configure step, we run into error messages like this 
> :
> 
> configure: Current directory is /openjdk/jdk_4/build_mymachine.
> configure: Since this is not the source root, configure will output the 
> configuration here
> configure: (as opposed to creating a configuration in 
> /build/).
> configure: However, this directory is not empty. This is not allowed, since 
> it could
> configure: seriously mess up just about everything.
> configure: Try 'cd /mysrcdir/jdk' and restart configure
> configure: (or create a new empty directory and cd to it).
> configure: error: Will not continue creating configuration in 
> /openjdk/jdk_4/build_mymachine
> configure exiting with result code 1
> 
> Probably the check could be relaxed; it tests for 'if test ! -e 
> "$OUTPUTDIR/spec.gmk"; then ...'
> but the non-existance of spec.gmk does not mean we are not in a build 
> directory.
> We could additionally check for e.g. $OUTPUTDIR/configure-support/config.log 
> or something related to check if it is a build directory .

This pull request has now been integrated.

Changeset: 6e3cc131
Author:Matthias Baesken 
URL:   
https://git.openjdk.org/jdk/commit/6e3cc131daa9f3b883164333bdaad7aa3a6ca018
Stats: 6 lines in 1 file changed: 1 ins; 0 del; 5 mod

8312467: relax the builddir check in make/autoconf/basic.m4

Reviewed-by: clanger, erikj

-

PR: https://git.openjdk.org/jdk/pull/15017


Re: RFR: JDK-8312467: relax the builddir check in make/autoconf/basic.m4 [v2]

2023-08-09 Thread Matthias Baesken
On Wed, 26 Jul 2023 07:21:13 GMT, Matthias Baesken  wrote:

>> In case of issues in the configure step, we run into error messages like 
>> this :
>> 
>> configure: Current directory is /openjdk/jdk_4/build_mymachine.
>> configure: Since this is not the source root, configure will output the 
>> configuration here
>> configure: (as opposed to creating a configuration in 
>> /build/).
>> configure: However, this directory is not empty. This is not allowed, since 
>> it could
>> configure: seriously mess up just about everything.
>> configure: Try 'cd /mysrcdir/jdk' and restart configure
>> configure: (or create a new empty directory and cd to it).
>> configure: error: Will not continue creating configuration in 
>> /openjdk/jdk_4/build_mymachine
>> configure exiting with result code 1
>> 
>> Probably the check could be relaxed; it tests for 'if test ! -e 
>> "$OUTPUTDIR/spec.gmk"; then ...'
>> but the non-existance of spec.gmk does not mean we are not in a build 
>> directory.
>> We could additionally check for e.g. $OUTPUTDIR/configure-support/config.log 
>> or something related to check if it is a build directory .
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   adjust check and output files found in failure case

Hi Christoph and Erik, thanks for the reviews !

-

PR Comment: https://git.openjdk.org/jdk/pull/15017#issuecomment-1670787334


Re: RFR: JDK-8313244: NM flags handling in configure process [v2]

2023-08-04 Thread Matthias Baesken
On Fri, 4 Aug 2023 11:17:43 GMT, Andreas Steiner  wrote:

>> On AIX we need the -X64 option for NM in the build. The handling is 
>> equivalent to the other used tools flags like AR.
>> This change will replace the quick fix done in 
>> https://bugs.openjdk.org/browse/JDK-8312466.
>
> Andreas Steiner has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   remove needless else

make/common/NativeCompilation.gmk  uses NM too, is there a reason to avoid the 
flag there?
flags-other.m4 : the comment 'on AIX ...'  is just stating the obvious;  maybe 
it should better mention that without -X64 we only process 32bit objects 
('Processes only 32-bit object files' says the manpage , and this is the 
default on AIX) ; or avoid the comment altogether ?

-

PR Review: https://git.openjdk.org/jdk/pull/15150#pullrequestreview-1562785813


Re: RFR: JDK-8311938: Add default cups include location for configure on AIX [v2]

2023-08-02 Thread Matthias Baesken
On Tue, 1 Aug 2023 12:50:47 GMT, Andreas Steiner  wrote:

>> Add the default include location(/opt/freeware/include/) for cups on AIX. 
>> With this set the additional configure parameter --with-cups-include can be 
>> removed, which was needed on AIX.
>
> Andreas Steiner has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   set default cups include location if with_cups is not set only, update 
> copyright year

Moving the check down a bit into a 
`if test "x$CUPS_FOUND" = xno; then`
section might have a little benefit , it would detect cups headers on AIX at 
the standard location in case a bad non working path has been set with 
'-with-cups' or 'with-cups-include' . But I am okay with both.

-

PR Comment: https://git.openjdk.org/jdk/pull/15100#issuecomment-1662124782


  1   2   >