Re: pgstat: remove delayed destroy / pipe:

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Magnus Hagander <mha(at)sollentuna(dot)net>, Peter Brant <Peter(dot)Brant(at)wicourts(dot)gov>, pgsql-patches(at)postgresql(dot)org, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: pgstat: remove delayed destroy / pipe:
Date: 2006-05-08 02:20:17
Message-ID: 200605080220.k482KHS07451@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches


Patch applied to HEAD, 8.1.X and 8.0.X.

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

Bruce Momjian wrote:
> Magnus Hagander wrote:
> > > It turns out the problem is that port/pipe.c is compiled with
> > > -DFRONTEND and include/port/win32.h wraps the recv to
> > > pgwin32_recv macro in a #ifndef FRONTEND. We've actually
> > > been using the WinSock recv function directly (verified with gcc -E).
> >
> > That's definitly wrong.
> > Looks like this file needs a _srv version in the Makefile. Bruce?
>
> Wow! That is disturbing. I tried to minimize the affect of FRONTEND,
> but obviously I never though about the affect on include files that use
> FRONTEND. Seems it is only Win32 that used FRONTEND in includes (except
> for pg_wchar.h, which is used by libpq and already built independently).
>
> > Just a thought - might this affect more things that rely on FRONTEND
> > defines in the headers? How bad would it be to just make libpgport build
> > two complete sets of object files, one for server and one for frontend,
> > instead of special-casing which files are rebuilt?
>
> The attached patch does exactly what you suggest. I think it has to be
> patched to 8.0.X, 8.1.X, and HEAD. I will apply in 24-48 hours.
>
> --
> Bruce Momjian http://candle.pha.pa.us
> EnterpriseDB http://www.enterprisedb.com
>
> + If your life is a hard drive, Christ can be your backup. +

> Index: src/port/Makefile
> ===================================================================
> RCS file: /cvsroot/pgsql/src/port/Makefile,v
> retrieving revision 1.30
> diff -c -c -r1.30 Makefile
> *** src/port/Makefile 9 Dec 2005 21:19:36 -0000 1.30
> --- src/port/Makefile 7 May 2006 01:05:32 -0000
> ***************
> *** 26,37 ****
> override CPPFLAGS := -I$(top_builddir)/src/port -DFRONTEND $(CPPFLAGS)
> LIBS += $(PTHREAD_LIBS)
>
> ! # Replace object files that use FRONTEND define
> ! LIBOBJS_SRV := $(LIBOBJS)
> ! LIBOBJS_SRV := $(patsubst dirmod.o,dirmod_srv.o, $(LIBOBJS_SRV))
> ! LIBOBJS_SRV := $(patsubst exec.o,exec_srv.o, $(LIBOBJS_SRV))
> ! LIBOBJS_SRV := $(patsubst getaddrinfo.o,getaddrinfo_srv.o, $(LIBOBJS_SRV))
> ! LIBOBJS_SRV := $(patsubst thread.o,thread_srv.o, $(LIBOBJS_SRV))
>
> all: libpgport.a libpgport_srv.a
>
> --- 26,33 ----
> override CPPFLAGS := -I$(top_builddir)/src/port -DFRONTEND $(CPPFLAGS)
> LIBS += $(PTHREAD_LIBS)
>
> ! # Replace all object files so they use FRONTEND define
> ! LIBOBJS_SRV := $(LIBOBJS:%.o=%_srv.o)
>
> all: libpgport.a libpgport_srv.a
>
> ***************
> *** 60,72 ****
> libpgport_srv.a: $(LIBOBJS_SRV)
> $(AR) $(AROPT) $@ $^
>
> ! dirmod_srv.o: dirmod.c
> ! $(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
> !
> ! exec_srv.o: exec.c
> ! $(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
> !
> ! getaddrinfo_srv.o: getaddrinfo.c
> $(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
>
> # No thread flags for server version
> --- 56,62 ----
> libpgport_srv.a: $(LIBOBJS_SRV)
> $(AR) $(AROPT) $@ $^
>
> ! %_srv.o: %.c
> $(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
>
> # No thread flags for server version

>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend

--
Bruce Momjian http://candle.pha.pa.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2006-05-08 02:39:52 Re: [HACKERS] Question on win32 semaphore simulation
Previous Message Tom Lane 2006-05-08 00:21:43 Re: [PATCH] Magic block for modules