[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl-win32-porters
Subject:    perl 5.8.0 additional code build problems
From:       Dmitry Karasik <dmitry () karasik ! eu ! org>
Date:       2002-09-03 13:26:08
[Download RAW message or body]

Hello,

I am stuck in the following problem with perl5.8.0 on win32:
stderr symbol, when met in C code, produces errors.

C ( MSVC 5.0 ) preprocessor, being called as

cl -c -nologo -Gf -W3 -MD -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT
  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO
-DPERL_MSVCRT_READFIX
  -MD -DNDEBUG -O1 -E test.c,

where test.c is
---
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
void main() { FILE * f = stderr }
---

resolves stderr as 

(*(*Perl_IStdIO_ptr(((PerlInterpreter
*)Perl_get_context())))->pStderr)((*Perl_IStdIO_ptr(((PerlInterpreter
*)Perl_get_context()))))();

and, trying to compile, gives this:

test.c(4) : error C2064: term does not evaluate to a function

I played a little with settings, and found that if the last () in the
expression
is not present, then everyting is fine. To reproduce the problem, I
pulled also
a random CPAN module with C parts, which appeared to be
HTML-Parser-3.26. After I 
inserted

  fprintf(stderr, "%s\n", "hello");

it also failed the compilation with similar errors.

I can't propose a patch currently, since I can't see where the problem
is. 
However, I would like to hear proprositions.

Thank you,
  Dmitry Karasik


_______________________________________________
Perl-Win32-Porters mailing list
Perl-Win32-Porters@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic