emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.50 compile problem on Windows XP


From: Eli Zaretskii
Subject: Re: 23.0.50 compile problem on Windows XP
Date: Fri, 05 Oct 2007 10:19:33 +0200

> Date: Fri, 05 Oct 2007 09:08:32 +0100
> From: Jason Rumney <address@hidden>
> Cc: address@hidden, address@hidden
> 
> Eli Zaretskii wrote:
> > What constant? I don't see it in the MinGW headers, but maybe MSVC
> > headers are different.
> >   
> mingw only defines abs in stdlib.h

It defines a _function_ `abs', not a macro.  A macro is not defined
anywhere, AFAICS.

> > And I still didn't get an answer to my question from yesterday: What
> > is on and around line 182 of VC's math.h that causes the failure below?
> >   
> I have a different version of VC, but it seems it is the declaration of
> abs that causes the problem:
> 
>         int     __cdecl abs(__in int _X);
> 
> Since lisp.h has already been included, this gets expanded as the macro
> defined there, which causes a syntax error.

So we are talking about a function-vs-macro mess?  If so, I'd suggest
to rename the macro to something like `emacs_abs', because there's no
good solution to this that I know of.  Carefully crafted headers can
avoid this by taking function names in parens, like this:

      int     __cdecl (abs)(__in int _X);

but if they don't, there's nothing we can do to fix this in general.
Changing the order of headers is just a temporary kludge, IMHO; if we
do that, the problem will continue to haunt us.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]