Operating System - Linux
1829620 Members
2413 Online
109992 Solutions
New Discussion

ld: (Warning) Unsatisfied symbol

 
SOLVED
Go to solution
yazgoo
Frequent Advisor

ld: (Warning) Unsatisfied symbol

I'm upgrading VisiBroker from v5 to 6.5.
I installed v6.5.
Whan I compile via aCC I got a ton of this kind of warniings :

code_____________________________________________________________

ld: (Warning) Unsatisfied symbol "VISDLogProperty::set_source_enable(bool)" in file /opt/BES/lib/liborb64_r.sl
⌊_______________________________________________________________⌋

At runtime The following message occurs before an executable doesn't launch :

code_____________________________________________________________

/usr/lib/pa20_64/dld.sl: Unsatisfied data symbol '_log_enabled__13VISDLoggerMgr' in load module '/opt/BES/lib/liborb64_r.sl'.
/usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'PROD_ID_BES__16LicenseConstants' in load module '/opt/BES/lib/liborb64_r.sl'.
/usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'FEATURE_VBC_ORB_SERVER__16LicenseConstants' in load module '/opt/BES/lib/liborb64_r.sl'.
/usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'typeid__XT15LicenseListener_' in load module '/opt/BES/lib/liborb64_r.sl'.

⌊_______________________________________________________________⌋

Do you have an idea about what these warnings/errors mean and what I should do.
Yazgoo
14 REPLIES 14
V. Nyga
Honored Contributor

Re: ld: (Warning) Unsatisfied symbol

Hi,

check the vendor's site for prerequestions for this tool.
Check your patch level, maybe you need the newest patches for 'ld and linker',
for 11i it's PHSS_35383:
http://www8.itrc.hp.com/service/patch/patchDetail.do?patchid=PHSS_35383&sel={hpux:11.11,}&BC=main|search|

Also maybe LIBCL, libc cumulative, aCC patches.

Do a search in:
http://www8.itrc.hp.com/service/patch/search.do

HTH
Volkmar
*** Say 'Thanks' with Kudos ***
Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Unsatisfied symbol

What VisiBroker shlib should these data items be defined?

Is liborb64_r.sl your shlib?
If you use "chatr -B immediate" on your executable, you may get more unsats. This may be interesting to see.

Here are the demangled data unsats:
VISDLoggerMgr::_log_enabled
LicenseConstants::PROD_ID_BES
LicenseConstants::FEATURE_VBC_ORB_SERVER
typeid

>Volkmar: Check your patch level, maybe you need the newest patches for 'ld and linker',
Also maybe LIBCL, libc cumulative, aCC patches.

I'm not aware of anything that would cause unsats except for bad source or missing libs.
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

Oops, sorry I didn't explain my problem well.
What I meant is : I installed v 6.5; no problem.
Then I compile a program which uses visibroker 6.5 (which worked under v5), which gives me these logs.

Thanks

^^
Yazgoo
Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Unsatisfied symbol

>sorry I didn't explain my problem well.

Your new info didn't provide any clues to your problem. Can you answer my questions?
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

>Is liborb64_r.sl your shlib?
Yes, it is.
>use "chatr -B immediate"
That doesn't change anything the bin outputs
>Here are the demangled data unsat [...]
What should I do about those ?
>Check your patch level
# uname -a
HP-UX machine B.11.23 U 9000/800 822849691 unlimited-user license
# aCC -V
aCC: HP ANSI C++ B3910B A.03.65
# swlist -l product|grep linker
linker + fdp cumulative patch
PHSS_30716 1.0
# swlist -l product|grep libc
libcps and libomp [ia64/IA32: Release 6.1.2]

Could you also explain what does this error means (I didn't understand).
Does it means the symbol exists in the shlib but not in something like an interface??

Thanks
Yazgoo
Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Unsatisfied symbol

>Yes, it is.

Then why are you using those (possibly obsolete) data symbols?

Were there only 5 unsat symbols or did you only list 5?

>That doesn't change anything the bin outputs

Ok, you don't have any more missing symbols.
But I would expect you to get an error on
VISDLogProperty::set_source_enable(bool) ??

>What should I do about those?

Those are the C++ data symbols that are missing. Where are you using these? Perhaps VisiBroker 6.5 no longer defines these classes and/or symbols.

>Could you also explain what does this error means. Does it means the symbol exists in the shlib but not in something like an interface??

It means that you are referencing symbols from your liborb64_r.sl, that are not defined in the VisiBroker shlibs.

Either they were removed in 6.5, or there could be more shlibs and you are not adding them to your link line.

If you could find the definitions of these symbols in 5, and then look at the same shlib for 6.5, perhaps you could get a clue.
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

1°) I grepped those symbols in my source files:

> VISDLoggerMgr
> _log_enabled
> LicenseConstants
> PROD_ID_BES
> LicenseConstants
> FEATURE_VBC_ORB_SERVER
> LicenseListener

And I've found nothing

For
> typeid
I've found it in a binary which overflows my command line

2°) Those are the only error. But there was a lot of warnings at compile time

I'm really lost...
Thanks anyway
Yazgoo
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

Okay.
I've just grepped in both my old and new liborb64_r.sl most of the symbols.
The conclusion seems to be that those symbols are in liborb64_r.sl.new but not liborb64_r.sl.old .

What should I conclude from it?
I guess that means that the dependence that says which are the symbol availables in liborb64_r.sl.new is an old one.
Maybe I should give the compiling options.
I'll try and find those,

Thanks.
Yazgoo
Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Unsatisfied symbol

>I grepped those symbols in my source files

Try grepping at the output of:
$ nm -pxAN .../liborb64_r.sl

>I've found it in a binary which overflows my >(command line

Again look at the output of nm(1).

>that those symbols are in liborb64_r.sl.new

As unsats? (U)

>What should I conclude from it?

You need to know whether they are definitions or unsats. You need to search the VisiBroker shlibs.
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

_________________grep_of_NEW_________________

# nm -pxAN /new/liborb64_r.sl | grep _log_enabled__13VISDLoggerMgr
0x0000000000000000 U /opt/BES/lib/liborb64_r.sl:_log_enabled__13VISDLoggerMgr
0x4000000000a92358 T /opt/BES/lib/liborb64_r.sl:is_log_enabled__13VISDLoggerMgrSFv

# nm -pxAN /new/liborb64_r.sl | grep PROD_ID_BES__16LicenseConstants
0x0000000000000000 U /opt/BES/lib/liborb64_r.sl:PROD_ID_BES__16LicenseConstants

# nm -pxAN /new/liborb64_r.sl | grep FEATURE_VBC_ORB_SERVER__16LicenseConstants
0x0000000000000000 U /opt/BES/lib/liborb64_r.sl:FEATURE_VBC_ORB_SERVER__16LicenseConstants

# nm -pxAN /new/liborb64_r.sl | grep typeid__XT15LicenseListener_
0x0000000000000000 U /opt/BES/lib/liborb64_r.sl:typeid__XT15LicenseListener_
_________________grep_of_OLD_________________
No match found
_____________________________________________
I have unsatisfied symbols in the new library.
What should I do then?

Thanks
Yazgoo
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

Here is a little summing up of little things I had a look at in Visibroker lib dir.
If D means what I think it does, more includes may be necessarry.
_______________________________________________________________

# nm -pxAN * 2>/dev/null| grep " _log_enabled__13VISDLoggerMgr"
libvdlog_pr.sl: 0x4000e590 D _log_enabled__13VISDLoggerMgr
libvdlog_pr.sl.6.5: 0x4000e590 D _log_enabled__13VISDLoggerMgr
libvdlog_r.sl: 0x40002f58 D _log_enabled__13VISDLoggerMgr
libvdlog_r.sl.6.5: 0x40002f58 D _log_enabled__13VISDLoggerMgr

# nm -pxAN * 2>/dev/null| grep "PROD_ID_BES__16LicenseConstants"
liblmgr.sl: 0x4004adc4 D PROD_ID_BES__16LicenseConstants
0x8000000100065144 D liblmgr64.sl:PROD_ID_BES__16LicenseConstants
0x80000001000437c4 D liblmgr64_cls.sl:PROD_ID_BES__16LicenseConstants
liblmgr_cls.sl: 0x40036d44 D PROD_ID_BES__16LicenseConstants

# nm -pxAN * 2>/dev/null| grep FEATURE_VBC_ORB_SERVER__16LicenseConstants
liblmgr.sl: 0x4004ade8 D FEATURE_VBC_ORB_SERVER__16LicenseConstants
0x8000000100065168 D liblmgr64.sl:FEATURE_VBC_ORB_SERVER__16LicenseConstants
0x80000001000437e8 D liblmgr64_cls.sl:FEATURE_VBC_ORB_SERVER__16LicenseConstants

# nm -pxAN * 2>/dev/null| grep typeid__XT15LicenseListener_
liblmgr.sl: 0x400088c0 D typeid__XT15LicenseListener_
0x8000000100000048 D liblmgr64.sl:typeid__XT15LicenseListener_
0x8000000100000048 D liblmgr64_cls.sl:typeid__XT15LicenseListener_
liblmgr_cls.sl: 0x40005540 D typeid__XT15LicenseListener
_______________________________________________________________

But, once more, I don't see the problem.
These objects are not in use in my source.
Am I getting crazy?
Yazgoo
Dennis Handly
Acclaimed Contributor
Solution

Re: ld: (Warning) Unsatisfied symbol

>I have unsatisfied symbols in the new library. What should I do then?

You need to make sure you link against the Visibroker lib that defines them.

>I had a look at in Visibroker lib dir.
If D means what I think it does, more includes may be necessarry.

Yes more shlibs, you need to make sure that you use -lvdlog_pr, -lvdlog_r and -llmgr.sl on your link line.

>These objects are not in use in my source.

Sure they are. ;-)
You need to compile with -E -.i and you'll see they are in use by inlines, probably in the Visibroker include files.
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

I did solve my problem.
After many tries, here are the missing libs :
-lvdlog64_r
-llmgr64_cls

Thank you very much!
Yazgoo
yazgoo
Frequent Advisor

Re: ld: (Warning) Unsatisfied symbol

Closing because solved.
Thanks
Yazgoo