Помогите с решением проблемы:
ОС: 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.Помогите!!! Кто что может сказать по этому поводу. Как поддержку нормально прикрутить?
Неужели в федоре нет готового пакета типа такого:
php5-interbase - interbase/firebird module for php5
...Сам спрашивал - сам и отвечаю. :-)После долгого рытья инета решил покопаться сам. Проблема заключалась в том, что поддержка Firebird/Interbase должна компилироваться в отдельный модуль скриптом configure.
Пересмотрев внимательно config.log, я понял, что скрипт не подхватывает библиотеку C++ libgcc_s.so. Поэтому в скрипте сделал небольшую поправку:
Строка №49461:
---LIBS="-lfbclient $LIBS"
+++LIBS="-lfbclient -lgcc_s $LIBS"Не знаю, насколько это правомерно (проверить работоспособность еще не удалось), но библиотека создалась, установилась и поддержа включилась.