From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | PostgreSQL Win32 port list <pgsql-hackers-win32(at)postgresql(dot)org> |
Subject: | Re: lib problems |
Date: | 2003-10-10 00:32:14 |
Message-ID: | 200310100032.h9A0WEw22772@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers-win32 |
Again, -DFRONTEND is the solution. libpq or psql use that already.
---------------------------------------------------------------------------
Andrew Dunstan wrote:
>
> For now I have got around this with the following code:
>
> #ifdef WIN32
>
> #ifdef unlink
> #undef unlink
> #endif
>
> static int
> init_unlink(const char *path)
> {
> while (unlink(path))
> {
> if (errno != EACCES)
> return -1;
> Sleep(100); /* ms */
> }
> return 0;
> }
>
> #define unlink(x) init_unlink((x))
>
> #endif
>
> cheers
>
> andrew
>
> ----- Original Message -----
> From: Andrew Dunstan
> To: PostgreSQL Win32 port list
> Sent: Thursday, October 02, 2003 10:59 PM
> Subject: [pgsql-hackers-win32] lib problems
>
>
>
> OK, I have a C version of initdb that apparently works fine on Unix, and is only missing signal handling. (If anyone is curious and/or adventurous I can email you a copy).
>
> When I compile on W32/Mingw I get this:
>
> $ make
> gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -DPGBINDIR=\"/usr/local/pgsql/bin\" -DPGDATADIR=\"/usr/local/pgsql/share\" -L../../../src/port initdb.o -lpgport -o initdb
> ../../../src/port/libpgport.a(dirmod.o)(.text+0xe1):dirmod.c: undefined reference to `errstart'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0xef):dirmod.c: undefined reference to `elog_finish'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0x11a):dirmod.c: undefined reference to `errstart'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0x128):dirmod.c: undefined reference to `elog_finish'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0x1df):dirmod.c: undefined reference to `errstart'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0x1ef):dirmod.c: undefined reference to `elog_finish'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0x21a):dirmod.c: undefined reference to `errstart'
> ../../../src/port/libpgport.a(dirmod.o)(.text+0x22a):dirmod.c: undefined reference to `elog_finish'
> make: *** [initdb] Error 1
>
> The strange thing is I didn't get that this morning, but I assume it's clearly because I added some unlink calls.
>
> Anyone have clues about how to fix this? Compile a copy of dirmod.c with FRONTEND defined, maybe? Or just remove the logging statements from pgunlink altogether - unlink should really be silent.
>
> BTW, if the W32 timing problems that apply to unlink() also apply to rmdir(), we'll need a replacement for that too.
>
> thanks
>
> andrew
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2003-10-10 00:55:30 | Re: lib problems |
Previous Message | Bruce Momjian | 2003-10-10 00:31:49 | Re: lib problems |