Mercurial > hg > graal-jvmci-8
comparison src/os/solaris/vm/os_solaris.cpp @ 1642:0e7d2a08b605
6967423: Hotspot support for modules image
Summary: Add hotspot support for modules image
Reviewed-by: acorn
author | mchung |
---|---|
date | Wed, 07 Jul 2010 15:35:58 -0700 |
parents | c18cbe5936b8 |
children | 126ea7725993 |
comparison
equal
deleted
inserted
replaced
1641:5087ecc10458 | 1642:0e7d2a08b605 |
---|---|
2433 if (strncmp(p, "/jre/lib/", 9) != 0) { | 2433 if (strncmp(p, "/jre/lib/", 9) != 0) { |
2434 // Look for JAVA_HOME in the environment. | 2434 // Look for JAVA_HOME in the environment. |
2435 char* java_home_var = ::getenv("JAVA_HOME"); | 2435 char* java_home_var = ::getenv("JAVA_HOME"); |
2436 if (java_home_var != NULL && java_home_var[0] != 0) { | 2436 if (java_home_var != NULL && java_home_var[0] != 0) { |
2437 char cpu_arch[12]; | 2437 char cpu_arch[12]; |
2438 char* jrelib_p; | |
2439 int len; | |
2438 sysinfo(SI_ARCHITECTURE, cpu_arch, sizeof(cpu_arch)); | 2440 sysinfo(SI_ARCHITECTURE, cpu_arch, sizeof(cpu_arch)); |
2439 #ifdef _LP64 | 2441 #ifdef _LP64 |
2440 // If we are on sparc running a 64-bit vm, look in jre/lib/sparcv9. | 2442 // If we are on sparc running a 64-bit vm, look in jre/lib/sparcv9. |
2441 if (strcmp(cpu_arch, "sparc") == 0) { | 2443 if (strcmp(cpu_arch, "sparc") == 0) { |
2442 strcat(cpu_arch, "v9"); | 2444 strcat(cpu_arch, "v9"); |
2448 p = strrchr(buf, '/'); | 2450 p = strrchr(buf, '/'); |
2449 assert(strstr(p, "/libjvm") == p, "invalid library name"); | 2451 assert(strstr(p, "/libjvm") == p, "invalid library name"); |
2450 p = strstr(p, "_g") ? "_g" : ""; | 2452 p = strstr(p, "_g") ? "_g" : ""; |
2451 | 2453 |
2452 realpath(java_home_var, buf); | 2454 realpath(java_home_var, buf); |
2453 sprintf(buf + strlen(buf), "/jre/lib/%s", cpu_arch); | 2455 // determine if this is a legacy image or modules image |
2456 // modules image doesn't have "jre" subdirectory | |
2457 len = strlen(buf); | |
2458 jrelib_p = buf + len; | |
2459 snprintf(jrelib_p, buflen-len, "/jre/lib/%s", cpu_arch); | |
2460 if (0 != access(buf, F_OK)) { | |
2461 snprintf(jrelib_p, buflen-len, "/lib/%s", cpu_arch); | |
2462 } | |
2463 | |
2454 if (0 == access(buf, F_OK)) { | 2464 if (0 == access(buf, F_OK)) { |
2455 // Use current module name "libjvm[_g].so" instead of | 2465 // Use current module name "libjvm[_g].so" instead of |
2456 // "libjvm"debug_only("_g")".so" since for fastdebug version | 2466 // "libjvm"debug_only("_g")".so" since for fastdebug version |
2457 // we should have "libjvm.so" but debug_only("_g") adds "_g"! | 2467 // we should have "libjvm.so" but debug_only("_g") adds "_g"! |
2458 // It is used when we are choosing the HPI library's name | 2468 // It is used when we are choosing the HPI library's name |
2459 // "libhpi[_g].so" in hpi::initialize_get_interface(). | 2469 // "libhpi[_g].so" in hpi::initialize_get_interface(). |
2460 sprintf(buf + strlen(buf), "/hotspot/libjvm%s.so", p); | 2470 len = strlen(buf); |
2471 snprintf(buf + len, buflen-len, "/hotspot/libjvm%s.so", p); | |
2461 } else { | 2472 } else { |
2462 // Go back to path of .so | 2473 // Go back to path of .so |
2463 realpath((char *)dlinfo.dli_fname, buf); | 2474 realpath((char *)dlinfo.dli_fname, buf); |
2464 } | 2475 } |
2465 } | 2476 } |