jdk8u: -Wno-regsiter to support newer compilers

Zdeněk Žamberský zzambers at redhat.com
Thu Aug 8 10:41:18 UTC 2024


On 07. 08. 24 14:02, Zdeněk Žamberský wrote:
> I think to have jdk8 build work out of box, it is better to use older 
> OSes.
> Like rhel/centos <= 8. You can use VM or container.
> I personally usually use rhel-8 VM, if I want to build jdk8 locally.
>
> Others distros, which should work:
> Ubuntu <= 20.04
> debian <= bullseye (I think)
>
> When it comes to vendors providing JDK 8 builds, I think they 
> generally use
> older linux distros (like rhel-6/7 or equivalent) to maximize 
> portability.
>
> I cannot really comment much on Mac OS X. I have never owned mac.
> GHA was just recently updated macos-13. (there are still some issues 
> to solve there)
> https://github.com/openjdk/jdk8u-dev/pull/544
>
> I don't think MacOS/aarch64 is even supported currently, at least I am 
> not aware of any work in that regard.
> May need some additional patching. (Adoptium does not offer 
> MacOS/aarch64.)
>

Here is the bug for MacOS/aarch64port:
https://bugs.openjdk.org/browse/JDK-8253795

It has not been backported to openjdk8. You may be able to build zero 
port on MacOS/aarc64,
but it will be much slower compared to "full" ports.

>
> However if you just want to test some changes, you can just use GHA. 
> You can do test branch,
> with modified GHA workflow to run test groups, you are interested in, 
> on top of your changes.
>
>
> On 06. 08. 24 20:42, Elazar Leibovich wrote:
>> Thanks,
>> I did follow the readme, but could not find any commentary about the 
>> build environment or the required compilers.
>> Even less information was on Mac OS X, where the autoconf files seems 
>> not to be updated, and as a result arm was chosen instead of aarch64.
>>
>> If you can point me to a specific section in the documentation 
>> specifying, say, a list of known good compilers, I'll be grateful.
>>
>> On Tue, 6 Aug 2024 at 21:37, Magnus Ihse Bursie 
>> <magnus.ihse.bursie at oracle.com> wrote:
>>
>>     On 2024-08-06 20:33, Elazar Leibovich wrote:
>>
>>>     Thanks,
>>>     I still fail to understand how JDK8u developers are building the
>>>     project.
>>
>>     Setting up a build environment for jdk8 is unfortunately not a
>>     trivial task. The build readme can be of some use:
>> https://github.com/openjdk/jdk8u-dev/blob/master/doc/building.md.
>>     The build system has gone through a complete overhaul in later
>>     versions, so if you were to build the mainline JDK it would be a
>>     much smoother experience. After all, JDK 8 was released 10 years
>>     ago, and much has happened since then.
>>
>>     /Magnus
>>
>>
>>
>>>     Is there a docker file specifying the build environment? What's
>>>     the recommended way of doing that?
>>>     Removing the register keyword, plus disabling an overflow warning
>>>     in a specific test with pragma did the trick for me, but:
>>>     1. I could not get it built in Mac OS X
>>>     2. I felt as if I'm paving my own path building it, instead of
>>>     following the Yellow Brick Road, which I'm trying to locate.
>>>
>>>     Thanks again,
>>>
>>>     On Tue, 6 Aug 2024 at 21:10, Zdeněk Žamberský
>>>     <zzambers at redhat.com> wrote:
>>>
>>>         Hello,
>>>
>>>         this is known issue, which should get fixed by JDK-8281096:
>>>         https://github.com/openjdk/jdk8u-dev/pull/357
>>>
>>>         (see also: https://github.com/openjdk/jdk8u-dev/pull/508)
>>>
>>>         TLDR:
>>>         Jdk 8 explicitly specifies older c++ version (gnu++98, which
>>>         not yet
>>>         deprecated
>>>         'register' keyword), but flags are not propagated to ADLC
>>>         build due to bug.
>>>         (correct me, if I am wrong)
>>>
>>>
>>>         When it comes to Adoptium, I don't know exactly, but I think
>>>         they are using
>>>         older compiler, which uses older c++ standard by default.
>>>
>>>         On 06. 08. 24 18:37, Magnus Ihse Bursie wrote:
>>>         > Hi Elazar,
>>>         >
>>>         > I see that you never got any replies here. I suggest that
>>>         you re-ask
>>>         > your question on the jdk8u mailing list instead (cc'd).
>>>         >
>>>         > /Magnus
>>>         >
>>>         > On 2024-07-19 16:20, Elazar Leibovich wrote:
>>>         >> When trying to compile the latest jdk8u on linux I get
>>>         failures over
>>>         >> warnings with the register keywords.
>>>         >>
>>>         >> I'm using https://github.com/openjdk/jdk8u-dev.git which
>>>         seems to be
>>>         >> pretty up to date (I'm using master), and last commit is
>>>         less than
>>>         >> two days ago.
>>>         >>
>>>         >> This is a workaround I had to use:
>>>         >> diff --git a/hotspot/make/linux/makefiles/gcc.make
>>>         >> b/hotspot/make/linux/makefiles/gcc.make
>>>         >> index 7dde7f0963..81f156574a 100644
>>>         >> --- a/hotspot/make/linux/makefiles/gcc.make
>>>         >> +++ b/hotspot/make/linux/makefiles/gcc.make
>>>         >> @@ -202,7 +202,7 @@ else
>>>         >>  endif
>>>         >>
>>>         >>  # Compiler warnings are treated as errors
>>>         >> -WARNINGS_ARE_ERRORS = -Werror
>>>         >> +WARNINGS_ARE_ERRORS = -Werror -Wno-register
>>>         >>
>>>         >> But I guess the best solution is to remove the register
>>>         keywords from
>>>         >> the codebase.
>>>         >>
>>>         >> How is adoptium building it? Does it use specific
>>>         compiler? Is the
>>>         >> supported compiler documented anywhere?
>>>         >>
>>>         >> FTR using temurin-build repository and scripts, fails for
>>>         other
>>>         >> reasons, and fails even with -D/--podman docker containers.
>>>         >>
>>>         >> This patch builds it with centos stream 9 on amd64.
>>>         >>
>>>         >> Am I doing something wrong? What's the recommended way of
>>>         building jdk8?
>>>         >>
>>>         >> Thanks,
>>>         >> Elazar Leibovich
>>>         >
>>>
>>>         --         Zdeněk Žamberský
>>>         OpenJDK QE
>>>         Red Hat
>>>
>

-- 
Zdeněk Žamberský
OpenJDK QE
Red Hat



More information about the build-dev mailing list