From: | Greg Stark <stark(at)mit(dot)edu> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Jeroen Ooms <jeroen(at)berkeley(dot)edu>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: building libpq.a static library |
Date: | 2017-07-12 22:55:56 |
Message-ID: | CAM-w4HNnBzG7FPjLqQKigHD75Dj2a0qwXVEz-kbLj8qbQdwYSQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 12 July 2017 at 16:11, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Jeroen Ooms <jeroen(at)berkeley(dot)edu> writes:
>
>> This works but it's a bit of a pain to maintain. I was wondering if
>> this hack could be merged so that the standard 'configure
>> --enable-static' script would install a static library for libpq
>> alongside the shared one.
>
> FWIW, we used to have support for building static libpq, but
> we got rid of it a long time ago. I couldn't find the exact
> spot in some desultory trawling of the commit history.
Fwiw I think the real problem is that building static libraries
"properly" requires different compiler options -- notably they're not
normally built with -fPIC. So that means building every object twice
which kind of breaks make's build model which has a simple dependency
graph where each object appears once. Some packages do this by
inventing a foo-shared.o and foo-static.o but that introduces its own
weirdness.
I don't know what the downsides would be of creating a static library
out of objects built with -fPIC. It might just be a small performance
penalty which might be no big deal for libpq. That may be a good
compromise.
--
greg
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2017-07-12 23:02:41 | Re: building libpq.a static library |
Previous Message | Alvaro Herrera | 2017-07-12 22:48:28 | Re: More race conditions in logical replication |