git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 04/14] msvc: Fix macro redefinition warnings

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Dec 8, 2010, 00:05 UTC
Message-ID
<4CFECBB8.2070900@ramsay1.demon.co.uk>
In-Reply-To
<201012042204.52002.j6t@kdbg.org>
Johannes Sixt wrote:
Show 14 quoted lines
> On Samstag, 4. Dezember 2010, Ramsay Jones wrote:
>> --- a/compat/mingw.h
>> +++ b/compat/mingw.h
>> @@ -14,12 +14,6 @@ typedef int socklen_t;
>>  #define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK)
>>  #define S_ISSOCK(x) 0
>>
>> -#ifndef _STAT_H_
> 
> Instead of removing the macros, wouldn't we be much safer with just
> 
> #ifndef S_IWUSR
> 
> ? ...
Er... no.

Commit 4091bfc (which added these macros) does not provide any motivation for the change, and I'm having a hard time trying to imagine a useful purpose for this part of the commit. (I'm not saying there isn't one - just that I can't see it :-P )

On MinGW, the <sys/stat.h> header is always included prior to this header, so the _STAT_H_ include guard is always defined, so these macros will never be defined (which is a *good* thing; have you looked at the definitions). Trying to use compat/mingw.h without having first included <sys/stat.h> is not going to work!

Also, note that the include guard for the msvc <sys/stat.h> file is _INC_STAT. So, on msvc, including <sys/stat.h> does not suppress these macro definitions (Not that it actually matters here, because it doesn't define these symbols anyway!). Which is why msvc issues these macro redefinition warnings (they conflict with the definitions in compat/vcbuild/include/unistd.h). We most definitely don't want to use the macros in compat/mingw.h on msvc. (They are positively *wrong*)

[Hmmm, I've just noticed that the msvc compat header is missing a definition of the _S_IRWXU macro!]

So, once again, I see no reason to keep them ... Unless you know otherwise.

ATB, Ramsay Jones

Previous: Johannes SixtNext: Sebastian Schuberth
Message 3 of 5 in “msvc: Fix macro redefinition warnings”
  1. 04/14 msvc: Fix macro redefinition warningsRamsay Jones, Dec 4, 2010
  2. Johannes SixtDec 4, 2010
  3. Ramsay JonesDec 8, 2010
  4. Sebastian SchuberthDec 8, 2010
  5. Johannes SixtDec 8, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.