El 28/1/25 a les 9:53, 'Oleh Derevenko' via ode-users ha escrit:
> If you want to compare, you need to check out the header files from the
> old release you had, checkout the headers from this new release into
> another folder, and then perform file by file comparison to see what
> declarations were added/removed and if these changes would preserve
> compatibility.
Done!!!
I have used abidiff and although it shows removed functions, all are not
exposed public, so I guess it is compatible.
Leopold
--------------------------------------------------------------------
abidiff --drop-private-types --debug-info-dir1 8/usr/lib/debug/
--debug-info-dir2 n/usr/lib/debug/ --headers-dir1 8/usr/include/ode/
--headers-dir2 n/usr/include/ode/
8/usr/lib/x86_64-linux-gnu/libode.so.8.0.2
n/usr/lib/x86_64-linux-gnu/libode.so.8.2.0
Functions changes summary: 10 Removed (2 filtered out), 1 Changed (197
filtered out), 12 Added (2 filtered out) functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
10 Removed functions:
[D] 'function void compute_invM_JT<8>(volatile odeou::atomicord32*,
dReal*, unsigned int, const dReal*, const dxJBodiesItem*, dxBody*
const*, const dReal*)'
{_Z15compute_invM_JTILj8EEvPVjPdjPKdPK13dxJBodiesItemPKP6dxBodyS4_}
[D] 'method bool dxCondvarWakeup::MarkSignaledAllWaiters()'
{_ZN15dxCondvarWakeup22MarkSignaledAllWaitersEv}
[D] 'method bool dxCondvarWakeup::MarkSignaledAllWaitersMeaningful()'
{_ZN15dxCondvarWakeup32MarkSignaledAllWaitersMeaningfulEPNS_12dxWaiterInfoE}
[D] 'method bool dxCondvarWakeup::MarkSignaledFirstWaiter()'
{_ZN15dxCondvarWakeup23MarkSignaledFirstWaiterEv}
[D] 'method bool
dxCondvarWakeup::MarkSignaledFirstWaiterMeaningful()'
{_ZN15dxCondvarWakeup33MarkSignaledFirstWaiterMeaningfulEPNS_12dxWaiterInfoE}
[D] 'method void
dxCondvarWakeup::RegisterWaiterInList(dxCondvarWakeup::dxWaiterInfo*)'
{_ZN15dxCondvarWakeup20RegisterWaiterInListEPNS_12dxWaiterInfoE}
[D] 'method void
dxCondvarWakeup::UnregisterWaiterFromList(dxCondvarWakeup::dxWaiterInfo*)'
{_ZN15dxCondvarWakeup24UnregisterWaiterFromListEPNS_12dxWaiterInfoE}
[D] 'function unsigned int dxEstimateQuickStepMaxCallCount(unsigned
int, unsigned int)' {_Z31dxEstimateQuickStepMaxCallCountjj}
[D] 'function unsigned int dxEstimateStepMaxCallCount(unsigned int,
unsigned int)' {_Z26dxEstimateStepMaxCallCountjj}
[D] 'function bool dxProcessIslands(dxWorld*, const
dxWorldProcessIslandsInfo&, dReal, dstepper_fn_t,
dmaxcallcountestimate_fn_t)'
{_Z16dxProcessIslandsP7dxWorldRK25dxWorldProcessIslandsInfodPFvPK30dxStepperProcessingCallContextEPFjjjE}
12 Added functions:
[A] 'function void compute_invM_JT<21>(volatile odeou::atomicord32*,
dReal*, unsigned int, const dReal*, const dxJBodiesItem*, dxBody*
const*, const dReal*)'
{_Z15compute_invM_JTILj21EEvPVjPdjPKdPK13dxJBodiesItemPKP6dxBodyS4_}
[A] 'function void dJointAddPUTorques(dJointID, dReal, dReal)'
{dJointAddPUTorques}
[A] 'function void dWorldGetSteppingThreadingParameters(dWorldID,
dWorldSteppingThreadingParameters*)'
{dWorldGetSteppingThreadingParameters}
[A] 'function void dWorldSetSteppingThreadingParameters(dWorldID,
const dWorldSteppingThreadingParameters*)'
{dWorldSetSteppingThreadingParameters}
[A] 'method void dxCondvarWakeup::RegisterWaiterInList()'
{_ZN15dxCondvarWakeup20RegisterWaiterInListEv}
[A] 'method void dxCondvarWakeup::UnregisterWaiterFromList(bool)'
{_ZN15dxCondvarWakeup24UnregisterWaiterFromListEb}
[A] 'function unsigned int dxEstimateQuickStepMaxCallCount(unsigned
int, unsigned int, unsigned int)'
{_Z31dxEstimateQuickStepMaxCallCountjjj}
[A] 'function unsigned int dxEstimateStepMaxCallCount(unsigned int,
unsigned int, unsigned int)' {_Z26dxEstimateStepMaxCallCountjjj}
[A] 'method void dxJointUniversal::buildFirstBodyTorqueVector(dReal*,
dReal, dReal)' {_ZN16dxJointUniversal26buildFirstBodyTorqueVectorEPddd}
[A] 'function bool dxProcessIslands(dxWorld*, const
dxWorldProcessIslandsInfo&, dReal, dstepper_fn_t,
dmaxcallcountestimate_fn_t)'
{_Z16dxProcessIslandsP7dxWorldRK25dxWorldProcessIslandsInfodPFvPK30dxStepperProcessingCallContextEPFjjjjE}
[A] 'method void dxtemplateJobListThreadedHandler<dxCondvarWakeup,
dxtemplateJobListContainer<dxtemplateThreadedLull<dxCondvarWakeup,
dxOUAtomicsProvider, false>, dxMutexMutex, dxOUAtomicsProvider>
>::ActivateAnIdleThread()'
{_ZN32dxtemplateJobListThreadedHandlerI15dxCondvarWakeup26dxtemplateJobListContainerI22dxtemplateThreadedLullIS0_19dxOUAtomicsProviderLb0EE12dxMutexMutexS3_EE20ActivateAnIdleThreadEv}
[A] 'method void dxtemplateJobListThreadedHandler<dxCondvarWakeup,
dxtemplateJobListContainer<dxtemplateThreadedLull<dxCondvarWakeup,
dxOUAtomicsProvider, false>, dxMutexMutex, dxOUAtomicsProvider>
>::PerformJobProcessingSession()'
{_ZN32dxtemplateJobListThreadedHandlerI15dxCondvarWakeup26dxtemplateJobListContainerI22dxtemplateThreadedLullIS0_19dxOUAtomicsProviderLb0EE12dxMutexMutexS3_EE27PerformJobProcessingSessionEv}
1 function with some indirect sub-type change:
[C] 'function void addObjectToList(dObject*, dObject**)' at
ode.cpp:52:1 has some indirect sub-type changes:
parameter 1 of type 'dObject*' has sub-type changes:
in pointed to type 'struct dObject' at objects.h:72:1:
type size hasn't changed
no member function changes (3 filtered);
1 data member changes (2 filtered):
type of 'dxWorld* world' changed:
in pointed to type 'struct dxWorld' at objects.h:165:1:
type size changed from 1920 to 1984 (in bits)
no member function changes (4 filtered);
2 data member insertions:
'unsigned int stepping_max_threads', at offset 1216 (in
bits) at objects.h:175:1
'unsigned int solving_max_threads', at offset 1248 (in
bits) at objects.h:176:1
7 data member changes:
type of 'dxBody* firstbody' changed:
in pointed to type 'struct dxBody' at objects.h:135:1:
type size hasn't changed
1 base class change:
'struct dObject' at objects.h:72:1 changed:
details are being reported
'dxStepWorkingMemory* wmem' offset changed from 1216 to
1280 (in bits) (by +64 bits)
'dxQuickStepParameters qs' offset changed from 1280 to
1344 (in bits) (by +64 bits)
'dxContactParameters contactp' offset changed from 1408
to 1472 (in bits) (by +64 bits)
'dxDampingParameters dampingp' offset changed from 1536
to 1600 (in bits) (by +64 bits)
'dReal max_angular_speed' offset changed from 1792 to
1856 (in bits) (by +64 bits)
'void* userdata' offset changed from 1856 to 1920 (in
bits) (by +64 bits)