The source of the problem is this (I think): I've installed the InstantClient SDK in a very different place than $ORACLE_HOME or anything like it. I've created the Makefile thus:
perl Makefile.PL CCFLAGS="-I/usr/include/oracle/11.2/client64" LDFLAGS="-L/usr/lib/oracle/11.2/client64/lib -R/usr/lib/oracle/11.2/client64/lib"
(Note that I have not told the Makefile anything about /usr/share/oracle/11.2/client64 or /usr/lib/oracle/11.2/client64/bin. I'm not sure why I should, based on their contents, but I mention it for completeness.)
Here's what's happening (with much repetition that I haven't edited out--when your eyes glaze over, skip forward) when I try to make DBD::Oracle:
In file included from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
+/CORE/op.h:499,
from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
+/CORE/perl.h:2754,
from /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-
+thread-multi/auto/DBI/DBIXS.h:19,
from Oracle.h:50,
from Oracle.xs:1:
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/reentr.h:612: er
+ror: field ‘_crypt_struct’ has incomplete type
In file included from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
+/CORE/perl.h:3950,
from /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-
+thread-multi/auto/DBI/DBIXS.h:19,
from Oracle.h:50,
from Oracle.xs:1:
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/proto.h:297: err
+or: expected declaration specifiers or ‘...’ before ‘off64_t’
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/proto.h:299: err
+or: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Perl_do_
+sysseek’
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/proto.h:300: err
+or: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Perl_do_
+tell’
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/proto.h:2010: er
+ror: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Perl_Pe
+rlIO_tell’
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/proto.h:2011: er
+ror: expected declaration specifiers or ‘...’ before ‘off64_t’
In file included from Oracle.c:111:
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
+Driver_xst.h: In function ‘dbixst_bounce_method’:
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
+Driver_xst.h:27: warning: dereferencing type-punned pointer will brea
+k strict-aliasing rules
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
+Driver_xst.h:46: warning: dereferencing type-punned pointer will brea
+k strict-aliasing rules
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
+Driver_xst.h: In function ‘dbdxst_fetchall_arrayref’:
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
+Driver_xst.h:88: warning: dereferencing type-punned pointer will brea
+k strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db__login’:
Oracle.xsi:88: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_selectall_arrayref’:
Oracle.xsi:136: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_selectrow_arrayref’:
Oracle.xsi:180: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_commit’:
Oracle.xsi:266: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_rollback’:
Oracle.xsi:276: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_disconnect’:
Oracle.xsi:286: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_STORE’:
Oracle.xsi:314: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_FETCH’:
Oracle.xsi:328: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__db_DESTROY’:
Oracle.xsi:339: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st__prepare’:
Oracle.xsi:449: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_rows’:
Oracle.xsi:465: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_bind_col’:
Oracle.xsi:482: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_bind_param’:
Oracle.xsi:520: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_bind_param_inout’:
Oracle.xsi:550: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_execute’:
Oracle.xsi:579: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_fetchrow_arrayref’:
Oracle.xsi:622: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_fetchrow_array’:
Oracle.xsi:635: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_finish’:
Oracle.xsi:669: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_blob_read’:
Oracle.xsi:698: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_STORE’:
Oracle.xsi:713: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_FETCH_attrib’:
Oracle.xsi:730: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xsi: In function ‘XS_DBD__Oracle__st_DESTROY’:
Oracle.xsi:743: warning: dereferencing type-punned pointer will break
+strict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_stmt_type’:
Oracle.xs:122: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_stmt_type_name’:
Oracle.xs:132: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_scroll_position’:
Oracle.xs:144: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_fetch_scroll’:
Oracle.xs:156: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_bind_param_inout_array’
+:
Oracle.xs:176: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_fetch’:
Oracle.xs:207: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:210: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:211: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:221: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:231: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:235: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:238: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:239: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:239: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_execute_array’:
Oracle.xs:250: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__st_cancel’:
Oracle.xs:273: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_db_startup’:
Oracle.xs:286: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:307: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_db_shutdown’:
Oracle.xs:329: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_can_taf’:
Oracle.xs:357: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_ping’:
Oracle.xs:379: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_reauthenticate’:
Oracle.xs:418: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_write’:
Oracle.xs:428: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:467: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_append’:
Oracle.xs:486: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:527: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_read’:
Oracle.xs:549: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:588: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_trim’:
Oracle.xs:613: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_is_init’:
Oracle.xs:630: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_length’:
Oracle.xs:648: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:652: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_chunk_size’:
Oracle.xs:667: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:671: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs: In function ‘XS_DBD__Oracle__dr_init_oci’:
Oracle.xs:687: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xs:688: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
Oracle.xsi: In function ‘boot_DBD__Oracle’:
Oracle.xsi:24: warning: dereferencing type-punned pointer will break s
+trict-aliasing rules
make: *** [Oracle.o] Error 1
They laughed at Joan of Arc, but she went right ahead and built it. --Gracie Allen