Cleaning up multiply-defined-symbol warnings on OS X

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-patches(at)postgreSQL(dot)org
Subject: Cleaning up multiply-defined-symbol warnings on OS X
Date: 2006-04-20 01:16:02
Message-ID: 5733.1145495762@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Recent versions of Darwin spew a lot of multiply-defined-symbol warnings
while building Postgres, mostly because the programs in src/bin import
both libpq and libpgport, and libpq includes copies of many of the
libpgport files. Since the libpgport routines aren't officially part of
the libpq API, it'd be better if those symbols weren't visible from
outside libpq. The attached patch makes this so, using the already
existing exports.txt list as the definition of libpq's official API.

I found while testing the patch that we have one API leak in current
sources: ecpglib is depending on the libpq-exported pqGetpwuid()
because src/port/path.c requires it but src/port/thread.c isn't included
into ecpglib. The patch corrects this oversight. This BTW is
sufficient reason for a libpq major version bump if we apply this patch;
we learned that lesson last time we fixed an API leak. (Did we already
bump libpq's major version for 8.2? I don't recall.)

The reason I didn't go ahead and apply this is that I'm wondering if
there's some more-portable solution that would work for other platforms
besides Darwin. I seem to recall that we've discussed the point before,
but no patch has been forthcoming.

Comments?

regards, tom lane

Attachment Content-Type Size
unknown_filename text/plain 5.5 KB

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Theo Schlossnagle 2006-04-20 02:54:27 BUG #2401: spinlocks not available on amd64
Previous Message Tom Lane 2006-04-19 23:18:40 Re: [PATCH] Reduce noise from tsort