> There was an accidental ABI breakage a while ago
> And I thought that bumping to libtesseract4 was the right thing to do

...

<juliank> The important question is: How did this ABI break happen?
Upstream change or only an effect of the C++ transition?
> I had been assuming upstream change
> But actually I'm not sure how to tell
<olly> well, the symbol demangles to
tesseract::TessBaseAPI::AnalyseLayout() so look and see if there's anything
changed there between the versions

...

<juliank> jbreiden: Wait a mo. The problem is far easier to solve
<juliank> Just move the body from  "PageIterator* AnalyseLayout() {
<juliank>  +    return AnalyseLayout(false);
<juliank>  +  }" from the header into the .cpp
<juliank> this function was accidentally inlined in the refactoring
<juliank> then you should have the old ABI again
<bremner> but incompatible with upstream
<juliank> Well, it is a change that can be done upstream
<juliank> All old code continues working
<juliank> even code built against the broken version, as those have that
function inlined

...

> Okay, I'll try it. I'll call the resulting package libtesseract3.
<juliank> Yes, then you could just rename it back entirely and all trouble
is gone
> Do I need to do something special to get rid of libtesseract4?
<olly> that's certainly the cleanest solution you could hope for
<juliank> jbreiden: You could break/replace that. not sure if worth the
trouble

Reply via email to