http://www.perlmonks.org?node_id=967386


in reply to Re^3: Giving LDFLAGS to a module which has no configure
in thread Giving LDFLAGS to a module which has no configure

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

Replies are listed 'Best First'.
Re^5: Giving LDFLAGS to a module which has no configure
by Anonymous Monk on Apr 26, 2012 at 18:23 UTC