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)) |
6420 |
6424 |
6421 int os::bind(int fd, struct sockaddr *him, int len) { |
6425 int os::bind(int fd, struct sockaddr *him, int len) { |
6422 INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\ |
6426 INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\ |
6423 os::Solaris::clear_interrupted); |
6427 os::Solaris::clear_interrupted); |
6424 } |
6428 } |
6425 |
|