Bug 28551

Summary: ports/mail/faces doesn't build (linking with pthreads broken)
Product: Ports & Packages Reporter: Sean Chittenden <seanc>
Component: Individual Port(s)Assignee: Ade Lovett <ade>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Sean Chittenden freebsd_committer freebsd_triage 2001-06-30 21:00:19 UTC
Fresh build of FreeBSD 4.3-STABLE (synced two days ago).  Attempting to build xemacs21-mule-sumo port and faces doesn't compile and gives me the following error:

cc -o xfaces -O6 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   address.o get.o main.o mon.o parsefrom.o rec.o x11.o  -L./compface -lcompface   -L/usr/X11R6/lib -lX11 
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_signal'
/usr/X11R6/lib/libXThrStub.so.6: undefined reference to `_Xthr_zero_stub_'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_broadcast'
/usr/X11R6/lib/libXThrStub.so.6: undefined reference to `_Xthr_self_stub_'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_init'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_unlock'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_self'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_destroy'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_lock'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_wait'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_destroy'/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_init'
*** Error code 1

  Seems like a linking problem to me, but I'm not a big X buff.  Any chance the port maintainer could take a peak at this and issue a patch?

Fix: 

I'm assuming guessing it's a simple linking problem with a pthreads library.
How-To-Repeat: cvsup -g -L 2 -z /etc/cvsupfile.freebsd-ports
cd /usr/ports/editors/xemacs21-mule-sumo && make install clean

  or:

cd /usr/ports/mail/faces && make install clean
Comment 1 dwcjr freebsd_committer freebsd_triage 2001-08-12 16:14:40 UTC
Responsible Changed
From-To: freebsd-ports->dwcjr

I'll handle this one.
Comment 2 dwcjr 2001-08-12 16:15:38 UTC
Have you tried it recently, I just installed it and no problems.  What 
version of XFree?
Comment 3 Sean Chittenden freebsd_committer freebsd_triage 2001-08-13 05:40:04 UTC
> Have you tried it recently, I just installed it and no problems.


	Strange...  just did make distclean, updated ports, make and 
here's the output:
10:09am sean@wheel:mail/faces # make
>> faces-1.6.1.tar.Z doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.cs.indiana.edu/pub/faces/faces/.

Receiving faces-1.6.1.tar.Z (249469 bytes): 100%
249469 bytes transferred in 6.3 seconds (38.80 kBps)
===>  Extracting for faces-1.6.1_1
>> Checksum OK for faces-1.6.1.tar.Z.

===>   faces-1.6.1_1 depends on shared library: X11.6 - found
===>  Patching for faces-1.6.1_1
===>  Applying FreeBSD patches for faces-1.6.1_1
for na in $(find /usr/ports/mail/faces/work/faces/scripts -type f)  /usr/ports/mail/faces/work/faces/faces.man /usr/ports/mail/faces/work/faces/face_update.1 ; do  /bin/cp $na $na.orig;  /usr/bin/sed "s%/usr/local%/usr/X11R6%" $na.orig > $na;  done;  for na in /usr/ports/mail/faces/work/faces/Makefile 
/usr/ports/mail/faces/work/faces/Faces.ad; do  /bin/cp $na $na.orig;  
/usr/bin/sed "s%rplay%rplay%" $na.orig > $na;  done;  for na in 
/usr/ports/mail/faces/work/faces/Makefile 
/usr/ports/mail/faces/work/faces/x11.c; do  /bin/cp $na $na.orig2;  
/usr/bin/sed "s%/usr/X11R6%/usr/X11R6%" $na.orig2 > $na;  done
===>  Configuring for faces-1.6.1_1
===>  Building for faces-1.6.1_1
yacc -d address.y
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c y.tab.c -o address.o
rm -f y.tab.c
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c get.c
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c main.c
main.c: In function `searchfacedb':
main.c:814: warning: passing arg 1 of `strcpy' from incompatible pointer type
main.c:816: warning: passing arg 1 of `stat' from incompatible pointer type
main.c:819: warning: passing arg 2 of `strcpy' from incompatible pointer type
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c mon.c
mon.c: In function `fgetheader':
mon.c:283: warning: assignment makes pointer from integer without a cast
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c parsefrom.c
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c rec.c
rec.c: In function `Malloc':
rec.c:33: warning: assignment makes pointer from integer without a cast
cc -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   -c x11.c
(cd compface; make   BINDIR=/usr/X11R6/bin LIBDIR=/usr/X11R6/lib  INCDIR=/usr/X11R6/include MANDIR=/usr/X11R6/man CC=cc  NOINDEX= SYSV=)
cc -O2 -pipe    -c arith.c -o arith.o
cc -O2 -pipe    -c file.c -o file.o
cc -O2 -pipe    -c compress.c -o compress.o
cc -O2 -pipe    -c gen.c -o gen.o
cc -O2 -pipe    -c uncompface.c -o uncompface.o
building standard compface library
ranlib libcompface.a
cc -fpic -DPIC -O2 -pipe    -c arith.c -o arith.So
cc -fpic -DPIC -O2 -pipe    -c file.c -o file.So
cc -fpic -DPIC -O2 -pipe    -c compress.c -o compress.So
cc -fpic -DPIC -O2 -pipe    -c gen.c -o gen.So
cc -fpic -DPIC -O2 -pipe    -c uncompface.c -o uncompface.So
building shared library libcompface.so.1
cc -O2 -pipe    -c cmain.c -o cmain.o
cc -O2 -pipe    -c compface.c -o compface.o
cc -O2 -pipe    -o compface cmain.o compface.o -L./ -lcompface
cc -O2 -pipe    -c uncmain.c -o uncmain.o
cc -O2 -pipe    -o uncompface uncmain.o -L./ -lcompface
Warning: Object directory not changed from original 
/usr/ports/mail/faces/work/faces/compface
(cd filters; make   BINDIR=/usr/X11R6/bin LIBDIR=/usr/X11R6/lib  INCDIR=/usr/X11R6/include MANDIR=/usr/X11R6/man CC=cc  NOINDEX= SYSV=)
cc -O2 -pipe     -c icon2ikon.c
cc -o icon2ikon -O2 -pipe     icon2ikon.o
cc -O2 -pipe     -c ikon2icon.c
cc -o ikon2icon -O2 -pipe     ikon2icon.o
ikon2icon.o: In function `read_blit':
ikon2icon.o(.text+0x110): warning: this program uses gets(), which is unsafe.
cc -O2 -pipe     -c rs2icon.c
rs2icon.c:24: warning: garbage at end of `#ifdef' argument
cc -o rs2icon -O2 -pipe     rs2icon.o
cc -o xfaces -O2 -pipe  -pipe -fwritable-strings -DAUDIO_SUPPORT -DAUDIO_CMD=\"/usr/local/bin/rplay\"   -DDNSLOOKUP     -DFACEDIR=\"/usr/X11R6/share/faces\"       -DNISLOOKUP              -DNO_43SELECT  -DSPOOLDIR=\"/var/mail\"           -I/usr/X11R6/include   address.o get.o main.o mon.o parsefrom.o rec.o x11.o  -L./compface -lcompface   -L/usr/X11R6/lib -lX11 
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_signal'
/usr/X11R6/lib/libXThrStub.so.6: undefined reference to `_Xthr_zero_stub_'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_broadcast'
/usr/X11R6/lib/libXThrStub.so.6: undefined reference to `_Xthr_self_stub_'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_init'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_unlock'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_self'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_destroy'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_lock'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_wait'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_cond_destroy'
/usr/X11R6/lib/libX11.so: undefined reference to `pthread_mutex_init'
*** Error code 1

Stop in /usr/ports/mail/faces/work/faces.
*** Error code 1

Stop in /usr/ports/mail/faces.
*** Error code 1

Stop in /usr/ports/mail/faces.
*** Error code 1

Stop in /usr/ports/mail/faces.


> What version of XFree?


XFree86-libraries-4.1.0

	Do I need all of X installed to use faces?  All I'm trying to do 
is install XEmacs.  <:~)  This box hasn't been rebuilt in quite a long 
time, just upgraded constantly.  Once upon a time I installed X by hand 
and I wonder if it's a stale header file someplace.  Think that's 
possible?  If so, any hints as to what header file?  -sc

-- 
Sean Chittenden
Comment 4 dwcjr 2001-08-31 10:21:34 UTC
Have you tried reinstalling the X libs and try to clean out stale files?
Comment 5 dwcjr freebsd_committer freebsd_triage 2001-08-31 15:21:42 UTC
State Changed
From-To: open->feedback
Comment 6 Sean Chittenden freebsd_committer freebsd_triage 2001-09-04 00:53:39 UTC
> Synopsis: ports/mail/faces doesn't build (linking with pthreads broken)

	The problem turns out to be with XFree-4-Libraries not being
built with the pth library.  I had the exact same problem when trying to
build postgresql with TCL support.  Is there any way to have faces (and
TCL) detect a non-threaded version of the XFree-4 libs?  If so, that
would seem to be the correct solution to this problem.  -sc

> State-Changed-From-To: open->feedback
> State-Changed-By: dwcjr
> State-Changed-When: Fri Aug 31 07:21:42 PDT 2001
> State-Changed-Why: 
> 
> 
> http://www.FreeBSD.org/cgi/query-pr.cgi?pr=28551

-- 
Sean Chittenden
Comment 7 dwcjr freebsd_committer freebsd_triage 2001-09-16 06:57:30 UTC
Responsible Changed
From-To: dwcjr->freebsd-ports

XFree86-4-libraries problem
Comment 8 Pete Fritchman 2001-11-06 17:41:10 UTC
Is this still an issue?  I remember we had a long discussion about this,
but my private mail archive is currently down at the moment and I don't
remember what we concluded.

-pete

--
Pete Fritchman [petef@(databits.net|freebsd.org|csh.rit.edu)]
finger petef@databits.net for PGP key
Comment 9 Ade Lovett freebsd_committer freebsd_triage 2002-04-13 04:37:42 UTC
State Changed
From-To: feedback->closed

Timeout (5 months) in feedback. 


Comment 10 Ade Lovett freebsd_committer freebsd_triage 2002-04-13 04:37:42 UTC
Responsible Changed
From-To: freebsd-ports->ade

My fault[tm]