# HG changeset patch # User Stefan Anzinger # Date 1433161025 -7200 # Node ID ca3c6538bcecf838b0149705d06313f8cf2566af # Parent 0a203897b1126bd0416188071d6144259053a9c9 JVMCI update makefiles for Solaris/SPARC; os::read at early stage of VM does not work, use ::read as fallback in JVMCIRuntime::parse_lines (JBS:GRAAL-54) diff -r 0a203897b112 -r ca3c6538bcec make/solaris/makefiles/debug.make --- a/make/solaris/makefiles/debug.make Mon Jun 01 13:19:48 2015 +0200 +++ b/make/solaris/makefiles/debug.make Mon Jun 01 14:17:05 2015 +0200 @@ -47,7 +47,7 @@ MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \ $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug #ifdef JVMCI -MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-JVMCI +MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug #endif # This mapfile is only needed when compiling with dtrace support, diff -r 0a203897b112 -r ca3c6538bcec make/solaris/makefiles/fastdebug.make --- a/make/solaris/makefiles/fastdebug.make Mon Jun 01 13:19:48 2015 +0200 +++ b/make/solaris/makefiles/fastdebug.make Mon Jun 01 14:17:05 2015 +0200 @@ -118,7 +118,7 @@ MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \ $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug #ifdef JVMCI -MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-JVMCI +MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-fastdebug #endif # This mapfile is only needed when compiling with dtrace support, diff -r 0a203897b112 -r ca3c6538bcec make/solaris/makefiles/optimized.make --- a/make/solaris/makefiles/optimized.make Mon Jun 01 13:19:48 2015 +0200 +++ b/make/solaris/makefiles/optimized.make Mon Jun 01 14:17:05 2015 +0200 @@ -55,7 +55,7 @@ # Linker mapfiles MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers #ifdef JVMCI -MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-JVMCI +MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-optimized #endif # This mapfile is only needed when compiling with dtrace support, diff -r 0a203897b112 -r ca3c6538bcec make/solaris/makefiles/product.make --- a/make/solaris/makefiles/product.make Mon Jun 01 13:19:48 2015 +0200 +++ b/make/solaris/makefiles/product.make Mon Jun 01 14:17:05 2015 +0200 @@ -67,7 +67,7 @@ # Linker mapfiles MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers ifdef JVMCI -MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-JVMCI +MAPFILE += $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-product endif ifndef USE_GCC diff -r 0a203897b112 -r ca3c6538bcec src/os/solaris/vm/thread_solaris.inline.hpp --- a/src/os/solaris/vm/thread_solaris.inline.hpp Mon Jun 01 13:19:48 2015 +0200 +++ b/src/os/solaris/vm/thread_solaris.inline.hpp Mon Jun 01 14:17:05 2015 +0200 @@ -47,7 +47,7 @@ uintptr_t raw = pd_raw_thread_id(); int ix = pd_cache_index(raw); Thread* candidate = ThreadLocalStorage::_get_thread_cache[ix]; - if (candidate->self_raw_id() == raw) { + if (candidate != NULL && candidate->self_raw_id() == raw) { // hit return candidate; } else { diff -r 0a203897b112 -r ca3c6538bcec src/share/vm/jvmci/jvmciRuntime.cpp --- a/src/share/vm/jvmci/jvmciRuntime.cpp Mon Jun 01 13:19:48 2015 +0200 +++ b/src/share/vm/jvmci/jvmciRuntime.cpp Mon Jun 01 14:17:05 2015 +0200 @@ -1111,7 +1111,12 @@ int file_handle = os::open(path, 0, 0); if (file_handle != -1) { char* buffer = NEW_C_HEAP_ARRAY(char, st.st_size + 1, mtInternal); - int num_read = (int) os::read(file_handle, (char*) buffer, st.st_size); + int num_read; + if(ThreadLocalStorage::thread() == NULL) { // Solaris needs a JavaThread for os::read, if no thread started yet, fallback. + num_read = (int) ::read(file_handle, (char*) buffer, st.st_size); + } else { + num_read = (int) os::read(file_handle, (char*) buffer, st.st_size); + } if (num_read == -1) { warning("Error reading file %s due to %s", path, strerror(errno)); } else if (num_read != st.st_size) {