URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5746
[ Назад ]

Исходное сообщение
"Configure php5 + firebird2.1 + fedora core 8"

Отправлено kassy_k , 12-Май-08 11:32 
Помогите с решением проблемы:
ОС: FedoraCore8

Установил: Firebird2.1, Apache2, PHP5 (динамически подгружаемый модуль).
Требуется установить поддержку Firebird, т.е. прикрутить --with-interbase=shared,/opt/firebird к php

Когда пытаюсь конфигурировать с этой опцией php, вываливается старая добрая ошибка:

checking for InterBase support... yes, shared
checking for isc_detach_database in -lfbclient... no
checking for isc_detach_database in -lgds... no
checking for isc_detach_database in -lib_util... no
configure: error: libgds, libib_util or libfbclient not found! Check config.log for more information.

Кусок файла config.log гласит:

configure:3814: checking for InterBase support
configure:3857: result: yes, shared
configure:3969: checking for isc_detach_database in -lfbclient
configure:4004: gcc -o conftest -g -O2  -Wl,-rpath,/opt/firebird//usr/lib/gcc/i386-redhat-linux/4.1.2/ -L/opt/firebird//usr/lib/gcc/i386-redhat-linux/4.1.2/  conftest.c -lfbclient   >&5
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_RaiseException'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_GetLanguageSpecificData'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_Resume'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_DeleteException'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_GetTextRelBase'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_SetIP'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_GetDataRelBase'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_GetRegionStart'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_SetGR'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libfbclient.so: undefined reference to `_Unwind_GetIP'
collect2: ld returned 1 exit status
configure:4010: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char isc_detach_database ();
| int
| main ()
| {
| return isc_detach_database ();
|   ;
|   return 0;
| }
configure:4028: result: no
configure:4141: checking for isc_detach_database in -lgds
configure:4176: gcc -o conftest -g -O2  -Wl,-rpath,/opt/firebird//usr/lib/gcc/i386-redhat-linux/4.1.2/ -L/opt/firebird//usr/lib/gcc/i386-redhat-linux/4.1.2/  conftest.c -lgds   >&5
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_RaiseException'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_GetLanguageSpecificData'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_Resume'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_DeleteException'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_GetTextRelBase'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_SetIP'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_GetDataRelBase'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_GetRegionStart'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_SetGR'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libgds.so: undefined reference to `_Unwind_GetIP'
collect2: ld returned 1 exit status
configure:4182: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char isc_detach_database ();
| int
| main ()
| {
| return isc_detach_database ();
|   ;
|   return 0;
| }
configure:4200: result: no
configure:4313: checking for isc_detach_database in -lib_util
configure:4348: gcc -o conftest -g -O2  -Wl,-rpath,/opt/firebird//usr/lib/gcc/i386-redhat-linux/4.1.2/ -L/opt/firebird//usr/lib/gcc/i386-redhat-linux/4.1.2/  conftest.c -lib_util   >&5
/tmp/ccEsRJxI.o: In function `main':
/HVol/dist/php-5.2.5/ext/interbase/conftest.c:19: undefined reference to `isc_detach_database'
collect2: ld returned 1 exit status
configure:4354: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char isc_detach_database ();
| int
| main ()
| {
| return isc_detach_database ();
|   ;
|   return 0;
| }
configure:4372: result: no
configure:4388: error: libgds, libib_util or libfbclient not found! Check config.log for more information.

Помогите!!! Кто что может сказать по этому поводу. Как поддержку нормально прикрутить?


Содержание

Сообщения в этом обсуждении
"Configure php5 + firebird2.1 + fedora core 8"
Отправлено angra , 15-Май-08 17:56 
Неужели в федоре нет готового пакета типа такого:
php5-interbase - interbase/firebird module for php5

"Configure php5 + firebird2.1 + fedora core 8"
Отправлено kassy_k , 15-Май-08 18:34 
...Сам спрашивал - сам и отвечаю. :-)

После долгого рытья инета решил покопаться сам. Проблема заключалась в том, что поддержка Firebird/Interbase должна компилироваться в отдельный модуль скриптом configure.

Пересмотрев внимательно config.log, я понял, что скрипт не подхватывает библиотеку C++ libgcc_s.so. Поэтому в скрипте сделал небольшую поправку:

Строка №49461:

---LIBS="-lfbclient  $LIBS"
+++LIBS="-lfbclient -lgcc_s $LIBS"

Не знаю, насколько это правомерно (проверить работоспособность еще не удалось), но библиотека создалась, установилась и поддержа включилась.