[plt-scheme] Cygwin build failure

From: Eli Barzilay (eli at barzilay.org)
Date: Thu Jun 23 02:36:50 EDT 2005

On Jun 22, Eric Hanchrow wrote:
> Revision 233 of http://svn.plt-scheme.org/plt/trunk on up-to-date
> Cygwin:
> 
>     make --unix
> 
> yields these errors:
> 
>     make[5]: Entering directory `/usr/local/src/plt-scheme/src/foreign' gcc -g -O2  -Wall     -DGC_DLL -I./../mzscheme -I./../mzscheme/include -I./../mzscheme/src -Igcc/libffi/include -c ./foreign.c -o foreign.o
>     ./foreign.c:639: error: parse error before "Tsint8"
>     ./foreign.c:639: warning: no semicolon at end of struct or union
>     ./foreign.c:640: warning: type defaults to `int' in declaration of `x_uint8'
>     ./foreign.c:640: warning: data definition has no type or storage class
>     ./foreign.c:641: error: parse error before "x_int16"
>     ./foreign.c:641: warning: type defaults to `int' in declaration of `x_int16'
>     ./foreign.c:641: warning: data definition has no type or storage class
> 
> ... and many similar in that file.  I wonder if I've got the wrong
> header file ...
> 
> Any ideas?

Possibly a bug in the section that defines the types that are used in
that file.  If you look at the top of the file, you will find this:

----------------------------------------------------------------------
# include <windows.h>
# ifndef __CYGWIN32__
#  include <wtypes.h>
   typedef          _int8  Tsint8;
   typedef unsigned _int8  Tuint8;
   typedef          _int16 Tsint16;
   typedef unsigned _int16 Tuint16;
   typedef          _int32 Tsint32;
   typedef unsigned _int32 Tuint32;
   typedef          _int64 Tsint64;
   typedef unsigned _int64 Tuint64;
# endif
----------------------------------------------------------------------

Can you move the "# endif" line up so it is just after the
"# include <wtypes.h>" line and tell me if it works?

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!



Posted on the users mailing list.