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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: lib problems


  • 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: Thu, 9 Oct 2003 21:21:41 -0400 (EDT)
  • Message-id: <200310100121.h9A1Lf425753@candle.pha.pa.us> <text/plain>

Andrew Dunstan wrote:
> 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.

Well maybe throwing a message after one second is extreme.  Should we
change it to 3 or 5 seconds?  Does that help?  I would like to see you
using our standard code, and I would like to throw a message after a few
seconds so folks know we are waiting for something.

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


> 
> 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
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
> 

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



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group