64-bit fixed
So, apparently the xf86-input-tuio driver hasn’t been working with 64-bit versions of X, causing this:
(II) mt0: TUIO UDP Port set to 3333 (II) mt0: FseqThreshold set to 100 (**) mt0: always reports core events Backtrace: 0: /usr/bin/Xorg (xorg_backtrace+0x28) [0x45a898] 1: /usr/bin/Xorg (0x400000+0x619c9) [0x4619c9] 2: /lib/libpthread.so.0 (0x7fc3819b5000+0xee80) [0x7fc3819c3e80] 3: /lib/libc.so.6 (strlen+0x12) [0x7fc380cbe272] 4: /usr/bin/Xorg (xf86ActivateDevice+0x6b) [0x46d57b] 5: /usr/bin/Xorg (0x400000+0x6d6d7) [0x46d6d7] 6: /usr/bin/Xorg (InitInput+0x58) [0x468ec8] 7: /usr/bin/Xorg (0x400000+0x219af) [0x4219af] 8: /lib/libc.so.6 (__libc_start_main+0xfd) [0x7fc380c61b6d] 9: /usr/bin/Xorg (0x400000+0x21599) [0x421599] Segmentation fault at address (nil) Fatal server error: Caught signal 11 (Segmentation fault). Server aborting
The problem is that there is a disparity in the sizes and offsets of member variables of _LocalDeviceRec – this is what’s passed to xf86ActivateDevice, and what eventually causes the segfault in strlen. The solution was to make sure that config.h was included before anything else – thanks to Peter Hutterer making me aware of this obscure bug. The fix.
Advertisement