Open Quuxplusone opened 7 years ago
From my understanding, libomp will always stay binary compatible. If we need new functionality, existing bitfields will be extended (assuming the old default) or this will be done in new entry points (that may internally map to the same code with old defaults). So we shouldn't need this from a library perspective, correct?
We could still add an SOVERSION and never increase it, ie live with libomp.so.1 for eternity. I'd say we should only do this if we get packaging errors, warnings can be safely ignored (maybe even disabled for this package?)...
The cmake files for libomp don't set the SOVERSION property, causing a "libomp.so" without version info (expected: libomp.so.1 or similar) in the name to be built.
The problem with this is that it makes it hard to keep legacy binaries working when the ABI changes incompatibly (where e.g. libomp.so.1 could continue to be OpenMP 3.0 while libomp.so.2 is OpenMP 5.0).
It also triggers warnings about nonstandard behavior with some Linux package checkers (e.g. rpmlint).