RFR(S): 8220348: [ntintel] asserts about copying unalinged array
thomas.stuefe at gmail.com
Wed Dec 4 16:56:14 UTC 2019
this makes sense. This is the right way to force alignment. I do not like
the platform code in the shared file but do not think this is a big deal.
+#if defined (_WIN32) && defined (_MSC_VER)
Why do you think we need _MSC_VER too? Is OpenJDK on Windows even buildable
with anything other than VC++?
On Mon, Dec 2, 2019 at 4:14 PM Doerr, Martin <martin.doerr at sap.com> wrote:
> I'd like to propose a fix for an old issue on 32 bit Windows (also for an
> 11u backport):
> Some jdk native methods use jni_SetLongArrayRegion with a stack allocated
> jni_SetLongArrayRegion uses Copy::conjoint_jlongs_atomic which requires
> jlongs to be 8 byte aligned (asserted).
> However, Windows 32 bit only uses 4 byte alignment for jlong arrays by
> I found such issues in the following files:
> I suggest to use __declspec(align(8)) there.
> Please review.
> I think using 8 byte alignment is not a disadvantage for 64 bit.
> I guess there are still people interested in this platform with jdk14.
> Otherwise I could contribute it as 11u only fix.
> Is there a better way to force 8 byte alignment for jlongs or jlong arrays
> on stack?
> Best regards,
More information about the core-libs-dev