Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the DBD-Oracle CPAN distribution.

Report information
The Basics
Id: 71109
Status: resolved
Priority: 0/
Queue: DBD-Oracle

Owner: champoux [...]
Requestors: dwheeler [...]

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)

Subject: Segfault on Mac OS X
Date: Tue, 20 Sep 2011 17:34:32 -0700
To: bug-DBD-Oracle [...]
From: "David E. Wheeler" <dwheeler [...]>
Download (untitled) / with headers
text/plain 18.5k

Message body is not shown because it is too large.

Download (untitled) / with headers
text/plain 356b
Okay, turns out this is because I installed the 64 bit libraries, but they're not (yet) compatible with Lion. I've installed the 32 bit client, but now I have problems because my Perl is 64 bit. Think I'll just use RPMs on $work's server and give up on this for now. David
Download (untitled) / with headers
text/plain 4.1k
After discussion on #dbi it may appear that the 64 bit instant client for osx does not work (needs link). However, 32bit instant client on osx is not much better - someone with latest osx and some tuits needs to look at this. Adding this only for reference only: <theory> mje_: Know much about getting DBD::Oracle working on Mac OS X? <mje_> theory, sorry, don't own a mac although I ported some drivers to it years ago - what is your problem? <theory> mje_: segfault: <mje_> theory, ah, I already saw that and am not sure - maybe I'll find some tuits to look at it <theory> I need to learn C better. * theory hunts around for Yanick or timbunce… <mje_> it is a read on address 0 (causing segfault) but beyond that I've not had time to look further. I'd be suspicious of "Can't find sqlplus. Pity, it would have helped." and install the sqlplus package and also check DYLD_* (whatever if is on osx) <mje_> theory, i.e., install the sqlplus zip in addition to the instant client zip <theory> I guess I could install sqlplus <theory> Been trying to avoid polluting my Mac with Oracle crap. <mje_> theory, you just unzip it in the same dir as instant client - hardly polluting - DBD::Oracle could not find oracle version so fell back to version 10 <theory> I told it to use v10 <theory> Note "perl Makefile.PL -V 10.x.x.x" * theory hunts for the sqlplus download… <mje_> theory, personally I'd not do that as it has a big affect on what is compiled in to DBD::Oracle - the Oracle server version is not relevent, it is the client version that needs to match <theory> Got it. * mje_ steps out for a minute (or 2) <theory> Yeah, that was the version of the instantclient I installed. <theory> Downloading sqlplus now <theory> Oh goodie. sqlplus segfaults too * mje_ thinks theory is stuck now, if sqlplus segfaults your going nowhere - is there not a more recent instant client for osx? <theory> Yeah, reading <theory> "First off, Mac 10.7 is currently incompatible with the 64-bit version of the Oracle instant client." <theory> *sigh* <mje_> 32 bit not any good to you? <theory> Okay, 32 bit works. <theory> mje_: Yeah, silly me for assuming 64 bit would be better/preferred. <mje_> \o/ <theory> Going to rebuild now. <theory> grr <theory> "I can't find the header files I need in your Oracle installation." <theory> Oh, I need a symlink I think. <theory> Oh, Makefile.PL will create it if I run it as root. <theory> dammit <mje_> did you install instant client basic, sqlplus and instant client development (can't remember what it is called right now) <theory> NO, didn't install the sdk, which Makefile.PL is telling me, which is good. * theory downloads it <mje_> yes, sdk, I really am tired <theory> There we go <mje_> theory, could you update rt or mail me with reference to 64 bit oracle client does not work on osx and I'll commit a link to it <theory> Yeah, I'm looking for the repo <theory> will update README.macosx <mje_> theory, thank you <theory> ooh, svn <mje_> I only just realised you reported rt 71109 - sorry, if I had realised I'd have pulled out more stops <theory> mje_np <theory> mje_: np <theory> mje_: So this is is what I get from `make test`: <mje_> weird oci_attrget has been arounf ages <mje_> s/oci_attrget/OCIAttrGet/ <theory> Maybe it's the NMEDIT thing? <theory> Hrm, no <theory> same error <theory> though fewer warnings during `make`. <theory> Oh crap <theory> My Perl is 64 bit of course. <theory> XXXXXX Oracle. <theory> Guess I have to wait for the 64-bit instantclient * theory goes to find lunch <mje_> theory, to be honest, Oracle still uses 32bit libs/binaries under hsodbc/dgodbc when linking a database via ODBC to other dbs <theory> mje_: Was reading the last post in this thread: <theory> My Perl is 64 bit. The oracle libs are 32 bit. <theory> I could rebuild Perl, but have a lot of other XXXX built on it already. * mje_ it is 20:43 here and I'm hungry - keep me in the loop and I'll help as much as I can Martin -- Martin J. Evans Wetherby, UK
Download (untitled) / with headers
text/plain 168b
Reading the ticket's thread. Fwiw, there's also a github mirror of the svn repo at, if it's more to your patch-palatable to you :-)
Download (untitled) / with headers
text/plain 370b
On 2011-09-21 16:23:21, PYTHIAN wrote: Show quoted text
> Reading the ticket's thread. Fwiw, there's also a github mirror of the > svn repo at, if it's more to your > patch-palatable to you :-)
I updated README.macosx with the details as far as I could trace them, but I don't have a 32-bit Perl so some details may be lost. Patch attached. David
Subject: dbd-oracle-lion.patch
Index: README.macosx.txt =================================================================== --- README.macosx.txt (revision 14935) +++ README.macosx.txt (working copy) @@ -4,10 +4,10 @@ time of writing). MacOS X DBD::Oracle has been tested (and used) under Jaguar (10.2.x), -Panther (10.3.x), Snow Leopard (10.6.x). Jaguar comes with a Perl -version of 5.6.0., which I can report to work with DBD::Oracle 1.14 -and higher once you take certain steps (see below). You may want to -install a later perl, e.g., Perl 5.8.x. Please refer to: +Panther (10.3.x), Snow Leopard (10.6.x), Lion (10.7.x). Jaguar comes +with a Perl version of 5.6.0., which I can report to work with +DBD::Oracle 1.14 and higher once you take certain steps (see below). +You may want to install a later perl, e.g., Perl 5.8.x. Please refer to: Installing Perl 5.8 on Jaguar @@ -48,6 +48,39 @@ 10.3.x) for details. ====================================================================== +Instructions for 10.7.x (Lion) + +Because the 64 bit instantclient is currently [incompatible with Lion][], +DBD::Oracle can only be compiled with the 32-bit instantclient libraries, and +therefore requires 32-bit Perl. If your Perl is 64-bit (which, by defaul, it +is on Mac OS X), you will not be able to build DBD::Oracle until an updated +64-bit instantclient is released. + +[incompatible with Lion]: + +If you have a 32-bit Perl, however, then the following steps should work: + +* Download and install the 32-bit basic, sqlplus, and sdk instantclient + libraries and install them in a central location, such as + `/usr/oracle_instantclient`. [Downloads here][]. + + [Downloads here]: + +* Create a symlink from `libclntsh.dylib.10.1` to `libclntsh.dylib`: + + cd /usr/oracle_instantclient/ + link -s libclntsh.dylib.10.1 libclntsh.dylib + +* Update your environment to point to the libraries: + + export ORACLE_HOME=/usr/oracle_instantclient + export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/oracle_instantclient + +* You should now be able to install DBD::Oracle from CPAN: + + cpan DBD::Oracle + +====================================================================== Instructions for 10.6.x (Snow Leopard) These are taken from a stackoverflow answer by "nickisfat" who gave
master patched with the doc change. Thanks!

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

Please report any issues with to