tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Xorg built with clang dumps core, with gcc not



Hi!

I'm seeing strange behaviour. I've updated to 7.99.4 from yesterday
and tried a build with clang as default compiler, i.e. "-V MKLLVM=yes
-V HAVE_LLVM=yes -V MKGCC=no" in my build.sh command line.

When I installed that kernel and userland, starting X just gave me a
black screen and I couldn't switch back to console; i.e. X probably
just died.

Xorg.0.log contains:
...
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Jan 31 21:26:07 2015
(==) Using config file: "/etc/X11/xorg.conf"
(II) [KMS] Kernel modesetting enabled.
(EE) RADEON(0): Cannot position output DVI-0 relative to unknown output Left Monitor
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error:            Couldn't lookup keysym
>                   Symbol interpretation ignored
> Error:            Couldn't lookup keysym
>                   Symbol interpretation ignored
Errors from xkbcomp are not fatal to the X server
Can't open display :0
...

Then I tried building the same sources with gcc as compiler, and X
works. Xorg.0.log:
...
(==) Log file: "/var/log/Xorg.1.log", Time: Sat Jan 31 21:26:59 2015
(==) Using config file: "/etc/X11/xorg.conf"
(II) [KMS] Kernel modesetting enabled.
(EE) RADEON(0): Cannot position output DVI-0 relative to unknown output Left Monitor
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error:            Couldn't lookup keysym
>                   Symbol interpretation ignored
> Error:            Couldn't lookup keysym
>                   Symbol interpretation ignored
Errors from xkbcomp are not fatal to the X server
xrandr: cannot find mode 1920x1200
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  118 (X_SetModifierMapping)
  Value in failed request:  0x17
  Serial number of failed request:  15
  Current serial number in output stream:  15
2015-01-31 21:27:00 INFO  /notion/../ioncore.c:609: ioncore_startup: Starting Notion
...

This even works with the kernel built with clang (i.e. gcc /usr/X11R7
on top of clang /netbsd).

When I start /usr/X11R7/bin/Xorg in gdb (as root), the clang-built X
works: I can start xterms and a window manager.

Then I noticed that starting X (using startx) as my user gives me an
Xorg.core file (I thought it didn't do that for setuid root files?!).
Here's the backtrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  radeon_dri2_unref_buffer (buffer=0x1) at /archive/foreign/xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c:584
584             struct dri2_buffer_priv *private = buffer->driverPrivate;
(gdb) bt
#0  radeon_dri2_unref_buffer (buffer=0x1) at /archive/foreign/xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c:584
#1  radeon_dri2_client_state_changed (ClientStateCallback=0x8591a0 <ClientStateCallback>, data=0x0, calldata=<optimized out>)
    at /archive/foreign/xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c:610
#2  0x000000000046dbdc in _CallCallbacks (pcbl=0x8591a0 <ClientStateCallback>, call_data=0x7f7fffffd3b0)
    at /archive/foreign/xsrc/external/mit/xorg-server/dist/dix/dixutils.c:742
#3  0x0000000000453ea1 in CallCallbacks (pcbl=<optimized out>, call_data=0x0) at /archive/build/amd64.clang.20150131/usr/X11R7/include/xorg/callback.h:86
#4  CloseDownClient (client=0x7f7ff5fcda10) at /archive/foreign/xsrc/external/mit/xorg-server/dist/dix/dispatch.c:3461
#5  0x0000000000453cb7 in Dispatch () at /archive/foreign/xsrc/external/mit/xorg-server/dist/dix/dispatch.c:416
#6  0x000000000042e417 in main (argc=1, argv=0x7f7fffffd4c8, envp=<optimized out>) at /archive/foreign/xsrc/external/mit/xorg-server/dist/dix/main.c:287
(gdb)


I'm not sure what could be the cause of this. My latest idea is that
the failed request in the gcc log somehow kills the clang X, perhaps
because some data structures are packed differently (just guessing).

Does anyone have an idea?
 Thomas


Home | Main Index | Thread Index | Old Index