RFR: 8319966: AIX: expected [[0:i4]] but found [[0:I4]] after JDK-8319882

Per Minborg pminborg at openjdk.org
Wed Nov 15 09:57:34 UTC 2023


On Wed, 15 Nov 2023 09:27:45 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> This PR proposes to fix a failing test on big endian architectures like AIX.
>
> test/jdk/java/foreign/TestLayouts.java line 223:
> 
>> 221:     public void testSequenceLayoutWithZeroLength() {
>> 222:         SequenceLayout layout = MemoryLayout.sequenceLayout(0, JAVA_INT);
>> 223:         assertEquals(layout.toString().toLowerCase(Locale.ROOT), "[0:i4]");
> 
> Hello Per, I don't yet have experience with these APIs; do you think the implementation of `toString()` itself should perhaps be changed to return a consistent value that doesn't depend on the endianness? Or is it intentional that there is a dependency?

I have seen this question several times in the past and it is indeed a valid one. It is like this by design and unfortunately, there will always be differences across platforms due to byte ordering, and mappings between C types and Java types.  As FFM acts like a glue between the native and Java worlds, there is always going to be a risk that one gets glue on one's fingers...

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16672#discussion_r1393947108


More information about the core-libs-dev mailing list