BrowserUk has asked for the wisdom of the Perl Monks concerning the following question:
Does anyone know where the title file comes from?
I'm attempting to build Data::Alias on Win32. The pod warns:
Platform supportSome platforms, notably Windows and AIX, will give link errors when attempting to build Data::Alias. This cannot be fixed. When using Windows, you can use perl inside cygwin (http://www.cygwin.com/) instead, where Data::Alias does work.
And sure enough, the link fails for the lack of the ability to resolve the following symbols:
Alias.obj : error LNK2019: unresolved external symbol ... _Perl_av_reify referenced in function _da_refgen _Perl_vivify_defelem referenced in function _da_refgen __imp__PL_no_localize_ref _Perl_pp_rv2av referenced in function _DataAlias_pp_rv2av _Perl_pp_rv2hv referenced in function _DataAlias_pp_rv2hv __imp__PL_sv_placeholder _Perl_pop_return referenced in function _DataAlias_pp_return _Perl_setdefout referenced in function _DataAlias_pp_return _Perl_lex_end referenced in function _DataAlias_pp_return _Perl_pp_entereval referenced in function _DataAlias_pp_entereval _Perl_mod referenced in function _da_transform _Perl_qerror referenced in function _da_lvalue __imp__PL_op_mutex _Perl_yylex referenced in function _da_ck_rv2cv _Perl_op_clear referenced in function _da_ck_entersub blib\arch\auto\Data\Alias\Alias.dll : fatal error LNK1120: 15 unresolv +ed externals
The leading underscore on those symbol names (maybe) indicates that this is the familiar problem of the default calling convention is being used. The (maybe) fix being to tag those functions to use the pascal calling convention.
Whilst grepping around for the locations of the declarations, I noticed that several of them turn up in the title file, and that file contains:
embed.fnc embed.h global.sym op.c perly.c perly.h perly.y perly_c.diff proto.h toke.c vms/perly_c.vms vms/perly_h.vms
which look like the right places to be fixing the declarations. If it is, then it means that this is (at least in part) a solved problem. I'm hoping that by inspecting the build files for whatever module uses it I can work out how these files are used. But for the life of me, a cannot work out where this file came from? Neither a cpan search nor google have turned up anything. Is there a better way?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: From whence comes perl-5.8.6-smartmatch.tar?
by syphilis (Archbishop) on Dec 22, 2006 at 02:42 UTC | |
by BrowserUk (Patriarch) on Dec 22, 2006 at 11:56 UTC | |
by syphilis (Archbishop) on Dec 22, 2006 at 20:15 UTC | |
Re: From whence comes perl-5.8.6-smartmatch.tar?
by randyk (Parson) on Dec 22, 2006 at 05:29 UTC | |
Re: From whence comes perl-5.8.6-smartmatch.tar?
by sgt (Deacon) on Dec 22, 2006 at 14:33 UTC | |
Re: From whence comes perl-5.8.6-smartmatch.tar?
by xmath (Hermit) on Jan 09, 2007 at 16:01 UTC | |
by BrowserUk (Patriarch) on Jan 09, 2007 at 16:20 UTC | |
by xmath (Hermit) on Jan 09, 2007 at 16:38 UTC | |
by BrowserUk (Patriarch) on Jan 09, 2007 at 16:50 UTC |