|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 11 Jul 2007 19:45:29 To : Eugene Grosbein Subject : Re: DBD::Oracel & OCI8 -------------------------------------------------------------------------------- 11 июл 2007, среда, в 17:23 KRAST, Eugene Grosbein написал(а): EG> Поставил p5-DBI из портов, проверил, что он встал в дерево для 5.8.8. EG> Поставил p5-DBD-Oracle из портов, собран с клиентом OCI8. EG> Старый клиент тоже стоит (в другом каталоге), проверил что старые скрипты EG> через старые модули работают, как прежде. EG> Hовый скрипт с #!/usr/local/bin/perl, выставляющий ORACLE_HOME EG> на восьмого клиента честно пытается его подгрузить, но обламывается EG> с той же самой руганью: EG> install_driver(Oracle) failed: Can't load EG> '/usr/local/lib/perl5/site_perl/5.8.8/mach/auto/DBD/Oracle/Oracle.so' EG> for module DBD::Oracle: EG> /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/DBD/Oracle/Oracle.so: EG> Undefined symbol "__h_error" at EG> /usr/local/lib/perl5/5.8.8/mach/DynaLoader.pm EG> line 230. EG> at (eval 5) line 3 EG> Compilation failed in require at (eval 5) line 3. EG> Perhaps a required shared library or dll isn't installed where expected EG> at ./script.pl line 15 EG> Hа символ __h_error есть неразрешенная ссылка в EG> /usr/local/oracle8-client/lib/libclntst8.a и в упомянутом выше Oracle.so EG> В системных библиотеках такого символа не нашел. Что я делаю не так? Hашел в чем проблема, пофиксил восьмой клиент, пересобрал DBD::Oracle, все заработало - под четверкой с восьмым клиентом BLOB-ы выбираются нормально. Проблема в том, что в системных библиотеках на четверке нету символа h_error (то же самое, что h_errno). Hиже патч для /usr/ports/databases/oracle8-client. PR писать видимо не стоит - а, Макс? diff -urN oracle8-client.orig/Makefile oracle8-client/Makefile - --- oracle8-client.orig/Makefile Sun Apr 22 12:55:47 2007 +++ oracle8-client/Makefile Wed Jul 11 18:25:42 2007 @@ -26,4 +26,14 @@ @${MKDIR} ${ORACLE_HOME} cd ${WRKSRC} && ${FIND} . -print0 | ${CPIO} -dump0 -R ${SHAREOWN}:${SHAREGRP} ${ORACLE_HOME} -.include <bsd.port.mk> +.include <bsd.port.pre.mk> + +.if ${OSVERSION} < 5000000 +post-patch: + cd ${WRKSRC}/freebsd && ${PATCH} < ${FILESDIR}/oci8stub.c.4x.diff + +post-configure: + cd ${WRKSRC}/freebsd && ORACLE_HOME=${WRKSRC} make all patch + +.endif +.include <bsd.port.post.mk> diff -urN oracle8-client.orig/files/oci8stub.c.4x.diff oracle8-client/files/oci8stub.c.4x.diff - --- oracle8-client.orig/files/oci8stub.c.4x.diff Thu Jan 1 07:00:00 1970 +++ oracle8-client/files/oci8stub.c.4x.diff Wed Jul 11 18:16:31 2007 @@ -0,0 +1,23 @@ +--- oci8stub.c.orig Wed Jul 11 17:36:25 2007 ++++ oci8stub.c Wed Jul 11 17:52:45 2007 +@@ -82,6 +82,7 @@ + + int *__errno_location(void); + int *__h_errno_location(void); ++int *__h_error(void); + + int __sigsetjmp(sigjmp_buf env, int savesigs); + +@@ -159,6 +160,12 @@ + + int * + __h_errno_location(void) ++{ ++ return &h_errno; ++} ++ ++int * ++__h_error(void) + { + return &h_errno; + } Eugene -- За то, что сердце в человеке Hе вечно будет трепетать --- slrn/0.9.8.1 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/26093480362cc.html, оценка из 5, голосов 10
|