$OpenBSD: patch-hotspot_src_os_bsd_vm_os_bsd_cpp,v 1.5 2008/02/28 14:54:56 kurt Exp $
--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig	Tue Feb 26 12:27:49 2008
+++ hotspot/src/os/bsd/vm/os_bsd.cpp	Tue Feb 26 13:02:48 2008
@@ -237,14 +237,19 @@ void os::Bsd::initialize_system_info() {
 #if 1
   int mib[2];
   size_t len;
-  uint val;
+  int cpu_val;
+#ifdef HW_USERMEM64
+  int64_t mem_val;
+#else
+  u_long mem_val;
+#endif
 
   /* get processors count via hw.ncpus sysctl */
   mib[0] = CTL_HW;
   mib[1] = HW_NCPU;
-  len = sizeof(val);
-  if (sysctl(mib, 2, &val, &len, NULL, 0) != -1)
-        _processor_count = val;
+  len = sizeof(cpu_val);
+  if (sysctl(mib, 2, &cpu_val, &len, NULL, 0) != -1)
+        _processor_count = cpu_val;
   else
 	_processor_count = 1;	// fallback
 
@@ -252,10 +257,14 @@ void os::Bsd::initialize_system_info() {
    * instead of hw.physmem because we need size of allocatable memory
    */
   mib[0] = CTL_HW;
+#ifdef HW_USERMEM64
+  mib[1] = HW_USERMEM64;
+#else
   mib[1] = HW_USERMEM;
-  len = sizeof(val);
-  if (sysctl(mib, 2, &val, &len, NULL, 0) != -1)
-	_physical_memory = val;
+#endif
+  len = sizeof(mem_val);
+  if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1)
+	_physical_memory = mem_val;
   else
 	_physical_memory = 256*1024*1024;
 
@@ -346,7 +355,9 @@ props_md_t* os::get_system_properties() {
 #define malloc(n) (char*)NEW_C_HEAP_ARRAY(char, (n))
 #define getenv(n) ::getenv(n)
 
+#ifndef DEFAULT_LD_LIBRARY_PATH
 #define DEFAULT_LD_LIBRARY_PATH "/usr/lib" /* See ld.so.1(1) */
+#endif
 #define EXTENSIONS_DIR "/lib/ext"
 #define ENDORSED_DIR "/lib/endorsed"
 
@@ -712,6 +723,7 @@ bool os::create_thread(Thread* thread, ThreadType thr_
   osthread->set_thread_id(NULL);
 
   status = pthread_create(&tid, &tattr, _start, thread);
+  pthread_attr_destroy(&tattr);
   if (status != 0) {
 err:
     if (PrintMiscellaneous && (Verbose || WizardMode)) {
