Compiling PostgreSQL 8.1.4 under Solaris 10, I ran into a problem documented back on 2006-05-30. Apparently in order to compile successfully, one has to remove an unreferenced function pqsignalinquire() in src/interfaces/libpq/pqsignal.c.
Since I stepped into this hole, is there anything I can do to help ensure that nobody else has to get lost on Google for several hours tracking down the same problem? I have been a Free Software user for some time but am not familiar with ways of feeding back into the process. Thanks, Victor Odhner ----- Details of the problem: Removing the function eliminated the following error when linking "initdb": Undefined symbol -- first referenced in file sigmask -- ../../../src/interfaces/libpq/libpq.so sigblock -- ../../../src/interfaces/libpq/libpq.so ld: fatal: Symbol referencing errors. No output written to initdb My guidance came from a posting by Tom Lane, 2006-05-30 -- http://archive.netbsd.se/?ml=pgsql-admin&a=2006-05&t=2058700 dated 2006-05-30 The rest of this message digests that posting. Tom Lane Quoted Bruce Momjian from another discussion: 2004-01-08 21:02 momjian * doc/src/sgml/libpq.sgml, src/backend/nodes/read.c, src/interfaces/libpq/fe-connect.c, src/interfaces/libpq/fe-print.c, src/interfaces/libpq/fe-secure.c, src/interfaces/libpq/libpq-fe.h, src/interfaces/libpq/libpq-int.h, src/interfaces/libpq/pqsignal.c, src/interfaces/libpq/pqsignal.h: Allow libpq to do thread-safe SIGPIPE handling. This allows it to ignore SIGPIPE from send() in libpq, but terminate on any other SIGPIPE, unless the user installs their own signal handler. This is a minor fix because the only time you get SIGPIPE from libpq's send() is when the backend dies. The code appears to unconditionally assume that sigmask() and sigblock() exist. Not a good assumption. (End of Momjian quote; Tom Lane continued . . .) AFAICS pqsignalinquire() isn't even used anywhere (at least not in HEAD), so the simplest answer may be to remove it rather than try to fix it. It's in src/interfaces/libpq/pqsignal.c. (V.Odhner comment: This worked for the person who started that discussion, and it seems to have worked for me.) ----- ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster