Re: The problem of an inline definition by construction in - Mailing list pgsql-hackers

From Robert Max Kramer
Subject Re: The problem of an inline definition by construction in
Date
Msg-id !~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAdNOb0pektES53BnmwIKiZcKAAAAQAAAACD/x7ZPGlUi+f5jvH3cT7wEAAAAA@gmx.de
Whole thread Raw
List pgsql-hackers
Hello,

I've got problems building the client libraries. It seems that there this
problem is already known and dicussed this mailing list earlier:


(snip)
Patch applied to CVS HEAD and 8.1.X.  Thanks.

Borland CC also needed this change, so I modified your patch appropriately.

---------------------------------------------------------------------------


Hiroshi Saito wrote:
> Dear Bruce san.
>
> I neglected sufficient test before a release.:-(
> Problem appears by construction in win32 of 8.1.4. ....
> nmake -f win32.mak
...
(snap)


I've searched for the  "Patch applied to ...", but cannot find it. So I
tried to solve the problem by myself.

My platform is WindowsXP and I've installed PostreSQL 8.1.4 and Microsoft
Visual Studio 6 SP6 (yes, I know it's not the newest version...). I've
committed the following steps:

(snip)
d:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.
       cd include       if not exist pg_config.h copy pg_config.h.win32 pg_config.h       cd ..       cd
interfaces\libpq      nmake /f win32.mak 

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.

Building the Win32 static library...
       cl.exe @C:\DOKUME~1\Max\LOKALE~1\Temp\nma02636.
wchar.c
..\..\backend\utils\mb\wchar.c(100) : error C2054: Nach 'inline' muss '('
folgen

..\..\backend\utils\mb\wchar.c(101) : error C2085: 'pg_euc_mblen' : Nicht in
derformalen Parameterliste enthalten
..\..\backend\utils\mb\wchar.c(101) : error C2143: Syntaxfehler : Fehlendes
';'
vor '{'
..\..\backend\utils\mb\wchar.c(116) : error C2054: Nach 'inline' muss '('
folgen

..\..\backend\utils\mb\wchar.c(117) : error C2085: 'pg_euc_dsplen' : Nicht
in de
r formalen Parameterliste enthalten
..\..\backend\utils\mb\wchar.c(117) : error C2143: Syntaxfehler : Fehlendes
';'
vor '{'
..\..\backend\utils\mb\wchar.c(143) : warning C4013: 'pg_euc_mblen'
undefiniert;Annahme: extern mit Rueckgabetyp int
..\..\backend\utils\mb\wchar.c(180) : warning C4013: 'pg_euc_dsplen'
undefiniert
; Annahme: extern mit Rueckgabetyp int
NMAKE : fatal error U1077: 'cl.exe' : Rueckgabe-Code '0x2'
Stop.
NMAKE : fatal error U1077: '"D:\Programme\Microsoft Visual
Studio\VC98\bin\NMAKE
.EXE"' : Rueckgabe-Code '0x2'
Stop.
(snap)


In order to work around the problem I've tried numberous syntax-variations
in wchar.c(99) and wchar.c(115)
static int inline ... does not work
inline static int ... does not work
static __inline int ... worked
Static int ... worked (without inline)

"Worked" with restrictions. Next call of nmake /f win32.mak resulted in
this:


(snip)
d:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.
       cd include       if not exist pg_config.h copy pg_config.h.win32 pg_config.h       cd ..       cd
interfaces\libpq      nmake /f win32.mak 

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.

Building the Win32 static library...
       link.exe @C:\DOKUME~1\Max\LOKALE~1\Temp\nma03456.
LINK : fatal error LNK1181: Eingabedatei "shfolder.lib" kann nicht ge÷ffnet
werd
en
NMAKE : fatal error U1077: 'link.exe' : Rueckgabe-Code '0x49d'
Stop.
NMAKE : fatal error U1077: '"D:\Programme\Microsoft Visual
Studio\VC98\bin\NMAKE
.EXE"' : Rueckgabe-Code '0x2'
Stop.
(snap)


There was no ShFolder.lib on my system. I found out that this is a part of
the Platform SDK whih comes with Visual Studio 2003. So I "borrowed" this PC
from a fellow and next call resulted in this:


(snip)
C:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak

Microsoft (R) Program Maintenance Utility, Version 7.10.3077
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
       cd include       if not exist pg_config.h copy pg_config.h.win32 pg_config.h       cd ..       cd
interfaces\libpq      nmake /f win32.mak 

Microsoft (R) Program Maintenance Utility, Version 7.10.3077
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Building the Win32 static library...
       cl.exe @C:\DOKUME~1\sfr\LOKALE~1\Temp\nm57.tmp
wchar.c       link.exe -lib @C:\DOKUME~1\sfr\LOKALE~1\Temp\nm58.tmp       link.exe
@C:\DOKUME~1\sfr\LOKALE~1\Temp\nm59.tmp
libpqdll.def(3) : warning LNK4017: DESCRIPTION-Anweisung wird von der
Zielplattf
orm nicht unterstützt; ignoriert  Bibliothek '.\Release\libpqdll.lib' und Objekt '.\Release\libpqdll.exp'
wird
erstellt
libpq.lib(fe-connect.obj) : error LNK2019: Nicht aufgelöstes externes Symbol
'_S
HGetFolderPath', verwiesen in Funktion '_pqGetHomeDirectory'
.\Release\libpq.dll : fatal error LNK1120: 1 unaufgelöste externe Verweise
NMAKE : fatal error U1077: 'link.exe': R³ckgabe-Code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio .NET
2003\SDK\
v1.1\Bin\nmake.exe"': R³ckgabe-Code '0x2'
Stop.
(snap)


So I got finally a libpqdll.lib, but the process in whole failed anyway. Now
my Questions:

- can I get the libraries anywhere in binary? So that I have not to build it
by myself?
- If not, is it possible to build with VS6?
- Where is the Patch of Bruce Momjian located? I cannot find it.
- any ideas, why the rest of the build process failed?

Can you please help me with this issues?

Regards,

M.Sc. Robert Max Kramer

Fagus-GreCon Greten GmbH & Co. KG
P.O. Box 12 43
D - 31042 Alfeld
Germany
phone: +49 51 81 / 79 - 2 58
fax: +49 51 81 / 79 - 2 33
http://www.grecon.de



pgsql-hackers by date:

Previous
From: "Dave Page"
Date:
Subject: Re: Creating custom Win32 installer
Next
From: Teodor Sigaev
Date:
Subject: Re: passing parameters to CREATE INDEX