llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
27.91k stars 11.52k forks source link

libomp doesn't set SOVERSION #32651

Open llvmbot opened 7 years ago

llvmbot commented 7 years ago
Bugzilla Link 33304
Version unspecified
OS Linux
Reporter LLVM Bugzilla Contributor
CC @hahnjo,@hfinkel

Extended Description

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).

hahnjo commented 6 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?)...