OK, applied.  I got a private email from the poster stating the patch
works for him.  The final patch is slightly different because of the AIX
test.

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

Index: Makefile.global.in
===================================================================
RCS file: /cvsroot/pgsql/src/Makefile.global.in,v
retrieving revision 1.206
diff -c -r1.206 Makefile.global.in
*** Makefile.global.in  16 Dec 2004 17:48:29 -0000      1.206
--- Makefile.global.in  16 Dec 2004 18:12:55 -0000
***************
*** 308,318 ****
--- 308,324 ----
  
  libpq = -L$(libpq_builddir) -lpq
  
+ # If doing static linking, shared library dependency can't be
+ # used so we specify pthread libs for every usage of libpq
+ ifeq ($(enable_shared), no)
+ libpq += $(PTHREAD_LIBS)
+ else
  # AIX libraries do not remember their required libs so we have to force
  # thread dependent libraires in the link
  ifeq ($(PORTNAME), aix)
  libpq += $(PTHREAD_LIBS)
  endif
+ endif
  
  submake-libpq:
        $(MAKE) -C $(libpq_builddir) all


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

Bruce Momjian wrote:
> 
> OK, it took me a while to figure this out, but it is similar to the
> problem we have on AIX.  AIX shared libraries don't track other
> libraries needed by the shared library, and non-shared libraries also
> have no such dependency information.
> 
> I have attached a patch that is very similar to the AIX fix.  It
> basically propagates the thread library flags to all uses of libpq.
> 
> Would you please test and report back?  Thanks.
> 
> ---------------------------------------------------------------------------
> 
> Frank van Vugt wrote:
> > L.S.
> > 
> > I noticed the following :
> > 
> > 
> > Workstation used to build RC1:
> >     
> >     2.4.21-260-athlon, i686 athlon i386 GNU/Linux
> > 
> > 
> > Configured with : 
> > 
> >     ./configure 
> >             --enable-thread-safety 
> >             --disable-shared 
> >             --prefix=/usr/src/postgresql/install
> > 
> > 
> > Error during make install :
> > 
> >     in directory src/bin/pg_ctl
> > 
> > gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels 
> > -fno-strict-aliasing pg_ctl.o  -L../../../src/interfaces/libpq -lpq 
> > -L../../../src/port  -Wl,-rpath,/usr/src/postgresql/install/lib -lpgport 
> > -lz 
> > -lreadline -lcrypt -lresolv -lnsl -ldl -lm  -o pg_ctl
> > ../../../src/interfaces/libpq/libpq.a(fe-secure.o)(.text+0x140): In 
> > function 
> > `pq_block_sigpipe':
> > : undefined reference to `pthread_sigmask'
> > ../../../src/interfaces/libpq/libpq.a(fe-secure.o)(.text+0x1e0): In 
> > function 
> > `pq_reset_sigpipe':
> > : undefined reference to `pthread_sigmask'
> > collect2: ld gaf exit-status 1 terug
> > 
> > 
> > There seems to be a missing option '-lpthread' here, adding it properly 
> > links 
> > the file.
> > 
> > The same goes for pg_restore, pg_dumpall, psql, createdb, createlang, 
> > createuser, dropdb, droplang, dropuser, clusterdb and vacuumdb.
> > 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (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

Reply via email to