Building java/openjdk7 with clang
Greg Lewis
glewis at eyesbeyond.com
Sun Sep 15 20:11:39 UTC 2013
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 at eyesbeyond.com
Eyes Beyond Web : http://www.eyesbeyond.com
Information Technology FreeBSD : glewis at FreeBSD.org
More information about the freebsd-java
mailing list