- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Error while linking DLL : dlsym: Unknown symbol dl...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 03:05 AM
тАО02-22-2008 03:05 AM
Not sure if the shared library is using this symbol. but in the linked symbols of the shared library (ld +vtype symbols) shows
/usr/lib/hpux64/libdl.so.1:
dlgetmodinfo is DEFINED GLOBAL FUNC
memcpy is UNDEF GLOBAL FUNC
dlsetnonuniqsymflag is DEFINED GLOBAL FUNC
but the above said error is raised when tried load the DLL from another gcc compiled executable using dlopen (sl_name, RLTD_NOW)
h/w details
HP-UX B.11.31 U ia64
$ gcc -v
Using built-in specs.
Target: ia64-hp-hpux11.31
Configured with: ../gcc/configure
Thread model: posix
gcc version 4.2.1
all the library paths are included in LD_LIBRARY_PATH (inc. /usr/lib/hpux64/)
$ file /usr/local/bin/gcc
/usr/local/bin/gcc: ELF-32 executable object file - IA64
we applied the Patch PHSS_37493 (ftp + linker cumulative patch for 11.31) as said in (http://forums11.itrc.hp.com/service/forums/questionanswer.do;HP-FORUMS-S-WPA-IDX=HmcQSRtXrqvfsKVYpJTWzzvQPfcrx2ghD2C2pxP2S29L1CXDKyKQ!1521457198!2088606787?threadId=1114372) . but it didnt resolve the issue.
can any1 help!!!!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 03:44 AM
тАО02-22-2008 03:44 AM
Re: Error while linking DLL : dlsym: Unknown symbol dlsetnonuniqsymflag
If you get this you are illegally calling dlerror(3). You can't call this unless you get an error. Otherwise you get this left over message from libCsup, when it called dlsym(3).
Hmm, I see you are pointing to that previous instance of this symbol. I'm not sure how that other problem was resolved and why it didn't work for you.
What does your code look like that is calling dlopen(3)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 04:27 AM
тАО02-22-2008 04:27 AM
Re: Error while linking DLL : dlsym: Unknown symbol dlsetnonuniqsymflag
pHandle = dlopen(szDllName, RTLD_NOW);
szLoadErr = dlerror();
if (szLoadErr!= NULL)
{
printf("\n Error while linking DLL ::%s\n",szLoadErr);
return( T_FAILURE );
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 03:37 PM
тАО02-22-2008 03:37 PM
SolutionpHandle = dlopen(szDllName, RTLD_NOW);
szLoadErr = dlerror();
if (szLoadErr!= NULL) {
printf("\n Error while linking DLL::%s\n",szLoadErr);
Ah, this is the broken linux? coding style of checking dlerror(3) that I have seen before. You need to check pHandle for the error, not dlerror(3). See:
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1147411
if (pHandle == NULL) {
szLoadErr = dlerror();
printf("Error while linking DLL: %s\n",szLoadErr);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 10:32 PM
тАО02-22-2008 10:32 PM
Re: Error while linking DLL : dlsym: Unknown symbol dlsetnonuniqsymflag
Issue is solved by clearing the error variable before dlopen call. we are yet to check which code originally raised this error.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 10:39 PM
тАО02-22-2008 10:39 PM
Re: Error while linking DLL : dlsym: Unknown symbol dlsetnonuniqsymflag
That would not be my recommendation. You should only call dlerror(3) if you have an error return from a dl* function.
>we are yet to check which code originally raised this error.
I told you, libCsup, by design. You could also get similar bogus errors from setlocale(3).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2008 10:48 PM
тАО02-22-2008 10:48 PM