< prev index next >

src/hotspot/os/bsd/os_bsd.inline.hpp

Print this page

        

*** 32,46 **** #include <unistd.h> #include <sys/socket.h> #include <poll.h> #include <netdb.h> ! // File names are case-insensitive on windows only inline int os::file_name_strncmp(const char* s1, const char* s2, size_t num) { return strncmp(s1, s2, num); } inline bool os::obsolete_option(const JavaVMOption *option) { return false; } inline bool os::uses_stack_guard_pages() { --- 32,85 ---- #include <unistd.h> #include <sys/socket.h> #include <poll.h> #include <netdb.h> ! #ifdef __APPLE__ ! ! #include <strings.h> ! #include <xlocale.h> ! ! // File names could be case-insensitive on Mac OS X, ! // depending on the filesystem's capabilities. ! static bool is_filesystem_case_insensitive(const char* path) { ! char resolved[PATH_MAX] = {'\0'}; ! if (path[0] != '/') { ! // The path is relative, so find the current working directory ! os::get_current_directory(resolved, PATH_MAX); ! // Start resolving full path ! int remaining = PATH_MAX - strlen(resolved) - 1; ! if (remaining > 0) { ! strncat(resolved, "/", (size_t)remaining); ! } ! } ! // Resolve full path ! int remaining = PATH_MAX - strlen(resolved) - 1; ! if (remaining > 0) { ! strncat(resolved, path, (size_t)remaining); ! } ! return (pathconf(resolved, _PC_CASE_SENSITIVE) == 0); ! } ! ! inline int os::file_name_strncmp(const char* s1, const char* s2, size_t num) { ! int result = strncmp(s1, s2, num); ! if ((result != 0) && (strlen(s1) == strlen(s2))) { ! if (is_filesystem_case_insensitive(s1)) { ! result = strncasecmp(s1, s2, num); ! } ! } ! return result; ! } ! ! #else ! inline int os::file_name_strncmp(const char* s1, const char* s2, size_t num) { return strncmp(s1, s2, num); } + #endif // __APPLE__ + inline bool os::obsolete_option(const JavaVMOption *option) { return false; } inline bool os::uses_stack_guard_pages() {
< prev index next >