Opened 9 years ago

Closed 9 years ago

#7094 closed bug (fixed)

[SoundPlay] is broken since r39571

Reported by: diver Owned by: axeld
Priority: normal Milestone: R1
Component: System/runtime_loader Version: R1/Development
Keywords: Cc: stippi
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

SoundPlay doesn't work since hrev39571 and shows:

runtime_loader: /data/SoundPlay/lib/liblayout.so: Could not resolve symbol '__ti5BFont'
resolve symbol "__ti5BFont" returned: -2147478780
runtime_loader: /data/SoundPlay/lib/liblayout.so: Troubles relocating: Symbol not found

In hrev39617 error message has changed to:

KERN: runtime loader: /data/SoundPlay/SoundPlay: Could not resolve symbol 'aakzzzzzzz'
KERN: runtime loader: /data/SoundPlay/SoundPlay: Troubles relocating: Symbol not found

Attachments (1)

SoundPlay-4.7.3-x86.zip (1.2 MB ) - added by diver 9 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 by bonefish, 9 years ago

Component: System/runtime_loaderKits/Media Kit
Owner: changed from bonefish to axeld

The problem with SoundPlay is that the file is broken. Obviously the obfuscater did not fix the symbol hash table after renaming the symbols. hrev40211 works around the issue.

SoundPlay still doesn't load though, due to missing symbol next_chunk__13BMediaDecoderPvPPvPUlP12media_header. BMediaDecoder::next_chunk() is private in BeOS R5, so SoundPlay shouldn't use it. Changing component to Media Kit and leaving the decision what to do about it to whoever feels responsible.

comment:2 by bonefish, 9 years ago

Cc: stippi added

comment:3 by stippi, 9 years ago

Since SoundPlay is so popular, we should support it. I would have to look at BMediaDecoder again to see how complicated it is to export the symbol properly.

comment:4 by diver, 9 years ago

With hrev40211 I now get:

runtime_loader: /boot/system/lib/libsupc++.so: Could not resolve symbol '_Unwind_GetIPInfo'
resolve symbol "_Unwind_GetIPInfo" returned: -2147478780
runtime_loader: /boot/system/lib/libsupc++.so: Troubles relocating: Symbol not found

comment:5 by anevilyak, 9 years ago

That's somewhat odd, libsupc++ shouldn't be getting loaded at all as SP is a gcc2 app. What kind of hybrid are you on diver?

comment:6 by diver, 9 years ago

I've just jam clean'ed and recompiled everything, still same error. It's gcc4hybrid.

comment:7 by diver, 9 years ago

Ah, it was caused by libnetwork.so link, which I created earlier when I forgot to enable HAIKU_ADD_ALTERNATIVE_GCC_LIBS after binary search. I've removed it and now SoundPlayer crashes on start:

Thread 560 caused an exception: Segment violation
[...]
[Switching to team /data/SoundPlay/SoundPlay (560) thread SoundPlay (560)]
0x00002030 in ?? ()
(gdb) bt
#0  0x00002030 in ?? ()
#1  0x00908ad1 in __class_type_info::dcast () from /boot/system/lib/gcc2/libroot.so
#2  0x0090971f in __dynamic_cast () from /boot/system/lib/gcc2/libroot.so
#3  0x005a8e3a in MBorder::MBorder () from /data/SoundPlay/lib/liblayout.so
#4  0x00237889 in aaez ()
#5  0x00236dd4 in aahzzz ()
#6  0x00105607 in runtime_loader () from /boot/system/runtime_loader
#7  0x7ffeefec in ?? ()
(gdb)

comment:8 by bonefish, 9 years ago

I tested with a gcc 2 hybrid build, which resulted in the aforementioned loader error due to the missing BMediaDecoder::next_chunk(). The obfuscation doesn't really help, but since the only program function called directly from runtime_loader() is the program entry, aahzzz() and aaez() in the stack trace must be _start() and main() respectively, which means that the program has been fully loaded already. I don't quite see why it wouldn't run into the missing symbol error, as the symbol really isn't there. Need to set up a gcc 4 hybrid build to check this...

BTW, what is the last known revision SoundPlay did work with? At least I seem to recall that it did work years ago.

comment:9 by diver, 9 years ago

Last working revision is hrev39570.

Last edited 9 years ago by diver (previous) (diff)

comment:10 by diver, 9 years ago

BTW, I get the same crash in in both gcc4hybrid and gcc2hybrid.

in reply to:  8 ; comment:11 by axeld, 9 years ago

Replying to bonefish:

BTW, what is the last known revision SoundPlay did work with? At least I seem to recall that it did work years ago.

It did, but only version 4.7.3 - newer releases use some private media API that we don't duplicate. I don't recall when BMediaDecorder::next_chunk() has been renamed, but it shouldn't be that long ago.

by diver, 9 years ago

Attachment: SoundPlay-4.7.3-x86.zip added

in reply to:  11 comment:12 by bonefish, 9 years ago

Replying to axeld:

Replying to bonefish:

BTW, what is the last known revision SoundPlay did work with? At least I seem to recall that it did work years ago.

It did, but only version 4.7.3 - newer releases use some private media API that we don't duplicate.

OK, that explains it, since I tested with 4.9.3. I can reproduce the crash with 4.7.3.

comment:13 by ttcoder, 9 years ago

For what it's worth -- the builds I've made for TuneTracker Systems (including the latest one, 4.9.15) did away with the "secret API" hack... Or more accurately, usage of this hack has been moved to an external plugin, so that the linkage failure only prevents that one plugin from loading on Haiku, but the SoundPay core itself (and other plugins) successfully load and run. I don't know when/if these builds will be released as shareware to the public again like they were in the days of yore.. That's a decision Marco will have to make; for now he licensed the source code to us for inclusion in the TTS suite, not for public/shareware use AFAICT. Anyhow, if there is a way such that SoundPlay 4.9.3 can resolve all symbols and load on Haiku, even if just to fall back to "MediaKit" mp3 replay, then that'd be the fast-track solution to the problems you guys see, probably. Another option is just sticking to 4.7.3 to skip all the trouble I guess.. EDIT -- Also an info that is more relevant to the ticket at hand: the haiku nightly I'm working with is more recent than the ones mentioned (namely, hrev39648) and the latest/unreleased 4.9.x builds run fine on it, never seen the kind of error mentioned above; the "dynamic cast" error looks suspiciously like the issue I had with the KissLib preventing TuneStacker from loading though (#6963, #1259).

Last edited 9 years ago by ttcoder (previous) (diff)

comment:14 by bonefish, 9 years ago

Fixed the crash while starting in hrev40228. Now SoundPlay starts, but when quitting it crashes. Will have a look.

in reply to:  14 comment:15 by bonefish, 9 years ago

Component: Kits/Media KitSystem/runtime_loader
Resolution: fixed
Status: newclosed

Replying to bonefish:

Fixed the crash while starting in hrev40228. Now SoundPlay starts, but when quitting it crashes. Will have a look.

Happens only with gcc 4 hybrid. Apparently the media kit tries to load gcc 4 add-ons which seems to cause trouble. Not investigating any further. The runtime loader problem is resolved. Feel free to open new tickets for the remaining issues.

Note: See TracTickets for help on using tickets.