Skip site navigation (1) Skip section navigation (2)

Re: lib problems

From: "Andrew Dunstan" <andrew(at)dunslane(dot)net>
To: "PostgreSQL Win32 port list" <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Re: lib problems
Date: 2003-10-10 00:55:30
Message-ID: 00ce01c38ec9$3430a600$6401a8c0@DUNSLANE (view raw or flat)
Thread:
Lists: pgsql-hackers-win32
If FRONTEND is defined port/dirmod.c prints to stderr, and if not it wants
to call elog(). I want something that fails silently and sets errno, just
like I would expect a "real" unlink to do.

At any rate, what I have below has not failed yet in my testing.

cheers

andrew


----- Original Message ----- 
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>
Sent: Thursday, October 09, 2003 8:32 PM
Subject: Re: [pgsql-hackers-win32] lib problems


>
> 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


In response to

Responses

pgsql-hackers-win32 by date

Next:From: Bruce MomjianDate: 2003-10-10 01:21:41
Subject: Re: lib problems
Previous:From: Bruce MomjianDate: 2003-10-10 00:32:14
Subject: Re: lib problems

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group