Libtool and Support for Shared Libraries (3)

Дилян Палаузов dilyan.palauzov at
Thu May 31 12:25:38 EDT 2012


to sum up the issues with Libtool:

- the perl shared objects and do not contain 
Library rpath on Greg's computer, but have it on mine.  I have not 
checked the details, but I think on my computer -rpath comes from the 
fact, that to build LDFLAGS the file is considered (when I 
configure with BDB support), the file contains libdir="/usr/lib64" and 
this leads to "-Wl,-rpath,/usr/lib64" in LDFLAGS.  At the same time, 
Automake includes automatically "_rpath = -rpath $(libdir)" variables 
(at least with --enable-sieve for libsieve, and with --enable-server for 
libimap, unconditionally for libcyrus_min and libcyrus, and when the 
bundled libcom_err is used, it is also linked with -rpath $(libdir)). 
However the cyrus-libraries are installed in $(libdir), and not 
/usr/cyrus/lib, because we want them to be on a standard location, which 
is considered by the dynamic loader, and are in ldconfig's path.  So 
what is the problem, when the perl shared objects do not contain -rpath? 
  I think the other executables shall also not contain it.

- "make install DISTDIR=" causes warnings from libtool, that state, that 
the libraries are not installed on the place they are intended to be 
installed (as configured) and the executables are not going to work (as 
they will not be able to find the libraries under the DESTDIR= root). 
This warning gives right information, on the other side Greg says, that 
the "make install DISTDIR=" is a normal process that shall not lead to 
warnings.  I asked at libtool-bug at , but I if they do not answer, 
I can't say anything more about this.

Apart from the suboptimal building of the perl parl, which was 
suboptimal before, and is even more suboptimal now, I think that are all 
points with libtool/shared libraries.

As the shared libraries were not discussed, is somebody against using 
shared libraries with cyrus-imapd 2.5 / merging the dev/libtool branch?

Със здраве

On 30.05.2012 12:26, Jeroen van Meeuwen (Kolab Systems) wrote:
> On 2012-05-29 1:25, Greg Banks wrote:
>> On Mon, May 28, 2012, at 09:33 PM, Dilyan Palauzov wrote:
>>> >> [...]probably using make install DESTDIR= with
>>> >> libtool is either wrong or implemented/handled wrong in
>>> Automake/libtool.
>>> >
>>> > Well, that sucks.
>>> Why do not you use ./configure --prefix=$(DESTDIR), so that make
>>> install DESTDIR=somewhere is not necessary? To my understanding
>>> installing in DESTDIR is used to create packages,
>> So we now generate dozens of warnings when doing a straightforward,
>> entirely normal, and unavoidable step in the packaging process? I don't
>> see how that's acceptable.
> While of course in my realm of packaging, I could use ./configure, what
> I actually use is %configure. It expands to a predefined set of standard
> configure options such as --prefix=/usr, --libdir=/usr/lib64, etc, along
> with first exporting a bunch of variables.
> When the make install DESTDIR=/some/where is issued, we point it to the
> root directory of a buildroot (%{buildroot}) and expect the other
> ./configure options to kick in so that everything is still finally
> placed in the correct directories (i.e.%{buildroot}etc/ for
> --sysconfdir=%{_sysconfdir}, %{buildroot}usr/lib64 for
> --libdir=%{_libdir}, etc. exec dir, libexec dir, ...) for which, if the
> prefix were to be set to the buildroot root directory, we would need to
> add the options for all the other --*dir= configure options as well.
> Kind regards,
> Jeroen van Meeuwen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dilyan_palauzov.vcf
Type: text/x-vcard
Size: 380 bytes
Desc: not available
Url : 

More information about the Cyrus-devel mailing list