Thread: Shared library conflicts

Shared library conflicts

From
Thomas Hallgren
Date:
There was a discussion some time back concerning the linking of the 
postgres backend. Some libraries where linked although they where not 
needed, mainly because it was convenient. I had a problem with PL/Java 
since a Sun JVM ships with their own version of libz.so (they call it 
libzip.so). Sun fixed the problem, simply by adding a namespace to all 
functions in their own library so I didn't stress the issue any further. 
Now this bites me again. Sun forgot to remove the old functions in their 
libzip.so on the amd64 platform.

I have of course reported this to Sun and I expect it to be fixed in 
future releases of Java but shouldn't this be fixed for PostgreSQL too? 
Perhaps we should consider this a more generic problem. The more 
libraries that are linked with the backend, the greater the risk that 
add-on modules will run into conflicts. What effort would be involved to 
fix this once and for all?

Another related question. What happens when I use --without-zlib? Does 
it have any effect on besides disabling compression for the dump/restore 
utilities? Is there anyway to make it affect the backend only?

Kind Regards,
Thomas Hallgren



Re: Shared library conflicts

From
"William ZHANG"
Date:
"Thomas Hallgren" <thomas@tada.se>
>
> Another related question. What happens when I use --without-zlib? Does it 
> have any effect on besides disabling compression for the dump/restore 
> utilities? Is there anyway to make it affect the backend only?

--without-zlib will affected LIBS and HAVE_LIBZ defined in configure.
I searched HAVE_LIBZ in the source code, and find only pg_dump use it.
I think we can change LIBS to not include "-lz" in configure, and add "-lz"
for pg_dump in its Makefile.

With regards,
William ZHANG

>
> Kind Regards,
> Thomas Hallgren
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
>               http://archives.postgresql.org
> 




Re: Shared library conflicts

From
Martijn van Oosterhout
Date:
On Fri, Jun 23, 2006 at 10:45:29AM +0200, Thomas Hallgren wrote:
> There was a discussion some time back concerning the linking of the
> postgres backend. Some libraries where linked although they where not
> needed, mainly because it was convenient.

AIUI, this was fixed in -HEAD. In the Makefile there's a filter command
to strip libraries not needed. One of them is libz.

From src/backend/Makefile:
# The backend doesn't need everything that's in LIBS, however
LIBS := $(filter-out -lz -lreadline -ledit -ltermcap -lncurses -lcurses, $(LIBS))

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Re: Shared library conflicts

From
Thomas Hallgren
Date:
That's good news. Any chance of getting this fix backported to 8.1? Or 
at least, the libz part of it?

Regards,
Thomas Hallgren


Martijn van Oosterhout wrote:
> On Fri, Jun 23, 2006 at 10:45:29AM +0200, Thomas Hallgren wrote:
>   
>> There was a discussion some time back concerning the linking of the 
>> postgres backend. Some libraries where linked although they where not 
>> needed, mainly because it was convenient.
>>     
>
> AIUI, this was fixed in -HEAD. In the Makefile there's a filter command
> to strip libraries not needed. One of them is libz.
>
> From src/backend/Makefile:
> # The backend doesn't need everything that's in LIBS, however
> LIBS := $(filter-out -lz -lreadline -ledit -ltermcap -lncurses -lcurses, $(LIBS))
>
> Have a nice day,
>