След.: .PS
Выше: Устранение проблем компиляция в
Пред.: Решение. Способ N2
Есть еще и третий, который проделал я,
путём проб и ошибок. Это я уже потом обнаружил
второй способ, так что можно сказать, что сейчас он
не актуален.
Мой способ является что-то средним между
первым и вторым -- используется библиотека
glibc 2.3.2,
но её нужно собирать, и, соответственно, установленная glibc
не используется. И для этого способа нужно собрать ядро выше 2.4.20.
Немного опишу его, на тот случай, если
патч не подойдёт для установленной glibc, например
выйдет более новая версия glibc.
Лень писать всё (да кому это собственно надо), поэтому,
повествую на идейном уровне.
Главное это собрать glibc. Но прежде чем что то компилять
нужно немного подправить исходники: в configure добавить
строку libc_cv_initfinit_array=no (строка 4830, проверка поддержки
.preinit_array/.init_array/.fini_array), тем самым отказываемся
от использования функций init/fini в компилируемой glibc
(что, собственно, и не устраивало борландовский линковщик).
Но у меня возникли дополнительные проблемы с борландовским линковщиком --
он отказывался находить функцию _nl_archive_subfreeres, хотя
она и была определена в готовом файле libc.a (чужая душа -- потёмки).
Для решения этой проблемы я перенёс функцию _nl_archive_subfreeres
из файла loacale/loadarchive.c в файл locale/setlocale.c
(в loacale/loadarchive.c эту функцию закоментарил). Тогда всё удалось.
Далее идет сборка. Собирать glibc нужно как обычно,
но директорию установки нужно указать другую чем по умолчанию
(опция --prefix, например,
--prefix=/usr/local/glibc-2.3.2-for-kylix3) --
зачем нужны лишние проблемы. Затем идут шаги идентичные в способе N1
при настройки Kylix под нужную glibc (см. выше). Всё должно заработать.
Предложенный способ является тернистым, но то же имеет право
на существование: Х_йня война -- главное манёвры.
Anatoly A. Serdtcev
2004-03-18