Re: Recompiling/relinking dependent applications/libraries on DSO change

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

 



On Fri, Jul 28, 2017 at 01:39:50PM +0200, Florian Weimer wrote:
> binutils 2.29 introduced an optimization which requires that in the
> general case, applications and libraries linking against a DSO will have
> to be rebuilt when the DSO change the implementation of functions (i.e.,
> changes to a function body can change ABI).  This is how many native
> programming languages (such as Ada, Haskell/GHC, Go, Rust) handle DSOs,
> but it's a material change for C and C++.
> 
> The question is: Do we want to move into that direction, or do we need
> to ask binutils upstream to back out this change?

I think you summed up the proper response in your reply here:

  https://sourceware.org/ml/libc-alpha/2017-07/msg00974.html

"Ugh."

OCaml does cross-module function inlining.  It's a nice feature for
getting fast code, but from a packaging perspective it means you have
to rebuild the world every time a dependent library changes even
internally, and that's not nice.  It's only really possible for Fedora
because there are fewer than 100 packages.

Also as Dan mentioned, libvirt.so offers a stable ABI so existing
binaries must continue to work.  Avoiding use of globals in any future
libvirt (transitively if functions are called or inlined within the
DSO?) doesn't sound like it would be possible in general, or pleasant
if it is possible.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux