Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 perl5.5 & perl 5.8   Eugene Grosbein   10 Jul 2007 17:17:43 
 perl5.5 & perl 5.8   Ilya Kulagin   10 Jul 2007 15:50:24 
 DBD::Oracel & OCI8 (was: perl5.5 & perl 5.8)   Eugene Grosbein   11 Jul 2007 16:23:23 
 Re: DBD::Oracel & OCI8   Eugene Grosbein   11 Jul 2007 19:45:29 
Архивное /ru.unix.bsd/26093480362cc.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional