- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: symbol not found
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
Forums
Discussions
Discussions
Discussions
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
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
08-06-2007 08:06 AM
08-06-2007 08:06 AM
symbol not found: _SYSTEM_ID (/usr/lib/libc.2)
symbol not found: _end (/usr/lib/libc.2)
symbol not found: __dld_loc (/usr/lib/libdld.2)
I can find the first two:
$ nm /usr/lib/libc.2 | grep SYS
U _SYSTEM_ID
lccas243$
$ nm /usr/lib/libc.2 | grep _end
U _end
But I can't locate the third:
$ nm /usr/lib/libc.2 | grep dld_
(not found)
Any insight?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-06-2007 08:22 PM
08-06-2007 08:22 PM
Re: symbol not found
As Apache 2.0.59 seems to be not yet available from software.hp.com, I'm guessing you're compiling it yourself or getting it from some other site. These patches might be required by your version of Apache too.
From the product detail page of HP Apache-based Web Server 2.17: http://h20293.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=HPUXWSATW217
-------------------------------------------
Starting with HP-UX Apache 2.0.58.00, there may be problems starting Apache. Apache may hang when attempting to start it. This is because of the changes made in the way modules get loaded dynamically. The solution for this is to install the following patches. These patches also need to be installed if the LoadFile directives are used.
For 11iv1:
* PHSS_33037 - ld(1) and linker tools cumulative patch
* PHSS_33944 - s700_800 11.11 HP aC++ -AA runtime libraries (aCC A.03.61)
For 11.00:
* PHSS_33036 s700_800 11.00 ld(1) and linker tools cumulative patch
* PHSS_33943 s700_800 11.X HP aC++ -AA runtime libraries (aCC A.03.61)
For 11iv2: No patches are required
--------------------------------------------
MK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-06-2007 10:42 PM
08-06-2007 10:42 PM
Re: symbol not found
This type of error can only occurs if you illegally linked with an archive libc and a shared one.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2007 01:47 AM
08-07-2007 01:47 AM
Re: symbol not found
Thanks for your reply. The patches you mentioned were already present when this problem appeared.
I need to correct my original post. __dld_loc is present in libdld.2 In the post above you can see I was checking the wrong library....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2007 02:36 AM
08-07-2007 02:36 AM
Re: symbol not found
This message:
symbol not found: _SYSTEM_ID (/usr/lib/libc.2)
symbol not found: _end (/usr/lib/libc.2)
symbol not found: __dld_loc (/usr/lib/libdld.2)
Was the output of ldd -bd mod_ssl.so
I was able to find each of those symbols in the appropriate library with nm.
How can I tell if I illegally linked it to an archived version of libc? And how do I prevent that?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2007 03:48 AM
08-07-2007 03:48 AM
Re: symbol not found
ldd -bd libz.sl
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libc.2 => /usr/lib/libc.2
symbol not found: _SYSTEM_ID (/usr/lib/libc.2)
symbol not found: _end (/usr/lib/libc.2)
symbol not found: __dld_loc (/usr/lib/libdld.2)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2007 11:21 AM
08-07-2007 11:21 AM
SolutionYou are confused. The "U" means is an Unsat in that lib and not defined. You need to be looking for a T, B or D. As I said it is only defined in an executable.
$ odump -slexport /usr/bin/ksh | fgrep __dld_loc
000000006 -00000001 -0001 0x4000440c Stor 0x00000004 00 __dld_loc
>Was the output of ldd -bd mod_ssl.so
You should NOT be using ldd -d on shlibs. It gives you this type of bogus info.
>I was able to find each of those symbols in the appropriate library with nm.
(These are not the droids you want. ;-)
nm is the wrong command to look at shlibs.
The proper command is "odump -slexport". And -slimport for unsats.
What is your real problem?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2007 12:08 AM
08-08-2007 12:08 AM
Re: symbol not found
My *real* problem is apache doesn't load mod_ssl. It dies with this error:
$ sudo bin/apachectl start
Syntax error on line 5 of /usr/local/httpd/conf/extra/ssl.conf:
Cannot load /usr/local/httpd/modules/mod_ssl.so into server: Unresolved external
So I ran ldd on the modules and found the following unresolved symbols:
symbol not found: _SYSTEM_ID (/usr/lib/libc.2)
symbol not found: _end (/usr/lib/libc.2)
symbol not found: __dld_loc (/usr/lib/libdld.2)
Interestingly, I downloaded HP's apache and and ran ldd on some of the modules they supplied and I found the same unresolved symbols.
Am I barking up the wrong tree?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2007 12:37 AM
08-08-2007 12:37 AM
Re: symbol not found
Cannot load /usr/local/httpd/modules/mod_ssl.so into server: Unresolved external
Unfortunately it doesn't mention the symbol. :-(
>Am I barking up the wrong tree?
Well yes. :-)
A better tool is show_remaining_imports that you can find on one of my replies to this thread:
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1115429
You just provide the name of the executable and the module you are trying to load.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2007 05:09 AM
08-08-2007 05:09 AM
Re: symbol not found
Here's the output. I'm not sure what this is telling me:
sudo show_remaining_imports bin/httpd modules/mod_ssl.so
Unsat for BIO_clear_flags
Code in modules/mod_ssl.so
Unsat for BIO_get_callback_arg
Code in modules/mod_ssl.so
Unsat for BIO_set_callback
Code in modules/mod_ssl.so
Unsat for BIO_set_callback_arg
Code in modules/mod_ssl.so
Unsat for BIO_set_flags
Code in modules/mod_ssl.so
Unsat for SSL_CTX_sess_set_get_cb
Code in modules/mod_ssl.so
Unsat for SSL_CTX_sess_set_new_cb
Code in modules/mod_ssl.so
Unsat for SSL_CTX_sess_set_remove_cb
Code in modules/mod_ssl.so
Unsat for SSL_CTX_set_client_cert_cb
Code in modules/mod_ssl.so
Unsat for SSL_CTX_set_info_callback
Code in modules/mod_ssl.so
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2007 03:01 PM
08-08-2007 03:01 PM
Re: symbol not found
Either these are the unsats, or you need to add another shlib on the command line. I would have expected ldd to also print these?
(You probably don't need sudo to execute it.)
sudo show_remaining_imports bin/httpd modules/mod_ssl.so
Unsat for BIO_clear_flags
Code in modules/mod_ssl.so
Unsat for BIO_get_callback_arg
Unsat for BIO_set_callback
Unsat for BIO_set_callback_arg
Unsat for BIO_set_flags
Unsat for SSL_CTX_sess_set_get_cb
Unsat for SSL_CTX_sess_set_new_cb
Unsat for SSL_CTX_sess_set_remove_cb
Unsat for SSL_CTX_set_client_cert_cb
Unsat for SSL_CTX_set_info_callback
So you need to search for a shlib that defines these functions:
odump -slexport lib* | grep -e BIO_ -e SSL_CTX
I suppose you could also search the executable and if it wasn't built correctly it would have this problem. (-Wl,-E)
nm -px bin/httpd | grep -e BIO_ -e SSL_CTX