Issues with running Xclient using xwayland.

ashjas ashjas at gmail.com
Fri Jan 25 04:19:55 PST 2013


In continuation to the previous mail...

In this file ./xserver/hw/xfree86/xwayland/xwayland-drm.c
at line 83 whenever the interface is "wl_drm" ,i.e the following condition
is true,
if (strcmp (interface, "wl_drm") == 0)
xwl_screen->registry always comes to be 0x0

*gdb output:*
Breakpoint 1, drm_handler (data=0x19ca0b0, registry=0x19c25b0, id=11,
interface=0x19cf6e0 "wl_drm", version=1) at xwayland-drm.c:84
84        printf("\nxwl_screen->registry:%d\n",xwl_screen->registry);
(gdb) print xwl_screen
$1 = (struct xwl_screen *) 0x19ca0b0
(gdb) print xwl_screen->registry
$2 = (struct wl_registry *) 0x0
(gdb)

any help?

Thanks.

Ashish.


On Fri, Jan 25, 2013 at 3:43 PM, ashjas <ashjas at gmail.com> wrote:

> Hello,
>
> I tried attaching the Xorg process to gdb to get a more detailed
> backtrace.(by adding sleep to the child process)
>
> here is the full backtrace from gdb:http://pastebin.com/pWE7px0S
>
> as can be seen in the 3rd frame .. all seems to be fine as there are no
> null values.
>  xwl_screen->drm = wl_registry_bind(xwl_screen->registry, id,
>                                            &wl_drm_interface, 1);
>
> but when the xwl_screen->registry reaches to wl_registry_bind
> (wl_registry=0x0, name=11, interface=0x7feb89670c60, version=1) here the
> value becomes null. which propagates to function
> wl_proxy_create (factory=0x0, interface=0x7feb89670c60)
> where it segfaults at the line
> struct wl_display *display = factory->display;
>
> Any clues why?
>
> Thanks
>
> Regards,
>
> Ashish
>
>
>
> On Fri, Jan 25, 2013 at 10:07 AM, ashjas <ashjas at gmail.com> wrote:
>
>> Hello Bill,
>>
>> Thanks for sending the patch.
>> But after using it, my crash had no effect its still failing with the
>> same log and at same place.
>> I guess the problem is not what you had thought?
>> Any other clues? Ill dig up more at my end in the meanwhile.
>>
>> Thanks for helping
>>
>> Regards,
>> Ashish
>>
>>
>> On Fri, Jan 25, 2013 at 1:47 AM, Bill Spitzak <spitzak at gmail.com> wrote:
>>
>>> ashjas wrote:
>>> > Thanks Bill for that info.. after searching for your patch i found this
>>> > discussion of what you indicated.. but i couldnot find the patch that
>>> > you mentioned..
>>> > http://lists.freedesktop.org/**archives/wayland-devel/2012-**
>>> September/005203.html<http://lists.freedesktop.org/archives/wayland-devel/2012-September/005203.html>
>>> >
>>> > can you give me some pointers?
>>> >
>>> > Thanks.
>>>
>>> This allows X applications to be run on wayland without having to
>>> delete conf files needed to run the legacy X server on the same
>>> machine.
>>>
>>> The --config and --configdir switches can override these changes.
>>>
>>> An extra patch to xorg was needed, as it *always* looked for
>>> xorg.conf.d. I changed it to not do this if --configdir or
>>> --wayland was given.
>>> ---
>>>  hw/xfree86/common/xf86Config.c |    5 ++++-
>>>  hw/xfree86/common/xf86Init.c   |    4 ++++
>>>  2 files changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/hw/xfree86/common/**xf86Config.c b/hw/xfree86/common/**
>>> xf86Config.c
>>> index 3934ff0..2376889 100644
>>> --- a/hw/xfree86/common/**xf86Config.c
>>> +++ b/hw/xfree86/common/**xf86Config.c
>>> @@ -2386,7 +2386,10 @@ xf86HandleConfigFile(Bool autoconfig)
>>>              dirfrom = X_CMDLINE;
>>>
>>>          xf86initConfigFiles();
>>> -        sysdirname = xf86openConfigDirFiles(SYS_**CONFIGDIRPATH, NULL,
>>> +        if (xf86ConfigDir)
>>> +            sysdirname = 0;
>>> +        else
>>> +            sysdirname = xf86openConfigDirFiles(SYS_**CONFIGDIRPATH,
>>> NULL,
>>>                                              PROJECTROOT);
>>>          dirname = xf86openConfigDirFiles(**dirsearch, xf86ConfigDir,
>>> PROJECTROOT);
>>>          filename = xf86openConfigFile(filesearch, xf86ConfigFile,
>>> PROJECTROOT);
>>> diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
>>> index a062929..b2a668c 100644
>>> --- a/hw/xfree86/common/xf86Init.c
>>> +++ b/hw/xfree86/common/xf86Init.c
>>> @@ -1412,6 +1412,10 @@ ddxProcessArgument(int argc, char **argv, int i)
>>>    if (!strcmp(argv[i], "-wayland"))
>>>    {
>>>      xorgWayland = TRUE;
>>> +    if (!xf86ConfigFile)
>>> +      xf86ConfigFile = "xwayland.conf";
>>> +    if (!xf86ConfigDir)
>>> +      xf86ConfigDir = "xwayland.conf.d";
>>>      return 1;
>>>    }
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20130125/6bfbc766/attachment-0001.html>


More information about the wayland-devel mailing list