From owner-freebsd-ports@FreeBSD.ORG Sat Mar 27 23:40:09 2004 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 199D816A4CE for ; Sat, 27 Mar 2004 23:40:09 -0800 (PST) Received: from express.cec.wustl.edu (express.cec.wustl.edu [128.252.21.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id C0CC243D2F for ; Sat, 27 Mar 2004 23:40:08 -0800 (PST) (envelope-from jam6@cec.wustl.edu) Received: from scales (adsl-65-69-84-199.dsl.stlsmo.swbell.net [65.69.84.199]) (authenticated bits=0) by express.cec.wustl.edu (8.12.5/8.12.5) with ESMTP id i2S7e4Nx007351 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Sun, 28 Mar 2004 01:40:06 -0600 (CST) Message-ID: <000801c41497$e696db80$0300a8c0@scales> From: "Jeff Mitchell" To: Date: Sun, 28 Mar 2004 01:40:04 -0600 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: devel/commoncpp problems X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 07:40:09 -0000 I think devel/commoncpp is broken (okay, or something on my computer = is). It's one of many ports that fail during portupgrade, and I think = several of the other ports are depending upon it, so that might be part = of the problem I'm having. There are a couple things here of note with = devel/commoncpp that I wanted to ask about. First, the stuff I could fix. I was getting some errors during = configuration. The relevant lines in config.log are: /usr/include/pthread_np.h:46: error: syntax error before '*' token /usr/include/pthread_np.h:47: error: syntax error before '*' token /usr/include/pthread_np.h:51: error: syntax error before '*' token /usr/include/pthread_np.h:54: error: syntax error before "const" /usr/include/sys/sched.h: In function `sched_pin': /usr/include/sys/sched.h:106: error: `curthread' undeclared (first use = in this function) /usr/include/sys/sched.h:106: error: (Each undeclared identifier is = reported only once /usr/include/sys/sched.h:106: error: for each function it appears in.) /usr/include/sys/sched.h: In function `sched_unpin': /usr/include/sys/sched.h:112: error: `curthread' undeclared (first use = in this function) /usr/include/netinet/ip.h:71: error: field `ip_src' has incomplete type /usr/include/netinet/ip.h:71: error: field `ip_dst' has incomplete type /usr/include/netinet/ip.h:164: error: syntax error before "n_long" /usr/include/netinet/ip.h:166: error: field `ipt_addr' has incomplete = type /usr/include/netinet/ip.h:167: error: syntax error before "n_long" I fixed these problems (at least, the configure script no longer asked = me to notify someone of the bugs) by doing the following. What I did = may or may not have been bad, so if someone has a better idea, please = let me know: Adding the line #include "/usr/include/pthread.h"=20 to /usr/include/pthread_np.h fixed the first one. Similarly, adding #include "/usr/include/sys/pcpu.h" and #include "usr/include/netinet/in.h" fixed the second and third issues respectively. Now, what I can't fix. I'm still getting the same errors during the = build that I was getting before (when the configure script was giving me = angry warnings). The errors are as follows: poprocks# make =3D=3D=3D> Building for commoncpp2-1.1.0,1 Making all in include gmake[1]: Entering directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include' gmake all-recursive gmake[2]: Entering directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include' Making all in cc++ gmake[3]: Entering directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include/cc++' gmake[3]: Nothing to be done for `all'. gmake[3]: Leaving directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include/cc++' gmake[3]: Entering directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include' gmake[3]: Nothing to be done for `all-am'. gmake[3]: Leaving directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include' gmake[2]: Leaving directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include' gmake[1]: Leaving directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include' Making all in src gmake[1]: Entering directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/src' if /bin/sh ../libtool --mode=3Dcompile c++ -DHAVE_CONFIG_H -I. -I. = -I../include -I/usr/local/include -I../src -DCCXX_EXPORT_LIBRARY = -D_THREAD_SAFE -I/usr/local/include/libxml2 -I/usr/local/include = -I../include -O -pipe -mcpu=3Dpentiumpro -I/usr/local/include = -D_GNU_SOURCE -MT thread.lo -MD -MP -MF ".deps/thread.Tpo" \ -c -o thread.lo `test -f 'thread.cpp' || echo './'`thread.cpp; \ then mv -f ".deps/thread.Tpo" ".deps/thread.Plo"; \ else rm -f ".deps/thread.Tpo"; exit 1; \ fi c++ -DHAVE_CONFIG_H -I. -I. -I../include -I/usr/local/include -I../src = -DCCXX_EXPORT_LIBRARY -D_THREAD_SAFE -I/usr/local/include/libxml2 = -I/usr/local/include -I../include -O -pipe -mcpu=3Dpentiumpro = -I/usr/local/include -D_GNU_SOURCE -MT thread.lo -MD -MP -MF = .deps/thread.Tpo -c thread.cpp -fPIC -DPIC -o .libs/thread.o thread.cpp: In static member function `static void = ost::Thread::yield()': thread.cpp:1081: error: `pthread_yield' undeclared (first use this = function) thread.cpp:1081: error: (Each undeclared identifier is reported only = once for=20 each function it appears in.) gmake[1]: *** [thread.lo] Error 1 gmake[1]: Leaving directory = `/usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/src' gmake: *** [all-recursive] Error 1 *** Error code 2 Stop in /usr/ports/devel/commoncpp. I have no idea, after poking around for two hours, why it thinks = pthread_yield is not declared. = /usr/ports/devel/commoncpp/work/commoncpp2-1.1.0/include/cc++/config.h = has the following: /* has yield */ #define HAVE_PTHREAD_YIELD 1 so it's not redefining pthread_yield to sched_yield. This, I think, is = fine, because obviously the configure script found pthread_yield. Also, the command above that actually compiles thread.cpp includes the = /usr/local/include directory. The pthread.h in there only defines = pthread_yield if _POSIX_BACKCOMPAT is defined, so maybe that is the = problem, except if I try including (in thread.h in the commoncpp work) #include "/usr/include/pthread.h" which defines pthread_yield no matter what (at least I think), it still = doesn't work. Possibly it's bad to do that anyways, but I honestly = don't know what the difference is between /usr/include and = /usr/local/include, and why there are files in the two with the same = names that are very different. Anyways, any help would be much appreciated. Thanks, Jeff