Можно ли реализовать управление версиями общей библиотеки в IBM-AIX?

Я знаю, что управление версиями общей библиотеки может быть реализовано в Suse Linux. Но возможно ли это на IBM-AIX?

Любые ссылки будут очень полезны, так как я не могу найти подходящий материал через поиск Google.


person Jay    schedule 09.03.2011    source источник


Ответы (1)


Существует несколько видов управления версиями библиотек:

  • Внешнее управление версиями, например. libreadline.so.4 против libreadline.so.5
  • Внутреннее управление версиями символов, как это сделано в libpthread.so.0 в Linux, которое определяет, например. pthread_create@@GLIBC_2.1 и pthread_create@GLIBC_2.0

Последний является расширением GNU и не поддерживается ни в одной системе, отличной от GLIBC.

Первый будет прекрасно работать на AIX.

Еще одна особенность AIX заключается в том, что вы можете поместить несколько совместно используемых библиотек в одну архивную библиотеку, чтобы ваши клиенты могли продолжать связываться, например, с libfoo.a (содержащий shr.o и shr2.o). Старые и уже связанные клиенты будут продолжать использовать libfoo.a(shr.o), но новые связанные клиенты будут использовать libfoo.a(shr2.o).

Именно по этой схеме AIX удается поддерживать несколько версий поддержки потоков POSIX в одном файле libpthread.a. Это также может сбивать с толку тех, кто не привык к AIX, поэтому лучше не использовать его.

person Employed Russian    schedule 13.03.2011