[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MS compiler 7.1 (Visual Studio .NET 7.1 and DDK 2003) issues withma
From: |
Alessandro Vesely |
Subject: |
Re: MS compiler 7.1 (Visual Studio .NET 7.1 and DDK 2003) issues withmake 3.80 |
Date: |
Tue, 26 Apr 2005 14:02:45 +0200 |
Hi Jerker,
> It is simply a fact that these keywords are used in Microsoft, Intel and
> Borland compilers. Users may have to deal with them when compile GNU make.
Yes, they are used. Yet AFAIK, they don't _have_ to be used. Why would
users have to deal with them?
> Adding support for these are a minor effort and will not affect other
> compilers.
>
> To support calling conventions:
> #if !defined(__cdecl) && !defined(_MSC_VER) && !defined(__BORLANDC__)
> #define C_CALLBACK
> #else
> #define C_CALLBACK __cdecl
> #endif
>
> extern int C_CALLBACK alpha_compare PARAMS((const void *, const void *));
> int C_CALLBACK alpha_compare (const void *v1, const void *v2)
> { ...
The point with the PARAMS was that some compilers could not actually compile
without it. As "vanilla" compilers are not being used, PARAMS becomes a
wreckage that someone sooner or lateer will remove.
It looks as if MSVC and Borland can compile perfectly well using the default
C calling conventions. If I understand your point correctly, the only reason
they would be needed is in case some user mindlessly adds, say, `/Gr' to the
command line when compiling GNU make. Perhaps a couple of lines in README.W32
to prevent such experiments may make sense: that accounts for less effort, in
coding, testing, and maintaining, than the solution you propose.