delorie.com/archives/browse.cgi | search |
Mailing-List: | contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-subscribe AT sources DOT redhat DOT com> |
List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
List-Post: | <mailto:cygwin AT sources DOT redhat DOT com> |
List-Help: | <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs> |
Sender: | cygwin-owner AT sources DOT redhat DOT com |
Delivered-To: | mailing list cygwin AT sources DOT redhat DOT com |
Message-ID: | <20010810230459.88340.qmail@web14508.mail.yahoo.com> |
Date: | Sat, 11 Aug 2001 09:04:59 +1000 (EST) |
From: | =?iso-8859-1?q?Danny=20Smith?= <danny_r_smith_2001 AT yahoo DOT co DOT nz> |
Subject: | RE[2}: Why does this __declspec(dllimport) fail to compile? |
To: | Cygwin <cygwin AT cygwin DOT com> |
MIME-Version: | 1.0 |
--- Danny Smith <danny_r_smith_2001 AT yahoo DOT co DOT nz> wrote: > Date: Fri, 10 Aug 2001 10:42:15 +1000 (EST) > From: Danny Smith <danny_r_smith_2001 AT yahoo DOT co DOT nz> > Subject: RE: Why does this __declspec(dllimport) fail to compile? > To: Cygwin <cygwin AT cygwin DOT com> > > To: cygwin at sources dot redhat dot com > Subject: Why does this __declspec(dllimport) fail to compile? > From: Mo DeJong <mdejong at cygnus dot com> > Date: Thu, 9 Aug 2001 02:10:53 -0700 (PDT) > > ------------------------------------------------------------------------ Here is perhaps a better solution that does work with C: gcc -mno-fun-dllimport which ignores the dllimport attribute for functions (no __imp__foo symbol, just _foo). Danny > > The code does compile if use G++. I think the FAQ you cite says that > MSVC++ also needs to compile as C++ > > This function is provided by G++ to do the job: > gcc/cp/decl2.c > /* The name of the function we create to handle initializations and > destructions for objects with static storage duration. */ > #define SSDF_IDENTIFIER "__static_initialization_and_destruction" > > > Danny > ----------------------------------------------------------------------- > Mo DeJong wrote: > > Hi. > > I have run into a little problem with a static initializer > that seems to work just fine with VC++ but fails with gcc. > > % cat callback.c > extern __declspec(dllimport) > void ExtCallback(void); > > typedef void (callback) (void); > > typedef struct Scallback { > callback*c1; > } Scallback; > > static Scallback scall = {ExtCallback}; > > int main() { > callback*sc = scall.c1; > return (int) sc; > } > > % gcc -c callback.c > callback.c:10: initializer element is not constant > callback.c:10: (near initialization for `scall.c1') > > When this same code it compiled with VC++ it waits > until link time to figure out the function address. > > Why does this fail with gcc? > > P.S. > > Other folks have mentioned this python FAQ but > it does not explain why gcc generates this error. > > http://www.python.org/doc/FAQ.html#3.24 > > > > _____________________________________________________________________________ > http://shopping.yahoo.com.au - Father's Day Shopping > - Find the perfect gift for your Dad for Father's Day > _____________________________________________________________________________ http://shopping.yahoo.com.au - Father's Day Shopping - Find the perfect gift for your Dad for Father's Day -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |