Thread: Re: [BUGS] WIN32 MULTIBYTE

Re: [BUGS] WIN32 MULTIBYTE

From
"Darko Prenosil"
Date:
> "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




Re: Re: [BUGS] WIN32 MULTIBYTE

From
Tom Lane
Date:
"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