embed_api2 build issue: stdin, stdout, stderr

James E Keenan jkeen at verizon.net
Mon Dec 6 23:41:37 UTC 2010


Andy Dougherty wrote:
> I tried to take a quick look at the embed_api2 branch.  It failed with the
> strange-looking error message:
>
> "./include/parrot/api.h", line 241: syntax error before or at:&
>
> Ultimately, the problem is that it is using 'stdin', 'stderr', and
> 'stdout' as variable names, when<stdio.h>  (or some file included by that)
> has already #defined them.  On Solaris 10, for example, you get
>
>      #define stdin   (&__iob[0])
>      #define stdout  (&__iob[1])
>      #define stderr  (&__iob[2])
>
> (which explains the odd reference to '&' in the error message).
>
> Simply renaming the variables to something like 'mystdin', etc.,
> should make that problem go away.
>

I was testing the embed_api2 branch on Darwin this weekend and came to 
the same conclusion.  Last night I sent the attached file to 
whiteknight; I guess now it will be good for everyone to see it.  It 
compares the content of /usr/include/stdin.h on my Linux (Debian) and 
Darwin (OS X 10.4) machines.

kid51
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: usr_include_stdin_linux_darwin.txt
URL: <http://lists.parrot.org/pipermail/parrot-dev/attachments/20101206/8c3f6f4e/attachment-0001.txt>


More information about the parrot-dev mailing list