Re: dependency on 32 bit libpq.so on 64 bit Postgres server.

From: "surabhi(dot)ahuja" <surabhi(dot)ahuja(at)iiitb(dot)ac(dot)in>
To: "Albe Laurenz" <all(at)adv(dot)magwien(dot)gv(dot)at>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: dependency on 32 bit libpq.so on 64 bit Postgres server.
Date: 2006-11-17 08:49:35
Message-ID: 8626C1B7EB748940BCDD7596134632BE3986B7@jal.iiitb.ac.in
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

hi,

let me explain with an example
say i have a 32 bit exceutable called Installer

it dynamically links to 4 libraries which are called:
libdbx1, it is dependent on (ROOT)/postgres/arch/$(ARCH)d/lib -lpq (specified in the makefile)
libdbx2, it is also dependent on (ROOT)/postgres/arch/$(ARCH)d/lib -lpq (specified in the makefile)
libdbx3
libdbx4

the above directory (ROOT)/postgres/arch/$(ARCH)d/lib

has libpq.so which i got by installing the 32 bit Postgres 8.1.5 on fc4
its sixe is : 116532

now i put these 4 libs and the exe in the target mach
and i run the executable Installer

the traget m/c is FC4 has Postgres 8.1.5 installed which is 64 bit

so it has libpq.so.4 and libpq.so.4.1 in /usr/lib64/ of that machine.

rwxrwxrwx 1 root root 12 Nov 16 15:11 libpq.so.4 -> libpq.so.4.1*
-rwxr-xr-x 1 root root 135960 Nov 16 00:30 libpq.so.4.1*

so when i run the exe it gives me this error:

| 2006-11-17 13:56:18.085 | 5659:1436573184 | DMF | 0 | ERROR | error(at)dmf | DMFConcreteRepositoryCreatorFactory.cxx:77 | Can
not find library for dbexpress: libpq.so.4: cannot open shared object file: No such file or directory
| 2006-11-17 13:56:18.085 | 5659:1436573184 | DMF | 0 | ERROR | error(at)dmf | DMFConcreteRepositoryCreatorFactory.cxx:122 | Un
known repository: dbexpress

thanks

regards

Surabhi

________________________________

From: Albe Laurenz [mailto:all(at)adv(dot)magwien(dot)gv(dot)at]
Sent: Thu 11/16/2006 2:54 PM
To: surabhi.ahuja; pgsql-general(at)postgresql(dot)org
Subject: RE: [GENERAL] dependency on 32 bit libpq.so on 64 bit Postgres server.

> I have downloaded Postgres 8.1.4 for FC4 x86_64 bit arch.
> and installed on my m/c
>
> Earlier this machine had Postgres 8.0.0. However that time It
> was the normal 32 bit server.
>
> I build my project (which has dependency on libpq.so)
> and so i have the libraries which i copy onto the above machine.
>
> The client application then dynamically links to these libraries.
>
> However now (after upgrading Postgres server) i get this error:
>
> | 2006-11-16 10:41:50.045 | 21532:1436573184 | DMF | 0 |
> ERROR | error(at)dmf | DMFConcreteRepositoryCreatorFactory.cxx:77 | Ca
> nnot find library for dbexpress: libpq.so.3: cannot open
> shared object file: No such file or directory
>
> my team has decided that we ll keep the Postgres server as a
> 64 bit server.
> But the libraries and binaries should be 32 bit ones only.
>
> I will have to rebuild my project , this time the libpq.so
> that i use will be for Postgres 8.1.4 FC 4.
> But please tell me , if i should have the 64 bit libpq.so or
> the 32 bit one.
>
> Please help solve my confusion.

I cannot quite follow, but I think I can still help you.

It depends on the executable that is linked with PostgreSQL.

If you have a 64-bit executable that loads libpq.so, you will need
the 64-bit libpq.so; similar for 32-bit.

libpq.so is part of the client installation.
You can access a 64-bit server with a 32-bit client.

Does that answer your question?

Yours,
Laurenz Albe

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Albe Laurenz 2006-11-17 09:42:28 Re: dependency on 32 bit libpq.so on 64 bit Postgres server.
Previous Message Arnaud Lesauvage 2006-11-17 08:48:24 pg_dump : option --exclude-schema not recognized