RFR: 8183149: [AOT] SEGV in AMD64MathStub.pow: alignment for ArrayDataPointerConstant is not honored

Bob Vandette bob.vandette at oracle.com
Thu Jul 27 18:02:07 UTC 2017


I updated MachOSection.java to use log2 of align. 

 
-        // For now use 8 byte alignment
-        section.putInt(section_64.align.off, 3);
+       section.putInt(section_64.align.off, (int)(Math.log10((double)align) / Math.log10((double)2.0));

Bob.

 
> On Jul 25, 2017, at 5:12 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> Thank you, Bob
> 
> Looks good.
> 
> Was it typo (3) in MachOSection.java?
> 
> -         // For now use 8 byte alignment
> -         section.putInt(section_64.align.off, 3);
> +         section.putInt(section_64.align.off, align);
> 
> Thanks,
> Vladimir
> 
> On 7/25/17 12:22 PM, Bob Vandette wrote:
>> Please review these fixes to correct the alignment of the generated AOT library sections.
>> Although my initial implementation was compliant with the shared library specifications,
>> hotspot requires a greater alignment size.  These changes use the binary container
>> code segment size for setting alignment.
>> I also fixed a typo in the Elf createByteSection under this issue.
>> http://cr.openjdk.java.net/~bobv/8183149/webrev/
>> Bob.



More information about the hotspot-compiler-dev mailing list