Ну, первый вопрос: как вы сгенерировали приведенный выше список?
Можно предположить, что компилятор является детерминированным и, таким образом, связывает двоичные файлы одинаково.
Полагаю, я получил оценку за то, что не ответил на вопрос напрямую, но комментарий был бы хорош. Но я все еще думаю, что вы не предоставили правильную информацию, и было бы неплохо увидеть вывод команды, которая показывает вашу проблему.
Предполагается, что вы использовали ldd:
Вы бы получили вывод, который выглядел так:
lib<X>.so.<ver> => /usr/lib/lib<X>.so.<verM> (<Addr>)
Но это не конец истории.
Попытка выполнить ls для файла может быть символической ссылкой
> ls /usr/lilb/lib<X>.so.<verM>
lrwxrwxrwx 1 root root <Date> /usr/lib/lib<X>.so.<verM> -> lib<X>.so.<verM>.<verm>.<verp>