[LLVMdev] Clarification on stable release shared object ABI compatibility

Tom Stellard tom at stellard.net
Tue Dec 2 10:08:51 PST 2014


On Tue, Dec 02, 2014 at 09:43:51AM -0800, Reid Kleckner wrote:
> 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.
> 

By new symbols, I just mean public symbols that an external application or
library may possibly use.

-Tom

> 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
> >



More information about the llvm-dev mailing list