822 } |
822 } |
823 |
823 |
824 // allocate new buffer and initialize |
824 // allocate new buffer and initialize |
825 info = (Dl_serinfo*)malloc(_info.dls_size); |
825 info = (Dl_serinfo*)malloc(_info.dls_size); |
826 if (info == NULL) { |
826 if (info == NULL) { |
827 vm_exit_out_of_memory(_info.dls_size, |
827 vm_exit_out_of_memory(_info.dls_size, OOM_MALLOC_ERROR, |
828 "init_system_properties_values info"); |
828 "init_system_properties_values info"); |
829 } |
829 } |
830 info->dls_size = _info.dls_size; |
830 info->dls_size = _info.dls_size; |
831 info->dls_cnt = _info.dls_cnt; |
831 info->dls_cnt = _info.dls_cnt; |
832 |
832 |
864 // nulls included by the sizeof operator. |
864 // nulls included by the sizeof operator. |
865 size_t bufsize = sizeof(COMMON_DIR) + sizeof("/lib/") + strlen(cpu_arch); |
865 size_t bufsize = sizeof(COMMON_DIR) + sizeof("/lib/") + strlen(cpu_arch); |
866 common_path = malloc(bufsize); |
866 common_path = malloc(bufsize); |
867 if (common_path == NULL) { |
867 if (common_path == NULL) { |
868 free(info); |
868 free(info); |
869 vm_exit_out_of_memory(bufsize, |
869 vm_exit_out_of_memory(bufsize, OOM_MALLOC_ERROR, |
870 "init_system_properties_values common_path"); |
870 "init_system_properties_values common_path"); |
871 } |
871 } |
872 sprintf(common_path, COMMON_DIR "/lib/%s", cpu_arch); |
872 sprintf(common_path, COMMON_DIR "/lib/%s", cpu_arch); |
873 |
873 |
874 // struct size is more than sufficient for the path components obtained |
874 // struct size is more than sufficient for the path components obtained |
877 bufsize = info->dls_size + strlen(common_path); |
877 bufsize = info->dls_size + strlen(common_path); |
878 library_path = malloc(bufsize); |
878 library_path = malloc(bufsize); |
879 if (library_path == NULL) { |
879 if (library_path == NULL) { |
880 free(info); |
880 free(info); |
881 free(common_path); |
881 free(common_path); |
882 vm_exit_out_of_memory(bufsize, |
882 vm_exit_out_of_memory(bufsize, OOM_MALLOC_ERROR, |
883 "init_system_properties_values library_path"); |
883 "init_system_properties_values library_path"); |
884 } |
884 } |
885 library_path[0] = '\0'; |
885 library_path[0] = '\0'; |
886 |
886 |
887 // Construct the desired Java library path from the linker's library |
887 // Construct the desired Java library path from the linker's library |
1621 // small number - point is NO swap space available |
1621 // small number - point is NO swap space available |
1622 void os::thread_local_storage_at_put(int index, void* value) { |
1622 void os::thread_local_storage_at_put(int index, void* value) { |
1623 // %%% this is used only in threadLocalStorage.cpp |
1623 // %%% this is used only in threadLocalStorage.cpp |
1624 if (thr_setspecific((thread_key_t)index, value)) { |
1624 if (thr_setspecific((thread_key_t)index, value)) { |
1625 if (errno == ENOMEM) { |
1625 if (errno == ENOMEM) { |
1626 vm_exit_out_of_memory(SMALLINT, "thr_setspecific: out of swap space"); |
1626 vm_exit_out_of_memory(SMALLINT, OOM_MALLOC_ERROR, |
|
1627 "thr_setspecific: out of swap space"); |
1627 } else { |
1628 } else { |
1628 fatal(err_msg("os::thread_local_storage_at_put: thr_setspecific failed " |
1629 fatal(err_msg("os::thread_local_storage_at_put: thr_setspecific failed " |
1629 "(%s)", strerror(errno))); |
1630 "(%s)", strerror(errno))); |
1630 } |
1631 } |
1631 } else { |
1632 } else { |