1973 // not have dladdr1 support. Make sure there is a value for |
1973 // not have dladdr1 support. Make sure there is a value for |
1974 // RTLD_DL_SYMENT. |
1974 // RTLD_DL_SYMENT. |
1975 #ifndef RTLD_DL_SYMENT |
1975 #ifndef RTLD_DL_SYMENT |
1976 #define RTLD_DL_SYMENT 1 |
1976 #define RTLD_DL_SYMENT 1 |
1977 #endif |
1977 #endif |
1978 Sym * info; |
1978 #ifdef _LP64 |
|
1979 Elf64_Sym * info; |
|
1980 #else |
|
1981 Elf32_Sym * info; |
|
1982 #endif |
1979 if (dladdr1_func((void *)addr, &dlinfo, (void **)&info, |
1983 if (dladdr1_func((void *)addr, &dlinfo, (void **)&info, |
1980 RTLD_DL_SYMENT)) { |
1984 RTLD_DL_SYMENT)) { |
1981 if ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr) { |
1985 if ((char *)dlinfo.dli_saddr + info->st_size > (char *)addr) { |
1982 if (buf != NULL) { |
1986 if (buf != NULL) { |
1983 if (!Decoder::demangle(dlinfo.dli_sname, buf, buflen)) |
1987 if (!Decoder::demangle(dlinfo.dli_sname, buf, buflen)) |
6422 |
6426 |
6423 int os::bind(int fd, struct sockaddr *him, int len) { |
6427 int os::bind(int fd, struct sockaddr *him, int len) { |
6424 INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\ |
6428 INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\ |
6425 os::Solaris::clear_interrupted); |
6429 os::Solaris::clear_interrupted); |
6426 } |
6430 } |
6427 |
|