---------- Forwarded message ----------
From: Dima Pasechnik <[email protected]>
Date: Apr 25, 10:24 pm
Subject: #11246: flint-1.5.0.p5 defines ulong on a system with ulong a
type
To: sage-windows


Hi Bill,

On Apr 25, 3:41 am, Bill Hart <[email protected]> wrote:

> On 24 April 2011 20:20, Dr. David Kirkby <[email protected]> wrote:
> > On 04/24/11 12:22 PM, Dima Pasechnik wrote:

> >> While trying to build Sage on Windows 7, I ran into the case of a
> >> package defining ulong (i.e. #define ulong unsigned long),
> >> whereas in a system header it is defined as a type.
> >> (details on the ticket).

> >> While it's trivial to make a platform-dependent fix, I wonder whether
> >> this should be addressed in some other, more proper way
> >> (indeed, one sees that on various linuxes this happens once in a
> >> while, too)...

> >> Dima

> > #ifndef ulong
> > #define ulong unsigned long
> > #endif

> > would not be platform specific (so fairly easy to maintain).

This does not work, as the header inclusion order in ZmodF_mul.c
does #include ZmodF_poly.h (which includes stdio.h, which in turn
includes sys/types.h containing the typedef for ulong)
after ZmodF.h, which includes flint.h containing #define ulong

Thus the typedef is nuked, and there is no way around it with the
given header
order.

The 1st bug is in ZmodF_mul.c, which does not need to include ZmodF.h
at all,
as it is included in ZmodF_poly.h

The 2nd bug like this is in mpn_extras.h, where the inclusion of
flint.h is not needed
---and this nukes ZmodF_mul-tuning.c

The 3rd bug like this is in ZmodF_poly.c, which needs to include
neither flint.h nor memory-manager.h

After removing these includes, the spkg compiles on Cygwin.

Dmitrii


> What I've been doing is #undef ulong before including those header
> files, then #define ulong unsigned long after they're included. This
> seems to work.

> Bill.

-- 
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to