LLVM shared libraries and versioning

Dear developers,

In the course of evaluating the feasibility of performing a
post-release upgrade of our Fedora LLVM stack, it was pointed out that
most of the shared libraries have filenames that do not contain
version tags:


$ repoquery --provides llvm-libs.x86_64
config(llvm-libs) = 3.1-11.fc18
llvm-libs = 3.1-11.fc18
llvm-libs(x86-64) = 3.1-11.fc18

(namely, BugpointPasses.so, LLVMgold.so, libLTO, and libprofile_rt.so).

None of the libraries have DT_SONAME set, which is set by passing
- -soname to ld, and would help ensure that the correct shared library
is loaded at runtime.

Compare to, for example, libgcc:

✗ ls -l /usr/lib64/libgccpp.so.1*
lrwxrwxrwx. 1 root root 17 Oct 28 13:03 /usr/lib64/libgccpp.so.1 ->
- -rwxr-xr-x. 1 root root 6800 Jul 27 12:22 /usr/lib64/libgccpp.so.1.0.3

✗ objdump --private-headers /usr/lib64/libgccpp.so.1.0.3 | grep SONAME
  SONAME libgccpp.so.1

✗ ls -l /usr/lib64/libgcc_s*
- -rwxr-xr-x. 1 root root 91352 Nov 9 20:07
lrwxrwxrwx. 1 root root 28 Nov 12 08:24 /usr/lib64/libgcc_s.so.1 ->

✗ objdump --private-headers /usr/lib64/libgcc_s-4.7.2-20121109.so.1 |
  SONAME libgcc_s.so.1

This is probably too late to fix in upstream before 3.3 at the
earliest. We could change our Fedora packaging first, and then submit
the patches upstream, but it'd be useful to agree beforehand on what
version number to tag the libraries with. We could, of course, just
start with 0.0.0 so that whatever upstream choose to use later on will
have numbers higher than ours.


- --
Michel Alexandre Salim
Fedora Project Contributor: http://fedoraproject.org/

Email: salimma@fedoraproject.org | GPG key ID: A36A937A
Jabber: hircus@jabber.ccc.de | IRC: hircus@irc.freenode.net

() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments