delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/07/01/05:46:53

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
From: "Dave Korn" <dave DOT korn AT artimi DOT com>
To: "'cygwin'" <cygwin AT cygwin DOT com>
Subject: RE: undefined reference to `_CAPI_INSTALLED AT 0', why?
Date: Fri, 1 Jul 2005 10:46:35 +0100
MIME-Version: 1.0
In-Reply-To: <42C45145.4010202@familiehaase.de>
Message-ID: <SERRANO59KuERIqVDok0000030e@SERRANO.CAM.ARTIMI.COM>

----Original Message----
>From: Gerrit P. Haase
>Sent: 30 June 2005 21:09

> Ok, I try to build a Cygwin application that requires CAPI functions
> which are installed with the drivers for an ISDN card, the DLL is named
> capi2032.dll, I have an import library which comes from the manufacturer
> AVM but this contains symbols not included in the DLL or elsewhere.
> 
> In the .lib library are these symbols:
> 
> $ nm capi2032.lib | grep ' T '

> 00000000 T _CAPI_INSTALLED AT 0

  That's a stdcall symbol.

> in the import library I created are these symbols:
> 
> $ nm libcapi2032.dll.a | grep ' T '

> 00000000 T _CAPI_INSTALLED

  That's a cdecl symbol.

> Where does the @0 in capi20.o: _CAPI_INSTALLED AT 0 came from?

  It comes from it being a stdcall symbol.
 
> I see in the source:
> 
> extern DWORD APIENTRY CAPI_INSTALLED (void);
> 
> unsigned CAPI20_ISINSTALLED (void) {
> #if defined(CYGWIN) || defined(WIN32)
>      return (unsigned)CAPI_INSTALLED () == 0;
> #elif defined(LINUX)
>      return capi20_isinstalled() == CapiNoError;
> #endif
> 
> 
> So why does the compiler creats a reference to _CAPI_INSTALLED AT 0 or
> is it the linker who wants to resolve CAPI_INSTALLED with @0 attached.

  Has the definition of APIENTRY has changed between the mfr's build from
which the import library came and the build from which you generated your
import lib?

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


--
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/

- Raw text -


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