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 |