Hello!
Zero currently fails to build on linux-sparc since there are two instances where
SPARC-specific defines conflict with the Zero code.
One instance is src/hotspot/share/compiler/oopMap.cpp where a header is
uncondtionally
included for SPARC which is not available for Zero. It turns out that this
header,
vmreg_sparc.inline.hpp, does actually not need to be included here. So, easiest
part is just to remove the inclusion of this header:
@@ -38,13 +38,10 @@
#include "c1/c1_Defs.hpp"
#endif
#ifdef COMPILER2
#include "opto/optoreg.hpp"
#endif
-#ifdef SPARC
-#include "vmreg_sparc.inline.hpp"
-#endif
The second instance is
src/hotspot/cpu/sparc/memset_with_concurrent_readers_sparc.cpp
which is not included in the build for Zero. However, we always need to include
it
because of the particular implementation of memset() on SPARC which does not
work
well with concurrent readers which is why memset_with_concurrent_readers.hpp
looks
like this:
#ifdef SPARC
// SPARC requires special handling. See SPARC-specific definition.
#else
// All others just use memset.
inline void memset_with_concurrent_readers(void* to, int value, size_t size) {
::memset(to, value, size);
}
#endif // End of target dispatch.
The webrev to fix the Zero build on SPARC includes both changes and can be found
in [1].
Thanks,
Adrian
[1] http://cr.openjdk.java.net/~glaubitz/8186578/webrev.02/
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - [email protected]
`. `' Freie Universitaet Berlin - [email protected]
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913