mplayer-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Original]

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


To: mplayer-users@xxxxxxxxxxxx
Subject: [MPlayer-users] Still segfault problems with -vo vesa
From: XI <xizard@xxxxxxx>
Date: Tue Nov 26 03:15:03 2002
Organization: http://www.chez.com/xizard
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2a) Gecko/20020910

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



[Prev in Thread] Current Thread [Next in Thread]