Binary builds and workspaces

Aleksey Shipilev shade at redhat.com
Mon Apr 30 19:12:22 UTC 2018


On 12/11/2017 09:57 AM, Per Liden wrote:
> On 2017-12-11 09:44, Aleksey Shipilev wrote:
>> 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:
>>>>>      https://builds.shipilev.net/openjdk-zgc/
>>>>>
>>>>>    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:
>>
>> /pool/buildbot/slaves/sobornost/zgc/build/src/hotspot/os_cpu/linux_x86/zGlobals_linux_x86.hpp:83:65:
>> error: left shift count >= width of type [-Werror=shift-count-overflow]
>>  const uintptr_t ZPlatformAddressSpaceStart    = (uintptr_t)1 << ZPlatformAddressOffsetBits;
>>                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> /pool/buildbot/slaves/sobornost/zgc/build/src/hotspot/os_cpu/linux_x86/zGlobals_linux_x86.hpp:84:66:
>> error: left shift count >= width of type [-Werror=shift-count-overflow]
>>  const uintptr_t ZPlatformAddressSpaceSize     = ((uintptr_t)1 << ZPlatformAddressOffsetBits) * 4;
>>                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Going forward, I'm hoping we can get to a point where we don't need "fake" platform-specific files,
> just to make stuff build. Instead I'm thinking we should evolve the build system to never attempt to
> build a GC if it's not supported on that platform. Think of it as a more fine-grained
> INCLUDE_ALL_GCS thing, but maybe implemented differently.

Yes. Meanwhile, I got most Linux targets building, and buildbot also publishes the build/configure
logs. You can use these to see where the build support is lacking in current zgc/zgc:
  https://builds.shipilev.net/openjdk-zgc/

-Aleksey




More information about the zgc-dev mailing list