Date: Tue, 25 Feb 2014 20:32:09 -0800 (PST) From: Don Lewis <truckman@FreeBSD.org> To: antoine@FreeBSD.org Cc: java@FreeBSD.org Subject: Re: Openjdk6 and clang 3.4 Message-ID: <201402260432.s1Q4W9GF080388@gw.catspoiler.org> In-Reply-To: <CAALwa8kn80Xhd2f2K496H6OU7Z3TsNmx=84SQ4enP3xVUvXA4A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26 Feb, Antoine Brodin wrote: > Hi, > > I am not sure if you are already aware of this or not. > Clang 3.4 has been imported in head 10 days ago. This new version > errors on unknown flags. > Openjdk6 no longer builds with clang 3.4 because of this (-fcheck-new > unknown by clang): > > gmake[7]: Entering directory > `/wrkdirs/usr/ports/java/openjdk6/work/build/bsd-amd64/hotspot/outputdir/bsd_amd64_compiler2/product' > Compiling /wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/share/vm/adlc/adlparse.cpp > rm -f ../generated/adfiles/adlparse.o > c++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DAMD64 > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/share/vm/prims > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/share/vm > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/share/vm/precompiled > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/cpu/x86/vm > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/os_cpu/bsd_x86/vm > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/os/bsd/vm > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/os/posix/vm > -I/wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/share/vm/adlc > -I../generated -DASSERT -O2 -pipe -fno-strict-aliasing > -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 > -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_64 > -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fno-rtti > -fno-exceptions -pthread -fcheck-new -m64 -pipe -DTARGET_OS_FAMILY_bsd > -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd_x86 > -DTARGET_OS_ARCH_MODEL_bsd_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 > -DCOMPILER1 -fno-rtti -fno-exceptions -pthread -fcheck-new -m64 -pipe > -g -c -o ../generated/adfiles/adlparse.o > /wrkdirs/usr/ports/java/openjdk6/work/hotspot/src/share/vm/adlc/adlparse.cpp > c++: error: unknown argument: '-fcheck-new' > c++: error: unknown argument: '-fcheck-new' > gmake[7]: *** [../generated/adfiles/adlparse.o] Error 1 I patched hotspot/make/bsd/makefiles/gcc.make to remove this compiler flag. That got me further, but still no joy: gmake[8]: Entering directory `/usr/ports/java/openjdk6/work/build/bsd-i586/hotspot/outputdir/bsd_i486_compiler2/product' echo Generating precompiled header precompiled.hpp.gch Generating precompiled header precompiled.hpp.gch mkdir -p . c++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DIA32 -DPRODUCT -I. -I/usr/ports/java/openjdk6/work/hotspot/src/share/vm/prims -I/usr/ports/java/openjdk6/work/hotspot/src/share/vm -I/usr/ports/java/openjdk6/work/hotspot/src/share/vm/precompiled -I/usr/ports/java/openjdk6/work/hotspot/src/cpu/x86/vm -I/usr/ports/java/openjdk6/work/hotspot/src/os_cpu/bsd_x86/vm -I/usr/ports/java/openjdk6/work/hotspot/src/os/bsd/vm -I/usr/ports/java/openjdk6/work/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"23.25-b01\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"dl\"" -DHOTSPOT_LIB_ARCH=\"i386\" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -O2 -pipe -march=athlon64 -DLIBICONV_PLUG -fno-strict-aliasing -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_32 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_32 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fno-rtti -fno-exceptions -pthread -m32 -march=i586 -pipe -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGE! T_ARCH_MODEL_x86_32 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_32 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fPIC -fno-rtti -fno-exceptions -pthread -m32 -march=i586 -pipe -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -DINCLUDE_TRACE -w -Wpointer-arith -Wconversion -Wsign-compare -c -MMD -MP -MF ../generated/dependencies/precompiled.hpp.gch.d -x c++-header /usr/ports/java/openjdk6/work/hotspot/src/share/vm/precompiled/precompiled.hpp -o precompiled.hpp.gch In file included from /usr/ports/java/openjdk6/work/hotspot/src/share/vm/precompiled/precompiled.hpp:29: In file included from /usr/ports/java/openjdk6/work/hotspot/src/share/vm/asm/assembler.hpp:29: /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:374:27: error: friend declaration specifying a default argument must be a definition inline friend relocInfo prefix_relocInfo(int datalen = 0); ^ /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:469:18: error: friend declaration specifying a default argument must be the only declaration inline relocInfo prefix_relocInfo(int datalen) { ^ /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:374:27: note: previous declaration is here inline friend relocInfo prefix_relocInfo(int datalen = 0); ^ /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:471:59: error: 'RAW_BITS' is a protected member of 'relocInfo' return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relo... ^ /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:279:23: note: declared protected here enum RawBitsToken { RAW_BITS }; ^ /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:471:10: error: calling a protected constructor of class 'relocInfo' return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relo... ^ /usr/ports/java/openjdk6/work/hotspot/src/share/vm/code/relocInfo.hpp:280:3: note: declared protected here relocInfo(relocType type, RawBitsToken ignore, int bits) ^ 4 errors generated. gmake[8]: *** [precompiled.hpp.gch] Error 1 Apparently this is some illegal C++ that neither gcc nor clang 3.3 complain about, but clang 3.4 flags. At that point I picked up the USES_GMAKE and MAKE_ARGS changes from openjdk7/Makefile and was able to build openjdk6. The same problems are still in openjdk7, but it builds because it doesn't try to use clang. Index: Makefile =================================================================== --- Makefile (revision 345674) +++ Makefile (working copy) @@ -64,6 +64,8 @@ WRKSRC= ${WRKDIR} USE_XORG= x11 xext xi xt xtst +MAKE_ARGS= CC=${CC} CXX=${CXX} HOST_CC=${CC} +USE_GCC= any # do not depend on devel/apache-ant to avoid circular dependency, but # use .tar.bz2 distfile to avoid duplicated downloads
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402260432.s1Q4W9GF080388>