Bill Allombert on Mon, 2 Jun 2003 20:50:49 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: . in the library path


On Mon, Jun 02, 2003 at 02:05:24PM -0400, Igor Schein wrote:
> Hi,
> 
> I noticed that during the configure stage when locatelib searches the
> path to locate a shared library, '.' is relative to config directory,
> while during the linking stage, it's relative to Oxxx-xxx directory.
> This inconsistency comes into play when you try to build on a machine
> which 
> 
> a) is missing some shared library links on which pari (unfortunately,
> IMO) relies

I do not understand. PARI/GP should build fine without readline/X11
etc... Is there a Configure bug ?

> b) you don't have root access on 
> c) you don't want ( for whatever reason ) to recompile readline and ncurses 
> 
> Here're the steps I had to do on a SuSe machine which satisfies all 3
> conditions above:
> 
> % ln -s /lib/libncurses.so.5.2 config/libncurses.so
> % ln -s /lib/libreadline.so.4.3 config/libreadline.so
> % env CC="gcc -L../config" ./Configure --with-readline-include=/tmp/readline-4.3
> 
> I still had to download the readline distribution for include files
> 
> So this additional -L../config is the hack which was needed.
> 
> Any comment?  Any cleaner solutions?

Use an absolute path! Relying on relative path is seldom safe.

dpkg allow to extract .deb packages in a directory.
So I unpack libreadline-dev in $HOME/deb and then use
./Configure --with-readline=$HOME/deb/usr

This works also for libreadline, if librealine is not installed.

I suppose rpm has similar feature (--prefix ?).

Cheers,
Bill.