[CM] Fwd: cm and midishare player

njcross@sbcglobal.net njcross@sbcglobal.net
Tue, 17 Jan 2006 11:38:38 -0800

I received an email from Kendatsuba which may be a solution for others.

This should work(?), but, my Mandriva LE2005 still can't see the 
'libPlayer.so.old' although it's been created! (see below).

have you finally solved your problem with cm and midishare library
libPlayer.so ? If not I have found one, I'm using debian testing and faced
the same problem.

_ZTVN10__cxxabiv120__si_class_type_infoE not found.

The loader doesn't seem to find this symbol wich is defined in
libstdc++.so.6 library and not in libstdc++.so.5. Usually this shared
library is loaded automatically and so it isn't listed among library
dependencies by ldd. For some reasons it seems that even if libPlayer.so it
is linked against libstdc++.so.6 by gcc/ld, either it is not loaded
automatically or libstdc++.so.5 gets loaded instead. I've not inquired
further into the problem and solved it this way:

mv /usr/lib/libPlayer.so /usr/lib/libPlayer.so.old
ld -shared /usr/lib/libstdc++.so.6 libPlayer.so.old -o libPlayer.so

This explicitly tells the loader to load libstdc++.so.6 when loading
libPlayer.so, in fact it will be listed among dependencies by ldd. I do not
know how "polite" it is towards the loader to force it this way but this did
the trick for me. I've compiled everything needed with gcc/g++ version
3.xas libPlayer does not compile with
4.x. Please let me know if you already solved the problem. I've not read
anything about the solution in ccrma forum, if this works for you (even if
you already solved it) could you please post on the forum? I am not
subscribed and not a user of ccrma distrubution.



My original post to cm list:

> I can't seem to load MidiShare Player into cm. 
> I've loaded all the new files OK and MidiShare loads (use-system :midishare)
> OK. But when I try to load the player (use-system :player)  it complains 
> it can't load /usr/lib/libPlayer.so, although it's there. 
> cm says:
> * (use-system :player)
> ; Loading #P"/root/midishare/player.x86f".
> ;;; Opening shared library /usr/lib/libPlayer.so ...
> Error in function SYSTEM::LOAD-OBJECT-FILE:
>    Can't open object "/usr/lib/libPlayer.so": "/usr/lib/libPlayer.so: 
> undefinedsymbol: _ZTVN10__cxxabiv120__si_class_type_infoE"
>    [Condition of type SIMPLE-ERROR]
> Restarts:
>   0: [CONTINUE] Return NIL from load of #P"/root/midishare/player.x86f".
>   1: [RETRY   ] Retry performing #<ASDF:LOAD-OP NIL {592EB9B5}> on
>                 #<ASDF:CL-SOURCE-FILE "player" {58F7F075}>.
>   2: [ACCEPT  ] Continue, treating #<ASDF:LOAD-OP NIL {592EB9B5}> on
>                 #<ASDF:CL-SOURCE-FILE "player" {58F7F075}> as
>                 having been successful.
>   3: [ABORT   ] Return to Top-Level.
> Debug  (type H for help)
> (SYSTEM::LOAD-OBJECT-FILE "/usr/lib/libPlayer.so")
> Source: Error finding source:
> Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM:  Source file no longer 
> exists:
>   target:code/foreign.lisp.
> 0]               
> Thanks for any help.