On Thu, 5 Nov 2026 13:21:42 GMT, Martin Doerr <[email protected]> wrote:

>> I've fixed a few more issues in the fallback linker identified by codex. 
>> There were also some canonical layouts that had the wrong signedness. I've 
>> now added a comprehensive test that checks the canonical layouts against 
>> information extracted from the compiler on that platform (using a library).
>> 
>> Finally, I fixed a copy-paste error in the new `TestZeroExtendLong` jtreg 
>> test definition, which was accidentally running the `TestZeroExtendInt` test.
>
> Hi @JornVernee, as usual, things are more complicated on AIX ;-)
> 
> 
> TestCanonicalLayouts::testCanonicalLayout '[2] char'
> org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
> 
> We are currently building with `-fsigned-char`. I guess the removal was 
> forgotten. linux on ppc64(le) doesn't use that. I'll create a separate PR to 
> remove it.
> 
> 
> TestCanonicalLayouts::testCanonicalLayout '[13] double'
> org.opentest4j.AssertionFailedError: expected: <4> but was: <8>
> 
> AIX has different alignment rules for `double`. We have already modified 
> other tests to use 8 Byte alignment. So, my suggestion is:
> 
> diff --git a/test/jdk/java/foreign/canonicallayouts/libCanonicalLayouts.c 
> b/test/jdk/java/foreign/canonicallayouts/libCanonicalLayouts.c
> index eea98f2dc22..e6833b2ac19 100644
> --- a/test/jdk/java/foreign/canonicallayouts/libCanonicalLayouts.c
> +++ b/test/jdk/java/foreign/canonicallayouts/libCanonicalLayouts.c
> @@ -21,6 +21,12 @@
>   * questions.
>   */
>  
> +#ifdef _AIX
> +// The JDK prefers linux compatible double alignment by default.
> +// Also see usage of #pragma align (natural)
> +typedef double linux_double __attribute__((aligned(8)));
> +#endif
> +
>  #include "export.h"
>  
>  #include <stdint.h>
> @@ -48,7 +54,11 @@ CHECKS_ALL(T, NAME) \
>  
>  CHECKS_ALL(bool, bool)
>  CHECKS_ALL(float, float)
> +#ifdef _AIX
> +CHECKS_ALL(linux_double, double)
> +#else
>  CHECKS_ALL(double, double)
> +#endif
>  CHECKS_ALL(void*, void_star)
>  
>  CHECKS_INTEGRAL(char, char)

@TheRealMDoerr Thanks for testing! I've added your patch for AIX

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

PR Comment: https://git.openjdk.org/jdk/pull/33417#issuecomment-6662121888

Reply via email to