[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Shared libraries management in Linux
From: |
Robert Boehne |
Subject: |
Re: Shared libraries management in Linux |
Date: |
Wed, 30 Jan 2002 13:46:20 -0600 |
Denis:
I don't think your question is relevant to the Libtool
mailing list. What you are asking for is a "configure"
script that will create Makefiles and (config) headers
that are independent of compiler, which is not what
Autoconf is designed to do.
Robert
Denis Vlasenko wrote:
>
> Hi,
>
> I wanted to play a little with KDE 2.2.2 source and had problems with shared
> libraries. I had similar problems before and worked around them.
>
> Now I decided to sort it out once and for all.
>
> Problem description:
>
> Long ago I compiled GCC 3.0.1 from sources and put it all in /usr/lib/gcc301.
>
> After some time I decided that using /usr/lib for installed packages is not
> ok: it is for libraries only. I want to get rid of dual-purpose dirs.
> So I started to put newly compiled packages under /usr/app. I specify all
> target directories during configure to point to /usr/app/coolpackage-1.2.3
>
> In order to make binaries, man pages etc easily accessible I decided to
> symlink all relevant files (via shell script):
> /usr/bin/xyzzy -> /usr/app/coolpackage-1.2.3/bin/xyzzy
> /usr/man/man8/xyzzy.8.man -> /usr/app/coolpackage-1.2.3/man/man8/xyzzy8.man
> /usr/lib/xyzzy.so -> /usr/app/coolpackage-1.2.3/lib/xyzzy.so
>
> However, authors of those packages don't know of my cool scheme and devise
> their own means to preserve knowledge of where package was installed.
> I thought it won't mess up but it did. Please read on.
>
> I compiled KDE 2.2.2 from sources, targeting it to /usr/app/kde-2.2.2
> It went mostly fine (minor compilations problems).
>
> Then I compiled new GCC 3.0.3 to get rid of kernel miscompilation problem
> (GCC bug). Targeted to /usr/app/gcc-3.0.3. This went fine too.
>
> Now I modified some KDE sources and typed 'make'. *Gotcha*! KDE remembers
> that it was compiled with GCC 3.0.1 and wants some libraries from
> /usr/lib/gcc301/lib/*. These libraries *is* available from newer GCC 3.0.3
> and even present in /usr/lib (in the form of symlinks to
> /usr/app/gcc-3.0.3/lib/*) but this is not enough.
>
> I can work around this. But I _don't want_ to. I want to do it _right_.
> I don't want to needlessly recompile packages like KDE when I upgrade
> compiler to next minor release. Or when I upgrade audiofile.
> 'Faking' /usr/lib/gcc301/lib/xxx/yyy/zzz is out of the question too.
>
> It seems to be that library management in Linux either isn't standardized of
> too weird for me to understand it. I am very willing to RTFM if it exist.
>
> I'd be immensely grateful if someone would tell me how to manage libraries
> right. For example, tell me how you do it if your method does not involve
> ugly workarounds.
>
> PS. What's in those .la files in kde/lib/* dir? Why does kde insist on
> remembering where dependent libraries are? Is that a part of a problem?
> --
> vda
>
> _______________________________________________
> Libtool mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/libtool
--
Robert Boehne Software Engineer
Ricardo Software Chicago Technical Center
TEL: (630)789-0003 x. 238
FAX: (630)789-0127
email: address@hidden