Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Aug 2001 13:35:24 -0700 (PDT)
From:      Jim Conner <jconner@uslec.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/30226: pthreads errors building VLC - pthread libs correct?
Message-ID:  <200108302035.f7UKZOR47436@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         30226
>Category:       ports
>Synopsis:       pthreads errors building VLC - pthread libs correct?
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 30 13:40:13 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jim Conner
>Release:        4.2 Release
>Organization:
None (personal)
>Environment:
FreeBSD kwanmob.homeip.net 4.2-RELEASE FreeBSD 4.2-RELEASE #9: Fri Aug 17 02:25:20 EDT 2001     root@kwanmob.homeip.net:/usr/src/sys/compile/kwan-kern  i386

>Description:
Well, I've updated the ports collection and attempted the vlc install from the ports update. 

A few days ago I attempted to install VLC to watch DVDs.  That was build 0.2.81 of VLC.  I didn't have VLC included in my ports at that time.  The installation failed with the exact same errors as what Im about to show you.

I was told that if I updated my ports tree that the latest version of VLC was included in that tree (VLC was rev'ed a few days ago).  I updated my tree and reattempted my build.  The below error message is what I get now and have always gotten.

I'll paste the output. At this point Im wondering if there isn't something wrong with my pthreads library.

-- snip --

cd plugins/x11/ && gmake ../xvideo.so
gmake[1]: Entering directory `/usr/ports/graphics/vlc/work/vlc-0.2.83/plugins/x11'
gmake[1]: Leaving directory `/usr/ports/graphics/vlc/work/vlc-0.2.83/plugins/x11'

PROBLEM STARTS HERE (notice pthreads gets called and has been for the whole build but that isn't reflected here...)

-- this is the compile command...

cc -O -pipe -pthread -DSYS_FREEBSD4_2 -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98 -Iinclude -Iextras -I/usr/local/include -Wall -Winline -pipe -D_REENTRANT -D_GNU_SOURCE -o vlc src/interface/main.o src/interface/interface.o src/interface/intf_msg.o src/interface/intf_playlist.o src/interface/intf_channels.o src/input/input.o src/input/input_ext-dec.o src/input/input_ext-intf.o src/input/input_dec.o src/input/input_programs.o src/input/input_netlist.o src/input/input_clock.o src/input/mpeg_system.o src/video_output/video_output.o src/video_output/video_text.o src/video_output/video_spu.o src/video_output/video_yuv.o src/audio_output/audio_output.o src/audio_output/aout_ext-dec.o src/audio_output/aout_u8.o src/audio_output/aout_s8.o src/audio_output/aout_u16.o src/audio_output/aout_s16.o src/audio_output/aout_spdif.o src/ac3_decoder/ac3_decoder_thread.o src/ac3_decoder/ac3_decoder.o src/ac3_decoder/ac3_parse.o src/ac3_decoder/ac3_exponent.o src/ac3_decoder/ac3_bit_allocate.o src/ac3_decoder/ac3_mantissa.o src/ac3_decoder/ac3_rematrix.o src/ac3_decoder/ac3_imdct.o src/ac3_spdif/ac3_spdif.o src/ac3_spdif/ac3_iec958.o src/lpcm_decoder/lpcm_decoder_thread.o src/audio_decoder/audio_decoder.o src/audio_decoder/adec_generic.o src/audio_decoder/adec_layer1.o src/audio_decoder/adec_layer2.o src/audio_decoder/adec_math.o src/spu_decoder/spu_decoder.o src/video_decoder/video_parser.o src/video_decoder/vpar_headers.o src/video_decoder/vpar_blocks.o src/video_decoder/vpar_synchro.o src/video_decoder/vpar_pool.o src/video_decoder/video_decoder.o src/misc/mtime.o src/misc/tests.o src/misc/modules.o src/misc/netutils.o plugins/es.a plugins/ps.a plugins/ts.a plugins/yuv.a plugins/idct.a plugins/idctclassic.a plugins/motion.a plugins/imdct.a plugins/downmix.a plugins/yuvmmx.a plugins/idctmmx.a plugins/motionmmx.a plugins/idctmmxext.a plugins/motionmmxext.a plugins/imdct3dn.a plugins/downmix3dn.a plugins/imdctsse.a plugins/downmixsse.a plugins/dvd.a plugins/dummy.a plugins/null.a plugins/rc.a $LIB_ES $LIB_PS $LIB_TS $LIB_YUV $LIB_!
IDCT $LIB_IDCTCLASSIC $LIB_MOTION $LIB_IMDCT $LIB_DOWNMIX $LIB_YUVMMX $LIB_IDCTMMX $LIB_MOTIONMMX $LIB_IDCTMMXEXT $LIB_MOTIONMMXEXT $LIB_IMDCT3DN $LIB_DOWNMIX3DN $LIB_IMDCTSSE $LIB_DOWNMIXSSE $LIB_DVD $LIB_DUMMY $LIB_NULL $LIB_RC -L/usr/local/lib -lgnugetopt -pthread -Wall
src/input/input.o: In function `NetworkOpen':

-- this is where the error gets output...

src/input/input.o(.text+0xcd9): undefined reference to `__pthread_connect'
plugins/es.a(BUILTIN_input_es.o): In function `ESRead':
BUILTIN_input_es.o(.text+0x202): undefined reference to `__pthread_readv'
plugins/ts.a(BUILTIN_input_ts.o): In function `TSRead':
BUILTIN_input_ts.o(.text+0x389): undefined reference to `__pthread_select'
BUILTIN_input_ts.o(.text+0x3c9): undefined reference to `__pthread_readv'
plugins/rc.a(BUILTIN_intf_rc.o): In function `intf_Run':
BUILTIN_intf_rc.o(.text+0x24d): undefined reference to `__pthread_select'
BUILTIN_intf_rc.o(.text+0x27d): undefined reference to `__pthread_read'
gmake: *** [vlc] Error 1
*** Error code 2

-- *sigh* :)

Stop in /usr/ports/graphics/vlc.
*** Error code 1

Stop in /usr/ports/graphics/vlc.
*** Error code 1

Stop in /usr/ports/graphics/vlc.


-- !snip --


Unfortunately, I know little to nothing about system libraries and how to check them. The pthread libs are installed on the system but perhaps I have a tweaked installation of them or maybe a conflicting version? When I asked a mailing list about this question I was told that I should submit a bug report.  So, I am.  Please contact me if you have any questions.


FOLLOW-UP!
----------
While I was writing this message and was gathering information I noticed that I *might* not have had the pthread lib installed.  I wasn't sure though so I decided to try and install it anyway (from ports /usr/ports/devel/pth).  Now this might be an unrelated issue but I am not sure.  The configure hangs at the following:

-- snip --

Machine Context Implementation:
checking for ucontext.h... yes
checking for function makecontext... no
checking for function swapcontext... no
checking for function getcontext... no
checking for function setcontext... no
checking for usable SVR4/SUSv2 makecontext(2)/swapcontext(2)... no
checking for signal.h... (cached) yes
checking for function sigsetjmp... yes
checking for function siglongjmp... yes
checking for function setjmp... yes
checking for function longjmp... yes
checking for function _setjmp... yes
checking for function _longjmp... yes
checking for function sigaltstack... no
checking for function sigstack... no
checking for signal-mask aware setjmp(3)/longjmp(3)... <-- here

-- !snip --

That might help.  I am still not sure if pthread libs are already installed.  Here is what makes me suspect that they aren't:

-- snip --

[root@kwanmob /usr/ports/devel/pth]# locate pthread | grep -v man
/usr/compat/linux/lib/libpthread-0.8.so
/usr/compat/linux/lib/libpthread.so.0
/usr/include/g++/pthread_alloc
/usr/include/g++/pthread_alloc.h
/usr/include/pthread.h
/usr/include/pthread_np.h
/usr/libdata/perl/5.00503/mach/g++/pthread_alloc.ph
/usr/libdata/perl/5.00503/mach/pthread.ph
/usr/libdata/perl/5.00503/mach/pthread_np.ph
/usr/local/bin/pthread-config
/usr/local/include/mysql/my_pthread.h
/usr/local/include/pthread
/usr/local/include/pthread/linuxthreads
/usr/local/include/pthread/linuxthreads/bits
/usr/local/include/pthread/linuxthreads/bits/libc-lock.h
/usr/local/include/pthread/linuxthreads/bits/libc-tsd.h
/usr/local/include/pthread/linuxthreads/bits/local_lim.h
/usr/local/include/pthread/linuxthreads/bits/posix_opt.h
/usr/local/include/pthread/linuxthreads/bits/pthreadtypes.h
/usr/local/include/pthread/linuxthreads/bits/sigthread.h
/usr/local/include/pthread/linuxthreads/bits/stdio-lock.h
/usr/local/include/pthread/linuxthreads/pt-machine.h
/usr/local/include/pthread/linuxthreads/pthread.h
/usr/local/include/pthread/linuxthreads/semaphore.h
/usr/local/include/pthread/linuxthreads/useldt.h
/usr/local/include/pthread.h
/usr/local/lib/libpthread.a
/usr/local/lib/libpthread.la
/usr/local/lib/libpthread.so
/usr/local/lib/libpthread.so.13
/usr/src/crypto/openssl/crypto/threads/pthread.sh
/usr/src/crypto/openssl/crypto/threads/pthread2.sh
/usr/src/crypto/openssl/mt/pthread.sh
[root@kwanmob /usr/ports/devel/pth]#

-- !snip --

All I seem to find here is header files but no objects for the BSD platform.  Am I right? *shrug* Im not sure.  I'd like to know what someone on your side thinks.  Either way something seems to be wrong either with the pthreads building or the VLC build hitting the pthread objects.

Thanks guys!

- Jim
>How-To-Repeat:
dmesg
-----
Copyright (c) 1992-2000 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 4.2-RELEASE #9: Fri Aug 17 02:25:20 EDT 2001
    root@kwanmob.homeip.net:/usr/src/sys/compile/kwan-kern
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium III/Pentium III Xeon/Celeron (601.37-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x681  Stepping = 1
  Features=0x387f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>
real memory  = 134152192 (131008K bytes)
avail memory = 127324160 (124340K bytes)
Preloaded elf kernel "kernel" at 0xc0343000.
Pentium Pro MTRR support enabled
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Intel 82443BX (440 BX) host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1: <Intel 82443BX (440 BX) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <ATI model 4c42 graphics accelerator> at 0.0
isab0: <Intel 82371AB PCI to ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 ATA33 controller> port 0x1050-0x105f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0x1060-0x107f irq 11 at device 7.2 on pci0
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
chip1: <Intel 82371AB Power management controller> port 0x1040-0x104f at device 7.3 on pci0
pcm0: <Yamaha DS-1E (YMF744)> port 0x1400-0x1403,0x1080-0x10bf mem 0xfc000000-0xfc007fff irq 5 at device 9.0 on pci0
pcn0: <AMD PCnet/PCI 10/100BaseTX> port 0x10e0-0x10ff mem 0xfc008000-0xfc00801f irq 9 at device 11.0 on pci0
pcn0: Ethernet address: 00:90:f5:04:c6:3f
miibus0: <MII bus> on pcn0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pcic-pci0: <Ricoh RL5C475 PCI-CardBus Bridge> irq 11 at device 12.0 on pci0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model GlidePoint, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
pcic0: <Intel i82365> at port 0x3e0 iomem 0xd0000 on isa0
pcic0: Polling mode
pccard0: <PC Card bus -- kludge version> on pcic0
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
ad0: 5729MB <TOSHIBA MK6015MAP> [12416/15/63] at ata0-master UDMA33
acd0: DVD-ROM <TORiSAN DVD-ROM DRD-U624> at ata1-master using UDMA33

kernel config
-------------
###
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.20 2000/10/31 23:16:07 n_hibma Exp $

machine		i386
cpu		I686_CPU
ident		KWAN
maxusers	32

options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	MFS			#Memory Filesystem
options 	MD_ROOT			#MD is a potential root device
options 	NFS			#Network Filesystem
options 	NFS_ROOT		#NFS usable as root device, NFS required
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	CD9660_ROOT		#CD-ROM usable as root, CD9660 required
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=15000	#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options		ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev

device		isa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0

# ATA and ATAPI devices
device		ata0	at isa? port IO_WD1 irq 14
device		ata1	at isa? port IO_WD2 irq 15
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
options 	ATA_STATIC_ID		#Static device numbering
options 	ATA_ENABLE_ATAPI_DMA	#Enable DMA on ATAPI devices

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa?
#options 	XSERVER			# support for X server on a vt console

device		npx0	at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
device		apm0    at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) support
device		card
device		pcic0	at isa? irq 0 port 0x3e0 iomem 0xd0000
device		pcic1	at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? disable port IO_COM3 irq 5
device		sio3	at isa? disable port IO_COM4 irq 9

# Parallel port
device		ppc0	at isa? irq 7
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
device		ppi		# Parallel port interface device


# 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		pcn		# AMD Am79C79x PCI 10/100 NICs

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
pseudo-device	md		# Memory "disks"
pseudo-device	gif	4	# IPv6 and IPv4 tunneling
pseudo-device	faith	1	# IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
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		uscanner	# Scanners
# USB Ethernet, requires mii
device		aue		# ADMtek USB ethernet
device		cue		# CATC USB ethernet
device		kue		# Kawasaki LSI USB ethernet

device		pcm

software versions
-----------------
Using builtin specs.
gcc version 2.95.2 19991024 (release)


>Fix:
Unknown
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200108302035.f7UKZOR47436>