Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Sep 2013 12:47:29 -0700
From:      Greg Lewis <glewis@eyesbeyond.com>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        java@freebsd.org, Baptiste Daroussin <bapt@freebsd.org>, Greg Lewis <glewis@freebsd.org>
Subject:   Re: Building java/openjdk7 with clang
Message-ID:  <20130915194729.GA35020@misty.eyesbeyond.com>
In-Reply-To: <108F3771-64B3-40E9-91FA-04C160442608@FreeBSD.org>
References:  <108F3771-64B3-40E9-91FA-04C160442608@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
G'day Dimitry,

On Sun, Sep 15, 2013 at 01:45:19AM +0200, Dimitry Andric wrote:
> I took some time to figure out how to build java/openjdk7 with clang.
> There are a few items I changed:
> 
> - Change a few instances of "ifneq ($(COMPILER_WARNINGS_FATAL),false)"
>   to "ifeq ($(COMPILER_WARNINGS_FATAL),true)", to make sure -Werror is
>   *not* used.  There are zillions of warnings in openjdk, and I don't
>   think it is worth the trouble to fix them all (even if that is
>   possible :).
> - Remove -fcheck-new from CFLAGS, since clang does not support it, and
>   it does not make sense anyway.  This is the only one that is not
>   strictly needed; if -Werror is not enabled, clang will just print a
>   warning that the option is unused, but it won't be fatal.
> - Change the $(CC) -dumpspecs hack in one of the Makefiles to something
>   more portable.  The -dumpspecs is done to figure out if the compiler
>   uses --hash-style=gnu when linking, and if it does, it changes the
>   option to --hash-style=both.  On FreeBSD, this is basically a no-op,
>   so it could also be commented out entirely.
> - In jdk/src/solaris/native/java/net/net_util_md.c, change two
>   instances of CHECK_NULL() to CHECK_NULL_RETURN(), since the function
>   they are in is supposed to return a value.  I chose to return 0,
>   since that is what the function seems to use as a default value.
> 
> With these fixes, openjdk7 builds and runs fine for me.  I tried to run
> "gmake test" in the work directory, but that didn't do much, so I am
> not sure if a full test suite will survive anything.  It would be nice
> if anybody knows a good way to test the produced binaries more
> thoroughly.

What version of FreeBSD did you do this on?  Does it break compilation
with gcc?

For the change wrt COMPILER_WARNINGS_FATAL, why not set this to false
for clang rather than turn this off unless explicitly on for all compilers?

In terms of testing, that's a bit of a sore spot.  You could notionally
run it through the test suite, but you'd need to compare that to a version
built with gcc since I suspect there will be numerous failures anyway.

-- 
Greg Lewis                          Email   : glewis@eyesbeyond.com
Eyes Beyond                         Web     : http://www.eyesbeyond.com
Information Technology              FreeBSD : glewis@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130915194729.GA35020>