RFR: build pragma error with gcc 4.4.7

Andrew Hughes gnu.andrew at redhat.com
Sat Apr 21 14:50:31 UTC 2018


On 16 March 2018 at 11:05, David Holmes <david.holmes at oracle.com> wrote:
> Hi Michal,
>
> On 16/03/2018 8:48 PM, Michal Vala wrote:
>>
>> Hi,
>>
>> I've been trying to build latest jdk with gcc 4.4.7 and I hit compile
>> error due to pragma used in function:
>
>
> That's a very old gcc. Our "official" version is 4.9.2 but we're working on
> getting gcc 7.x working as well. This code causes no problem on 4.9.2+ so to
> make any change we'd have to know it will continue to work on later
> versions.
>
> Also a google search indicates the "pragma diagnostic push" and pop weren't
> added until gcc 4.6 ??
>
> David
> -----
>

That's why PRAGMA_DIAG_PUSH/POP were defined by:

https://bugs.openjdk.java.net/browse/JDK-8037816

The mistake was in:

https://bugs.openjdk.java.net/browse/JDK-8187667

using the pragma directly, rather than via the define as elsewhere
in the codebase.

$ grep -r 'PRAGMA_DIAG_PUSH' jdk/src/hotspot/
jdk/src/hotspot/share/code/compressedStream.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/code/codeCache.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/utilities/compilerWarnings.hpp:#define
PRAGMA_DIAG_PUSH             _Pragma("GCC diagnostic push")
jdk/src/hotspot/share/utilities/compilerWarnings.hpp:#ifndef PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/utilities/compilerWarnings.hpp:#define PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/utilities/xmlstream.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/classfile/classFileError.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/classfile/classFileParser.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/jvmci/jvmciRuntime.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/share/jvmci/jvmciRuntime.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp:PRAGMA_DIAG_PUSH
jdk/src/hotspot/os/linux/osContainer_linux.cpp:PRAGMA_DIAG_PUSH

-- 
Andrew :)

Senior Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

Web Site: http://fuseyism.com
Twitter: https://twitter.com/gnu_andrew_java
PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222


More information about the build-dev mailing list