On Tue, 2016-12-06 at 12:25 +0530, Prasanta Sadhukhan wrote: > Hi, > > I was trying to build jdk9 workspace checked out today on ubuntu16.10 > but am encountering a build problem. I did "configure --enable-debug > --disable-warnings-as-errors" followed by "make" > Would like to know if it is a known issue? > > Excerpts of build failure is: (Attached is the configure log and full > build log) > > ERROR: Build failed for target 'default (exploded-image)' in > configuration 'linux-x86_64-normal-server-fastdebug' (exit code 2) > === Output from failing command(s) repeated here === > * For target hotspot_variant-server_libjvm_gtest_objs_logTestFixture.o: > In file included from > /export/jdk9/client/test/fmw/gtest/include/gtest/gtest.h:54:0, > from > /export/jdk9/client/hotspot/test/native/unittest.hpp:31, > from > /export/jdk9/client/hotspot/test/native/logging/logTestFixture.hpp:24, > from > /export/jdk9/client/hotspot/test/native/logging/logTestFixture.cpp:25: > /usr/include/c++/6/limits:320:11: error: macro "min" requires 2 > arguments, but only 1 given > min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); } > ^ > /usr/include/c++/6/limits:324:11: error: macro "max" requires 2 > arguments, but only 1 given > max() _GLIBCXX_USE_NOEXCEPT { return _Tp(); } > ^ > /usr/include/c++/6/limits:387:11: error: macro "min" requires 2 > arguments, but only 1 given > min() _GLIBCXX_USE_NOEXCEPT { return false; } > ... (rest of output omitted) > === End of repeated output === > === Make failure sequence repeated here === > lib/CompileGtest.gmk:57: recipe for target > '/export/jdk9/client/build/linux-x86_64-normal-server-fastdebug/hotspot/variant-server/libjvm/gtest/objs/logTestFixture.o' > > failed > BuildHotspot.gmk:41: recipe for target 'variant-server-libs' failed
Yes, this is an annoying GCC 6 problem: https://bugs.openjdk.java.net/browse/JDK-8161145 The current work-around that I use is this from Andrew Hughes[1]: diff --git a/src/share/vm/utilities/globalDefinitions.hpp b/src/share/vm/utilities/globalDefinitions.hpp --- a/src/share/vm/utilities/globalDefinitions.hpp +++ b/src/share/vm/utilities/globalDefinitions.hpp @@ -1095,8 +1095,10 @@ #undef min #endif +#ifndef _GLIBCXX_STDLIB_H #define max(a,b) Do_not_use_max_use_MAX2_instead #define min(a,b) Do_not_use_min_use_MIN2_instead +#endif // It is necessary to use templates here. Having normal overloaded // functions does not work because it is necessary to provide both 32- HTH, Severin [1] http://mail.openjdk.java.net/pipermail/hotspot-dev/2016-July/023932.html > Regards > Prasanta