From kde-devel Wed Jan 30 19:46:20 2002 From: Robert Boehne Date: Wed, 30 Jan 2002 19:46:20 +0000 To: kde-devel Subject: Re: Shared libraries management in Linux X-MARC-Message: https://marc.info/?l=kde-devel&m=101242007010714 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 > Libtool@gnu.org > 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: rboehne@ricardo-us.com >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<