Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Reply-To: Cygwin List Message-Id: <6.0.1.1.0.20040201193756.038c5ec8@127.0.0.1> X-Sender: Date: Sun, 01 Feb 2004 20:11:27 -0500 To: Sean LeBlanc , Cygwin List From: Larry Hall Subject: Re: Linking problems In-Reply-To: <20040202003427.GA26776@smtp.americanisp.net> References: <20040201174043 DOT GA20082 AT smtp DOT americanisp DOT net> <6 DOT 0 DOT 1 DOT 1 DOT 0 DOT 20040201181337 DOT 038aab60 AT 127 DOT 0 DOT 0 DOT 1> <20040202003427 DOT GA26776 AT smtp DOT americanisp DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" At 07:34 PM 2/1/2004, Sean LeBlanc you wrote: >On 02-01 18:16, Larry Hall wrote: >> At 12:40 PM 2/1/2004, Sean LeBlanc you wrote: >> >Hi all. I'm currently having troubles linking against a lib. The signature >> >it complains about certainly shows up when I search the lib. I have been >> >able to build against other libs in the same set (MS' Host Integration >> >Server API), but not against anything in this lib. >> > >> >Are there a set of things to look for when link failures like this happen? >> >Do some windows libs get exported in different ways that require something >> >beyond this: >> > >> >I'm compiling with both -L and -l. >> > >> >-v doesn't seem to give me any helpful information. >> >> >> Please read and follow: >> >> >Problem reports: http://cygwin.com/problems.html >> >> when contacting the list with an issue you believe to be Cygwin-related. >> This allows interested parties on the list to evaluate your problem in >> the light of some specifics and ask informed follow-up questions. >> >> Thanks, > >Well, I guess this is a way of telling me that I didn't include enough info. >:) You're very astute. I'd give you a gold star for this [this is in no way related to CGF's Gold Star program ] but you didn't fully digest the content. I see no output from cygcheck *attached*. :-( >I'm not intimating that this is a problem with Cygwin or the gcc (ld) >port per se, I'm just trying to find out if maybe there is a different way >that some libs export their methods. Or maybe there is a quirk I'm unaware >of. Let me reiterate that I have been able to link against other libs in >this same api using this same version of gcc on this same version of >Cygwin...so it's clear that it's possible. There's no magic, if that's what you're asking. You imply that you can determine that the function you're looking for is in the library. I'm not sure how you're doing this but if you can find it via 'nm', then you're all set. >Anyway, here is a listing of what happens during make when the error occurs. >Maybe this will be provide more insight: > >gcc -v -mno-cygwin -L./lib -Wl,--add-stdcall-alias -shared -o cpic.dll ^^^^^^^^^^^^ Ah, so you're using the MinGW version of gcc. This really takes you out of the realm of this list and into the MinGW one >cpic.o -lwcpic32 -lwappc32 -wincsv32 >Reading specs from /usr/lib/gcc-lib/i686-pc-mingw32/3.2/specs >gcc: unrecognized option `-wincsv32' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This seems like a problem to me. >Configured with: /netrel/src/gcc-3.2-3/configure >--enable-languages=c,c++,f77,java --enable-libgcj --enable-threads=posix >--with-system-zlib --enable- >nls --without-included-gettext --enable-interpreter >--disable-sjlj-exceptions --disable-version-specific-runtime-libs >--enable-shared --build=i686-pc- >linux --host=i686-pc-cygwin --target=i686-pc-cygwin --enable-haifa >--prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib >--includedir=/ >nonexistent/include --libexecdir=/usr/sbin >Thread model: posix >gcc version 3.2 20020927 (prerelease) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ gcc is out of date. > /usr/lib/gcc-lib/i686-pc-mingw32/3.2/../../../../i686-pc-mingw32/bin/ld.exe >--shared -Bdynamic -e _DllMainCRTStartup AT 12 -o cpic.dll /usr/lib/gcc-lib/ >i686-pc-mingw32/3.2/../../../../i686-pc-mingw32/lib/dllcrt2.o >/usr/lib/gcc-lib/i686-pc-mingw32/3.2/crtbegin.o -L./lib >-L/usr/lib/gcc-lib/i686-pc-mingw >32/3.2 >-L/usr/lib/gcc-lib/i686-pc-mingw32/3.2/../../../../i686-pc-mingw32/lib >-L/usr/lib/gcc-lib/i686-pc-mingw32/3.2/../../.. --add-stdcall-alias cpic >.o -lwcpic32 -lwappc32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt >-lmingw32 -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc >-lmoldname -lm >ingwex -lmsvcrt /usr/lib/gcc-lib/i686-pc-mingw32/3.2/crtend.o >cpic.o(.text+0x6a):cpic.c: undefined reference to `cminit AT 12' > > >Note that this is a DLL I'm trying to build, but I'm also unable to link >when just building an executable that uses this same lib. BTW, searching for >cminit AT 12 on wcpic32.lib does come back with results. Ah! Here's some details. Well, here's what I get: nm /Program\ Files/Microsoft\ Visual\ Studio/VC98/Lib/WCPIC32.LIB | grep cminit 00000000 I __imp__cminit AT 12 00000000 T _cminit AT 12 00000000 I __imp__cminit_ext AT 12 00000000 T _cminit_ext AT 12 This implies to me that you don't have the proper prototype included in your program for "cminit()". I suppose you could try to avoid that by specifying "--enable-stdcall-fixup" for gcc but I'm not confident that your situation fits the variations that this flag encompasses. >I hope this provides enough info. Better. But, as I mentioned above, you at least left off the cygcheck output, which is real handy when trying to understand your installation and configuration. But it looks like you're asking a question which is off-topic here, since you're not really using the Cygwin compiler (but rather the MinGW one). I think I've given you some answers and clues on things to pursue or (double) check. Other than that, I'm not sure how much more help I can be, unless you provide a small example and can show that you have the same problem using gcc with Cygwin as well (which you probably can). Good luck, -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 838 Washington Street (508) 893-9889 - FAX Holliston, MA 01746 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/