Thread: Another crack at doing a Win32 build under MINGW
1. I installed the latest version of Mingw from:
2. I installed the current snapshot of Postgresql.
3. I tried ./configure -- went fine
4. I tried make clean -- went fine
5. I tried make and hit a few snags.
6. For both:
/postgresql-snapshot/src/backend/utils/float.c
and
/postgresql-snapshot/src/backend/utils/timestamp.c
I had to make this change:
/* for finite() on Solaris */
#ifdef HAVE_IEEEFP_H
#ifndef BUILDING_DLL /* bugbug DRC: ieeefp.h is present but badly broken on my installation of MINGW */
#include <ieeefp.h>
#endif /* end of bug patch */
#endif
#ifdef HAVE_IEEEFP_H
#ifndef BUILDING_DLL /* bugbug DRC: ieeefp.h is present but badly broken on my installation of MINGW */
#include <ieeefp.h>
#endif /* end of bug patch */
#endif
7. For some strange reason, one of the symbolic links did not work correctly. I did a work-around as follows:
copy .\src\backend\port\sysv_sema.c src\backend\port\pg_sema.c
8. After making those changes, I got the following error:
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes -Wmissing-declarations initdb.o -L../../../src/interfaces/libpq -lpq -L../../../src/port -lz -lreadline -lwsock32 -lcrypt -lresolv -lm -lpgport -lws2_32 -o initdb
../../../src/port/libpgport.a(sprompt.o)(.text+0x1da):sprompt.c: undefined reference to `tcsetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x22d):sprompt.c: undefined reference to `tcgetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x25f):sprompt.c: undefined reference to `tcsetattr'
make[3]: *** [initdb] Error 1
make[3]: Leaving directory `/e/postgresql-snapshot/src/bin/initdb'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/postgresql-snapshot/src/bin'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/e/postgresql-snapshot/src'
make: *** [all] Error 2
../../../src/port/libpgport.a(sprompt.o)(.text+0x1da):sprompt.c: undefined reference to `tcsetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x22d):sprompt.c: undefined reference to `tcgetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x25f):sprompt.c: undefined reference to `tcsetattr'
make[3]: *** [initdb] Error 1
make[3]: Leaving directory `/e/postgresql-snapshot/src/bin/initdb'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/postgresql-snapshot/src/bin'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/e/postgresql-snapshot/src'
make: *** [all] Error 2
Can anyone tell me what is wrong?
(guess) try configuring without readline.
cheers
andrew
Dann Corbit wrote:
1. I installed the latest version of Mingw from:
2. I installed the current snapshot of Postgresql.
3. I tried ./configure -- went fine
4. I tried make clean -- went fine
5. I tried make and hit a few snags.
6. For both:
/postgresql-snapshot/src/backend/utils/float.c
and
/postgresql-snapshot/src/backend/utils/timestamp.c
I had to make this change:
/* for finite() on Solaris */
#ifdef HAVE_IEEEFP_H
#ifndef BUILDING_DLL /* bugbug DRC: ieeefp.h is present but badly broken on my installation of MINGW */
#include <ieeefp.h>
#endif /* end of bug patch */
#endif
#ifdef HAVE_IEEEFP_H
#ifndef BUILDING_DLL /* bugbug DRC: ieeefp.h is present but badly broken on my installation of MINGW */
#include <ieeefp.h>
#endif /* end of bug patch */
#endif
7. For some strange reason, one of the symbolic links did not work correctly. I did a work-around as follows:
copy .\src\backend\port\sysv_sema.c src\backend\port\pg_sema.c
8. After making those changes, I got the following error:
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes -Wmissing-declarations initdb.o -L../../../src/interfaces/libpq -lpq -L../../../src/port -lz -lreadline -lwsock32 -lcrypt -lresolv -lm -lpgport -lws2_32 -o initdb
../../../src/port/libpgport.a(sprompt.o)(.text+0x1da):sprompt.c: undefined reference to `tcsetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x22d):sprompt.c: undefined reference to `tcgetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x25f):sprompt.c: undefined reference to `tcsetattr'
make[3]: *** [initdb] Error 1
make[3]: Leaving directory `/e/postgresql-snapshot/src/bin/initdb'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/postgresql-snapshot/src/bin'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/e/postgresql-snapshot/src'
make: *** [all] Error 2
../../../src/port/libpgport.a(sprompt.o)(.text+0x1da):sprompt.c: undefined reference to `tcsetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x22d):sprompt.c: undefined reference to `tcgetattr'
../../../src/port/libpgport.a(sprompt.o)(.text+0x25f):sprompt.c: undefined reference to `tcsetattr'
make[3]: *** [initdb] Error 1
make[3]: Leaving directory `/e/postgresql-snapshot/src/bin/initdb'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/postgresql-snapshot/src/bin'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/e/postgresql-snapshot/src'
make: *** [all] Error 2
Can anyone tell me what is wrong?
I am able to build now, and perform initdb. However, I cannot run the postmaster. I don't know how far along the port is. What is the current state of the port to Win32? dcorbit@DANNFAST /usr/local/pgsql/bin $ postmaster -D u:/pgdata LOG: select() failed in postmaster: No such file or directory dcorbit@DANNFAST /usr/local/pgsql/bin $ FATAL: could not attach to proper memory at fixed address: shmget(key=5432001, addr=00E10000) failed: No such file or directory
Użytkownik Andrew Dunstan napisał: > > (guess) try configuring without readline. > Or compile readline with your Mingw version, or just replace readline.a with readline.dll in your lib directory. All works with readline fine. Best regards Rony