View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0033568 | Community | OCCT:Release | public | 2024-01-07 18:03 | 2024-01-19 17:21 |
Reporter | StefanBruens | Assigned To | bugmaster | ||
Priority | normal | Severity | major | ||
Status | closed | Resolution | won't fix | ||
Platform | Linux | OS | openSUSE Tumbleweed | ||
Product Version | 7.7.1 | ||||
Summary | 0033568: BIC Regression - exported symbol of XCAFDoc_ColorTool::GetColor(...) changed between 7.7.0 and 7.7.1 | ||||
Description | https://git.dev.opencascade.org/gitweb/?p=occt.git;a=commitdiff;h=47263fa6a30894e7175208183eaefb263057699d#patch4 The former const member functions have become static member functions. With this change, any application/library may refuse to start when built with OCC 7.7.0, but trying to link at runtime to OCC 7.7.1/7.7.2. See e.g. https://forum.freecad.org/viewtopic.php?t=77066 | ||||
Steps To Reproduce | Build e.g. netgen with OCC 7.7.0 Update shared libraries to OCC 7.7.1 or later -> application will refuse to start with an error like: /usr/lib64/netgen/libnglib.so: undefined symbol: _ZNK17XCAFDoc_ColorTool8GetColorERK9TDF_LabelR14Quantity_Color | ||||
Tags | No tags attached. | ||||
Test case number | |||||
|
@StefanBruens OCCT do not garantee binary compatibility. We ask you to full rebuild your application. |
|
Actually, OCCT claims binary compatibility for the same major.minor version. The BUILD_SOVERSION_NUMBERS is defaulted to "2", so the SOVERSION in the library only includes major and minor, but not micro version. ABI *must never* change for a given library name/version. |
|
Currently we can't resolve this issue. It is not possible to not change signature of functions and other stuff in OCCT. It is possible only in case if there is a special high level API wrapper, but it is not a current case. Ticket will be closed, because we can't fix it. We only be able to make changes into latest version for community (for technical support and development we create a separeted branch) |
|
Dear bugmaster, please close the issue. Not possible to fix. |
|
> It is not possible to not change signature of functions and other stuff in OCCT. In this case, incorrect - the signature could have been kept for the 7.7.x branch. There is no technical reason this has to be exported as a static method, even if the method only accesses static class data, i.e. no class members (i.e. behaves like a static method). On the call site, a dummy object can be used. Changing the function signature (which is definitely a good cleanup) should only have happened on the 7.8 branch. |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-01-07 18:03 | StefanBruens | New Issue | |
2024-01-07 18:03 | StefanBruens | Assigned To | => bugmaster |
2024-01-08 18:19 | dpasukhi | Note Added: 0114877 | |
2024-01-08 18:20 | dpasukhi | Assigned To | bugmaster => StefanBruens |
2024-01-08 18:20 | dpasukhi | Status | new => feedback |
2024-01-08 19:50 | StefanBruens | Note Added: 0114878 | |
2024-01-09 14:05 | dpasukhi | Note Added: 0114882 | |
2024-01-09 14:06 | dpasukhi | Assigned To | StefanBruens => bugmaster |
2024-01-09 14:06 | dpasukhi | Note Added: 0114883 | |
2024-01-09 14:57 | StefanBruens | Note Added: 0114884 | |
2024-01-19 17:21 | vglukhik | Status | feedback => closed |
2024-01-19 17:21 | vglukhik | Resolution | open => won't fix |