[OpenJDK 2D-Dev] RFR: Bug Pending: Build fails to compile jchuff.c

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Wed Jan 24 23:55:48 UTC 2018


I'm not sure I'm able to follow where this discussion is heading, but at 
the very least I'd like to chime in on the patch below:

I don't like how the entire DISABLED_WARNINGS_gcc line is lifted out. A 
better solution is something like this:

ifeq ($(CC_VERSION_NUMBER), 4.8.5)
  #Turn off array-bounds warnings for libjava compilation because jchuff.c
  #fails to compile on gcc 4.8.5 with a warning that an array is potentially
  #out of bounds. This kills a warnings=errors build.
  LIBJAVAJPEG_DISABLED_WARNINGS_gcc485 := array-bounds
endif
...
     DISABLED_WARNINGS_gcc := clobbered 
$(LIBJAVAJPEG_DISABLED_WARNINGS_gcc485), \

I also can't see this going into anything else than the current 
mainline, jdk/jdk i.e. JDK 11. Since the issue is trivially avoided by 
using --disable-warnings-as-errors, I hardly see that it warrants a 
backport.

/Magnus

On 2018-01-23 14:44, Adam Farley8 wrote:
> Hi All,
>
> All: I think I responded to everyone below. Please could a committer or
> author raise a bug and, if people are happy with this change, line it up
> for contribution to JDKs 8-11 (assuming 4.8.5 is still the recommended 
> gcc
> for JDK10 and 11 on SUSE sles)?
>
> Erik: One toolchain-specific change, as requested. This was tested on 
> JDK9,
> so please apply an offset of -1 to the line numbers before applying to 
> JDK10.
>
> ----------------------- Start of Diff -----------------------
>
> diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
> --- a/make/lib/Awt2dLibraries.gmk
> +++ b/make/lib/Awt2dLibraries.gmk
> @@ -482,6 +482,14 @@
>    BUILD_LIBJAVAJPEG_HEADERS := $(addprefix -I, $(LIBJAVAJPEG_SRC))
>  endif
>
> +LIBJAVAJPEG_DISABLED_WARNINGS_gcc := clobbered
> +ifeq ($(CC_VERSION_NUMBER), 4.8.5)
> +  #Turn off array-bounds warnings for libjava compilation because 
> jchuff.c
> +  #fails to compile on gcc 4.8.5 with a warning that an array is 
> potentially
> +  #out of bounds. This kills a warnings=errors build.
> +  LIBJAVAJPEG_DISABLED_WARNINGS_gcc := clobbered array-bounds
> +endif
> +
>  $(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
>      LIBRARY := javajpeg, \
>      OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
> @@ -491,7 +499,7 @@
>      CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBJAVAJPEG_HEADERS) \
>          $(LIBJAVA_HEADER_FLAGS) \
>  -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop, \
> -    DISABLED_WARNINGS_gcc := clobbered, \
> +    DISABLED_WARNINGS_gcc := $(LIBJAVAJPEG_DISABLED_WARNINGS_gcc), \
>      MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers, \
>      LDFLAGS := $(LDFLAGS_JDKLIB) \
>          $(call SET_SHARED_LIBRARY_ORIGIN), \
>
> ----------------------- End of Diff -----------------------
>
> Phil: I've changed the title as asked and supplied the diff above. 
> However,
> I can't upload files to cr.openjdk.java.net, nor can I create bugs 
> myself.
> I understand that authors and committers can, but I don't have those
> privileges yet. Be nice if I did. :)
>
> John: I read your email, and I understand your position. I disagree 
> with it,
> but I understand it. 4.8.5 is an old version of gcc, but right now it 
> is the
> listed gcc version for SUSE sles on intel, ppc, ppcle, and zLinux. 
> Even if
> this is not the case for JDK 10 or 11, we should ensure this fix is fully
> propagated to ensure consistent behaviour.
>
> That is my position.
>
> David: Thanks for the URL. I agree with your position on 4.8.5 gcc 
> needing
> to compile OpenJDK without errors or special options. :)
>
> Best Regards
>
> Adam Farley
>
>
>
> From: Phil Race <philip.race at oracle.com>
> To: Adam Farley8 <adam.farley at uk.ibm.com>, 2d-dev at openjdk.java.net
> Cc: build-dev <build-dev at openjdk.java.net>
> Date: 18/01/2018 19:16
> Subject: Re: [OpenJDK 2D-Dev] [PATCH] Build fails to compile jchuff.c
> ------------------------------------------------------------------------
>
>
>
> Try again with build-dev cc'd ..
>
> -phil.
>
> On 01/18/2018 11:14 AM, Phil Race wrote:
> I agree with what Erik said on build-dev that being specific about the 
> tool chain
> and the reason are worthwhile and important. We've done that in 
> similar cases.
>
> Also these review threads usually should have a subject like
> RFR: <BUG ID>: <Bug Synopsis>
>
> which means you first need a bug id .. the patch can't be pushed 
> without one anyway.
>
> Then the patch should be an in-line diff or a webrev hosted on 
> cr.openjdk.java.net.
>
> I think in-line would be OK for this small change.
>
> -phil.
>
> On 01/17/2018 09:30 AM, Adam Farley8 wrote:
> Hi All,
>
> Under these circumstances, jchuff.c will not compile:
>
> Platform: zLinux (s390x)
> Release: JDK9 (may affect other JDKs).
> GCC Version: 4.8.5
> Notes: --disable-warnings-as-errors suppresses this error.
>
> The error is:
>
> /home/adamfarl/hotspot/jdk9/jdk/src/java.desktop/share/native/libjavajpeg/jchuff.c:
> In function 'jGenOptTbl':
> /home/adamfarl/hotspot/jdk9/jdk/src/java.desktop/share/native/libjavajpeg/jchuff.c:808:18:
> error: array subscript is below array bounds [-Werror=array-bounds]
>       while (bits[j] == 0)
>                  ^
>
> This is a continuation of a conversation in the build-dev mailing 
> list, if anyone wants to
> check the history.
>
> The short version is that, while you *can* suppress the problem by adding
> --disable-warnings-as-errors to your configure step, I posit that a 
> builder shouldn't
> have to.
>
> Various solutions were debated. One involves changing Awt2dLibraries.gmk.
>
> Basically you change line 494 to this:
>
>     DISABLED_WARNINGS_gcc := clobbered array-bounds, \
>
> I'm running a build now to check that works, but basically we should 
> end up with a
> -Wno-array-bounds on the gcc compile command for jchuff.c, thereby 
> ignoring the warning.
>
> A smarter variant involves checking for that specific version of the 
> gcc, but that seems
> wordy to me for this problem. Keeping it simple. :)
>
> Thoughts?
>
> Best Regards
>
> Adam Farley
>
> 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 build-dev mailing list