Прикручивание русского языка к FP в линуксе

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 21.03.2013 13:24:30

Сквозняк, удалось скомпилировать с отладчиком?
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 24.03.2013 03:25:27

В понедельник этим займусь основательно, работать по воскресеньям религия не велит :D Попутно пришла идея отладочного модуля konsole.pp с такими процедурами и функциями
Код: Выделить всё
procedure kwrite(s5: ansistring);
procedure kwriteln(s5: ansistring);
function fstr(q64: int64): string;
function fstr_v(q1: Extended): string;

Без Write и Writeln отлаживать программы очень неудобно, поэтому педполагается вызвать дополнительную konsole и выводить на неё сообщения. После компиляции с отладчиком займусь этим. Хотя зря про это сказал, теперь на соответствующие вопросы никто не подскажет :mrgreen:
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 25.03.2013 08:21:50

alex_alex_alex1, по ссылке на вики статья на тему "как стать ментейнером пакетов". Просто установить чрут для сборки этой злосчастной либы оказалось недостаточно а если прокачаться до ментейнера пакета то какая тебе с этого польза :wink: Тебе же не неработающий пакет нужен а патч. И у нас тут не школа, смысла расширять сознание малополезной информацией нет - оно и так уже практически расширено настолько, насколько физические возможности позволяют и чтобы загрузить туда ненужное, надо выгрузить нужное а оно надо. В принципе, ты уже давно мог выложить пакет с *.a файлами собранными где-то с такими опциями ./configure --prefix=/usr/local --enable-static Например на ftp://ftp.freepascal.org/pub/fpc/contrib/libgdb/ лежит собранный gdb-6.2.1 и всем пользователям от этого удобно и хорошо.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 25.03.2013 11:58:44

http://code.google.com/p/phet-gui/downloads/detail?name=libgdb.tar.gz&can=2&q=#makechanges для v703
Но скорее всего если либы есть в репозиториях, то надо использовать *.a от них - fp попадёт именно в это окружение. Поэтому libgdb.a, libdecnumber.a, libgnu.a точно нужны, остальные вряд ли.
Например libbfd.a, libiberty.a, libopcodes.a присутствуют в пакете libbinutils-devel; libreadline.a в пакете libreadline-devel и т.д.

Добавлено спустя 21 минуту 55 секунд:
1) Найти gdb http://pkgs.org/search/?keyword=gdb
2) скачать нужный src.rpm, например http://pkgs.org/mageia-cauldron/mageia- ... /download/
3) зайти в образ chroot для пересборки
4) разложить содержимое из src.rpm в /root/rpmbuild/SOURCES, а spec-файл в /root/rpmbuild/SPECS
5) перейти в /root/rpmbuild/SPECS
6) urpmi --no-suggests ./*.spec
rpmbuild -ba ./*.spec
В итоге когда всё соберётся или даже не соберётся, пофигу, выполнить скрипт packages/gdbint/gen-libgdb-inc.sh - на выходе получится архивчик, которые лежат ftp://ftp.freepascal.org/pub/fpc/contrib/libgdb/
Последний раз редактировалось alex_alex_alex1 25.03.2013 13:28:56, всего редактировалось 2 раз(а).
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 25.03.2013 12:47:31

alex_alex_alex1 писал(а):Поэтому libgdb.a, libdecnumber.a, libgnu.a точно нужны, остальные вряд ли.

Неа, остальные тоже нужны, может и не все но лучше больше чем меньше. Во время сборки с gdb 6.2.1 приходится временно переименовывать /usr/lib64/libbfd.a иначе с ним линкуется и возникает ошибка при сборке.

Теперь ты компиляцию красиво расписал, но похоже придётся ставить магею дополнительным дистром чтобы это сработало более качественно. 64 битную, вместо альта, надеюсь в дистре "искаропки" имеется лечилка дисков типа диспетчера разделов KDE - от дополнительного дистрибутива требуется умение лечить разделы и файловые системы :D

Посмотри первое сообщение темы, как появится новый дистрибутив с новыми полезными патчами fp-ide, давай ссылку на фтп. Надеюсь они будут.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 25.03.2013 13:08:32

Собранные пакеты fp-ide всегда тут ftp://ftp.mageialinux.ru/
Дистрибутив EduMageia с предустановленным fp-ide http://code.google.com/p/mageiaos/downloads/list
Пакет и дистрибутив будут пересобираться, но ссылки не изменятся.

Добавлено спустя 15 минут:
export GDBLIBDIR=путь к папке, содержащей *.a (полученные скриптом packages/gdbint/gen-libgdb-inc.sh) - это чтобы собрать fp с отладчиком, затем make.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 08.04.2013 16:05:41

alex_alex_alex1, labgdb.a собрал, скрипт gen-libgdb-inc.sh не сработал её можно собирать архиватором
Код: Выделить всё
ar crs libgdb.a *.o

или
make -C gdb libgdb.a

Но вот с компиляцией fp-ide с отладчиком возникли проблемы - кривые "статичные" либы собирает маке а сборка *.so там не предусмотрена. В результате никак не избавиться от неопределённых ссылок и неизвестно с какой ещё библиотекой попробовать слинковать. Фактически libgdb.a динамическая библиотека, только в отличии от разделяемой, без указания зависимостей. Попробовал собирать по арчевскому буилду:
Код: Выделить всё
./configure --prefix=/usr --disable-nls --without-python --disable-werror --disable-tui
make
make -C gdb libgdb.a

Содержимое файла /fpcbuild-2.6.2/fpcsrc/packages/gdbint/src/gdbver_nogdb.inc исправил на
Код: Выделить всё
{$define GDB_V705}

Использовал этот http://yadi.sk/d/5CKzKq9v3tBvs пропатченный gdbint.pp
и получил ошибки
Код: Выделить всё
nux/4.7.0 -Flinclude -Flld.so.conf.d/*.conf -dRELEASE   fp.pas
/usr/bin/ld: warning: ./link.res contains output sections; did you forget -T?
/usr/local/lib/libgdb.a(dwarf2read.o): In function `dwarf_form_name':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2read.c:15880: undefined reference to `get_DW_FORM_name'
/usr/local/lib/libgdb.a(dwarf2read.o): In function `dwarf_tag_name':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2read.c:15844: undefined reference to `get_DW_TAG_name'
/usr/local/lib/libgdb.a(dwarf2read.o): In function `decode_locdesc':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2read.c:16694: undefined reference to `get_DW_OP_name'
/usr/local/lib/libgdb.a(dwarf2read.o): In function `dwarf_attr_name':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2read.c:15867: undefined reference to `get_DW_AT_name'
/usr/local/lib/libgdb.a(dwarf2read.o): In function `dwarf_type_encoding_name':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2read.c:15902: undefined reference to `get_DW_ATE_name'
/usr/local/lib/libgdb.a(dwarf2read.o): In function `dwarf_attr_name':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2read.c:15867: undefined reference to `get_DW_AT_name'
/usr/local/lib/libgdb.a(dwarf2loc.o): In function `unimplemented':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2loc.c:2485: undefined reference to `get_DW_OP_name'
/usr/local/lib/libgdb.a(dwarf2loc.o): In function `disassemble_dwarf_expression':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2loc.c:3480: undefined reference to `get_DW_OP_name'
/usr/local/lib/libgdb.a(dwarf2loc.o): In function `dwarf2_compile_expr_to_ax':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/dwarf2loc.c:2932: undefined reference to `get_DW_OP_name'
/usr/local/lib/libgdb.a(symtab.o): In function `create_filename_seen_cache':
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/symtab.c:3124: undefined reference to `filename_eq'
/home/buratino/hjgfg/fpc/gdb/7.5.1/gdb-7.5.1/gdb/symtab.c:3124: undefined reference to `filename_hash'
fp.pas(556,1) Error: Error while linking
fp.pas(556,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
make[5]: *** [fp] Ошибка 1
make[5]: Выход из каталога `/home/buratino/hjgfg/fpc/262/fpcbuild-2.6.2/fpcsrc/ide'
make[4]: *** [buildfp] Ошибка 2
make[4]: Выход из каталога `/home/buratino/hjgfg/fpc/262/fpcbuild-2.6.2/fpcsrc/ide'
make[3]: *** [gdb] Ошибка 2
make[3]: Выход из каталога `/home/buratino/hjgfg/fpc/262/fpcbuild-2.6.2/fpcsrc/ide'
make[2]: *** [ide_all] Ошибка 2
make[2]: Выход из каталога `/home/buratino/hjgfg/fpc/262/fpcbuild-2.6.2/fpcsrc'
make[1]: *** [build-stamp.x86_64-linux] Ошибка 2
make[1]: Выход из каталога `/home/buratino/hjgfg/fpc/262/fpcbuild-2.6.2/fpcsrc'
make: *** [fpcsrc/build-stamp.x86_64-linux] Ошибка 2
[buratino@localhost fpcbuild-2.6.2]$

Лучшим решением таких проблем была бы сборка библиотеки коммандой make -C gdb libgdb.so Для этого надо пропатчить файл gdb-7.5.1/gdb/Makefile.in (а если получится то и другие подобные). Попробовал написать патч для этого файла (последние 2 строчки):
Код: Выделить всё
# Create a library of the gdb object files and build GDB by linking
# against that.
#
# init.o is very important.  It pulls in the rest of GDB.
LIBGDB_OBS= $(COMMON_OBS) $(TSOBS) $(ADD_FILES) init.o
libgdb.a: $(LIBGDB_OBS)
   -rm -f libgdb.a
   $(AR) q libgdb.a $(LIBGDB_OBS)
   $(RANLIB) libgdb.a
libgdb.so: $(LIBGDB_OBS)
   $(LD) -o libgdb.so $(LIBGDB_OBS) -lc --library-path $(libdir)

Но тут необходимо откуда-то прикладывать к комманде вызывающей линковщик зависимости линкуемых файлов. Они где-то там в сборочной системе есть, но в таком коде разобраться сложнее чем в паскале. Может у тебя получится?a *1/gdb/dwarf2loc
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 09.04.2013 00:37:58

Я вообще не понимаю чего ты там мудришь. Если использовать Магею 2, то и брать надо gdb проверенный из реп Магеи 2, а не из Магеи 3. И всё соберется http://pkgs.org/search/?keyword=gdb.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 09.04.2013 01:42:43

Код: Выделить всё
Я вообще не понимаю чего ты там мудришь. Если использовать Магею 2, то и брать надо gdb проверенный из реп Магеи 2

У меня уже 3, бета, поставилась.
И всё соберется http://pkgs.org/search/?keyword=gdb.

Сборка иде по принципу "распаковали пакет и пусть зависимости магически возьмутся непонятно откуда" на данный момент меня не устраивает. Необходимо собрать иде паскалевским методом, через make all. В другой программе уже доводилось наблюдать чудеса компиляции когда вместо сишных *.o файлов линковались паскалевские с совпадающими именами, баг случился только когда стал собирать бинарник для виндовса. Поэтому для проверки нужно собрать иде обычным способом. Если использовать для сборки *.so вместо *.a то сборка дожна получиться менее проблемной, только надо будет использовать файл заглушку - собранный коммандой ar crs libgdb.a version.o

Ещё заметил что в арче в гдб при сборке отключен питон а в альте наоборот, его подключили http://comments.gmane.org/gmane.linux.a ... evel/71416 Если отключать новые фичи отладчика то получим подобие старой версии с которой иде и так вроде как работает. И ещё лажа - пострипанные *.a линкуются хуже.

В принципе, ты постоянно работаешь с макефайлами, поэтому должен лучше меня понимать, как правильно написать последнюю строку
Код: Выделить всё
libgdb.a: $(LIBGDB_OBS)
   -rm -f libgdb.a
   $(AR) q libgdb.a $(LIBGDB_OBS)
   $(RANLIB) libgdb.a
libgdb.so: $(LIBGDB_OBS)
   -rm -f libgdb.so
   $(LD) -o libgdb.so $(LIBGDB_OBS) -lc --library-path $(libdir)
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 09.04.2013 10:36:51

Сквозняк, я уже ничего не понимаю и вряд ли подкажу.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 09.04.2013 16:45:07

alex_alex_alex1, а тебе и необязательно понимать как функционирует сабж в целом (сознание не резиновое и всё туда не поместится), главное чтобы кто-то помог прикрутить к файлу gdb-7.5.1/gdb/Makefile.in генерацию libgdb.so Зачем это надо, можно и не понимать.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 09.04.2013 17:27:35

Ясно, разберемся. Я напишу.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 11.04.2013 06:13:58

Наконец удалось собрать это чудо. Глюков во вкомпиленном отладчике не заметил, хотя возможно, не там искал. При сборке иде с отладчиком происходит конфликт его либ с одноимёнными системными, пришлось переименовывать. Также сборочная система творит что-то неколбасное с утилитой gdbver - при сборке она должна линковаться с нестрипаным libgdb.a (из этого архива использует только файл version.o), компилироваться и вызываться с определёнными ключами для генерации файла с макросом но этого не происходит. Несколько раз gdbver.pp собрался и запустился но потом это происходить перестало и найти причину за несколько часов не удалось, зато башскрипт с нужным функционалом написался за несколько минут - его при сборке с gdb-7.5.1 и надо запускать :mrgreen:

Патчи fpc 2.6.2 для сборки c gdb-7.5.1 - http://yadi.sk/d/ljPAss-a3xuTw
Собранная libgdb для linux-x86_64 с пояснениями - http://yadi.sk/d/J2z6jt713xuTk

Использовался арчевский патч с отключенным питоном. Есть ли там большая польза от питона, неизвестно. Если он нужен, то можно попытаться аналогичным способом использовать альтовский патч из fpc-2.6.2-alt1.src.rpm
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 25.04.2013 03:51:05

Собрал федоровский src.rpm пакет http://yadi.sk/d/vLGWgHJE4GsM9 собирающий fpc-2.6.2 с отладчиком GDB-7.5.1 и предыдущими патчами. Во время сборки пакета латекс будет несколько раз задавать вопросы о Mac OS X, на них нужно отвечать: qqqq
Компилируются src.rpm коммандой rpmbuild --rebuild paket.src.rpm

Уже собранные для linux_x86-64 пакеты http://yadi.sk/d/7mva3cvc4GsMP Если вам из всего пакета нужно лишь иде с отладчиком, то распакуйте пакет как архив, возьмите бинарник fp, переименуйте как хотите и скопируйте в /usr/local/bin
Последний раз редактировалось Сквозняк 26.04.2013 02:16:15, всего редактировалось 1 раз.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 25.04.2013 11:32:07

Сквозняк писал(а):возьмите бинарник fp, переименуйте как хотите и скопируйте в /usr/local/lib

В /usr/local хотя бы, не в lib.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru