Summary: | Новая версия | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Alexey Petrakov <lex> |
Component: | fpc | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P2 | CC: | ender, ktirf |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
URL: | ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/source-2.2.2/fpcbuild-2.2.2.tar.gz | ||
Bug Depends on: | 19417 | ||
Bug Blocks: | 17792, 18877 |
Description
Alexey Petrakov
2008-11-28 14:38:59 MSK
Новая версия давно собрана и находится в Дедале. Там есть одна проблема которую я не могу решить - не собирается с 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 |