Time to put ${PTHREAD_LIBS} in the x11/xscreensaver-gnome?
Stephen Hilton
nospam at hiltonbsd.com
Thu Mar 25 09:44:48 PST 2004
On Thu, 25 Mar 2004 23:46:28 +0900
Alexander Nedotsukov <bland at freebsd.org> wrote:
> Jeremy Messenger wrote:
>
> > Hello,
> >
> > I do think that GNOME team should add the ${PTHREAD_LIBS} in the
> > x11/xscreensaver-gnome at LDFLAGS line. There are few people have the
> > same problem, so it's not just a Nvidia driver issue. Updated to 4.15
> > must have changed something, because the older version doesn't
> > required the ${PTHREAD_LIBS}.
>
> Guys,
>
> I don't think it's good idea because of two reasons:
> 1. I have xscreensaver-demo properly linked and running just fine here.
> Plus since I have nvidia GL library installed when all GL hacks and
> gl-helper mapped through libmap to use libc_r they also runs fine.
> 2. xscreensaver do not make any use of threading at all.
> Even the way you proposing may fix situation on your side this is not
> the right thing. I fact for nvidia users it will be better not to link
> against any threading library at all. This is the way things also works
> fine on my side.
> Speaking about incorrect linking. To proove this is the case it's
> necessary to found at least one object wich make use of pthreads API but
> do not linked against it or two objects linked against different
> threading libraries. As I said I don't see any.
> Well to be constructive can people (not only once who currently
> expirince a problem with xscreensaver) try the patch attached and report
> two things is: it works and what is your GL library Nvidia/Mesa?
>
> Thanks,
> Alexander.
> ps. Btw, others better follow my advise to figure out what is wrong with
> your installation.
Alexander,
My system uses a Raedon 9000 card in dual-head mode, FreeBSD 5.2.1-RELEASE-p3
and a recent ports tree. Xscreensaver-demo was working fine then
xscreensaver-gnome version was updated and the breakage occurred. I did
not change my basic config, just portupgraded to the latest.
Here is the exact error message I was getting:
------------------------------------------------------------
hilton>$ xscreensaver-demo
xscreensaver-demo: 12:32:45: error closing "/usr/home/stephenh/.xscreensav
er": Bad file descriptor
xscreensaver-demo: too early for dialog?
Fatal error 'Unable to read from thread kernel pipe' at line 1100 in file
/usr/src/lib/libc_r/uthread/uthread_kern.c (errno = 0)
Abort trap (core dumped)
hilton>$
------------------------------------------------------------
Deleteing /usr/home/stephenh/.xscreensaver had no effect.
Around a week ago I totally rebuilt this system from scratch, all s.w.
installed via ports, and still the xscreensaver-demo crash. The
${PTHREAD_LIBS} hack did fix the problem. All other applications seemed
to be working well, the screensaver appeared as the only borked item.
I do use a /etc/libmap.conf like this:
----------------------------------------------------------
libpthread.so.1 libc_r.so.5
libpthread.so libc_r.so
# Flash6 with Mozilla/Firebird/Galeon/Epiphany
[/usr/local/lib/linux-flashplugin6/libflashplayer.so]
libpthread.so.0 pluginwrapper/flash6.so
libdl.so.2 pluginwrapper/flash6.so
libz.so.1 libz.so.2
libstdc++-libc6.2-2.so.3 libstdc++.so.4
libm.so.6 libm.so.2
libc.so.6 pluginwrapper/flash6.so
# Acrobat with Mozilla/Firebird/Galeon/Epiphany
[/usr/local/Acrobat5/Browsers/intellinux/nppdf.so]
libc.so.6 pluginwrapper/acrobat.so
# Java3D
[/usr/local/jdk1.4.2/jre/lib/i386/libJ3D.so]
libdl.so.2 pluginwrapper/java3d.so
libm.so.6 libm.so.2
libnsl.so.1 pluginwrapper/java3d.so
libpthread.so.0 pluginwrapper/java3d.so
libc.so.6 pluginwrapper/java3d.so
[/usr/local/jdk1.4.2/jre/lib/i386/libj3daudio.so]
libm.so.6 libm.so.2
libnsl.so.1 pluginwrapper/java3d_snd.so
libpthread.so.0 pluginwrapper/java3d_snd.so
libc.so.6 pluginwrapper/java3d_snd.so
[/usr/local/jdk1.4.2/jre/lib/i386/libJ3DUtils.so]
libpthread.so.0 pluginwrapper/java3d.so
libc.so.6 pluginwrapper/java3d.so
----------------------------------------------------------
And my /etc/make.conf looks like this:
----------------------------------------------------------
CPUTYPE?=i686
CFLAGS= -O -pipe
CXXFLAGS+= -fmemoize-lookups -fsave-memoized
BDECFLAGS= -W -Wall -ansi -pedantic -Wbad-function-cast -Wcast-align \
-Wcast-qual -Wchar-subscripts -Winline \
-Wmissing-prototypes -Wnested-externs -Wpointer-arith \
-Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings
COPTFLAGS= -O -pipe
NO_BIND= true # do not build BIND
NO_KERBEROS= true # do not build and install Kerberos 5 (KTH Heimdal)
NOGAMES= true # do not build games (games/ subdir)
NOPROFILE= true # Avoid compiling profiled libraries
NO_LPR= true # do not build lpr and related programs
NO_SENDMAIL= true # do not build sendmail and related programs
MAKE_IDEA= YES # IDEA (128 bit symmetric encryption)
COMPAT4X= yes
DOC_LANG= en_US.ISO8859-1
WRKDIRPREFIX= /var/portswrk
KERNCONF= HILTON
WITH_GTK2= yes
WITH_FAM= yes
WITH_GNOME= yes
WITH_GNOME_DESKTOP= 2
PERL_VER=5.8.2
PERL_VERSION=5.8.2
PERL_ARCH=mach
NOPERL=yo
NO_PERL=yo
NO_PERL_WRAPPER=yo
----------------------------------------------------------
Kernel config:
------------------------------------------------------------
# $FreeBSD: src/sys/i386/conf/HILTON,v 1.234.5.6 2004/03/19 23:59:59 sch Exp $
machine i386
cpu I686_CPU
options CPU_ATHLON_SSE_HACK
options CPU_ENABLE_SSE
ident HILTON
options INCLUDE_CONFIG_FILE
#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" #Default places to look for devices.
#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
#options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
options SOFTUPDATES #Enable FFS soft updates support
options UFS_ACL #Support for access control lists
options UFS_DIRHASH #Improve performance on big directories
options MD_ROOT #MD is a potential root device
options NFSCLIENT #Network Filesystem Client
options NFSSERVER #Network Filesystem Server
#options NFS_ROOT #NFS usable as /, requires NFSCLIENT
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options PROCFS #Process filesystem (requires PSEUDOFS)
options PSEUDOFS #Pseudo-filesystem framework
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 #Compatible with FreeBSD4
options COMPAT_LINUX
options LINPROCFS
options SCSI_DELAY=7000 #Delay (in ms) before probing SCSI
options KTRACE #ktrace(1) support
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device isa
device pci
# ACPI support
device acpi
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID #Static device numbering
# SCSI controller
device sym
options SYM_SETUP_SCSI_DIFF #-HVD support for 825a, 875, 885
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device vga # VGA video card driver
device splash # Splash screen and screen saver support
options SC_DISABLE_REBOOT # disable reboot key sequence
options SC_HISTORY_SIZE=2045 # number of history buffer lines
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
#device radeondrm # ATI Radeon AGP drm support
# Floating point support - do not disable.
device npx
# Power management support (see NOTES for more options)
device apm
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
device puc
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device bfe # Broadcom BCM440x 10/100 ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
device rl # Realtek fast ethernet
# Pseudo devices - the number indicates how many units to allocate.
device random # Entropy device
device loop # Network loopback
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device bpf # Berkeley packet filter
device snp
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# IPFILTER firewalling
options IPFILTER
options IPFILTER_LOG
option PFIL_HOOKS
option IPFILTER_DEFAULT_BLOCK
# SOUND
device pcm
------------------------------------------------------------
Should I have this in my /etc/make.conf:
COMPAT4X= yes
Or is this unneeded or a source of problems ?
Any insight or ideas as to what may be "misconfigured" etc... ?
The only app that misbehaves is xscreensaver-demo, and the fix of adding
${PTHREAD_LIBS} to the LDCONFIG line in the Makefile does solve the
xscreensaver-demo crash.
Is there some aspect to the Raedon drivers that is tickled by dual-head
mode?
Regards,
Stephen Hilton
nospam at hiltonbsd.com
More information about the freebsd-gnome
mailing list