I emerged the dev-db/oracle-instantclient-basic package so that i could have oci8 on mod_php, but now re-emerging mod_php gives me: pcntl: fork() not supported by this platform before i tryed oci8 support it compiled without problems, i saw some posts on the forum to try with USE="-java -qt" no go here, it seams it stucks on oci8. Reproducible: Always Steps to Reproduce: 1.echo $ORACLE_HOME /usr/lib/oracle/10.1.0.2/client 2.USE="flash gd imap ldap mcal mysql pdflib xml2 oci8" emerge mod_php Actual Results: checking for Oracle-OCI8 support... yes checking Oracle Install-Dir... /usr/lib/oracle/10.1.0.2/client checking Oracle version... 10.1 checking for OCILobIsTemporary in -lclntsh... no checking for OCILobIsTemporary in -locijdbc8... no checking for Adabas support... no checking for SAP DB support... no checking for Solid support... no checking for IBM DB2 support... no checking for Empress support... no checking for Empress local access support... no checking for Birdstep support... no checking for a custom ODBC support... no checking for iODBC support... no checking for Easysoft ODBC-ODBC Bridge support... no checking for unixODBC support... no checking for DBMaker support... no checking for Oracle-ORACLE support... no checking whether to enable user-space object overloading support... yes checking for Ovrimos SQL Server support... no checking whether to enable pcntl support... yes checking for fork... no configure: error: pcntl: fork() not supported by this platform !!! ERROR: dev-php/mod_php-4.3.6_rc2 failed. !!! Function econf, Line 365, Exitcode 1 !!! econf failed Expected Results: it should compile mod_php with OCI8 support. Portage 2.0.50-r6 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.4.20-wolk4.9s) ================================================================= System uname: 2.4.20-wolk4.9s i686 Intel(R) Pentium(R) III CPU family 1266MHz Gentoo Base System version 1.4.3.10 Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="apache2 berkdb crypt ncurses nls pam perl python ssl tcpd x86 xml"
go and use revdep-rebuild if it still fails, consult the config.log and see why your libraries aren't in order.
Ok, so I did revdep-rebuild, and got this: Checking dynamic linking consistency... ldd: warning: you do not have execution permission for `/usr/lib/oracle/10.1.0.2/client/lib/libocci.so.10.1' broken /usr/lib/oracle/10.1.0.2/client/lib/libocci.so.10.1 (requires libstdc++-libc6.2-2.so.3) done. So I chmod +x /usr/lib/oracle/10.1.0.2/client/lib/libocci.so.10.1 (maybe it should be reported as an ebuild bug ?) That correct the first error but I'm still getting: Checking dynamic linking consistency... broken /usr/lib/oracle/10.1.0.2/client/lib/libocci.so.10.1 (requires libstdc++-libc6.2-2.so.3) tryed to re-emerge mod_php, but it still fails with the same error. I guess i need to fix this lib error first, right ?
consult your config.log anyway that might not be the broken library. I certainly have /usr/lib/libstdc++-libc6.2-2.so.3 on my machine. what about you? 'ls /usr/lib/libstdc*' is there a client for oracle in portage that I'm not aware of ?
Well i dont have it: ls: /usr/lib/libstdc*: No such file or directory And i think this is the only ebuild: Calculating dependencies ...done! [ebuild RF ] dev-db/oracle-instantclient-basic-10.1.0.2 0 kB below is what i found on the 'config.log': [snip] configure:57617: checking for Oracle-OCI8 support configure:57662: checking Oracle Install-Dir configure:57957: checking Oracle version configure:58954: checking for OCILobIsTemporary in -lclntsh configure:58973: gcc -o conftest -march=pentium3 -O3 -pipe -fomit-frame-pointer -Wl,-rpath,/usr/lib/oracle/10.1.0.2/client/l$ /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lclntsh collect2: ld returned 1 exit status configure: failed program was: #line 58962 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char OCILobIsTemporary(); int main() { OCILobIsTemporary() ; return 0; } configure:59086: checking for OCILobIsTemporary in -locijdbc8 configure:59105: gcc -o conftest -march=pentium3 -O3 -pipe -fomit-frame-pointer -Wl,-rpath,/usr/lib/oracle/10.1.0.2/client/l$ /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../i686-pc-linux-gnu/bin/ld: cannot find -locijdbc8 collect2: ld returned 1 exit status configure: failed program was: #line 59094 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char OCILobIsTemporary(); int main() { OCILobIsTemporary() ; return 0; } [snip] configure:60964: checking for Oracle-ORACLE support configure:65985: checking whether to enable user-space object overloading support configure:66248: checking for Ovrimos SQL Server support configure:66695: checking whether to enable pcntl support configure:66743: checking for fork configure:66771: gcc -o conftest -march=pentium3 -O3 -pipe -fomit-frame-pointer -L/usr/lib -ldb-4.0 -ltiff -L/usr/lib -Wl,-$ /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lclntsh collect2: ld returned 1 exit status configure: failed program was: #line 66748 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char fork(); below. */ #include <assert.h> /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char fork(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_fork) || defined (__stub___fork) choke me #else fork(); #endif ; return 0; }
from what I know libclntsh is part of oracle, so go and find why it isn't working. rizzo: the oracle packages you added a month ago, did you check mod_php with them ?
You need a full Oracle client to compile PHP with oci8: http://forums.oracle.com/forums/thread.jsp?forum=190&thread=241737&message=&tstart=0&trange=15696212 (also it's easier to test you have everything by compiling Perl's DBD::Oracle first than the whole of PHP) When you do get PHP with oci8 installed N.B. the Gentoo specific apache bug: http://bugs.gentoo.org/show_bug.cgi?id=32364 Chris
thanks for that response chris. i've tested the ebuilds with the full oracle client now and they work fine.