Заменить / переопределить статически связанную библиотеку
У меня есть объектный файл - foo.so
- предоставлено продавцом. Этот объектный файл был статически связан с общедоступной библиотекой - bar_1.0.a
, Появилась новая версия библиотеки bar_1.1.a
это исправляет критическую ошибку, но поставщик не предоставляет новую версию foo.so
, поэтому я не могу воспользоваться исправлением ошибки.
Потому что у меня нет доступа к исходному коду foo.so
Не могу перекомпилировать против новой версии bar
, У меня есть доступ к исходному коду для bar
так что я могу построить это по желанию. Символы в bar
не изменились между 1.0 и 1.1, только некоторые реализации.
Хотелось бы узнать, есть ли способ заменить / переопределить статически связанный bar_1.0.a
библиотека в foo.so
с bar_1.1.a
не имея доступа к исходному коду foo.so
, Или, если это невозможно, могу ли я как-то заставить foo.so
динамически связываться с bar_1.1.so
хотя это статически связано с bar_1.0.a
?
Я знаю что есть разные LD_*
Переменные окружения, которые влияют на динамическое связывание, но я не верю, что это поможет в этом случае.