Thread: Re: [BUGS] WIN32 MULTIBYTE
> "Darko Prenosil" <darko_prenosil@yahoo.com> writes: > > In src/include/miscadmin.h there is declared external function GetUserName. > > > I think that this header should not be imported in libpq at all, > > It isn't --- at least I can't see any inclusion path for it in current > sources. > > regards, tom lane Maybe You can not see it in build for Linux (I did not check), but in WIN32.MAK file there is section that looks like this: !IFDEF MULTIBYTE "$(INTDIR)\common.obj" : ..\..\backend\utils\mb\common.c $(CPP) @<< $(CPP_PROJ) /I "." ..\..\backend\utils\mb\common.c << And there are first few lines from common.c : /** This file contains some public functions* usable for both the backend and the frontend.* Tatsuo Ishii* $Id: common.c,v1.13 2001/04/16 02:42:01 tgl Exp $*/ #include "postgres.h" #ifdef WIN32 #include "win32.h" #else #include <unistd.h> #endif #include "miscadmin.h" #include "mb/pg_wchar.h" #include "utils/builtins.h" ...etc... When I try to compile without correction I mentioned in previous message I got this error: ..\..\include\miscadmin.h(206) : error C2373: 'GetUserNameA' : redefinition; different type modifiers ! I'm shore that this header is imported, but I do not know if it can be skipped in this way: /** This file contains some public functions* usable for both the backend and the frontend.* Tatsuo Ishii* $Id: common.c,v1.13 2001/04/16 02:42:01 tgl Exp $*/ #include "postgres.h" #ifdef WIN32 #include "win32.h" #else #include <unistd.h> #include "miscadmin.h" #endif #include "mb/pg_wchar.h" #include "utils/builtins.h" ...etc... I supose that this should not impact some other builds? Is this part of code used by ODBC driver for example, and this change can corrupt this build ? I'm quite new in this, so I do not know those answers. Darko.Prenosil@finteh.hr
"Darko Prenosil" <Darko.Prenosil@finteh.hr> writes: > I think that this header should not be imported in libpq at all, >> >> It isn't --- at least I can't see any inclusion path for it in current >> sources. >> >> regards, tom lane > Maybe You can not see it in build for Linux (I did not check), > but in WIN32.MAK file there is section > that looks like this: > !IFDEF MULTIBYTE > "$(INTDIR)\common.obj" : ..\..\backend\utils\mb\common.c > $(CPP) @<< > $(CPP_PROJ) /I "." ..\..\backend\utils\mb\common.c Hmm. That seems to be rather substantially out of date: in the regular Unix build, the only file added for MULTIBYTE support is utils/mb/wchar.c, and it doesn't include any backend-only include files. We used to import those other backend source files, but that was long ago. Please try ripping all the stuff about common.c, conv.c, and big5.c out of win32.mak, and see if it works then. regards, tom lane