On 03/06/2014 05:32 AM, Ken Moffat wrote:
> On Thu, Mar 06, 2014 at 04:18:45AM +0100, Armin K. wrote:
>>
>> That's rather not correct.
>>
>> If a package a is dynamically linked to package b and package b gets
>> updated to new version that doesn't have an ABI break (soname in b v1.2
>> is same as in b v1.0, ie libb.so.1), you *don't* need to recompile
>> package a or anything else.
>>
>> In case of ABI break (b v1.4 has libb.so.2 and b v1.2 has libb.so.1),
>> only the packages that link against libb.so.1 have to be recompiled
>> against libb.so.2, NOTHING ELSE.
>>
>> In the gnutls case, you didn't need to recompile anything since there
>> was no ABI break (there was, but it was reverted since it was not
>> intentional).
>>
>> So even when you upgrade glibc from version 2.12 to version 2.19, you
>> don't need to rebuild anything, since libc.so.6 in 2.19 still exports
>> the same interfaces it did in 2.12 and also some aditional ones that got
>> introduced later, but they are not important since they are not used by
>> the software compiled against 2.12.
>>
>  That is a correct statement of how things ought to be.  But many
> developers are like me - we make mistakes.  For a distro which ships
> binaries, no big deal.  Similarly, fixing an existing BLFS-7.5 with
> latest gnutls works.
> 
>  But there have been many cases over the years where minor changes
> cause accidental breakage.  I'm thinking of changes to headers -
> those sorts of things only show up when building a fresh system.
> Based on your previous mail, I've moved gnutls, glib-networking, and
> their required/recommended dependencies, to _much_ earlier in my
> build so that I can hope to exercise most possible users.
> 
> ĸen
> 

I don't recall any major changes on this scale that could probably break
something. One of the examples might be Glibc 2.14 or upgrading between
major versions of gcc (4.6->4.7, 4.7->4.8).

Then again, when it comes to header changes it most likely results in an
ABI break too or simply removing deprecated functionality (yay ffmpeg),
so you have to rebuild one way or another. But then still, you only need
to rebuild what gets linked against the libraries. Exceptions are gcc
and glibc.

(As a side note, header change in readline might break a package or two
in BLFS).

-- 
Note: My last name is not Krejzi.
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to