Re: xosd fails to update on OpenBSD

"Markus Dolze" <[email protected]> Thu, 17 Nov 2011 18:44:49 +0100
Newsgroups gmane.comp.sysutils.lcdproc
Message-ID <[email protected]>
-------- Original-Nachricht --------
> Datum: Thu, 17 Nov 2011 13:29:18 +0000
> Von: Edd Barrett <[email protected]>
> An: Markus Dolze <[email protected]>
> CC: [email protected]
> Betreff: Re: [Lcdproc] xosd fails to update on OpenBSD

> On Wed, Nov 16, 2011 at 09:06:46PM +0100, Markus Dolze wrote:
> > The line '## LCDproc Server ##' should have the last (right) character
> > alternating between '#' and '-' (the heartbeat characters unless you 
> > turned that off in LCDd.conf).
> 
> The heartbeat is not visible and not disabled.
> 
> > There are problems known regarding use of the pthread library, e.g. the
> > xosd driver 'hangs' on startup running it on FreeBSD. This may be a
> > problem with OpenBSD as well.
> 
> We have a pretty bad pthread implementation sadly (a reimplementation is
> under way though).
> 
> > What threading library is xosd linked with?  'ldd ....lib/xosd.so' may
> > reveal this (replace ..../lib/xosd.so with the path and name of your
> > xosd library).
> 
> It will link the only one it can; the system pthread lib.
> 
> ---8<---
> % ldd /usr/ports/pobj/lcdproc-0.5.5/lcdproc-0.5.5/server/drivers/xosd.so 
> /usr/ports/pobj/lcdproc-0.5.5/lcdproc-0.5.5/server/drivers/xosd.so:
>         Start            End              Type Open Ref GrpRef Name
>         0000000209189000 000000020958d000 dlib 1    0   0     
> /usr/ports/pobj/lcdproc-0.5.5/lcdproc-0.5.5/server/drivers/xosd.so
>         000000020c401000 000000020c807000 rlib 0    1   0     
> /usr/local/lib/libxosd.so.4.12
>         00000002039b6000 0000000203dda000 rlib 0    2   0     
> /usr/lib/libpthread.so.13.1
>         00000002099af000 0000000209dc1000 rlib 0    3   0     
> /usr/X11R6/lib/libXext.so.12.0
>         0000000207bce000 0000000208102000 rlib 0    4   0     
> /usr/X11R6/lib/libX11.so.15.0
>         000000020b3d2000 000000020b7d4000 rlib 0    2   0     
> /usr/X11R6/lib/libXinerama.so.5.0
>         000000020300f000 0000000203418000 rlib 0    1   0     
> /usr/lib/libkvm.so.11.0
>         000000020ed06000 000000020f122000 rlib 0    4   0     
> /usr/X11R6/lib/libxcb.so.2.2
>         000000020b842000 000000020bc44000 rlib 0    1   0     
> /usr/X11R6/lib/libpthread-stubs.so.1.0
>         000000020f428000 000000020f82b000 rlib 0    1   0     
> /usr/X11R6/lib/libXau.so.9.0
>         0000000202751000 0000000202b56000 rlib 0    1   0     
> /usr/X11R6/lib/libXdmcp.so.10.0
> ---8<---
> 
> This is my X version:
> ---8<---
> % X -version 
> X.Org X Server 1.11.2
> Release Date: 2011-11-04
> X Protocol Version 11, Revision 0
> Build Operating System: OpenBSD 5.0 amd64 
> Current Operating System: OpenBSD edd-i386.kent.ac.uk 5.0 GENERIC.MP#127
> amd64
> Build Date: 10 November 2011  03:09:43PM
>  
> Current version of pixman: 0.22.2
>         Before reporting problems, check http://wiki.x.org
>         to make sure that you have the latest version.
> ---8<---
> 
> I also did some debugging work and was able to confirm that the xosd
> device's flush() method is being correctly called, and that
> xosd_display() is not failing (xosd_display() can return -1 on error,
> which is unchecked in xosdlib_drv_flush()).
> 
> Cheers
> 
> -- 
> Best Regards
> Edd Barrett

You may try to apply the following change to server/Makefile.am:

http://lcdproc.cvs.sourceforge.net/viewvc/lcdproc/lcdproc/server/Makefile.am?r1=1.18&r2=1.19

This links LCDd with libpthread if available. At least on FreeBSD this fixes the startup issues with the xosd driver.

Regards,
Markus