Binary builds and workspaces

Aleksey Shipilev shade at
Mon Dec 11 08:44:19 UTC 2017

On 12/09/2017 01:09 AM, Aleksey Shipilev wrote:
> On 12/08/2017 01:06 PM, Per Liden wrote:
>> On 2017-12-07 20:42, Aleksey Shipilev wrote:
>>>  *) Binary builds:
>>>    x86_64 is built natively, other targets are cross-compiled. Builds are updated every night,
>>>    build frequency might change in future, in both directions. I would try to make build logs
>>>    available too, for easier debugging.
>> I noticed that you have aarch64 and IA32 builds there. Just a heads up, the ZGC code base only
>> supports Linux/x86_64 and Solaris/Sparc at this time.
> That's not a problem. Shenandoah currently supports Linux/x86_64 and Linux/aarch64, but we build
> other platforms anyway, because sometimes changes in shared code may break the other platform's
> builds. It also helps to check that unsupported configurations fail predictably and reliably.

For example, aarch64 build fails with:

/pool/buildbot/slaves/sobornost/zgc/build/src/hotspot/share/gc/z/zGlobals.hpp:29:33: fatal error:
zGlobals_linux_aarch64.hpp: No such file or directory
 #include OS_CPU_HEADER(zGlobals)

And i386 build fails with multiple errors like these:

error: left shift count >= width of type [-Werror=shift-count-overflow]
 const uintptr_t ZPlatformAddressSpaceStart    = (uintptr_t)1 << ZPlatformAddressOffsetBits;
error: left shift count >= width of type [-Werror=shift-count-overflow]
 const uintptr_t ZPlatformAddressSpaceSize     = ((uintptr_t)1 << ZPlatformAddressOffsetBits) * 4;

We were at the same position at some point, but the requirements for shipping Shenandoah with 8u
forced us to maintain buildable workspace even on platforms Shenandoah does not support.


More information about the zgc-dev mailing list