libtool-patches
[Top][All Lists]
Advanced

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

Re: MirBSD support and a question


From: Ralf Wildenhues
Subject: Re: MirBSD support and a question
Date: Thu, 3 Feb 2011 22:04:19 +0100
User-agent: Mutt/1.5.20 (2010-08-04)

Hello Benny,

first off, thanks for your patch, and sorry for the delay.

* Benny Siegert wrote on Sat, Jan 29, 2011 at 04:50:04PM CET:
> I would like to add MirBSD support to upstream libtool. MirBSD (or
> MirOS BSD) is an OS derived from OpenBSD. I want to use
> version_type=linux instead of sunos because it works much better,
> from several years experience with our own patched version of
> libtool 1.5.

Do I understand correctly that your patched libtool used in MirBSD also
uses version_type=linux?

Are there users out there who use some libtool on MirBSD that uses a
different version_type?  This is very important to know, as when we add
support, for they might need a flag day when their old libraries and
programs start breaking.

> A notable idiosyncrasy of our runtime linker is that shared
> libraries _must_ have a two-digit version (libfoo.so.0.0 for
> example) to be able to link against them. In the attached patch, I
> solved it like this:
> 
> library_names_spec='${libname}${release}${shared_ext}${major}.${age}
> ${libname}${shared_ext}${major}.${age}'
> 
> Is this okay or should it be done differently?

Well, that's really hard to answer without knowing the exact semantics of
your link editor and runtime linker.  What gets encoded as DT_SONAME,
and as DT_NEEDED?  How are symlinks set usually, if any?  Does the
runtime linker consider libraries with some sets of numbers as
compatible upgrades (like GNU ld.so does), and if so, how is the
encoding of the numbers?  Which numbers are allowed where (zero or only
greater ones)?

> However, there is one case where this breaks: When a -release is
> given but no -version-info, the $major variable is reset. In
> ltmain.m4sh, line 6705, $major is reset to an empty string:
> 
>         # Clear the version info if we defaulted, and they specified
> a release.
>         if test -z "$vinfo" && test -n "$release"; then
>           major=
> 
> Why is this so? Can this line be safely removed?

I don't think it can.  Don't you just need to set need_version=yes?
See the dozen or so lines below this.


Other than the points above, your patch looks ok to me.  It still needs
a proper ChangeLog entry and a NEWS entry, but we can write that.  Do
you mind being added to THANKS?

Thanks,
Ralf



reply via email to

[Prev in Thread] Current Thread [Next in Thread]