[OpenJDK 2D-Dev] RFR JDK-8209786: gcc 7.3 compiler errors on zLinux

Andrew Leonard andrew_m_leonard at uk.ibm.com
Thu Sep 6 10:29:27 UTC 2018


Thanks Magnus,

Hi Goetz, we have agreement from both library owners, so I think we're 
good now?
Thanks
Andrew

Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com 




From:   Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com>
To:     Andrew Leonard <andrew_m_leonard at uk.ibm.com>
Cc:     Brian Burkhalter <brian.burkhalter at oracle.com>, 2d-dev 
<2d-dev at openjdk.java.net>, build-dev <build-dev at openjdk.java.net>, 
core-libs-dev <core-libs-dev at openjdk.java.net>, "Lindenmaier, Goetz" 
<goetz.lindenmaier at sap.com>, Philip Race <philip.race at oracle.com>
Date:   04/09/2018 16:41
Subject:        Re: [OpenJDK 2D-Dev] RFR JDK-8209786: gcc 7.3 compiler 
errors on zLinux



Looks good to me. 

/Magnus

4 sep. 2018 kl. 12:11 skrev Andrew Leonard <andrew_m_leonard at uk.ibm.com>:

Hi Brian/Goetz, 
Yes, that seems sensible. I have created a new webrev with fdlibm compiler 
option disabled, and mediaLib code fixed: 
http://cr.openjdk.java.net/~aleonard/8209786/webrev.02/ 
I've built and tested on xLinux and zLinux, with gcc 4.8.4 and 7.3. 

Are we good to go? 
Thanks 
Andrew 

hg export: 
# HG changeset patch 
# User aleonard 
# Date 1536055438 -3600 
#      Tue Sep 04 11:03:58 2018 +0100 
# Node ID c2523f285c503e8f82f1212b38de1cb54093255e 
# Parent  3ee91722550680c18b977f0e00b1013323b5c9ef 
8209786: JDK12 fails to build on s390x with gcc 7.3 

diff -r 3ee917225506 -r c2523f285c50 make/lib/CoreLibraries.gmk 
--- a/make/lib/CoreLibraries.gmk        Tue Sep 04 14:47:55 2018 +0800 
+++ b/make/lib/CoreLibraries.gmk        Tue Sep 04 11:03:58 2018 +0100 
@@ -68,7 +68,7 @@ 
       CFLAGS_linux_ppc64le := -ffp-contract=off, \ 
       CFLAGS_linux_s390x := -ffp-contract=off, \ 
       CFLAGS_linux_aarch64 := -ffp-contract=off, \ 
-      DISABLED_WARNINGS_gcc := sign-compare misleading-indentation, \ 
+      DISABLED_WARNINGS_gcc := sign-compare misleading-indentation 
array-bounds, \ 
       DISABLED_WARNINGS_microsoft := 4146 4244 4018, \ 
       ARFLAGS := $(ARFLAGS), \ 
       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \ 
diff -r 3ee917225506 -r c2523f285c50 
src/java.desktop/share/native/libmlib_image/mlib_ImageLookUp_Bit.c 
--- a/src/java.desktop/share/native/libmlib_image/mlib_ImageLookUp_Bit.c   
  Tue Sep 04 14:47:55 2018 +0800 
+++ b/src/java.desktop/share/native/libmlib_image/mlib_ImageLookUp_Bit.c   
  Tue Sep 04 11:03:58 2018 +0100 
@@ -1,5 +1,5 @@ 
 /* 
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. 

+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights 
reserved. 
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 
  * 
  * This code is free software; you can redistribute it and/or modify it 
@@ -259,18 +259,18 @@ 
       } 
  
 #ifdef _LITTLE_ENDIAN 
-      emask = (mlib_u32)((mlib_s32)(-1)) >> ((4 - (size - i)) * 8); 
+      emask = (~(mlib_u32)0) >> ((4 - (size - i)) * 8); 
 #else 
-      emask = (mlib_s32)(-1) << ((4 - (size - i)) * 8); 
+      emask = (~(mlib_u32)0) << ((4 - (size - i)) * 8); 
 #endif /* _LITTLE_ENDIAN */ 
       ((mlib_u32*)da)[0] = (val1 & emask) | (((mlib_u32*)da)[0] &~ 
emask); 
  
 #else /* _NO_LONGLONG */ 
  
 #ifdef _LITTLE_ENDIAN 
-      mlib_u64 emask = (mlib_u64)((mlib_s64)(-1)) >> ((8 - (size - i)) * 
8); 
+      mlib_u64 emask = (~(mlib_u64)0) >> ((8 - (size - i)) * 8); 
 #else 
-      mlib_u64 emask = (mlib_s64)(-1) << ((8 - (size - i)) * 8); 
+      mlib_u64 emask = (~(mlib_u64)0) << ((8 - (size - i)) * 8); 
 #endif /* _LITTLE_ENDIAN */ 
  
       ((mlib_u64*)da)[0] = (((mlib_u64*)dd_array)[sa[0]] & emask) | 
(((mlib_u64*)da)[0] &~ emask); 
@@ -395,9 +395,9 @@ 
       } 
  
 #ifdef _LITTLE_ENDIAN 
-      emask = (mlib_u32)((mlib_s32)(-1)) >> ((4 - (size - i)) * 8); 
+      emask = (~(mlib_u32)0) >> ((4 - (size - i)) * 8); 
 #else 
-      emask = (mlib_s32)(-1) << ((4 - (size - i)) * 8); 
+      emask = (~(mlib_u32)0) << ((4 - (size - i)) * 8); 
 #endif /* _LITTLE_ENDIAN */ 
       ((mlib_u32*)da)[0] = (dd1 & emask) | (((mlib_u32*)da)[0] &~ emask); 

  
@@ -413,9 +413,9 @@ 
       } 
  
 #ifdef _LITTLE_ENDIAN 
-      emask = (mlib_u64)((mlib_s64)(-1)) >> ((8 - (size - i)) * 8); 
+      emask = (~(mlib_u64)0) >> ((8 - (size - i)) * 8); 
 #else 
-      emask = (mlib_s64)(-1) << ((8 - (size - i)) * 8); 
+      emask = (~(mlib_u64)0) << ((8 - (size - i)) * 8); 
 #endif /* _LITTLE_ENDIAN */ 
       ((mlib_u64*)da)[0] = (dd & emask) | (((mlib_u64*)da)[0] &~ emask); 
  
@@ -565,9 +565,9 @@ 
       } 
  
 #ifdef _LITTLE_ENDIAN 
-      emask = (mlib_u32)((mlib_s32)(-1)) >> ((4 - (size - i)) * 8); 
+      emask = (~(mlib_u32)0) >> ((4 - (size - i)) * 8); 
 #else 
-      emask = (mlib_s32)(-1) << ((4 - (size - i)) * 8); 
+      emask = (~(mlib_u32)0) << ((4 - (size - i)) * 8); 
 #endif /* _LITTLE_ENDIAN */ 
       da[0] = (dd & emask) | (da[0] &~ emask); 
     } 







Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com 




From:        Brian Burkhalter <brian.burkhalter at oracle.com> 
To:        Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com> 
Cc:        Andrew Leonard <andrew_m_leonard at uk.ibm.com>, "Lindenmaier, 
Goetz" <goetz.lindenmaier at sap.com>, 2d-dev <2d-dev at openjdk.java.net>, 
build-dev <build-dev at openjdk.java.net>, core-libs-dev <
core-libs-dev at openjdk.java.net>, Philip Race <philip.race at oracle.com> 
Date:        31/08/2018 15:44 
Subject:        Re: [OpenJDK 2D-Dev] RFR JDK-8209786: gcc 7.3 compiler 
errors on zLinux 




On Aug 31, 2018, at 2:28 AM, Magnus Ihse Bursie <
magnus.ihse.bursie at oracle.com> wrote: 

Magnus, Philip, Brian, Goetz, can we have a vote? => "Fix" or 
"DisableWarnings" ? 

Note that this decision can be different for the two libraries. I'd argue 
that the maintainer of each library decides. And if so, it seems to be 
"compiler fix" for libfdlibm, and "source fix" for libmlib_image. 

I think we can safely say “disable compiler errors” for fdlibm as 
indicated by Joe Darcy’s comment in the issue (he owns fdlibm), and source 
code change for mediaLib as Phil indicated in e-mail. 

Thanks, 

Brian 



Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU



Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU



More information about the core-libs-dev mailing list