Re: Re: Cygwin PostgreSQL postmaster abort problem

From: Jason Tishler <Jason(dot)Tishler(at)dothill(dot)com>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-ports(at)postgresql(dot)org
Subject: Re: Re: Cygwin PostgreSQL postmaster abort problem
Date: 2001-01-02 04:55:52
Message-ID: 20010101235552.C369@dothill.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

Peter,

On Sun, Dec 31, 2000 at 01:12:59PM +0100, Peter Eisentraut wrote:
> Jason Tishler writes:
>
> > Sat Dec 30 21:13:30 2000 Jason Tishler <jt(at)dothill(dot)com>
> >
> > * src/backend/utils/error/elog.c: Add conditional compilation to deal
> > with sys_nerr/_sys_nerr inconsistencies.
> > * src/backend/utils/error/exc.c: Ditto.
>
> This is the wrong place.

Sorry, but I'm not that intimate with the PostgreSQL code so when I saw
the following in elog.c and exc.c:

#ifdef __CYGWIN__
# define sys_nerr _sys_nerr
#endif
extern int sys_nerr;

I thought that it was reasonable to change it to:

#ifdef __CYGWIN__
# define sys_nerr _sys_nerr
#else
extern int sys_nerr;
#endif

Note that if the following line:

extern int sys_nerr;

is not guarded from Cygiwn, then one will always get an unresolved linker
error because of a missing " __declspec(dllimport)".

> You should look into src/include/port/win.h to fix this.

How is this file suppose to be used? When I do a find, I get the
following:

$ find . -type f | xargs fgrep win.h
./backend/port/dynloader/darwin.h:/* $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/port/dynloader/darwin.h,v 1.3 2000/12/11 00:49:54 tgl Exp $ */
./backend/port/dynloader/win.c: * see win.h
./backend/port/dynloader/win.h: * win.h
./backend/port/dynloader/win.h: * win.h,v 1.2 1995/03/17 06:40:18 andrew Exp

Hence, no source file is currently including it.

> > * src/utils/dllinit.c: Update to be consistent with Cygwin Net Release.
>
> Will this break old releases of Cygwin?

I don't know since I don't have b20.1 or older lying around anymore --
but my guess is yes. However, without this change PostgreSQL does *not*
build OOTB with the current Cygwin release.

Note that this file is no longer needed with current Cygwin releases.
Cygwin provides its own "DllMain" now. May be a compromise would be to
have make check the Cygwin version and eliminate dllinit.c from the
build if it is not necessary. I am willing to submit such a patch if it
was deemed reasonable.

Thanks,
Jason

--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corporation Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason(dot)Tishler(at)dothill(dot)com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com

In response to

Responses

Browse pgsql-ports by date

  From Date Subject
Next Message Jason Tishler 2001-01-02 05:10:37 Re: Porting to Win2k: ./configure failed
Previous Message Jason Tishler 2001-01-02 04:18:19 Re: Cygwin PostgreSQL postmaster abort problem