php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #44989 64bit Oracle RPMs still not supported by pdo-oci
Submitted: 2008-05-13 23:50 UTC Modified: 2011-09-16 18:13 UTC
Votes:3
Avg. Score:4.0 ± 0.8
Reproduced:3 of 3 (100.0%)
Same Version:1 (33.3%)
Same OS:2 (66.7%)
From: stevec at engr dot oregonstate dot edu Assigned: sixd
Status: Closed Package: PDO related
PHP Version: 5.2.6 OS: Linux
Private report: No CVE-ID:
 [2008-05-13 23:50 UTC] stevec at engr dot oregonstate dot edu
Description:
------------
Bug #41941 addressed 64bit support for the --with-oci8 configure option, but not the --with-pdo-oci option.  It still can't find the include files.  

Reproduce code:
---------------
Using the Oracle provided 64bit InstantClient RPMs (currently using 11.1.0.1-1):

./configure --with-pdo-oci=instantclient,/usr/include,11.1.0 ...

Produces:

checking Oracle OCI support for PDO... yes
checking Oracle Install-Dir... instantclient,/usr/include,11.1.0
checking if that is sane... yes
checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your Instant Client install


Expected result:
----------------
Should pass that part and find the client64 libraries.

I've tried all sorts of paths (/usr to /usr/include/oracle/11.1.0.1/client64) with no luck.


Patches

pdo_oci-64bit-5.3 (last revision 2010-08-16 21:11 UTC) by jbnance at tresgeek dot net)
pdo_oci-64bit (last revision 2010-08-03 23:15 UTC) by jbnance at tresgeek dot net)

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-07-22 08:03 UTC] noel dot rambaud at free dot fr
Create a link client-> client64 in directory /usr/include/oracle/version_instantclientoracle

idem in /usr/lib/oracle/version_instantclientoracle
 [2009-04-25 15:06 UTC] jani@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/


 [2009-04-27 15:55 UTC] stevec at eng dot orst dot edu
I'm still seeing the same problem with the latest CVS snapshot (php5.2-200904271430).  What it comes down to is the code is only looking for 'client' directories.  The Oracle RPMs put everything in 'client64' directories.

/usr/include/oracle/11.1.0.1/client64
/usr/lib/oracle/11.1.0.1/client64

As the previous poster mentioned, if you link the client directory in both of those directories to client64, then the compile works fine.  That seems a bit of a kludge though.
 [2009-05-03 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2010-08-04 01:03 UTC] jbnance at tresgeek dot net
Patch attached for config.m4.

Notes for end users, in order to use this you have to rebuild configure 
(buildconf --force after applying the patch).

After applying and rebuilding, the following should work:

./configure --with-pdo-oci=instantclient,/usr,10.2.0.4
or
./configure --with-pdo-oci=shared,instantclient,/usr,10.2.0.4

Note that this is different from the non-PDO OCI configure option:

--with-oci8=instantclient,/usr/lib/oracle/10.2.0.4/client64/lib
or
--with-oci8=shared,instantclient,/usr/lib/oracle/10.2.0.4/client64/lib

(the version is a parameter in the PDO OCI option).
 [2010-08-16 23:12 UTC] jbnance at tresgeek dot net
Bug still exists in 5.3.3.  Patch uploaded.
 [2010-08-17 02:32 UTC] pajoye@php.net
-Status: No Feedback +Status: Assigned
 [2011-03-29 20:40 UTC] felipe@php.net
Automatic comment from SVN on behalf of felipe
Revision: http://svn.php.net/viewvc/?view=revision&revision=309818
Log: - Fixed bug #44989 (64bit Oracle RPMs still not supported by pdo-oci)
  patch by: jbnance at tresgeek dot net
 [2011-03-29 20:41 UTC] felipe@php.net
-Status: Assigned +Status: Closed
 [2011-03-29 20:41 UTC] felipe@php.net
This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

Thanks for the patch!
 [2011-03-30 19:35 UTC] sixd@php.net
With Oracle Instant Client 11.2 RPMs use:
./configure --with-pdo-oci=instantclient,/usr,11.2
or
./configure --with-pdo-oci=shared,instantclient,/usr,11.2

i.e. only use two components of the version number.
 [2011-09-14 05:32 UTC] patrickallaert@php.net
The committed patch introduced a regression for those who have a path like:
    /usr/lib64/oracle/10.2.0.3/client/include
on x86_64 boxes.

The path tried are:
/usr/include/oracle/10.2.0.3/client64/oci.h
/usr/lib/oracle/10.2.0.3/client64/include/oci.h
/usr/sdk/include/oci.h
/usr/client64/include/oci.h

Because /usr/lib/ is a symlink to /usr/lib64/ on those boxes, it previously 
worked by using "client" rather than "client64".
Now it fails with:
configure: error: I'm too dumb to figure out where the include dir is in your 
Instant Client install
 [2011-09-14 13:29 UTC] jbnance at tresgeek dot net
What distribution has /usr/lib sym linked to /usr/lib64?

The patch works fine on RHEL 5 32-bit (and 64-bit) with Oracle 10 and 11.2 RPMs 
(from Oracle).
 [2011-09-16 09:52 UTC] olemarkus at gentoo dot org
At least Gentoo has /usr/lib symlinked to /usr/lib64
 [2011-09-16 15:52 UTC] jbnance at tresgeek dot net
Errr... That goes against the FHS.  Red Hat / CentOS, Fedora, SuSE / OpenSUSE, and 
Ubuntu / Debian (as well as all the derivates I know of) all have separate lib and 
lib64 directories.
 [2011-09-16 16:04 UTC] olemarkus at gentoo dot org
How is that against FHS? IIRC it is even mentioned specifically in one of FHS' footnotes.

Gentoo can be multilib, thus it has both /usr/lib32 and /usr/lib64, and /usr/lib as a symlink to /usr/lib64. Redhat and whatnot are probably not mutlilib, so they do not have this link (nor do all profiles on Gentoo).
 [2011-09-16 16:30 UTC] jbnance at tresgeek dot net
Ah, yes, my mistake.  I forgot that although it defines lib<qual> rules, it 
doesn't specify whether you use lib32 or lib64.

So what I should have said is that practically every other distribution uses lib 
for 32-bit libraries and lib64 for 64-bit libraries.  On 64-bit systems using 
those distros, /lib & /usr/lib still contains the 32-bit versions of the libraries 
you have installed (you can install the 64-bit without the 32-bit and vice versa).

So, whatever modifications are done to the patch will need to take that into 
account.
 [2011-09-16 17:58 UTC] jbnance at tresgeek dot net
Here's a better explanation of the lib64 stuff:

http://www.pathname.com/fhs/pub/fhs-2.3.html#LIB64
 [2011-09-16 18:13 UTC] sixd@php.net
Since this bug is closed and the discussion is getting platform specific, I 
suggest you open a new bug, attach the description, include which Instant Client 
bundle is being installed, and attach a verified patch.
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sat Apr 19 09:02:28 2014 UTC