ftp.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2007/01/24/18:36:05

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Subject: Build error with libevocosm
To: scott DOT ladd AT coyotegulch DOT com, djgpp AT delorie DOT com
X-Mailer: Lotus Notes Release 6.5.4 CCH5 September 12, 2005
Message-ID: <OF69C9DEB1.F86A5DA9-ON8725726D.0074BC83-8725726D.00817D4C@seagate.com>
From: Gordon DOT Schumacher AT seagate DOT com
Date: Wed, 24 Jan 2007 16:34:22 -0700
X-MIMETrack: Serialize by Router on SV-GW1/Seagate Internet(Release 7.0.1 HF29|March 07, 2006) at
01/24/2007 03:34:27 PM
MIME-Version: 1.0
X-Proofpoint-FWRule: outbound2
X-Proofpoint-Virus-Version: vendor=fsecure engine=4.65.5446:2.3.11,1.2.37,4.0.164 definitions=2007-01-24_06:2007-01-23,2007-01-24,2007-01-24 signatures=0

I'm trying to get Acovea and prerequisites compiling, and I'm running into
some issues.  I'm hoping someone can give me some help here.

I'm using GCC 4.1.0 under DJGPP, and I had to make some minor changes to
get as far as I have.

I did a sanity check by attempting to build on a Linux system running GCC
4.0.2.  I also tried "falling back" to both GCC 4.0.1 and 3.4.4 in DJGPP,
and even used the older binutils 2.14 with the 3.x compiler, but none of
that helped.

Libcoyotl's tests don't build, but I haven't worried about that yet
because it's due to the use of a function that's unimplemented in DJGPP.

First, I had to add #include <unistd.h> to evocommon.h, in order to get
the prototype for the usleep() function in there.  I'm not quite sure why
it works on my Linux system - that's the only place on the Linux system
that it's prototyped too.

Next I put an #ifndef PI around the declaration of the PI variable -
there is a #define for PI in DJGPP's <math.h> as well as the normal M_PI
constant.  I think this is for compatibility with either MSVC or with
Borland.

Once past those, though, at link time of runfuncopt.exe I get:

gpp -g -O2 -o runfuncopt.exe funcopt.o runfuncopt.o
-Lc:/djgpp/src/libevocosm-3.1.0/libevocosm /dev/env/DJDIR/lib/libcoyotl.a
c:/djgpp/src/libevocosm-3.1.0/libevocosm/.libs/libevocosm.a
c:/djgpp/src/libevocosm-3.1.0/libevocosm/.libs/libevocosm.a(evocommon.o):
In function `__static_initialization_and_destruction_0':
c:/djgpp/src/libevocosm-3.1.0/libevocosm/evocommon.cpp:38: undefined
reference to `libcoyotl::mtwister::mtwister()'

Now the really weird part is this:

bash-2.05b$ nm c:/djgpp/src/libevocosm-3.1.0/libevocosm/.libs/libevocosm.a
|grep mtwister
         U __ZN9libcoyotl8mtwisterC1Ev

bash-2.05b$ nm /dev/env/DJDIR/lib/libcoyotl.a |grep
__ZN9libcoyotl8mtwisterC1Ev
00000080 T __ZN9libcoyotl8mtwisterC1Ev

Well, those match...
Lastly, just as a sanity check:

bash-2.05b$ cxxfilt _ZN9libcoyotl8mtwisterC1Ev
libcoyotl::mtwister::mtwister()

Yup, that's the function that it claims it can't find, all right.

What am I missing here?  This looks like it should link to me.  I'm
not even sure what to try next.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019