build issues after 8211029 on gcc4.8 and our porting Linux platforms (ppc64(le)/ s390x)

Roman Kennke rkennke at redhat.com
Tue Sep 25 15:05:21 UTC 2018


Related, I've also filed:

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

and waiting for review here:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-September/055666.html

Thanks,
Roman

> Hello,  one additonal info , my colleague looking into   the compile issues after 8211029  found this error ,
> when compiling  on  linuxx86_64 :
> 
> === Output from failing command(s) repeated here ===
> * For target support_native_java.base_libnet_DatagramPacket.o:
> In file included from /OpenJDK/8210319/jdk/src/java.base/share/native/libnet/net_util.h:31:0,
>                 from /OpenJDK/8210319/jdk/src/java.base/share/native/libnet/DatagramPacket.c:27:
> /OpenJDK/8210319/jdk/src/java.base/unix/native/libnet/net_util_md.h:50:7: error: "__solaris__" is not defined [-Werror=undef]
> #elif __solaris__
>        ^
> cc1: all warnings being treated as errors
> * For target support_native_java.base_libnet_Inet4Address.o:
> In file included from /OpenJDK/8210319/jdk/src/java.base/share/native/libnet/net_util.h:31:0,
>                  from /OpenJDK/8210319/jdk/src/java.base/share/native/libnet/Inet4Address.c:29:
> /OpenJDK/8210319/jdk/src/java.base/unix/native/libnet/net_util_md.h:50:7: error: "__solaris__" is not defined [-Werror=undef]
> #elif __solaris__
> 
> Obviously  "__solaris__"    is  not defined  on Linux  so I wonder   how  you could compile  this ?
> ( the coding might  need  improvement  however  the test  should be like  #elif defined(__solaris__)   )
> 
> 
> Best regards, Matthias
> 
> 
> From: Baesken, Matthias
> Sent: Dienstag, 25. September 2018 16:34
> To: 'build-dev at openjdk.java.net' <build-dev at openjdk.java.net>
> Cc: Schmidt, Lutz <lutz.schmidt at sap.com>; Doerr, Martin <martin.doerr at sap.com>
> Subject: build issues after 8211029 on gcc4.8 and our porting Linux platforms (ppc64(le)/ s390x)
> 
> 
> Hello, it looks like
> 
> 8211029: Have a common set of enabled warnings for all native libraries
> 
> breaks a lot of our Linux based builds.
> Our gcc 4.8   misses some of the introduced command line options :
> 
> cc1plus: error: unrecognized command line option "-Wno-misleading-indentation" [-Werror]
> cc1plus: error: unrecognized command line option "-Wno-implicit-fallthrough" [-Werror]
> cc1plus: error: unrecognized command line option "-Wno-int-in-bool-context" [-Werror]
> 
> Additionally ,  the added -Werror=switch  triggers a LOT of errors on our  porting platforms, e.g.  linux ppc64 le :
> 
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value '_Double_valueOf' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value '_forEachRemaining' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value 'ID_LIMIT' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value 'LAST_COMPILER_INLINE' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value 'FIRST_MH_SIG_POLY' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value 'FIRST_MH_STATIC' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value 'LAST_MH_SIG_POLY' not handled in switch [-Werror=switch]
> /build_ci_jdk_jdk_linuxppc64le/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:719:10: error: enumeration value 'FIRST_ID' not handled in switch [-Werror=switch]
> 
> Could we get rid of  the  -Werror=switch   at least for now ?
> Maybe it should be disabled for ppc64 / ppc64le  /  s390x  like it has been done for zero ?
> 
> 4.13+
> 4.14 ifeq ($(call check-jvm-feature, zero), true)
> 4.15-  DISABLED_WARNINGS_gcc += return-type
> 4.16+  DISABLED_WARNINGS_gcc += return-type switch
> 4.17 endif
> 
> 
> Regarding the unrecognized command line options ,  I suggest to still support older gcc versions;
> what would be the minimal gcc version that supports 8211029 ?
> 
> Best regards, Matthias
> 





More information about the build-dev mailing list