OpenJDK / bsd-port / bsd-port / hotspot
changeset 4980:a112c390f56c
Merge from main OpenJDK repository
line wrap: on
line diff
--- a/.hgtags Mon Oct 07 21:52:30 2013 -0700 +++ b/.hgtags Sun Dec 01 13:48:11 2013 -0800 @@ -182,6 +182,7 @@ 38fa55e5e79232d48f1bb8cf27d88bc094c9375a hs21-b16 81d815b05abb564aa1f4100ae13491c949b9a07e jdk7-b147 81d815b05abb564aa1f4100ae13491c949b9a07e hs21-b17 +f1a18ada5853af49fce54d43dd5a5b67dc291470 7u0 9b0ca45cd756d538c4c30afab280a91868eee1a5 jdk7u2-b01 0cc8a70952c368e06de2adab1f2649a408f5e577 jdk8-b01 31e253c1da429124bb87570ab095d9bc89850d0a jdk8-b02
--- a/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Mon Oct 07 21:52:30 2013 -0700 +++ b/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Sun Dec 01 13:48:11 2013 -0800 @@ -33,6 +33,7 @@ import sun.jvm.hotspot.debugger.remote.*; import sun.jvm.hotspot.debugger.windbg.*; import sun.jvm.hotspot.debugger.linux.*; +import sun.jvm.hotspot.debugger.bsd.*; import sun.jvm.hotspot.memory.*; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.runtime.*;
--- a/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java Mon Oct 07 21:52:30 2013 -0700 +++ b/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java Sun Dec 01 13:48:11 2013 -0800 @@ -35,6 +35,7 @@ import sun.jvm.hotspot.debugger.windbg.*; import sun.jvm.hotspot.debugger.linux.*; import sun.jvm.hotspot.debugger.sparc.*; +import sun.jvm.hotspot.debugger.bsd.*; import sun.jvm.hotspot.debugger.remote.*; import sun.jvm.hotspot.livejvm.*; import sun.jvm.hotspot.memory.*;
--- a/make/bsd/Makefile Mon Oct 07 21:52:30 2013 -0700 +++ b/make/bsd/Makefile Sun Dec 01 13:48:11 2013 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -211,6 +211,8 @@ BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) LIBRARY_SUFFIX=$(LIBRARY_SUFFIX) BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) +BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE) + BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) #------------------------------------------------------------------------------- @@ -337,9 +339,11 @@ # Doc target. This is the same for all build options. # Hence create a docs directory beside ...$(ARCH)_[...] +# We specify 'BUILD_FLAVOR=product' so that the proper +# ENABLE_FULL_DEBUG_SYMBOLS value is used. docs: checks $(QUIETLY) mkdir -p $(SUBDIR_DOCS) - $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs + $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs # Synonyms for win32-like targets. compiler2: jvmg product
--- a/make/bsd/makefiles/buildtree.make Mon Oct 07 21:52:30 2013 -0700 +++ b/make/bsd/makefiles/buildtree.make Sun Dec 01 13:48:11 2013 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -253,6 +253,16 @@ echo "$(call gamma-path,commonsrc,os/posix/vm)"; \ [ -n "$(CFLAGS_BROWSE)" ] && \ echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ + [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \ + echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \ + [ -n "$(OBJCOPY)" ] && \ + echo && echo "OBJCOPY = $(OBJCOPY)"; \ + [ -n "$(STRIP_POLICY)" ] && \ + echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \ + [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \ + echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \ + [ -n "$(ZIPEXE)" ] && \ + echo && echo "ZIPEXE = $(ZIPEXE)"; \ [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ echo && \ echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \ @@ -382,7 +392,7 @@ $(QUIETLY) ( \ $(BUILDTREE_COMMENT); \ echo "JDK=${JAVA_HOME}"; \ - ) > $@ + ) > $@ .dbxrc: $(BUILDTREE_MAKE) @echo Creating $@ ...
--- a/make/bsd/makefiles/jsig.make Mon Oct 07 21:52:30 2013 -0700 +++ b/make/bsd/makefiles/jsig.make Sun Dec 01 13:48:11 2013 -0800 @@ -36,9 +36,16 @@ LIBJSIG_G = lib$(JSIG_G).so endif +LIBJSIG_DEBUGINFO = lib$(JSIG).debuginfo +LIBJSIG_DIZ = lib$(JSIG).diz +LIBJSIG_G_DEBUGINFO = lib$(JSIG_G).debuginfo +LIBJSIG_G_DIZ = lib$(JSIG_G).diz + JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG) +DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO) +DEST_JSIG_DIZ = $(JDK_LIBDIR)/$(LIBJSIG_DIZ) LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig @@ -57,11 +64,33 @@ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE) @echo Making signal interposition lib... $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ - $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< + $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< $(QUIETLY) [ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); } +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ + ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(STRIP) $@ + else + ifeq ($(STRIP_POLICY),min_strip) + $(QUIETLY) $(STRIP) -S $@ + # implied else here is no stripping at all + endif + endif + [ -f $(LIBJSIG_G_DEBUGINFO) ] || { ln -s $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO); } + ifeq ($(ZIP_DEBUGINFO_FILES),1) + $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO) + $(RM) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO) + [ -f $(LIBJSIG_G_DIZ) ] || { ln -s $(LIBJSIG_DIZ) $(LIBJSIG_G_DIZ); } + endif +endif install_jsig: $(LIBJSIG) @echo "Copying $(LIBJSIG) to $(DEST_JSIG)" + $(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \ + cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO) + $(QUIETLY) test -f $(LIBJSIG_DIZ) && \ + cp -f $(LIBJSIG_DIZ) $(DEST_JSIG_DIZ) $(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done" .PHONY: install_jsig
--- a/make/bsd/makefiles/launcher.make Mon Oct 07 21:52:30 2013 -0700 +++ b/make/bsd/makefiles/launcher.make Sun Dec 01 13:48:11 2013 -0800 @@ -50,7 +50,7 @@ LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS) else LAUNCHER.o = launcher.o - LFLAGS_LAUNCHER += -L`pwd` + LFLAGS_LAUNCHER += -L`pwd` # The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a # freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting
--- a/make/bsd/makefiles/ppc.make Mon Oct 07 21:52:30 2013 -0700 +++ b/make/bsd/makefiles/ppc.make Sun Dec 01 13:48:11 2013 -0800 @@ -28,3 +28,6 @@ # Must also specify if CPU is big endian CFLAGS += -DVM_BIG_ENDIAN +ifdef E500V2 +ASFLAGS += -Wa,-mspe -Wa,--defsym -Wa,E500V2=1 +endif
--- a/make/bsd/makefiles/saproc.make Mon Oct 07 21:52:30 2013 -0700 +++ b/make/bsd/makefiles/saproc.make Sun Dec 01 13:48:11 2013 -0800 @@ -36,6 +36,11 @@ LIBSAPROC_G = lib$(SAPROC_G).so endif +LIBSAPROC_DEBUGINFO = lib$(SAPROC).debuginfo +LIBSAPROC_DIZ = lib$(SAPROC).diz +LIBSAPROC_G_DEBUGINFO = lib$(SAPROC_G).debuginfo +LIBSAPROC_G_DIZ = lib$(SAPROC_G).diz + AGENT_DIR = $(GAMMADIR)/agent SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family) @@ -66,7 +71,9 @@ SAMAPFILE = $(SASRCDIR)/mapfile -DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) +DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) +DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO) +DEST_SAPROC_DIZ = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ) # DEBUG_BINARIES overrides everything, use full -g debug information ifeq ($(DEBUG_BINARIES), true) @@ -114,10 +121,32 @@ -o $@ \ $(SALIBS) $(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ + ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(STRIP) $@ + else + ifeq ($(STRIP_POLICY),min_strip) + $(QUIETLY) $(STRIP) -S $@ + # implied else here is no stripping at all + endif + endif + [ -f $(LIBSAPROC_G_DEBUGINFO) ] || { ln -s $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO); } + ifeq ($(ZIP_DEBUGINFO_FILES),1) + $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO) + $(RM) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO) + [ -f $(LIBSAPROC_G_DIZ) ] || { ln -s $(LIBSAPROC_DIZ) $(LIBSAPROC_G_DIZ); } + endif +endif install_saproc: $(BUILDLIBSAPROC) $(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \ echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ + test -f $(LIBSAPROC_DEBUGINFO) && \ + cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \ + test -f $(LIBSAPROC_DIZ) && \ + cp -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ); \ cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ fi
--- a/make/solaris/makefiles/defs.make Mon Oct 07 21:52:30 2013 -0700 +++ b/make/solaris/makefiles/defs.make Sun Dec 01 13:48:11 2013 -0800 @@ -221,8 +221,8 @@ endif ifeq ($(JVM_VARIANT_CLIENT),true) EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX) + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX) EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) ifeq ($(ARCH_DATA_MODEL),32) EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
--- a/src/cpu/sparc/vm/globals_sparc.hpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/cpu/sparc/vm/globals_sparc.hpp Sun Dec 01 13:48:11 2013 -0800 @@ -71,7 +71,11 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); +#ifdef _ALLBSD_SOURCE +define_pd_global(bool, UseMembar, true); +#else define_pd_global(bool, UseMembar, false); +#endif // GC Ergo Flags define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/os/bsd/vm/decoder_bsd.cpp Sun Dec 01 13:48:11 2013 -0800 @@ -0,0 +1,46 @@ +/* + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "prims/jvm.h" +#include "utilities/decoder_elf.hpp" + +#include <cxxabi.h> + +bool ElfDecoder::demangle(const char* symbol, char *buf, int buflen) { + int status; + char* result; + size_t size = (size_t)buflen; + + // Don't pass buf to __cxa_demangle. In case of the 'buf' is too small, + // __cxa_demangle will call system "realloc" for additional memory, which + // may use different malloc/realloc mechanism that allocates 'buf'. + if ((result = abi::__cxa_demangle(symbol, NULL, NULL, &status)) != NULL) { + jio_snprintf(buf, buflen, "%s", result); + // call c library's free + ::free(result); + return true; + } + return false; +} +
--- a/src/os/bsd/vm/os_bsd.cpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/os/bsd/vm/os_bsd.cpp Sun Dec 01 13:48:11 2013 -0800 @@ -2393,14 +2393,14 @@ } void os::print_os_info_brief(outputStream* st) { - st->print("Bsd"); + st->print("BSD"); os::Posix::print_uname_info(st); } void os::print_os_info(outputStream* st) { st->print("OS:"); - st->print("Bsd"); + st->print("BSD"); os::Posix::print_uname_info(st); @@ -2409,10 +2409,6 @@ os::Posix::print_load_average(st); } -void os::pd_print_cpu_info(outputStream* st) { - // Nothing to do for now. -} - void os::print_memory_info(outputStream* st) { st->print("Memory:"); @@ -2429,6 +2425,7 @@ st->print("(" UINT64_FORMAT "k free)", os::available_memory() >> 10); #ifndef _ALLBSD_SOURCE + // FIXME: Make this work for *BSD st->print(", swap " UINT64_FORMAT "k", ((jlong)si.totalswap * si.mem_unit) >> 10); st->print("(" UINT64_FORMAT "k free)", @@ -2436,12 +2433,22 @@ #endif st->cr(); + // FIXME: Make this work for *BSD // meminfo st->print("\n/proc/meminfo:\n"); _print_ascii_file("/proc/meminfo", st); st->cr(); } +void os::pd_print_cpu_info(outputStream* st) { + // FIXME: Make this work for *BSD + st->print("\n/proc/cpuinfo:\n"); + if (!_print_ascii_file("/proc/cpuinfo", st)) { + st->print(" <Not Available>"); + } + st->cr(); +} + // Taken from /usr/include/bits/siginfo.h Supposed to be architecture specific // but they're the same for all the bsd arch that we support // and they're the same for solaris but there's no common place to put this. @@ -2587,6 +2594,25 @@ len = strlen(buf); jrelib_p = buf + len; +#ifndef __APPLE__ + snprintf(jrelib_p, buflen-len, "/jre/lib/%s", cpu_arch); + if (0 != access(buf, F_OK)) { + snprintf(jrelib_p, buflen-len, "/lib/%s", cpu_arch); + } + + if (0 == access(buf, F_OK)) { + // Use current module name "libjvm[_g].so" instead of + // "libjvm"debug_only("_g")".so" since for fastdebug version + // we should have "libjvm.so" but debug_only("_g") adds "_g"! + len = strlen(buf); + snprintf(buf + len, buflen-len, "/hotspot/libjvm%s.so", p); + } else { + // Go back to path of .so + rp = realpath(dli_fname, buf); + if (rp == NULL) + return; + } +#else // Add the appropriate library subdir snprintf(jrelib_p, buflen-len, "/jre/lib"); if (0 != access(buf, F_OK)) { @@ -2616,6 +2642,7 @@ if (rp == NULL) return; } +#endif } } } @@ -3008,7 +3035,11 @@ } void os::pd_free_memory(char *addr, size_t bytes, size_t alignment_hint) { +#if !defined(__APPLE__) && !defined(__FreeBSD__) + commit_memory(addr, bytes, alignment_hint, false); +#else ::madvise(addr, bytes, MADV_DONTNEED); +#endif } void os::numa_make_global(char *addr, size_t bytes) { @@ -3841,6 +3872,7 @@ return OS_OK; #elif defined(__FreeBSD__) int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri); + return (ret == 0) ? OS_OK : OS_ERR; #elif defined(__APPLE__) || defined(__NetBSD__) struct sched_param sp; int policy;
--- a/src/os/bsd/vm/os_bsd.hpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/os/bsd/vm/os_bsd.hpp Sun Dec 01 13:48:11 2013 -0800 @@ -103,6 +103,12 @@ static bool hugetlbfs_sanity_check(bool warn, size_t page_size); + static void print_full_memory_info(outputStream* st); +#ifndef _ALLBSD_SOURCE + static void print_distro_info(outputStream* st); + static void print_libversion_info(outputStream* st); +#endif + public: static void init_thread_fpu_state();
--- a/src/os/bsd/vm/os_bsd.inline.hpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/os/bsd/vm/os_bsd.inline.hpp Sun Dec 01 13:48:11 2013 -0800 @@ -31,10 +31,22 @@ # include "atomic_bsd_x86.inline.hpp" # include "orderAccess_bsd_x86.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_bsd_sparc +# include "atomic_bsd_sparc.inline.hpp" +# include "orderAccess_bsd_sparc.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_zero # include "atomic_bsd_zero.inline.hpp" # include "orderAccess_bsd_zero.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_bsd_arm +# include "atomic_bsd_arm.inline.hpp" +# include "orderAccess_bsd_arm.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_bsd_ppc +# include "atomic_bsd_ppc.inline.hpp" +# include "orderAccess_bsd_ppc.inline.hpp" +#endif // System includes
--- a/src/os/bsd/vm/thread_bsd.inline.hpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/os/bsd/vm/thread_bsd.inline.hpp Sun Dec 01 13:48:11 2013 -0800 @@ -34,11 +34,26 @@ # include "orderAccess_bsd_x86.inline.hpp" # include "prefetch_bsd_x86.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_bsd_sparc +# include "atomic_bsd_sparc.inline.hpp" +# include "orderAccess_bsd_sparc.inline.hpp" +# include "prefetch_bsd_sparc.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_zero # include "atomic_bsd_zero.inline.hpp" # include "orderAccess_bsd_zero.inline.hpp" # include "prefetch_bsd_zero.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_bsd_arm +# include "atomic_bsd_arm.inline.hpp" +# include "orderAccess_bsd_arm.inline.hpp" +# include "prefetch_bsd_arm.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_bsd_ppc +# include "atomic_bsd_ppc.inline.hpp" +# include "orderAccess_bsd_ppc.inline.hpp" +# include "prefetch_bsd_ppc.inline.hpp" +#endif // Contains inlined functions for class Thread and ThreadLocalStorage
--- a/src/os/posix/vm/os_posix.cpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/os/posix/vm/os_posix.cpp Sun Dec 01 13:48:11 2013 -0800 @@ -173,11 +173,19 @@ if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); else st->print("%d", rlim.rlim_cur); +#ifdef __OpenBSD__ + st->print(", DATA "); + getrlimit(RLIMIT_DATA, &rlim); + if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); + else st->print("%uk", rlim.rlim_cur >> 10); + st->cr(); +#else st->print(", AS "); getrlimit(RLIMIT_AS, &rlim); if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); else st->print("%uk", rlim.rlim_cur >> 10); st->cr(); +#endif } void os::Posix::print_uname_info(outputStream* st) {
--- a/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp Sun Dec 01 13:48:11 2013 -0800 @@ -24,7 +24,7 @@ */ #if defined(_ALLBSD_SOURCE) && !defined(__APPLE__) && !defined(__NetBSD__) -#include <pthread.h> +# include <pthread.h> # include <pthread_np.h> /* For pthread_attr_get_np */ #endif
--- a/src/share/vm/runtime/atomic.cpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/share/vm/runtime/atomic.cpp Sun Dec 01 13:48:11 2013 -0800 @@ -54,6 +54,12 @@ #ifdef TARGET_OS_ARCH_windows_x86 # include "atomic_windows_x86.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_bsd_x86 +# include "atomic_bsd_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_bsd_zero +# include "atomic_bsd_zero.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_linux_arm # include "atomic_linux_arm.inline.hpp" #endif
--- a/src/share/vm/runtime/os.hpp Mon Oct 07 21:52:30 2013 -0700 +++ b/src/share/vm/runtime/os.hpp Sun Dec 01 13:48:11 2013 -0800 @@ -30,6 +30,9 @@ #include "runtime/extendedPC.hpp" #include "runtime/handles.hpp" #include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_bsd +# include "jvm_bsd.h" +#endif #ifdef TARGET_OS_FAMILY_linux # include "jvm_linux.h" # include <setjmp.h> @@ -755,8 +758,8 @@ # include "os_windows.hpp" #endif #ifdef TARGET_OS_FAMILY_bsd +# include "os_bsd.hpp" # include "os_posix.hpp" -# include "os_bsd.hpp" #endif #ifdef TARGET_OS_ARCH_linux_x86 # include "os_linux_x86.hpp"
--- a/test/compiler/5091921/Test7005594.sh Mon Oct 07 21:52:30 2013 -0700 +++ b/test/compiler/5091921/Test7005594.sh Sun Dec 01 13:48:11 2013 -0800 @@ -60,6 +60,9 @@ # Windows/MKS MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'` MEM="$(($machine_memory / 1024))" +elif [ -n `sysctl -n hw.physmem64 2> /dev/null` -o -n `sysctl -n hw.physmem 2> /dev/null` ]; + # BSD + MEM=`sysctl -n hw.physmem64 2> /dev/null || sysctl -n hw.physmem) | awk '{print int($$NF / 1048576); }'` else echo "Unable to determine amount of physical memory on the machine" fi
--- a/test/runtime/7110720/Test7110720.sh Mon Oct 07 21:52:30 2013 -0700 +++ b/test/runtime/7110720/Test7110720.sh Sun Dec 01 13:48:11 2013 -0800 @@ -28,7 +28,7 @@ # set platform-dependent variables OS=`uname -s` case "$OS" in - SunOS | Linux | Darwin ) + SunOS | Linux | Darwin | *BSD ) FS="/" RM=/bin/rm CP=/bin/cp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/runtime/7158800/Test7158800.sh Sun Dec 01 13:48:11 2013 -0800 @@ -0,0 +1,91 @@ +#!/bin/sh +# +# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# +# Run test for InternTest.java +# + +if [ "${TESTSRC}" = "" ] +then TESTSRC=. +fi + +if [ "${TESTJAVA}" = "" ] +then + PARENT=`dirname \`which java\`` + TESTJAVA=`dirname ${PARENT}` + echo "TESTJAVA not set, selecting " ${TESTJAVA} + echo "If this is incorrect, try setting the variable manually." +fi + +if [ "${TESTCLASSES}" = "" ] +then + echo "TESTCLASSES not set. Test cannot execute. Failed." + exit 1 +fi + +# set platform-dependent variables +OS=`uname -s` +case "$OS" in + SunOS | Linux | *BSD ) + NULL=/dev/null + PS=":" + FS="/" + ;; + Windows_* ) + NULL=NUL + PS=";" + FS="\\" + ;; + * ) + echo "Unrecognized system!" + exit 1; + ;; +esac + +JEMMYPATH=${CPAPPEND} +CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH + +THIS_DIR=`pwd` + +${TESTJAVA}${FS}bin${FS}java -fullversion + +${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}InternTest.java + +cp ${TESTSRC}${FS}badstrings.txt . + +${TESTJAVA}${FS}bin${FS}java -XX:+PrintStringTableStatistics -XX:+TraceSafepointCleanupTime InternTest bad > test.out 2>&1 & +C_PID=$! + +sleep 60 + +ps | grep ${C_PID} | grep -v grep + +if [ $? = 0 ] +then + kill -9 ${C_PID} + echo "Test Failed" + exit 1 +else + echo "Test Passed" + exit 0 +fi