Thread: BUG #15167: error C2365: 'errcode' : redefi nition;previous definition
BUG #15167: error C2365: 'errcode' : redefi nition;previous definition
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 15167 Logged by: Hao LI Email address: mixtrue@gmail.com PostgreSQL version: 10.3 Operating system: windows 7 Description: Platform: windows 7 and vs 2008 The source code checkout from : https://github.com/postgres/postgres.git. and the git log as following: commit 9cad926eb876a30d58a5b39789098da83a6ef91c I run the command from src\tools\msvc\build.pl DEBUG, and get error as following: d:\work\postgres\src\include\utils/elog.h(131): error C2365: 'errcode' : redefinition; previous definition was 'typedef'. Best Regards, Hao.
The more info:
1>d:\postgres\src\include\utils/elog.h(131) : error C2365: 'errcode' : redefinition; previous definition was 'typedef'
1> C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\crtdefs.h(560) : see declaration of 'errcode'
On Mon, Apr 23, 2018 at 2:29 PM, PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 15167
Logged by: Hao LI
Email address: mixtrue@gmail.com
PostgreSQL version: 10.3
Operating system: windows 7
Description:
Platform: windows 7 and vs 2008
The source code checkout from : https://github.com/postgres/postgres.git.
and the git log as following:
commit 9cad926eb876a30d58a5b39789098da83a6ef91c
I run the command from src\tools\msvc\build.pl DEBUG, and get error as
following:
d:\work\postgres\src\include\utils/elog.h(131): error C2365: 'errcode' :
redefinition; previous definition was 'typedef'.
Best Regards,
Hao.
A Database Kernel Engineer. @http://www.leehao.org.
MyBook: Inside into PostgreSQL Query Engine. @amazon China
Re: BUG #15167: error C2365: 'errcode' : redefi nition; previousdefinition
From
Heikki Linnakangas
Date:
On 23/04/18 02:49, Hao Lee wrote: > The more info: > 1>d:\postgres\src\include\utils/elog.h(131) : error C2365: 'errcode' : > redefinition; previous definition was 'typedef' > 1> C:\Program Files (x86)\Microsoft Visual Studio > 9.0\VC\include\crtdefs.h(560) : see declaration of 'errcode' In src/include/port/win32.h, we have this: > /* > * We need to prevent <crtdefs.h> from defining a symbol conflicting with > * our errcode() function. Since it's likely to get included by standard > * system headers, pre-emptively include it now. > */ > #if _MSC_VER >= 1400 || defined(HAVE_CRTDEFS_H) > #define errcode __msvc_errcode > #include <crtdefs.h> > #undef errcode > #endif For some reason, that doesn't seem to be working as intended, on your system. Do you see the above in src/include/pg_config_os.h ? What version of Visual Studio or Platform SDK are you using? What is the value of _MSC_VER on your system? - Heikki
yes, the code you mentioned, on my env. as following:
/*
* We need to prevent <crtdefs.h> from defining a symbol conflicting with
* our errcode() function. Since it's likely to get included by standard
* system headers, pre-emptively include it now.
*/
#if _MSC_VER >= 1400 || defined(HAVE_CRTDEFS_H)
#define errcode __msvc_errcode
#include <crtdefs.h>
#undef errcode
#endif
----------------------------------------------------------
the ms version info as following:
Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
Microsoft .NET Framework
Version 3.5 SP1
Installed Edition: Professional
Microsoft Visual C++ 2008 91605-270-4948377-60248
Microsoft Visual C++ 2008
-----------------------------------------------------------------------
the value of _MSC_VER is 1500.
On Mon, Apr 23, 2018 at 3:48 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
On 23/04/18 02:49, Hao Lee wrote:The more info:
1>d:\postgres\src\include\utils/elog.h(131) : error C2365: 'errcode' :
redefinition; previous definition was 'typedef'
1> C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\include\crtdefs.h(560) : see declaration of 'errcode'
In src/include/port/win32.h, we have this:/*
* We need to prevent <crtdefs.h> from defining a symbol conflicting with
* our errcode() function. Since it's likely to get included by standard
* system headers, pre-emptively include it now.
*/
#if _MSC_VER >= 1400 || defined(HAVE_CRTDEFS_H)
#define errcode __msvc_errcode
#include <crtdefs.h>
#undef errcode
#endif
For some reason, that doesn't seem to be working as intended, on your system. Do you see the above in src/include/pg_config_os.h ?
What version of Visual Studio or Platform SDK are you using? What is the value of _MSC_VER on your system?
- Heikki
A Database Kernel Engineer. @http://www.leehao.org.
MyBook: Inside into PostgreSQL Query Engine. @amazon China