История изменений
Исправление wandrien, (текущая версия) :
Конечно, не уверен :) вот и поспрашиваю народ
Смотри, как всё это работает при линковке:
- Программа хочет линковаться с libcurl. Она юзает при вызове линковщика (или gcc) флаг
-lcurl
. - Линковщик находит
libcurl.so
. - Этот
libcurl.so
на самом деле линк наlibcurl.so.4.8.0
. Линковщику на это пофиг. Он просто читает этот elf и задаёт вопрос: «какой у тебя soname?» - В
libcurl.so.4.8.0
указано, что soname у негоlibcurl.so.4
. Именно это является названием данного ABI. - Линковщик берёт указанное имя
libcurl.so.4
и зашивает его в таблицу needed собираемого бинаря.
Как видишь, места особо разгуляться тут нет. Ты либо меняешь soname в самой либе (можно тем же самым patchelf), либо патчишь бинарь после сборки, как сделал выше.
Исправление wandrien, :
Конечно, не уверен :) вот и поспрашиваю народ
Смотри, как всё это работает при линковке:
- Программа хочет линковать с libcurl. Она юзает при вызове линковщика (или gcc) флаг
-lcurl
. - Линковщик находит
libcurl.so
. - Этот
libcurl.so
на самом деле линк наlibcurl.so.4.8.0
. Линковщику на это пофиг. Он просто читает этот elf и задаёт вопрос: «какой у тебя soname?» - В
libcurl.so.4.8.0
указано, что soname у негоlibcurl.so.4
. Именно это является названием данного ABI. - Линковщик берёт указанное имя
libcurl.so.4
и зашивает его в таблицу needed собираемого бинаря.
Как видишь, места особо разгуляться тут нет. Ты либо меняешь soname в самой либе (можно тем же самым patchelf), либо патчишь бинарь после сборки, как сделал выше.
Исправление wandrien, :
Конечно, не уверен :) вот и поспрашиваю народ
Смотри, как всё это работает при линковке:
- Программа хочет линковать с libcurl. Она юзает при вызове линковщика (или gcc) флаг
-lcurl
. - Линковщик находит
libcurl.so
. - Этот
libcurl.so
на самом деле линк наlibcurl.so.4.8.0
. Линковщику на это пофиг. Он просто читает этот elf и задаёт вопрос: «какой у тебя soname?» - В
libcurl.so.4.8.0
указано, что soname у негоlibcurl.so.4
. Именно это является названием данного ABI. - Линковщик берёт указанное имя
libcurl.so.4
и зашивает его в таблицу needed собираемого бинаря.
Как видишь, места особо разгуляться тут нет. Ты либо меняешь soname в самой либо (можно тем же самым patchelf), либо патчишь бинарь после сборки, как сделал выше.
Исходная версия wandrien, :
Конечно, не уверен :) вот и поспрашиваю народ
Смотри, как всё это работает при линковке:
- Программа хочет линковать с libcurl. Она юзает при вызове линковщика (или gcc) флаг
-lcurl
. - Линковщик находит
libcurl.so
. - Этот
libcurl.so
на самом деле линкlibcurl.so.4.8.0
. Линковщику на это пофиг. Он просто читает этот elf и задаёт вопрос: «какой у тебя soname?» - В
libcurl.so.4.8.0
указано, что soname у негоlibcurl.so.4
. Именно это является названием данного ABI. - Линковщик берёт указанное имя
libcurl.so.4
и зашивает его в таблицу needed собираемого бинаря.
Как видишь, места особо разгуляться тут нет. Ты либо меняешь soname в самой либо (можно тем же самым patchelf), либо патчишь бинарь после сборки, как сделал выше.