Сборка Firebird 2.5.2 на Gentoo

Установка базовых дистрибутивов, создание своих, распространение, установка автоматически и "вручную", файлы, необходимые для создания дистрибутивов.

Модераторы: kdv, Alexey Kovyazin

Ответить
wadlax
Сообщения: 6
Зарегистрирован: 07 фев 2013, 10:26

Сборка Firebird 2.5.2 на Gentoo

Сообщение wadlax » 07 фев 2013, 12:17

Здравствуйте.
При сборке версии 2.5.2 с использованием GCC 4.6.3 возникает ошибка - подвисает isql_static при создании пустой БД.

В файле Makefile.refDatabases ( Firebird-2.5.2.26539-0.tar.bz2 / builds / posix / Makefile.in.refDatabases ) находится команда создания БД

Код: Выделить всё

echo create database \'msg.fdb\'\; | $(ISQL_STATIC)
Во время выполнения этой команды isql_static подвисает и загружает ядро проца по полной, сборка дальше не идёт.
Если вручную выполнить эту команду, также подвисает.

Если выполнить команду

Код: Выделить всё

echo create database \'msg.fdb\'\; exit \; | $(ISQL_STATIC)
то база создаётся, открывается на другом установленном firebird .

При сборке версии 2.5.1 с использованием GCC 4.6.3 - ошибок нет.
При сборке версии 2.5.2 с использованием GCC 4.5.4 - ошибок нет.


1. Может ли кто-нибудь протестировать сборку Firebird 2.5.2 c gcc 4.6 ? Присутствует ли ошибка ?
2. Где можно узнать с какой версией gcc собирается / тестируется firebird ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение kdv » 07 фев 2013, 13:50

цитирую ответ от А.Пешкова, одного из разработчиков Firebird, который занимается Линуксами:

Возможно ты будешь удивлён, но у меня тоже генту, и тоже 4.6.3.
# gcc --version
gcc (Gentoo 4.6.3 p1.9, pie-0.5.2) 4.6.3

Правда это ещё ни о чём не говорит - я по понятным причинам почти всегда пользуюсь DEV_BUILD, что среди прочего отключает оптимизатор в gcc. Но сам понимаешь - проверить мне было не трудно:) Так вот - релиз собрался без шума и пыли.

Но тут есть ещё тонкость - автор не пишет разрядность системы. Если у него 32, то этот вариант мне на данном компиляторе сейчас не проверить. Да и от камня это может зависеть - у меня АМД. А проблемы с версиями gcc, не собирающими птицу, уже бывали и не раз. Так что можешь дать такие советы:
0) Если он работает на 32-битах - перейти на 64
1) Попробовать вот такие ключи в configure
--with-system-editline --with-system-icu
2) Убедиться что в генту обновлён не только компилятор но и glibc.
3) Использовать более старую версию компилятора (и тогда про 4.6 надо будет сообщить на наших форумах)

p.s. Бинарники на sf.net/projects/firebird собираются и много более старой версией - 64-gcc.4.3.1, 32-gcc.4.3.3.

wadlax
Сообщения: 6
Зарегистрирован: 07 фев 2013, 10:26

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение wadlax » 07 фев 2013, 14:37

Спасибо за ответ.

0. У меня 64 битная система, без O3 и привязки к процессору.
Пытался собрать и на Интел (i5) и АМД (Phenom2).

Код: Выделить всё

CFLAGS=" -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
1. В глобальных USE-флагах присутствует icu , конкретно в firebird такого флага нет.
( USE="${USE} vdpau gstreamer lzma samba djvu python threads icu pch " )

2. Специально обновлял всю систему : world -e
3. У меня : gcc (Gentoo 4.6.3 p1.11, pie-0.5.2) 4.6.3


Маленькая статистика есть, уже хорошо.
Попробую разобраться, как собрать firebird не через portage. И с отключенным O2.

Просьба к А.Пешкову - если не сложно - попробовать собрать firebird через emerge.
( Я собираю с USE superserver -debug -doc -examples -xinetd )

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение Dimitry Sibiryakov » 07 фев 2013, 15:43

Когда isql висит, подрубайся к нему через gdb и снимай call stack. С ним уже можно ходить к разработчикам.

wadlax
Сообщения: 6
Зарегистрирован: 07 фев 2013, 10:26

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение wadlax » 07 фев 2013, 16:31

Собирал frebird через emerge с USE="debug" , но при подключении (attach)

Код: Выделить всё

Reading symbols from /var/tmp/portage/dev-db/firebird-2.5.2.26539.0/work/Firebird-2.5.2.26539-0/gen/firebird/bin/isql_static...(no debugging symbols found)...done.
Вывод backtrace

Код: Выделить всё

#0  0x00002afb47016d2d in read () from /lib64/libpthread.so.0
#1  0x00002afb4604fccb in ?? () from /lib64/libedit.so.0
#2  0x00002afb46050143 in el_wgets () from /lib64/libedit.so.0
#3  0x00002afb460600ed in el_gets () from /lib64/libedit.so.0
#4  0x00002afb4605cfa9 in readline () from /lib64/libedit.so.0
#5  0x00000000004170fb in readNextInputLine(char const*) ()
#6  0x000000000041729b in readNextInputLine() ()
#7  0x00000000004172f4 in getNextInputChar() ()
#8  0x00000000004214f5 in get_statement(char*, unsigned long, char const*) ()
#9  0x000000000041f02f in do_isql() ()
#10 0x0000000000416ca0 in ISQL_main(int, char**) ()
#11 0x00000000004169d7 in main ()

На мой взгляд ситуация немного хитрее :
Команда echo create database \'msg.fdb\'\; | $(ISQL_STATIC) -- подвисает
Команда echo create database \'msg.fdb\'\; exit \; | $(ISQL_STATIC) -- НЕ подвисает и создаёт пустую БД, которая открывается.

Насколько я понял, в 2.5.1 также создаётся БД и такой же командой
Firebird-2.5.1.26351-0/builds/posix/Makefile.in.refDatabases
echo create database \'msg.fdb\'\; | $(ISQL_STATIC)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение kdv » 07 фев 2013, 18:50

интересно, нафига вам суперсервер на линуксе?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение Dimitry Sibiryakov » 08 фев 2013, 15:22

wadlax писал(а):На мой взгляд ситуация немного хитрее :
Команда echo create database \'msg.fdb\'\; | $(ISQL_STATIC) -- подвисает
Команда echo create database \'msg.fdb\'\; exit \; | $(ISQL_STATIC) -- НЕ подвисает и создаёт пустую БД, которая открывается.
Ну, похоже, что он почему-то не получает из пайпа конец файла и, соответственно ждёт следующую команду. Стэк говорит о том же. Но при этом он не должен потреблять ЦПУ.

Может, у тебя echo какое-то нестандартное...

wadlax
Сообщения: 6
Зарегистрирован: 07 фев 2013, 10:26

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение wadlax » 08 фев 2013, 16:48

2 kdv
Используем Firebird в основном на Винде.

Упрощённая модель использования :
1 БД
от 5 до 20 постоянных подключений от служб, пишуших данные
подключения от пользователей , считывающих данные, меняющих конфигурацию ( пока пользователей не много )

Суперсервер подкупает тем, что параметры DefaultDbCachePages и TempCacheLimit применяются к БД , кол-во БД точно известно :)
Соответственно - на винде - проще задать параметры памяти на 1 БД и не заморачиваться - сколько коннектов подключится.


СуперКлассик пока не тестировали, плюс реалии жизни вносят коррективы :
доступ к серверу с БД не всегда есть, памяти на сервере может быть не много,
заранее просчитать кол-во коннектов невозможно, соответственно и задать кол-во памяти на коннект сложно.


В случае Линукса кеш ФС (состоящий из свободной RAM) , насколько я знаю, работает лучше.
Можно поставить в настройках Firebird более низкие значения - отдать больше RAM под кэш ФС.
Плюс этот сервер у нас, так что постараюсь потестить и СуперКлассик потом.

wadlax
Сообщения: 6
Зарегистрирован: 07 фев 2013, 10:26

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение wadlax » 08 фев 2013, 17:07

Вообщем, моё первое сообщение уже не совсем верно :)
" В Gentoo при сборке через emerge версии firebird 2.5.2 с использованием GCC 4.6.3 возникает ошибка "

Распаковал архивы Firebird-2.5.1.26351-0.tar.bz2 и Firebird-2.5.2.26539-0.tar.bz2
Собирается и та и другия версии (правда корректность работы не проверял, только сборку)

Код: Выделить всё

1. ./configure --with-system-editline --with-system-icu
2. make   и  make -j1 CPU=8  ( emerge собирает с make -j1 CPU=8 )
3. И даже с
  ( emerge собирает с таким configure , superserver я отключил для тестов , вроде как суперклассик должен собираться )
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64/firebird/lib64 --prefix=/usr/lib64/firebird --disable-superserver --disable-debug --with-editline --with-system-editline --with-system-icu --with-fbbin=/usr/bin --with-fbsbin=/usr/sbin --with-fbconf=/etc/firebird --with-fblib=/usr/lib64 --with-fbinclude=/usr/include --with-fbdoc=/usr/share/doc/firebird-2.5.2.26539.0 --with-fbudf=/usr/lib64/firebird/UDF --with-fbsample=/usr/share/doc/firebird-2.5.2.26539.0/examples --with-fbsample-db=/usr/share/doc/firebird-2.5.2.26539.0/examples/db --with-fbhelp=/usr/lib64/firebird/help --with-fbintl=/usr/lib64/firebird/intl --with-fbmisc=/usr/share/firebird --with-fbsecure-db=/etc/firebird --with-fbmsg=/usr/lib64/firebird --with-fblog=/var/log/firebird/ --with-fbglock=/var/run/firebird --with-fbplugins=/usr/lib64/firebird/plugins --with-gnu-ld
Как будет время , постараюсь поглядеть, что за патчи накладывает emerge для сборки.

wadlax
Сообщения: 6
Зарегистрирован: 07 фев 2013, 10:26

Re: Сборка Firebird 2.5.2 на Gentoo

Сообщение wadlax » 08 фев 2013, 17:18

2 Dimitry Sibiryakov

Использую bash - 4.2_p37 , вроде командой echo он заведует.

Потом попробую более новую версию, но кажется, что надо копаться в патчах.

Ответить