[MPlayer-users] Still segfault problems with -vo vesa

XI xizard at enib.fr
Tue Nov 26 03:15:03 CET 2002


Hi,

I still can't get mplayer working with -vo vesa with a mandrake 9.0.

Since my previous thread, I have upgrated to mplayer-0.9pre10, and I 
have done some inverstigations. Here is my previous thread:
http://www.mplayerhq.hu/pipermail/mplayer-users/2002-October/023045.html


Result of my investigations:

*** problem seems to occur on all mandrake 9.0 based systems:
I have tested lots of those, I always got a segfault.
Could people with a mandrake 9.0 (or more especially with a glibc-2.2.5 
or kernel-2.4.19) try if it works? (Gabor, I think you have mdk9).

*** Problem doesn't seems to come from gcc version:
I have tested rpm package from mplayerhq.hu, it works with the mandrake 
8.1 but not with mandrake 9.0 (exactly the same hardware).

*** Running gdb gived me an error in libpthread, which was a bit strange 
(see my previous mail for gdb output). Now I tried to add some printf 
debug statement in source code:

I found that mplayer never arrives up to open("/dev/mem",O_RDWR) call as 
gdb let us suppose! (linux/vbelib.c: 146: int vbeInit(void))

In fact, I found that mplayer segfault in file linux/lrmi.c: 732: in 
function lrmi_vm86:
/*
  I don't know how to make sure I get the right vm86() from libc.
  The one I want is syscall # 113 (vm86old() in libc 5, vm86() in glibc)
  which should be declared as "int vm86(struct vm86_struct *);" in
  <sys/vm86.h>.

  This just does syscall 113 with inline asm, which should work
  for both libc's (I hope).
*/
#if !defined(USE_LIBC_VM86)
static int
lrmi_vm86(struct vm86_struct *vm)
         {
         int r;
#ifdef __PIC__
         asm volatile (
          "pushl %%ebx\n\t"
          "movl %2, %%ebx\n\t"
          "int $0x80\n\t"
          "popl %%ebx"
          : "=a" (r)
          : "0" (113), "r" (vm));
#else
         asm volatile (
          "int $0x80"
          : "=a" (r)
          : "0" (113), "b" (vm));
#endif
         return r;
         }
#else
#define lrmi_vm86 vm86
#endif


*** In my sytem, USE_LIBC_VM86 and __PIC__ constants are not defined, so 
there is a segfault when this code is executed:
          asm volatile (
          "int $0x80"
          : "=a" (r)
          : "0" (113), "b" (vm));


*** As I don't know at all assembler, I need some help. What can I do, 
test, change, ... now?

*** I have alse tried to define USE_LIBC_VM86, but I got the same problem.

*** I have also tried to upgrade my glibc to the last one from mandrake 
... same result.

*** For informations about my system, ... please read my previous mails:
http://www.mplayerhq.hu/pipermail/mplayer-users/2002-October/023019.html
and
http://www.mplayerhq.hu/pipermail/mplayer-users/2002-October/023045.html

Thanks for help,
					Xavier




More information about the MPlayer-users mailing list