[oi-dev] perl module compilation: symbol reference warning.

Rouven WEILER Rouven_Weiler at gmx.net
Wed Feb 26 07:09:30 UTC 2020


Hey there,

I built a slightly customized perl module DBD-SQLite-1.58 with OpenIndiana's perl-522.
During the built process I get a line warning about symbol referencing errors.
Nevertheless, the packages passes all tests.

Adding arguments for explicitly linking against libperl.so solves the warning, bit adds libperl.so to the ELF header's needed libraries section.

Although it is "just" a warning I want to get rid of this warning. Experience shows that such warnings become errors very fast and then the solution is needed.
Some other packages already threw errors about referenced symbols coming from libperl.so
And on linux systems there is no such warning, which makes me think that there is something special about OpenIndiana.

Compiling the plain uncustomized package as it is downloadable from cpan it shows the same warning.

Thanks in advance.

Here now the offending warning including the linker line:


LD_RUN_PATH="/usr/gcc/6/lib" /usr/gcc/6/bin/gcc -m32  -shared -fstack-protector -fstack-protector-strong -Wl,-Bsymbolic SQLite.o dbdimp.o sqlite3.o  -o blib/arch/auto/DBD/SQLite/SQLite.so ../build/lib/libicuuc.a ../build/lib/libicudata.a ../build/lib/libicui18n.a \
   -L/export/home/github.com/oi-userland.git/components/encumbered/lms/build/lms-vendor/CPAN/DBD-SQLite-1.58/../build/lib -licudata_s -licui18n_s -licuuc_s -lstdc++    \

Undefined                       first referenced
 symbol                             in file
PL_op                               SQLite.o
Perl_sv_2pvbyte                     dbdimp.o
Perl_sv_2pvutf8                     dbdimp.o
PerlIO_printf                       SQLite.o
Perl_sv_2bool_flags                 SQLite.o
Perl_stack_grow                     SQLite.o
Perl_newSVpv                        SQLite.o
Perl_newSVnv                        dbdimp.o
Perl_newSViv                        SQLite.o
Perl_newSVsv                        dbdimp.o
Perl_newSV_type                     SQLite.o
Perl_xs_handshake                   SQLite.o
Perl_sv_2mortal                     SQLite.o
PL_errgv                            dbdimp.o
Perl_croak                          SQLite.o
Perl_newSV                          SQLite.o
Perl_newRV                          SQLite.o
PL_phase                            SQLite.o
PL_sv_no                            SQLite.o
PL_stack_max                        SQLite.o
PL_markstack_ptr                    SQLite.o
PL_markstack_max                    SQLite.o
Perl_save_strlen                    dbdimp.o
Perl_push_scope                     dbdimp.o
Perl_get_cv                         SQLite.o
Perl_get_av                         dbdimp.o
Perl_get_sv                         SQLite.o
PL_curpad                           SQLite.o
Perl_av_len                         SQLite.o
Perl_mg_get                         SQLite.o
Perl_mg_set                         SQLite.o
PL_sv_yes                           SQLite.o
Perl_mg_find                        SQLite.o
Perl_mg_size                        SQLite.o
Perl_savepv                         dbdimp.o
Perl_sv_setsv_flags                 dbdimp.o
Perl_hv_undef_flags                 dbdimp.o
Perl_free_tmps                      dbdimp.o
Perl_gv_add_by_type                 dbdimp.o
Perl_dowantarray                    SQLite.o
Perl_call_method                    SQLite.o
Perl_markstack_grow                 SQLite.o
Perl_croak_xs_usage                 SQLite.o
Perl_hv_common                      dbdimp.o
Perl_form                           dbdimp.o
Perl_warn                           SQLite.o
Perl_av_extend                      SQLite.o
Perl_safesysfree                    dbdimp.o
Perl_eval_pv                        dbdimp.o
Perl_hv_common_key_len              SQLite.o
Perl_newSVpvf                       dbdimp.o
Perl_newSVpvn                       dbdimp.o
Perl_sv_setpvn                      dbdimp.o
PL_stack_sp                         SQLite.o
Perl_newRV_noinc                    SQLite.o
Perl_xs_boot_epilog                 SQLite.o
Perl_newSVpvn_flags                 dbdimp.o
Perl_pop_scope                      dbdimp.o
Perl_newXS_deffile                  SQLite.o
Perl_newXS_flags                    SQLite.o
PL_tmps_ix                          dbdimp.o
Perl_call_pv                        dbdimp.o
Perl_call_sv                        dbdimp.o
Perl_sv_isobject                    dbdimp.o
PL_sv_undef                         SQLite.o
Perl_utf8_hop                       dbdimp.o
Perl_sv_utf8_upgrade_flags_grow     dbdimp.o
Perl_sv_newmortal                   SQLite.o
PL_stack_base                       SQLite.o
Perl_av_make                        SQLite.o
Perl_av_push                        SQLite.o
PL_tmps_floor                       dbdimp.o
Perl_hv_clear                       SQLite.o
Perl_av_clear                       dbdimp.o
Perl_sv_free2                       dbdimp.o
Perl_av_fetch                       dbdimp.o
Perl_sv_setpv                       SQLite.o
Perl_sv_setnv                       dbdimp.o
Perl_sv_setiv                       SQLite.o
Perl_av_undef                       dbdimp.o
Perl_av_store                       dbdimp.o
Perl_sv_2nv_flags                   dbdimp.o
Perl_sv_2iv_flags                   SQLite.o
Perl_sv_2uv_flags                   dbdimp.o
Perl_sv_2pv_flags                   SQLite.o
Perl_looks_like_number              dbdimp.o
Perl_sv_rvweaken                    dbdimp.o
Perl_sv_free                        dbdimp.o
ld: warning: symbol referencing errors
chmod 755 blib/arch/auto/DBD/SQLite/SQLite.so
"/usr/perl5/5.22/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- SQLite.bs blib/arch/auto/DBD/SQLite/SQLite.bs 644








More information about the oi-dev mailing list