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: 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 Content-type: text/plain; charset=US-ASCII 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 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 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.