From: SourceForge.net <no...@so...> - 2003-10-26 08:05:43
|
Read and respond to this message at: https://sourceforge.net/forum/message.php?msg_id=2255539 By: dannysmith There's a typo somewhere innyour source. No such thing as __piioinfo. There is a __pioinfo which is exported from msvcrt.dll. It should be declared as dllimport to prevent the attempt at auto-import (which won't work with import libs built with dlltool, as is libmsvcrt.a) Danny ______________________________________________________________________ You are receiving this email because you elected to monitor this forum. To stop monitoring this forum, login to SourceForge.net and visit: https://sourceforge.net/forum/unmonitor.php?forum_id=286529 |
From: SourceForge.net <no...@so...> - 2003-10-26 10:42:29
|
Read and respond to this message at: https://sourceforge.net/forum/message.php?msg_id=2255631 By: gnupg Hi Danny, this __piiomode was just a spelling mistake by sending the post. Oh yes, I forgot to mention, that I was compiling on Win2k Server with latest updates and Platform and MDAC SDK installed. Regrads, Timo ______________________________________________________________________ You are receiving this email because you elected to monitor this forum. To stop monitoring this forum, login to SourceForge.net and visit: https://sourceforge.net/forum/unmonitor.php?forum_id=286529 |
From: SourceForge.net <no...@so...> - 2003-10-26 21:18:52
|
Read and respond to this message at: https://sourceforge.net/forum/message.php?msg_id=2256181 By: dannysmith Okay, but you still need to add the dllimpor attribute extern __declspec(dllimport) ioinfo * __pioinfo[]; because, with mingw, you are linking against a dll version of MS libc Danny ______________________________________________________________________ You are receiving this email because you elected to monitor this forum. To stop monitoring this forum, login to SourceForge.net and visit: https://sourceforge.net/forum/unmonitor.php?forum_id=286529 |
From: Greg M. <la...@ms...> - 2003-10-29 06:24:22
|
On Sun, 26 Oct 2003, SourceForge.net wrote: > Okay, but you still need to add the dllimpor attribute > > extern __declspec(dllimport) ioinfo * __pioinfo[]; > > because, with mingw, you are linking against a dll version of MS libc > Danny Is this a change since MinGW-2.0.0-3? I was able to install perl-5.8.1 without running into this particular problem with that 20021011 MinGW release. But now upgrading to MinGW-3.1.0-1, I got the same problem installing perl-5.8.2-RC1. Though, greg@7106 ~ $ diff perl-5.8.2-RC1/win32/win32.h perl-5.8.2-RC1/win32/win32.h~ 505c505 < extern __declspec(dllimport) ioinfo * __pioinfo[]; --- > EXTERN_C _CRTIMP ioinfo* __pioinfo[]; does seem to have solved it for me. -- Greg Matheson, Taiwan |
From: <dan...@ya...> - 2003-10-29 08:30:50
|
--- Greg Matheson <la...@ms...> wrote: > On Sun, 26 Oct 2003, SourceForge.net wrote: > > Is this a change since MinGW-2.0.0-3? I was able to install perl-5.8.1 > without running into this particular problem with that 20021011 MinGW release. > > But now upgrading to MinGW-3.1.0-1, I got the same problem installing > perl-5.8.2-RC1. Though, > > greg@7106 ~ > $ diff perl-5.8.2-RC1/win32/win32.h perl-5.8.2-RC1/win32/win32.h~ > 505c505 > < extern __declspec(dllimport) ioinfo * __pioinfo[]; > --- > > EXTERN_C _CRTIMP ioinfo* __pioinfo[]; > > does seem to have solved it for me. The mingw headers now have the _CRTIMP macro defined like so in _mingw.h # ifndef _CRTIMP # ifdef __USE_CRTIMP # define _CRTIMP __attribute__((dllimport)) # else # define _CRTIMP # endif # endif So if the perl headers test for #ifdef _CRTIMP _after_ including a mingw header you may run into problems. _CRTIMP is always defined, but it may not be what you want unless you define __USE_CRTIMP before including a mingw header The use of the _CRTIMP macro name may have been a mistake. Maybe mingw headers should use __MINGW_CRTIMP internally to avoid the type of problem you seem to have run into. Danny > -- > Greg Matheson, Taiwan > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > -- > Greg Matheson, Taiwan > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users http://personals.yahoo.com.au - Yahoo! Personals New people, new possibilities. FREE for a limited time. |
From: Greg M. <la...@ms...> - 2003-10-29 12:41:24
|
On Wed, 29 Oct 2003, Danny Smith wrote: > --- Greg Matheson <la...@ms...> wrote: > On Sun, 26 Oct 2003, SourceForge.net wrote: > > > > Is this a change since MinGW-2.0.0-3? I was able to install perl-5.8.1 > > without running into this particular problem with that 20021011 MinGW release. > > > > But now upgrading to MinGW-3.1.0-1, I got the same problem installing > > perl-5.8.2-RC1. Though, > > > > greg@7106 ~ > > $ diff perl-5.8.2-RC1/win32/win32.h perl-5.8.2-RC1/win32/win32.h~ > > 505c505 > > < extern __declspec(dllimport) ioinfo * __pioinfo[]; > > --- > > > EXTERN_C _CRTIMP ioinfo* __pioinfo[]; > > > > does seem to have solved it for me. > The mingw headers now have the _CRTIMP macro defined like so in _mingw.h > # ifndef _CRTIMP > # ifdef __USE_CRTIMP > # define _CRTIMP __attribute__((dllimport)) > # else > # define _CRTIMP > # endif > # endif > So if the perl headers test for #ifdef _CRTIMP _after_ including a mingw header > you may run into problems. The mingw headers are pulled in around line 63 of win32.h At line 485, there is: /* C doesn't like repeat struct definitions */ #ifndef _CRTIMP #define _CRTIMP __declspec(dllimport) #endif __USE_CRTIMP is not defined anywhere. So I guess that is what is happening. > _CRTIMP is always defined, but it may not be what > you want unless you define __USE_CRTIMP before including a mingw header I tried defining __USE_CRTIMP at the start of win32.h before the mingw headers were included, but I got the same _nm___pioinfo not defined error. In any case, _mingw.h would have to define _CRTIMP as __declspec(dllimport), rather than __attribute__((dllimport)) wouldn't it? > The use of the _CRTIMP macro name may have been a mistake. Maybe mingw headers > should use __MINGW_CRTIMP internally to avoid the type of problem you seem > to have run into. I will mention the MinGW-3.1.0-1 problem on perl-5-porters. -- Greg Matheson, Taiwan |
From: Gisle V. <gv...@br...> - 2003-10-29 13:20:29
|
"Greg Matheson" <la...@ms...> said: > I tried defining __USE_CRTIMP at the start of win32.h before the mingw > headers were included, but I got the same _nm___pioinfo not defined error. > In any case, _mingw.h would have to define _CRTIMP as __declspec(dllimport), > rather than __attribute__((dllimport)) wouldn't it? __declspec(x) == __attribute__((x)). See windef.h line 84. As for the original problem, maybe you could use this: extern struct ioinfo *_imp____pioinfo[]; #define __pioinfo _imp____pioinfo But I cannot find ??ioinfo in any MingW header. Only these refs: g:\MingW32/lib/libmsvcrt.a:ds00076.o:00000000 T __pioinfo g:\MingW32/lib/libmsvcrt.a:ds00076.o:00000000 I _imp____pioinfo g:\MingW32/lib/libmsvcrtd.a:ds00076.o:00000000 T __pioinfo g:\MingW32/lib/libmsvcrtd.a:ds00076.o:00000000 I _imp____pioinfo --gv |