Последняя стабильная версия 2.2.2. Обновите пожалуйста. Желательно и в бранче 4.1 тоже.
Новая версия давно собрана и находится в Дедале. Там есть одна проблема которую я не могу решить - не собирается с gdb. Причина - старый gdb с ним fpc не собирается. А без него как-то не серьезно.
(In reply to comment #1) > Новая версия давно собрана и находится в Дедале. Там есть одна проблема > которую я не могу решить - не собирается с gdb. Причина - старый gdb с ним > fpc не собирается. А без него как-то не серьезно. Не повод ли это обновить gdb? :) Хотя, лично мне без разницы, я всё равно gdb не пользуюсь.
А насколько новый gdb ему нужен?
(В ответ на комментарий №3) > А насколько новый gdb ему нужен? вообщем-то если не нужен дебаг, то не нужен. Но помнится когда-то писали баг чтобы включить, т.е. кто-то пользуется.
Я в другом смысле :) Какая версия gdb ему требуется?
(В ответ на комментарий №5) > Я в другом смысле :) Какая версия gdb ему требуется? Наверно что-то из ftp://ftp.freepascal.org/pub/fpc/contrib/libgdb/
Вопрос что именно и как будем прикручивать? Проблема с fpc & gdb у нас давно сущестувует. Ни раз с этим сталкивались.Корректное решение так и не нашли ...
А можно чуть подробнее объяснить суть проблемы? Нужна какая-то особенная сборка gdb именно из указанного места?
fpc-2.2.2 не собирается у нас с поддержкой нашего gdb. Вариант fpc без gdb в daedalus'е. Но нам нужен fpc с gdb, особенно смотря в сторону "школьного линукса". Мы пытались разобраться в чём причина - не смогли. В рассылках об этом спрашивали, получили ответ, что это не проблема нашего gdb. А без fpc-2.2.2 не будет lazarus-0.9.26 ...
При сборке fpc-2.2.2 с поддержкой gdb получаем такую ругань: /usr/bin/ld: Warning: alignment 4 of symbol `gdb_sysroot' in /usr/lib/libgdb.a(main.o) is smaller than 16 in /home/ashen/RPM/BUILD/fpcbuild-2.2.2/fpcsrc/packages/gdbint/units/i386-linux/gdbint.o /usr/bin/ld: Warning: alignment 4 of symbol `batch_silent' in /usr/lib/libgdb.a(main.o) is smaller than 16 in /home/ashen/RPM/BUILD/fpcbuild-2.2.2/fpcsrc/packages/gdbint/units/i386-linux/gdbint.o /usr/bin/ld: Warning: alignment 4 of symbol `xdb_commands' in /usr/lib/libgdb.a(main.o) is smaller than 16 in /home/ashen/RPM/BUILD/fpcbuild-2.2.2/fpcsrc/packages/gdbint/units/i386-linux/gdbint.o /usr/bin/ld: Warning: alignment 4 of symbol `dbx_commands' in /usr/lib/libgdb.a(main.o) is smaller than 16 in /home/ashen/RPM/BUILD/fpcbuild-2.2.2/fpcsrc/packages/gdbint/units/i386-linux/gdbint.o /usr/bin/ld: Warning: alignment 4 of symbol `return_child_result' in /usr/lib/libgdb.a(main.o) is smaller than 16 in /home/ashen/RPM/BUILD/fpcbuild-2.2.2/fpcsrc/packages/gdbint/units/i386-linux/gdbint.o /home/ashen/RPM/BUILD/fpcbuild-2.2.2/fpcsrc/packages/gdbint/units/i386-linux/gdbint.o: In function `GDBINT_init': gdbint.pp:(.text+0x1777): undefined reference to `debug_file_directory'
А кто-нибудь может мне объяснить, зачем в BuildRequires: у него стоят пакеты -devel-static? Возможно, это дурость с моей стороны, но их на простые -devel заменил, и у меня fpc 2.2.2 из Дедала на сизифовой пакетной базе собрался, хоть сейчас в инкаминг отправлять.
Оказалась действительно дурость. Статические библиотеки нужны при сборке как раз таки с libgdb...
Воспроизвелось. Что накопал: debug_file_directory действительно есть в libgdb.a, но это символ из BSS (aka uninitialized data section). Собственно, символ этот нужен в паскалевскому модулю gdbint.o (он же в исходниках gdbint.pp) лишь для того, чтобы его инициализировать. Для линковки используется обыкновенный ld, libgdb.a он успешно находит, судя по логам. Кажется, мне катастрофически не хватает знаний о линкере, чтобы разобраться в вопросе.
Ответ на 13-ый комент: раз, примерно, с полгода мы со Славой на это нарываемся. libgdb.a в системе есть, но fpc её в упор не желает видить ... Как я смотрел в других дистрах это обходят и патчи в апстриме, но все эти обходные манёвры у нас не прокатывают ...
Ну здесь-то libgdb.a как раз прекрасно находится. Но не все символы из неё %-)
В том то и дело ...
Оказывается, этот символ всего-то навсего не экспортируется.
Решение?
См. список блокеров :)
дублирую из https://bugzilla.altlinux.org/show_bug.cgi?id=18877 на всякий случай: вышла уже 2.2.4. даже собралась с небольшими изменениями, касающихся отладчика (unresolved symbol debug_file_directory). изменения просты - убрал нафиг установку этой переменной в gdbint.pp, обсуждение: http://lists.altlinux.org/pipermail/sisyphus/2009-April/338539.html git архив сборки: лежит http://git.altlinux.org/people/ender/packages/?p=fpc.git, ветка master сама сборка: ftp://ftp.altlinux.org/pub/people/ender/hasher/ сборку на рабочесть пока не тестирировал, ничего не изменял по отношению к спеку из дедала. как раз этим сейчас и занимаюсь - мне самому свежий lazarus нужен :)
кстати, как показал всеведающий grep - debug_file_directory устаналвливается в DEBUGDIR. то есть вполне себе инициализируется. DEBUGDIR берется в --separate-debug-dir, переданного в configure. в спеке передается --separate-debug-dir=%_libdir/debug. интерсно, паскаль проглотит этот debugdir?.. ему /usr/lib хочется вроде.
собрана 2.2.4-alt1