[LLVMdev] Clarification on stable release shared object ABI compatibility

Reid Kleckner rnk at google.com
Tue Dec 2 09:43:51 PST 2014

Can you clarify what you mean by new symbols? Adding a private method to a
C++ class in a public header can add new symbols visible at the DSO level.

LLVM doesn't have a curated C++ interface, so pretty much any old patch
that adds functionality to a relatively internal class like AsmPrinter will
introduce new symbols.

Personally, I don't see any value in supporting downgrading from 3.5.1 so I
would go ahead and allow new symbols, regardless of whether they look
public or private.

On Tue, Dec 2, 2014 at 8:54 AM, Tom Stellard <tom at stellard.net> wrote:

> Hi,
> One issue that has come up in the process of merging patches to the 3.5
> branch is whether or not it is OK to add new symbols to 3.5.1 that
> weren't included in 3.5.0.
> My understanding is that if new symbols are added to 3.5.1, then
> programs built against 3.5.0 will still be able to link against 3.5.1,
> however programs built against 3.5.1 will fail to link against 3.5.0.
> My initial feeling is that we should not allow new symbols in 3.5.1,
> so that programs can downgrade from 3.5.1 to 3.5.0 without rebuilding,
> but I wanted to get more opinions on this.
> Thanks,
> Tom
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141202/58544d79/attachment.html>

More information about the llvm-dev mailing list