Threading with non-shared libraries - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Threading with non-shared libraries |
Date | |
Msg-id | 200412142331.iBENV0o10035@candle.pha.pa.us Whole thread Raw |
Responses |
Re: Threading with non-shared libraries
Re: Threading with non-shared libraries |
List | pgsql-patches |
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. > > > > > > -- > Best, > > > > > Frank. > > > ---------------------------(end of broadcast)--------------------------- > TIP 9: the planner will ignore your desire to choose an index scan if your > joining column's datatypes do not match > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/Makefile.global.in =================================================================== RCS file: /cvsroot/pgsql/src/Makefile.global.in,v retrieving revision 1.205 diff -c -c -r1.205 Makefile.global.in *** src/Makefile.global.in 19 Nov 2004 00:41:38 -0000 1.205 --- src/Makefile.global.in 14 Dec 2004 22:49:42 -0000 *************** *** 308,313 **** --- 308,319 ---- 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) + endif + submake-libpq: $(MAKE) -C $(libpq_builddir) all
pgsql-patches by date: