Discussion:
Question on sys/reent.h
Yaakov (Cygwin/X)
2013-03-17 23:22:35 UTC
Permalink
The following section of <sys/reent.h> caused a conflicting typedef
error when building libjava:

#ifndef __Long
#if __LONG_MAX__ == 2147483647L
#define __Long long
typedef unsigned __Long __ULong;
#elif __INT_MAX__ == 2147483647
#define __Long int
typedef unsigned __Long __ULong;
#endif
#endif

These types appear to be used in newlib's dtoa.c and mprec.c (it is a
copy of the latter in libjava which triggers this error). Is this
correct or it is another ssize_t?


Yaakov
Corinna Vinschen
2013-03-18 10:08:28 UTC
Permalink
Post by Yaakov (Cygwin/X)
The following section of <sys/reent.h> caused a conflicting typedef
#ifndef __Long
#if __LONG_MAX__ == 2147483647L
#define __Long long
typedef unsigned __Long __ULong;
#elif __INT_MAX__ == 2147483647
#define __Long int
typedef unsigned __Long __ULong;
#endif
#endif
These types appear to be used in newlib's dtoa.c and mprec.c (it is a
copy of the latter in libjava which triggers this error). Is this
correct or it is another ssize_t?
As far as I can see, no. The definition is crude, but it all leads
to the desire to define __Long as a 32 bit type, independent of the
architecture.

Why and how does this clash with libjava?


Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
Loading...