Я хочу скомпилировать/ссылку на новую версию Solaris (libc.so SUNW_1.22.6) для системы со старым Solaris (libc.so SUNW_1.22.4). Как я могу указать, что компоновщик (в новой версии) должен построить двоичный файл, который использует более старый (1.22.4) libc.so?ссылка со студии solaris на конкретную версию libc.so
ответ
Не вызывайте никаких функций, не входящих в SUNW_1.22.4. Компилятор записывает минимальную зависимость, основанную на связанных с ней функциях.
В целом, системы UNIX поддерживают обратную совместимость (программа, построенная на старой системе, продолжает работать на более новой системе), но не наоборот: программа, построенная на более новой системе, может не работать в более старой системе.
По этой причине создайте свою программу на самой старой версии ОС, которую вы собираетесь поддерживать.
Как я могу определить, что линкер (на новая версия) должна построить двоичный , который использует старше (1.22.4) libc.so
Вы должны были бы «новый Solaris -> старый Solars "для этого кросс-компилятора. GCC может быть построен для такой кросс-компиляции, но это не тривиально. Построение более старой системы обычно намного проще.