03-28-2006
Can't dlopen() a library containing Thread Local Storage
Hi,
I have a small test c program which tries to dlopen a shared library(libjvm.sl).
But i get error as "Can't dlopen() a library containing Thread Local Storage"
My program is as below
Quote:
#include <stdio.h>
#include <errno.h>
#include <dlfcn.h>
void main(void)
{
void *handle;
handle = dlopen("/opt/weblogic810sp3/jdk142_03/jre/lib/PA_RISC/server/libjvm.sl", RTLD_LAZY);
if( handle == NULL )
{
printf("errno[%d], errmsg[%s]\n", errno, dlerror());
return;
}
else
{
printf("\nJVM loaded successfully");
}
dlclose(handle);
}
when i run the program i get error
Quote:
$ testjvm
errno[0], errmsg[Can't dlopen() a library containing Thread Local Storage: /opt/weblogic810sp3/jdk142_03/jre/lib/PA_RISC/server/libjvm.sl]
$
any pointers why the error??
I am using hp-ux . The same program run well on solaris.
thanks in advance.
-Ashish
9 More Discussions You Might Find Interesting
1. Programming
hi all,
can anyone tell me some good site for the mutithreading tutorials, its application, and some code examples.
-sushil (2 Replies)
Discussion started by: shushilmore
2 Replies
2. Programming
Is there anybody has documents about NPTL
I wanna study about it , but can't find the documents....
anyone help appreciate
:) :) :) (1 Reply)
Discussion started by: alan.zhao
1 Replies
3. Programming
What I'm given:
Pure C code in one file that has to compile on Windows, SunOS, and AIX. My task is making minimal changes to the code to make it thread safe. I'm not in control of threads - they are created elsewhere. The code has a function invoked externally. The first call to this function is... (1 Reply)
Discussion started by: vkleban
1 Replies
4. Shell Programming and Scripting
Hello,
I've been searching your forum for an answer to the following question and whilst I've seen several which may help I'm afraid my inexperience with UNIX systems has got the better of me and I'm incapable of piecing your considerable expertise together.
Problem:
I have a linux box which... (5 Replies)
Discussion started by: julezsht
5 Replies
5. Programming
Hi,
I created two library libsum.so and libproduct.so. In the libproduct.so is defined function "product" that use function "sum" defined in libsum.so. So libproduct depends on libsum.
In main function I called product function by a dlopen request. Unfortunaly, when I execute program I have an... (5 Replies)
Discussion started by: shade82
5 Replies
6. Programming
I am attempting to port a program from OS X to Linux. It's C++ & Qt Creator and I did the original Windows to OS X port, so I tried to make it as POSIX-compliant as possible; the OS X port works well, and the Linux port builds and starts (it's on Ubuntu 9.10) but has some issues running.
The... (2 Replies)
Discussion started by: Hodapp87
2 Replies
7. Programming
As I know threads share the memory. But, what about the local variables in the thread function? if i call multiple threads would they allocate seperate local variables for themselves?
like
thread_func()
{
int i, j;
string...
}
Are the above local variables defined for each of... (1 Reply)
Discussion started by: saman_glorious
1 Replies
8. Solaris
Hello.
I have a solaris box with several local disks and several come from SYMMETRIX storage. Is there any way to tell format (or other util) to show only local disks? (6 Replies)
Discussion started by: urello
6 Replies
9. Solaris
I am newbies in solaris, hope u guys can help me,
I need to transfer /export/home directory that currently mount at storage and migrate into local disk. may i know the best way to do it?
Thanks (6 Replies)
Discussion started by: Deeo
6 Replies
LEARN ABOUT MOJAVE
dlclose
DLCLOSE(3) BSD Library Functions Manual DLCLOSE(3)
NAME
dlclose -- close a dynamic library or bundle
SYNOPSIS
#include <dlfcn.h>
int
dlclose(void* handle);
DESCRIPTION
dlclose() releases a reference to the dynamic library or bundle referenced by handle. If the reference count drops to 0, the bundle is
removed from the address space, and handle is rendered invalid. Just before removing a dynamic library or bundle in this way, any termina-
tion routines in it are called. handle is the value returned by a previous call to dlopen.
Prior to Mac OS X 10.5, only bundles could be unloaded. Starting in Mac OS X 10.5, dynamic libraries may also be unloaded. There are a cou-
ple of cases in which a dynamic library will never be unloaded: 1) the main executable links against it, 2) An API that does not supoort
unloading (e.g. NSAddImage()) was used to load it or some other dynnamic library that depends on it, 3) the dynamic library is in dyld's
shared cache.
RETURN VALUES
If dlclose() is successful, it returns a value of 0. Otherwise it returns -1, and sets an error string that can be retrived with dlerror().
SEE ALSO
dlopen(3) dlsym(3) dlerror(3) dyld(3) ld(1) cc(1)
Nov 6, 2006