Compiling under MSYS and Windows 7

From: "Bidski" <bidski(at)bigpond(dot)net(dot)au>
To: <pgsql-novice(at)postgresql(dot)org>
Subject: Compiling under MSYS and Windows 7
Date: 2010-06-30 08:47:21
Message-ID: 35CBE1612D9345568C494DDCA8109C7B@Panda
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hello all,

Im not sure if this is the right list to post this on, so if its wrong please point me in the right direction.

I first used the "one-click" installer package for Windows to install PostgreSQL 9.0 beta 2 and while all this worked ok and I was able to create a database with I was soon faced with a couple of problems.

The first problem I encountered (although this one isnt as much of a problem as it is an inconvenience), I found out that there isnt a unicode version version of libpq. This is an inconvenience because my program is using unicode libraries everywhere else and as far as I can see, it makes sense to keep this trend throughout, but no matter, I managed to work around that (converting the necessary strings to UTF8 before passing them to the functions).

The second problem was that libpq.dll is claimed to be of unrecognizable format. The output from the linker is below.
C:\Program Files\PostgreSQL\bin/libpq.dll: file not recognized: File format not recognized

collect2: ld returned 1 exit status

I thought this might have something to do with different compiler/linker versions (compiler/linker that Im using compared to the compiler/linker used to build libpq). So naturally I set off on the task of building my own version of PostgreSQL from source. However this just opened up a whole new can of worms and I am quickly running out of pesticide.

I downloaded a copy of the source, unpacked it into a directory and had a quick look at the possible configure options (./configure --help) just to see if anything specific caught my eye. The only thing I saw was --with-gnu-ld. So I ran configure in the postgresql src root directory as ./configure --with-gnu-ld --prefix=/mingw. I got as far as the zlib checks when configure told me that I didnt have zlib installed (a quick look at my files confirmed this), so I went to www.zlib.net and downloaded version 1.2.5 (this appears to be the latest), I then built and installed this. Running configure again (with the same options) gave me a wonderful error.

configure: error: zlib version is too old
Use --without-zlib to disable zlib support.

How can the latest version be too old????? Seeing this, I uninstalled that version and went in search of other versions. The versions I found may not have been newer (may have been older) but I tried them anyways, all with the same results, apparently all versions were too old. The other versions I found were on the MinGW/MSYS download site, I tried the most recent versions listed on there.

Faced with that, I then changed my configure line to be ./configure --prefix=/mingw --with-gnu-ld --without-zlib (who needs zlib anyways, right?). Now I was thinking that surely this would be the end of it and I would soon have a fully built version of PostgreSQL ........ sadly not. I now get this error.

checking for atexit... yes
checking test program... failed
configure: error:
Could not execute a simple test program. This may be a problem
related to locating shared libraries. Check the file 'config.log'
for the exact reason.

And now I have no idea. I had a look at config.log and to find this.

configure:21835: checking for atexit
configure:21891: gcc -qlanglvl=extc89 -o conftest.exe -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I./src/include/port/win32 -DEXEC_BACKEND -Wl,--allow-multiple-definition conftest.c >&5
gcc.exe: unrecognized option '-qlanglvl=extc89'
configure:21898: $? = 0
configure:21920: result: yes
configure:23234: checking test program
configure:23254: gcc -qlanglvl=extc89 -o conftest.exe -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I./src/include/port/win32 -DEXEC_BACKEND -Wl,--allow-multiple-definition conftest.c >&5
gcc.exe: unrecognized option '-qlanglvl=extc89'
configure:23258: $? = 0
configure:23264: ./conftest.exe
./configure: line 23266: ./conftest.exe: Invalid argument
configure:23268: $? = 126
configure: program exited with status 126
configure: failed program was:

Having a look at line 23266 of configure and Im lost (never could understand those things).

Can anyone tell me what is going on here?

Some system info.....

OS: Windows 7 64-bit

MSYS ver: 1.0.14

MinGW ver: 4.5.0

Make ver: GNU make 3.81

If it matters ..... My IDE is Eclipse Galileo and I am compiling my project using the MinGW toolchain.

If you need any more info just let me know.

Regards

Bidski

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Atif Jung 2010-06-30 08:59:31 PLPERLU help
Previous Message Greg 2010-06-29 14:35:45 Re: Postgre Protocol