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>