Não, não é necessário que as bibliotecas compartilhadas sejam uma distribuição cruzada compatível com ABI. Eu acho que é uma expectativa razoável, mas as quebras de ABI acontecem e você não pode confiar na compatibilidade ABI cegamente.
Um exemplo seria libstdc++
. No Ubuntu 16.04 (com o GCC 5) e no CentOS 7 (com o GCC 4.8), os respectivos so
s caem em lados opostos de um intervalo ABI . O software compilado no Ubuntu 16.04 com C ++, mas sem _GLIBCXX_USE_CXX11_ABI
set, não seria executado no CentOS 7. Eles ainda são libstc++.so.6
. As quebras de ABI também podem acontecer com patches de correção de bugs aplicados pelos mantenedores de distro, que normalmente não colidiriam com os números de versão principais so
para correções de bugs.