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

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to