Discussion:
[Scons-users] Replacement for SharedLibrarySignatureOverride
Andrew C. Morrow
2015-07-25 04:19:51 UTC
Permalink
This page
https://bitbucket.org/scons/scons/wiki/SharedLibrarySignatureOverride on
the SCons Wiki demonstrates one way to suppress unnecessary relinking when
a shared library dependency has been re-linked but has not actually changed
ABI.

However, the mechanism that it uses seems fragile and relies on some
deprecated SCons APIs like TargetSignatures.

I've just made available an attempt to write an updated Tool based on the
new 'abidw' utility associated with libabigail. The abidw utility writes
out an XML representation of the ABI of a shared library based on the DWARF
info in the library. The new Tool uses the MD5 hash of the abidw output as
the content signature for Nodes built with the SharedLibrary builder.

https://github.com/mongodb/mongo/blob/e9fc3c3ae2b83539d36856d2f1b5794019b6b41b/site_scons/site_tools/abilink.py

Thoughts on the approach or feedback on the implementation are very
welcome. I'm sure it can be improved.

Thanks,
Andrew
Andrew C. Morrow
2018-04-05 14:45:46 UTC
Permalink
Hi SCons Users -

Digging up this old thread to share that I've published a blog post on my
findings from trying to use libabigail to build a better
SharedLibrarySignatureOverride. If you are interested, you can find it here:

https://engineering.mongodb.com/post/pruning-dynamic-rebuilds-with-libabigail

Thanks,
Andrew


On Sat, Jul 25, 2015 at 12:19 AM, Andrew C. Morrow <
This page https://bitbucket.org/scons/scons/wiki/
SharedLibrarySignatureOverride on the SCons Wiki demonstrates one way to
suppress unnecessary relinking when a shared library dependency has been
re-linked but has not actually changed ABI.
However, the mechanism that it uses seems fragile and relies on some
deprecated SCons APIs like TargetSignatures.
I've just made available an attempt to write an updated Tool based on the
new 'abidw' utility associated with libabigail. The abidw utility writes
out an XML representation of the ABI of a shared library based on the DWARF
info in the library. The new Tool uses the MD5 hash of the abidw output as
the content signature for Nodes built with the SharedLibrary builder.
https://github.com/mongodb/mongo/blob/e9fc3c3ae2b83539d36856d2f1b579
4019b6b41b/site_scons/site_tools/abilink.py
Thoughts on the approach or feedback on the implementation are very
welcome. I'm sure it can be improved.
Thanks,
Andrew
Loading...