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

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 (view raw or flat)
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

pgsql-ports by date

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

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