Bug 18030

Summary: Новая версия
Product: Sisyphus Reporter: Alexey Petrakov <lex>
Component: fpcAssignee: 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
Последняя стабильная версия 2.2.2. Обновите пожалуйста. Желательно и в бранче 4.1 тоже.
Comment 1 Slava Dubrovskiy 2008-11-28 14:59:25 MSK
Новая версия давно собрана и находится в Дедале. Там есть одна проблема которую я не могу решить - не собирается с gdb. Причина - старый gdb с ним fpc не собирается. А без него как-то не серьезно.
Comment 2 Alexey Petrakov 2008-11-28 17:06:14 MSK
(In reply to comment #1)
> Новая версия давно собрана и находится в Дедале. Там есть одна проблема
> которую я не могу решить - не собирается с gdb. Причина - старый gdb с ним 
> fpc не собирается. А без него как-то не серьезно.

Не повод ли это обновить gdb? :)
Хотя, лично мне без разницы, я всё равно gdb не пользуюсь.

Comment 3 Alexey Rusakov 2009-03-26 20:36:31 MSK
А насколько новый gdb ему нужен?
Comment 4 Slava Dubrovskiy 2009-03-26 20:49:21 MSK
(В ответ на комментарий №3)
> А насколько новый gdb ему нужен?
вообщем-то если не нужен дебаг, то не нужен. Но помнится когда-то писали баг чтобы включить, т.е. кто-то пользуется.
Comment 5 Alexey Rusakov 2009-03-26 20:56:28 MSK
Я в другом смысле :) Какая версия gdb ему требуется?
Comment 6 Slava Dubrovskiy 2009-03-26 21:50:42 MSK
(В ответ на комментарий №5)
> Я в другом смысле :) Какая версия gdb ему требуется?
Наверно что-то из ftp://ftp.freepascal.org/pub/fpc/contrib/libgdb/
Comment 7 ashen 2009-03-27 10:07:32 MSK
Вопрос что именно и как будем прикручивать? Проблема с fpc & gdb у нас давно сущестувует. Ни раз с этим сталкивались.Корректное решение так и не нашли ...
Comment 8 Alexey Rusakov 2009-03-27 16:26:54 MSK
А можно чуть подробнее объяснить суть проблемы? Нужна какая-то особенная сборка gdb именно из указанного места?
Comment 9 ashen 2009-03-27 16:35:24 MSK
fpc-2.2.2 не собирается у нас с поддержкой нашего gdb. Вариант fpc без gdb в daedalus'е. Но нам нужен fpc с gdb, особенно смотря в сторону "школьного линукса". Мы пытались разобраться в чём причина - не смогли. В рассылках об этом спрашивали, получили ответ, что это не проблема нашего gdb. А без fpc-2.2.2 не будет lazarus-0.9.26 ...
Comment 10 ashen 2009-03-27 16:52:24 MSK
При сборке 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'
Comment 11 Alexey Rusakov 2009-03-31 03:12:54 MSD
А кто-нибудь может мне объяснить, зачем в BuildRequires: у него стоят пакеты -devel-static? Возможно, это дурость с моей стороны, но их на простые -devel заменил, и у меня fpc 2.2.2 из Дедала на сизифовой пакетной базе собрался, хоть сейчас в инкаминг отправлять.
Comment 12 Alexey Rusakov 2009-03-31 03:41:40 MSD
Оказалась действительно дурость. Статические библиотеки нужны при сборке как раз таки с libgdb...
Comment 13 Alexey Rusakov 2009-03-31 05:18:36 MSD
Воспроизвелось. Что накопал: debug_file_directory действительно есть в libgdb.a, но это символ из BSS (aka uninitialized data section). Собственно, символ этот нужен в паскалевскому модулю gdbint.o (он же в исходниках gdbint.pp) лишь для того, чтобы его инициализировать. Для линковки используется обыкновенный ld, libgdb.a он успешно находит, судя по логам. Кажется, мне катастрофически не хватает знаний о линкере, чтобы разобраться в вопросе.
Comment 14 ashen 2009-03-31 09:47:04 MSD
Ответ на 13-ый комент: раз, примерно, с полгода мы со Славой на это нарываемся. libgdb.a в системе есть, но fpc её в упор не желает видить ... Как  я смотрел в других дистрах это обходят и патчи в апстриме, но все эти обходные манёвры у нас не прокатывают ...
Comment 15 Alexey Rusakov 2009-03-31 11:16:01 MSD
Ну здесь-то libgdb.a как раз прекрасно находится. Но не все символы из неё %-)
Comment 16 ashen 2009-03-31 11:35:21 MSD
В том то и дело ...
Comment 17 Alexey Rusakov 2009-03-31 18:50:58 MSD
Оказывается, этот символ всего-то навсего не экспортируется.
Comment 18 ashen 2009-03-31 19:05:44 MSD
Решение?
Comment 19 Alexey Rusakov 2009-03-31 19:47:33 MSD
См. список блокеров :)
Comment 20 Afanasov Dmitry 2009-04-19 15:47:22 MSD
дублирую из 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
нужен :)
Comment 21 Afanasov Dmitry 2009-04-19 15:55:14 MSD
кстати, как показал всеведающий grep - debug_file_directory устаналвливается в DEBUGDIR. то есть вполне себе инициализируется.

DEBUGDIR берется в --separate-debug-dir, переданного в configure. в спеке передается --separate-debug-dir=%_libdir/debug.

интерсно, паскаль проглотит этот debugdir?.. ему /usr/lib хочется вроде.
Comment 22 Slava Dubrovskiy 2009-05-18 23:24:29 MSD
собрана 2.2.4-alt1