Jump to content

sound issue on linux-ppc


Guest frostwork

Recommended Posts

Guest frostwork

Hi, all!

First of all thanks a lot for your great project & for supporting the ppc!

After a long time I finally got gemrb (CVS-snapshot from 150606 ) working yesterday on my

Pegasos2 (=G4 1Ghz powerpc machine).

The long time is mostly based on the missing "EndianSwitch=1" line in the cfg, which I've

found only in this forum (maybe add it in the readme would spend some trouble?)

Both Intro & charakter-editor work fine (BG1), but when the game is supposed to start

gemrb exits with following 3 lines in terminal:

-----

.... Searching for amb_tav.wav... FOUND

*** glibc detected *** corrupted double-linked list: 0x1204f2f0 ***

Can't create sound reader. Aborted

-----

 

I tried with openal 0.0.8 & both freealut 1.0.1 & freealut 1.1.0.

When I remove the libACMImporter.so libs from the plugins-dir the game starts...

 

Not sure if it is important, but I did the following to compile:

- removed "-Werror" (as there are warnings...)

- added several powerpc/altivec optimizations (tried the libACMImporter without those without

any success):

"-maltivec -mabi=altivec -mtune=powerpc -mcpu=7400 -ftree-vectorize -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ftree-loop-im -fivopts -ffast-math"

 

What can I do to help you to fix this bug (in case you're interested of course :rolleyes: ) ?

 

friendly,

Marcel "Frostwork" Unbehaun

Link to comment
Guest frostwork

Hi, Avenger!

 

Thanks for (even fast) reply :rolleyes:

 

>Well, congrats for you to get this far :party:

 

Hehe, thanks!

 

>I think, the bug is most likely caused by the endian switch.

 

Hhhm, but without the endianswitch gemrb hangs in a

"invalid seek position" loop ;)

 

>I'm curious about the warnings, any of those are close to the sound player?

 

I'm going to re-try it asap.

Maybe not today as biig things are compiling now & I have to go to buy some food

for the weekend ;)

 

Have a nice day!

Marcel

Link to comment
>I think, the bug is most likely caused by the endian switch.

 

Hhhm, but without the endianswitch gemrb hangs in a

"invalid seek position" loop :rolleyes:

That's true, but the endian switch is largely untested, because i receive little feedback from Mac/PPC users.

So, your feedback is most appreciated (especially if it leads to improved code).

Link to comment
Guest Guest

Hi, again! (faster than expected :rolleyes: )

 

I've rebuilt gemrb again & it has far few warnings than I thought:

(snipped out of conext...)

 

PluginMgr.cpp: In constructor 'PluginMgr::PluginMgr(char*)':

PluginMgr.cpp:150: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object

PluginMgr.cpp:151: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object

PluginMgr.cpp:152: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object

riffhdr.cpp:47: warning: overflow in implicit constant conversion

 

I also upgraded my stoneold valgrind to a new valgrind-3.2.0.

If it may be of some help for you I can send you the output

(for some reason gemrb stops earlier when being hunt through valgrind -

but hey - at least even more error-messages ;) )

(btw, fortunately Planescape Torment is atm on a cover-cd - I bought it today... It crashes

at the same point...

 

Is there any chance to get more output from gdb, maybe by adding a secret --enable-debug to

configure or similar?

I'll help you wherever possible - I just only need to know how ;)

 

Have a nice evening (ok, at least here it's evening...)!

Marcel

Link to comment

That's more than i hoped for, valgrind on ppc?

 

The default config should be gdb friendly.

We have a pointer to function vs pointer to data conversion check. So i think i can fix those errors (i wonder why aren't they fixed yet).

 

[edit]

 

Those warnings are exactly the same we 'already fixed'.

For some reason your compile time check for HAVE_FORBIDDEN_OBJECT_TO_FUNCTION_CAST didn't work.

If you manage to have the abovementioned symbol defined in compile time, then those 3 warnings will go away.

Link to comment
Guest Guest

Hi!

 

Yes valgrind works officially on ppc since v3...

 

>HAVE_FORBIDDEN_OBJECT_TO_FUNCTION_CAST

 

OK, I added it & the first 3 warnings are gone but this

--------------

 

g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I/usr/include -DSYSCONFDIR=\"/root/GemRB/\" -DDATADIR=\"/root/GemRB/\" -DPLUGINDIR=\"/root/GemRB/plugins/\" -g -O2 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -Wall -Werror -W -Wpointer-arith -Wcast-align -ansi -pedantic -Wno-format-y2k -Wno-long-long -maltivec -mabi=altivec -mtune=powerpc -mcpu=7400 -ftree-vectorize -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ftree-loop-im -fivopts -ffast-math -MT riffhdr.lo -MD -MP -MF .deps/riffhdr.Tpo -c riffhdr.cpp -fPIC -DPIC -o .libs/riffhdr.o

cc1plus: warnings being treated as errors

riffhdr.cpp:47: warning: overflow in implicit constant conversion

make[4]: *** [riffhdr.lo] Error 1

make[4]: Leaving directory `/usr/src/sources/jun3/gemrb/gemrb/plugins/ACMImporter'

---------------

 

still exists (I'm not the expert but as it is in the ACMImporter-dir, I guess this is the "main beast" :rolleyes: )

 

cheers

Marcel

Link to comment
Guest frostwork

Hi!

 

Yes, it completely compiles till the end with -Werror on & yes, the crash is still there :rolleyes:

The error-output is the following (without any debugger & ):

 

 

(snip)

---------

 

[KEYImporter]: Searching for amb_tav.wav...[FOUND]

*** glibc detected *** ./gemrb: corrupted double-linked list: 0x12024940 ***

======= Backtrace: =========

/lib/libc.so.6[0xfab58d0]

/lib/libc.so.6[0xfab70d8]

/lib/libc.so.6(__libc_free+0xc0)[0xfab7344]

/usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/libstdc++.so.6(_ZdlPv+0x18)[0xfd52a

8c]

/root/GemRB/plugins/libgemrb_core.so.0(_ZN10DataStreamD0Ev+0x2c)[0xff844f4]

/root/GemRB/plugins//libACMImporter.so(_ZN6ACMImp9LoadSoundEPKcPi+0x2c8)[0xf1b47

24]

/root/GemRB/plugins//libACMImporter.so(_ZN12AmbientMgrAL13AmbientSourceC1EP7Ambi

ent+0x19c)[0xf1b6374]

/root/GemRB/plugins//libACMImporter.so(_ZN12AmbientMgrAL11setAmbientsERKSt6vecto

rIP7AmbientSaIS2_EE+0xec)[0xf1b66c0]

/root/GemRB/plugins/libgemrb_core.so.0(_ZN3Map13SetupAmbientsEv+0x74)[0xff5e138]

/root/GemRB/plugins/libgemrb_core.so.0(_ZN11GameControl9ChangeMapEP5Actorb+0x124

)[0xff3d5ec]

/root/GemRB/plugins/libgemrb_core.so.0(_ZN9Interface11HandleFlagsEv+0x8c)[0xff77

150]

/root/GemRB/plugins/libgemrb_core.so.0(_ZN9Interface4MainEv+0x290)[0xff7baec]

./gemrb[0x10001978]

/lib/libc.so.6[0xfa5e6f0]

/lib/libc.so.6[0xfa5e914]

======= Memory map: ========

--------

(snip)

 

I hope it's of some use for you! What else could I do to help?

 

friendly,

Marcel

Link to comment

Sorry to shanghai the topic, but I can't PM the guest...

 

...you're using a Pegasos board? A modern-day Amiga user? Does this mean my overriding hobby of the 1990s could clash with my overriding hobby of the millennial decade? Aaahhh!

Link to comment

Well, it could be that the problem is with OpenAL.

 

I also wonder why your debugger doesn't make a more readable backtrace though you have -g supplied.

I don't know your dev. environment so i cannot tell you how to instruct gdb or the compiler to be more friendly to each other.

 

[edit]

What you can do:

1. try to look for some other OpenAL version (higher version numbers).

2. try to make the compiler and gdb compatible with each other

3. maybe a valgrind output would be better, but it might take several rounds. Only the first valgrind error report is important, in case you get a mile of a logfile.

4. alternatively, try without sound, if it still crashes somewhere, it would either be another bug or maybe provides better clues for this bug. I won't be sad if we kill another bug by mistake...

Link to comment
Guest Guest

Hi!

 

@jcompton:

>...you're using a Pegasos board? A modern-day Amiga user?

 

Yep! :party: Both modern and old-school as I even have a mighty Amiga4000 ;)

 

@Avenger:

 

OK, I'll upgrade openal! Which version do you use? A cvs snap?

Latest official is the 0.0.8, which is the same i have on my sys...

>gdb:

Ahh, me dump forgot to upgrade gdb ( some days ago I updated my gcc to 4.1.1)

>3,4:

 

OK, will do after having given gdb & new openal a second change! :rolleyes:

 

>. I won't be sad if we kill another bug by mistake...

 

:party: Hehe let's kill them all ;)

 

friendly,

Marcel

Link to comment
Guest frostwork

Hi, again!

 

OK, I've recompiled openal-0.0.8, gdb-6.4 without success - gdb is still silent...?

BTW what does "... though you have -g supplied." mean? (probably lame question...)

 

Maybe it's interesting/important to know that the intro-sound works, when the

character-setup screen shows up this output is in the terminal:

---------

Playing: /mnt/media/roms/gemrb/bg1/bg-mac/music/THEME/THEMEA.acm

WARNING: Unhandled Music state: 3d0f00

[Thread 814879968 (zombie) exited]

----------

 

Following list is the (snipped) output of "valgrind ./gemrb"

(only listing things which might be helpful...)

 

----------------

....

[Core]: Starting Plugin Manager...

[PluginMgr]: Loading Plugins...

[PluginMgr]: Searching for plugins in: /root/GemRB/plugins//

==24733== Conditional jump or move depends on uninitialised value(s)

==24733== at 0x4016C2C: index (in /lib/ld-2.4.so)

==24733== by 0x4011EE4: dl_open_worker (in /lib/ld-2.4.so)

==24733== by 0x4011A28: _dl_open (in /lib/ld-2.4.so)

==24733== by 0xFE62058: (within /lib/libdl-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0xFE625EC: (within /lib/libdl-2.4.so)

==24733== by 0xFE61F90: dlopen (in /lib/libdl-2.4.so)

==24733== by 0xFF10BF8: PluginMgr::PluginMgr(char*) (PluginMgr.cpp:134)

==24733== by 0xFF30050: Interface::Init() (Interface.cpp:733)

==24733== by 0x10001964: main (GemRB.cpp:47)

==24733==

==24733== Conditional jump or move depends on uninitialised value(s)

==24733== at 0x4016C38: index (in /lib/ld-2.4.so)

==24733== by 0x4011EE4: dl_open_worker (in /lib/ld-2.4.so)

==24733== by 0x4011A28: _dl_open (in /lib/ld-2.4.so)

==24733== by 0xFE62058: (within /lib/libdl-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0xFE625EC: (within /lib/libdl-2.4.so)

==24733== by 0xFE61F90: dlopen (in /lib/libdl-2.4.so)

==24733== by 0xFF10BF8: PluginMgr::PluginMgr(char*) (PluginMgr.cpp:134)

==24733== by 0xFF30050: Interface::Init() (Interface.cpp:733)

==24733== by 0x10001964: main (GemRB.cpp:47)

[PluginMgr]: Loading: /root/GemRB/plugins//libGUIScript.so...[OK]

[PluginMgr]: Checking Plugin Version...[OK]

.....

-------------------------

.....

[PluginMgr]: Loading Exports for Null Sound Driver...[OK]

[sKIPPING]

Duplicate Plug-in

[PluginMgr]: Loading: /root/GemRB/plugins//libAREImporter.so...[OK]

......

--------------------------

......

[Core]: Searching for Video Driver...[OK]

==24733==

==24733== Invalid read of size 4

==24733== at 0x4017D1C: _wordcopy_fwd_dest_aligned (in /lib/ld-2.4.so)

==24733== by 0x4017B54: memcpy (in /lib/ld-2.4.so)

==24733== by 0x400DA98: _dl_signal_error (in /lib/ld-2.4.so)

==24733== by 0x400DC58: _dl_signal_cerror (in /lib/ld-2.4.so)

==24733== by 0x400AD08: _dl_lookup_symbol_x (in /lib/ld-2.4.so)

==24733== by 0xFB0182C: (within /lib/libc-2.4.so)

==24733== by 0xFE62294: (within /lib/libdl-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0xFE625EC: (within /lib/libdl-2.4.so)

==24733== by 0xFE62210: dlsym (in /lib/libdl-2.4.so)

==24733== by 0xF74E070: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== Address 0x407B94C is 20 bytes inside a block of size 21 alloc'd

==24733== at 0xFFBAB1C: malloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so)

==24733== by 0x40094BC: _dl_map_object (in /lib/ld-2.4.so)

==24733== by 0x400C1D0: openaux (in /lib/ld-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0x400C3C4: _dl_map_object_deps (in /lib/ld-2.4.so)

==24733== by 0x4011FD8: dl_open_worker (in /lib/ld-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0x4011A28: _dl_open (in /lib/ld-2.4.so)

==24733== by 0xFE62058: (within /lib/libdl-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0xFE625EC: (within /lib/libdl-2.4.so)

==24733== by 0xFE61F90: dlopen (in /lib/libdl-2.4.so)

==24733==

==24733== Invalid read of size 4

==24733== at 0xFA76E3C: (within /lib/libc-2.4.so)

==24733== by 0x7EE5E004: :rolleyes:

==24733== by 0xFA6BBB4: _IO_default_xsputn (in /lib/libc-2.4.so)

==24733== by 0xFA44090: vfprintf (in /lib/libc-2.4.so)

==24733== by 0xFA65364: vasprintf (in /lib/libc-2.4.so)

==24733== by 0xFA49FA4: asprintf (in /lib/libc-2.4.so)

==24733== by 0xFE627A0: dlerror (in /lib/libdl-2.4.so)

==24733== by 0xF74E128: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7560EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75EF14: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF742040: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== Address 0x4089648 is 56 bytes inside a block of size 59 alloc'd

==24733== at 0xFFBAB1C: malloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so)

==24733== by 0x400DA74: _dl_signal_error (in /lib/ld-2.4.so)

==24733== by 0x400DC58: _dl_signal_cerror (in /lib/ld-2.4.so)

==24733== by 0x400AD08: _dl_lookup_symbol_x (in /lib/ld-2.4.so)

==24733== by 0xFB0182C: (within /lib/libc-2.4.so)

==24733== by 0xFE62294: (within /lib/libdl-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0xFE625EC: (within /lib/libdl-2.4.so)

==24733== by 0xFE62210: dlsym (in /lib/libdl-2.4.so)

==24733== by 0xF74E110: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7560EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733==

==24733== Invalid read of size 4

==24733== at 0xFA76E3C: (within /lib/libc-2.4.so)

==24733== by 0x400A270: do_lookup_x (in /lib/ld-2.4.so)

==24733== by 0xFA6BBB4: _IO_default_xsputn (in /lib/libc-2.4.so)

==24733== by 0xFA44090: vfprintf (in /lib/libc-2.4.so)

==24733== by 0xFA65364: vasprintf (in /lib/libc-2.4.so)

==24733== by 0xFA49FA4: asprintf (in /lib/libc-2.4.so)

==24733== by 0xFE627A0: dlerror (in /lib/libdl-2.4.so)

==24733== by 0xF74E128: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75613C: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75EF14: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF742040: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== Address 0x408A680 is 56 bytes inside a block of size 59 alloc'd

==24733== at 0xFFBAB1C: malloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so)

==24733== by 0x400DA74: _dl_signal_error (in /lib/ld-2.4.so)

==24733== by 0x400DC58: _dl_signal_cerror (in /lib/ld-2.4.so)

==24733== by 0x400AD08: _dl_lookup_symbol_x (in /lib/ld-2.4.so)

==24733== by 0xFB0182C: (within /lib/libc-2.4.so)

==24733== by 0xFE62294: (within /lib/libdl-2.4.so)

==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so)

==24733== by 0xFE625EC: (within /lib/libdl-2.4.so)

==24733== by 0xFE62210: dlsym (in /lib/libdl-2.4.so)

==24733== by 0xF74E110: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75613C: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733==

==24733== Syscall param write(buf) points to uninitialised byte(s)

==24733== at 0xFE397EC: __write_nocancel (in /lib/libpthread-2.4.so)

==24733== by 0xF316AD4: _X11TransWrite (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF318868: (within /usr/lib/libX11.so.6.2.0)

==24733== by 0xF31AD84: _XReply (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF2EDEEC: XInternAtom (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF75273C: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7641F8: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75FC70: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7604D4: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7422CC: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF6F0EE4: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7C25F0: SDLVideoDriver::Init() (SDLVideoDriver.cpp:78)

==24733== Address 0x409592E is 14 bytes inside a block of size 16,384 alloc'd

==24733== at 0xFFB9A64: calloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so)

==24733== by 0xF2F6BAC: XOpenDisplay (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF752C6C: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75FF88: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7422CC: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF6F0EE4: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7C25F0: SDLVideoDriver::Init() (SDLVideoDriver.cpp:78)

==24733== by 0xFF304D8: Interface::Init() (Interface.cpp:762)

==24733== by 0x10001964: main (GemRB.cpp:47)

[Core]: Initializing Video Plugin...[OK]

..........

-----------------------

later a looong list with python-related stuff is shown...

------------------------

the end of the output:

..........

[KEYImporter]: Searching for RNDMAGIC.2da...[FOUND]

[KEYImporter]: Searching for RNDEQUIP.2da...[ERROR]

[OK]

[Core]: Initializing ability tables...

[KEYImporter]: Searching for strmod.2da...[FOUND]

[KEYImporter]: Searching for strmodex.2da...[FOUND]

[KEYImporter]: Searching for intmod.2da...[FOUND]

[KEYImporter]: Searching for dexmod.2da...[FOUND]

[KEYImporter]: Searching for hpconbon.2da...[FOUND]

[KEYImporter]: Searching for chrmodst.2da...[FOUND]

[OK]

[Core]: Initializing area aliases...

[KEYImporter]: Searching for WMAPLAY.2da...[ERROR]

[ERROR]

[Core]: Core Initialization Complete!

[sDLVideo]: Creating display

==24733==

==24733== Syscall param write(buf) points to uninitialised byte(s)

==24733== at 0xFE39828: (within /lib/libpthread-2.4.so)

==24733== by 0xF315694: (within /usr/lib/libX11.so.6.2.0)

==24733== by 0xF316AD4: _X11TransWrite (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF318868: (within /usr/lib/libX11.so.6.2.0)

==24733== by 0xF31AD84: _XReply (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF30CE44: XSync (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF7538FC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF762EC4: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7614E4: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF761D88: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7435B8: SDL_SetVideoMode (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7C2034: SDLVideoDriver::CreateDisplay(int, int, int, bool) (SDLVideoDriver.cpp:102)

==24733== Address 0x409B133 is 19 bytes inside a block of size 16,384 alloc'd

==24733== at 0xFFB9A64: calloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so)

==24733== by 0xF2F6BAC: XOpenDisplay (in /usr/lib/libX11.so.6.2.0)

==24733== by 0xF752C6C: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF75FFCC: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7422CC: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF6F0EE4: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7C25F0: SDLVideoDriver::Init() (SDLVideoDriver.cpp:78)

==24733== by 0xFF304D8: Interface::Init() (Interface.cpp:762)

==24733== by 0x10001964: main (GemRB.cpp:47)

[sDLVideo]: SDL_SetVideoMode...[OK]

[sDLVideo]: Checking for HardWare Acceleration...[OK]

[sDLVideo]: Creating Main Surface...[OK]

disInstr(ppc): unhandled instruction: 0x7E2902AC

primary 31(0x1F), secondary 684(0x2AC)

==24733== valgrind: Unrecognised instruction at address 0xF72A170.

==24733== Your program just tried to execute an instruction that Valgrind

==24733== did not recognise. There are two possible reasons for this.

==24733== 1. Your program has a bug and erroneously jumped to a non-code

==24733== location. If you are running Memcheck and you just saw a

==24733== warning about a bad jump, it's probably your program's fault.

==24733== 2. The instruction is legitimate but Valgrind doesn't handle it,

==24733== i.e. it's Valgrind's fault. If you think this is the case or

==24733== you are not sure, please let us know and we'll try to fix it.

==24733== Either way, Valgrind will now raise a SIGILL signal which will

==24733== probably kill your program.

==24733==

==24733== Process terminating with default action of signal 4 (SIGILL)

==24733== Illegal opcode at address 0xF72A170

==24733== at 0xF72A170: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF70EF50: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF740418: SDL_LowerBlit (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF741B4C: SDL_ConvertSurface (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF744690: SDL_DisplayFormat (in /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF7C22C4: SDLVideoDriver::CreateDisplay(int, int, int, bool) (SDLVideoDriver.cpp:122)

==24733== by 0xFF338DC: Interface::Main() (Interface.cpp:625)

==24733== by 0x10001974: main (GemRB.cpp:53)

[sDLVideo]: Creating Back Buffer...==24733==

==24733== ERROR SUMMARY: 1162 errors from 105 contexts (suppressed: 174 from 4)

==24733== malloc/free: in use at exit: 4,870,443 bytes in 5,211 blocks.

==24733== malloc/free: 18,265 allocs, 13,054 frees, 15,645,373 bytes allocated.

==24733== For counts of detected errors, rerun with: -v

==24733== searching for pointers to 5,211 not-freed blocks.

==24733== checked 22,292,716 bytes.

==24733==

==24733== LEAK SUMMARY:

==24733== definitely lost: 0 bytes in 0 blocks.

==24733== possibly lost: 1,512 bytes in 5 blocks.

==24733== still reachable: 4,868,931 bytes in 5,206 blocks.

==24733== suppressed: 0 bytes in 0 blocks.

==24733== Reachable blocks (those to which a pointer was found) are not shown.

==24733== To see them, rerun with: --show-reachable=yes

Killed

-------------------

 

Sorry for long post, but probably better too much than too less (?)

 

Next I'll try with latest openal-svn, then without sound...

 

cheers

Marcel

Link to comment

Well, either your libs (ld-2.4, sdl) are wrong, or valgrind, (or more than one of the above).

None of these errors have anything to do with the previous problem, but that unrecognised opcode thing which killed the whole testing blocks any further errors.

 

So, try to investigate this problem:

 

disInstr(ppc): unhandled instruction: 0x7E2902AC

primary 31(0x1F), secondary 684(0x2AC)

==24733== valgrind: Unrecognised instruction at address 0xF72A170.

==24733== Your program just tried to execute an instruction that Valgrind

==24733== did not recognise. There are two possible reasons for this.

==24733== 1. Your program has a bug and erroneously jumped to a non-code

==24733== location. If you are running Memcheck and you just saw a

==24733== warning about a bad jump, it's probably your program's fault.

==24733== 2. The instruction is legitimate but Valgrind doesn't handle it,

==24733== i.e. it's Valgrind's fault. If you think this is the case or

==24733== you are not sure, please let us know and we'll try to fix it.

==24733== Either way, Valgrind will now raise a SIGILL signal which will

==24733== probably kill your program.

==24733==

==24733== Process terminating with default action of signal 4 (SIGILL)

==24733== Illegal opcode at address 0xF72A170

==24733== at 0xF72A170: (within /usr/lib/libSDL-1.2.so.0.7.3)

==24733== by 0xF70EF50: (within /usr/lib/libSDL-1.2.so.0.7.3)

 

 

1. Get the most recent valgrind and libsdl you can.

2. Report the above snippet to the valgrind developers.

3. Try to disable some of valgrind's checks (like memcheck).

Link to comment
Guest frostwork

Hi!

 

I know the output doesn't have to do anything with the "main error", but I thought it may

point to an other bug... (As already mentioned gemrb without valgrind runs further than with...)

 

>1. Get the most recent valgrind and libsdl you can.

>2. Report the above snippet to the valgrind developers.

 

Both are already most resent, but valgrind on ppc is not as advanced as on x86...

Just rebuilt libsdl-1.2.10 & gemrb afterwards without any changes.

 

>3. Try to disable some of valgrind's checks (like memcheck).

 

OK, will try!

 

btw1 openal-cvs didn't change anything, but there are known openal-bugs f.e.

described in the gentoo bugzilla...

 

btw2 I don't think that libdl.2.4 is the problem, as I tried before with an older glibc.

 

When adding SkipIntroVideos=1 in GemRB.cfg it segfaults. gdb-output:

 

Loading Theme.mus

Playing: /mnt/media/roms/gemrb/bg1/bg-mac/music/THEME/THEMEA.acm

Music in INITIAL State. AutoStarting

 

Program received signal SIGSEGV, Segmentation fault.

[switching to Thread 814879968 (LWP 16764)]

ACMImp::PlayListManager () at ACMImp.cpp:159

159 MusicReader->read_samples( ( short* ) static_memory, ACM_BUFFERSIZE >> 1 );

(gdb) where

#0 ACMImp::PlayListManager () at ACMImp.cpp:159

#1 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157

#2 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157

#3 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157

#4 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157

Previous frame inner to this frame (corrupt stack?)

(gdb)

 

cheers

frostwork

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...