The purpose of using static linking is to reduce dependencies to
shared-libraries (dependencies to different types and versions of Linux), so
an instance of postgreSQL, say built on Suse 9.0, would still work on
Mandrake 10.1. Yes it gets a bit bulky and have a number of disadvantages
over dynamic linking (on the plus side it would be a bit faster), however
the main motivater is binary portability.
Regards,
-metin
----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Metin Ozisik" <metin@evincetek.com>
Cc: <pgsql-sql@postgresql.org>
Sent: Friday, April 29, 2005 9:38 PM
Subject: Re: [SQL] Build issues: "-static" builds resulting initdb problems
> "Metin Ozisik" <metin@evincetek.com> writes:
>> Build time parameter: CFLAGS="-static" ./configure
>
> Is there a particular reason for you to be doing that?
>
>> creating conversions ... FATAL: could not load library =
>> "../ascii_and_misc.so": ../../ascii_and_misc.so: undefined symbol: =
>> pg_mic2ascii
>
> pg_mic2ascii is a function exported by the core backend. I suppose
> that "-static" is somehow suppressing the visibility of that symbol
> to the dynamically loaded library ascii_and_misc.so. I am not sure
> whether this indicates a dynamic loader bug, or whether it's a case
> of "so don't do that then" ... but in any case I don't think it's
> a Postgres bug.
>
> regards, tom lane