On Sun, 18 Jan 2009 11:19:01 -0500, "Reini Urban via RT"
<bug-B-Generate@rt.cpan.org> wrote:
Show quoted text
or AIX. see all those listed in makedef.pl
Show quoted text> We need Perl_pad_alloc, Perl_cv_clone and Perl_fold_constants.
>
> This is a core problem,
> 1. that those functions ARE exported, and
> 2. that those functions should be added to the public API
I at this moment think I care more about a guarantee that all functions
in the public defined API are indeed exported. The two problems are
very much related.
Show quoted text> This needs to be added to core to be able to use certain critical
> functions such as setting op->targ, using CV->NEW_with_start and
> op->convert.
> They used to work in all previous releases before on all other platforms.
>
> In the meantime I'll make a crippled MSWin32 version for B::Generate.
On Mon, 20 Oct 2008 14:16:30 +0200, "H.Merijn Brand"
<h.m.brand@xs4all.nl> wrote:
Show quoted text> embed.pl generates global.sym, which contains a list of all the
> functions that are documented to be in the perl API. There is currently
> however no test to check if all those are actually available, and it
> turns out that if you build with -Duseshrplib, many are indeed not
> available. Example:
>
> $ grep signbit embed.fnc
> AMdnoP |int |Perl_signbit |NV f
> $ grep signbit global.sym
> Perl_signbit
> $ nm libperl.so | grep signbit
> Exit 1
> $
>
> and Perl_signbit is not explicitly skipped in makedef.pl - that is
> only used for aix win32 wince os2 MacOS netware - so I expect it to be
> in libperl.{so|sl|a|dll}
>
> An (unportable) simple test case:
> --8<--- globals.pl
> #!/pro/bin/perl
>
> qx{make global.sym};
>
> my $nm;
> if (my @lp = glob "libperl.*") {
> $nm = $lp[0];
> }
> else {
> $nm = "perl";
> }
> my %sym;
> open my $nl, "-|", "nm $nm" or die "Cannot execute $nm: $!\n";
> while (<$nl>) {
> m/ [DT] (.*)/ and $sym{$1}++;
> }
>
> open my $gs, "<", "global.sym" or die "global.sym: $!\n";
> while (<$gs>) {
> m/^\s*#/ and next;
> chomp;
> exists $sym{$_} or print "Symbol $_ not found in $nm\n";
> }
> -->8---
>
> showed me a complete list on Linux and AIX:
>
> Linux $ /pro/bin/perl global.pl
> Symbol perl_alloc_using not found in libperl.so
> Symbol perl_clone not found in libperl.so
> Symbol perl_clone_using not found in libperl.so
> Symbol Perl_my_chsize not found in libperl.so
> Symbol Perl_croak_nocontext not found in libperl.so
> Symbol Perl_die_nocontext not found in libperl.so
> Symbol Perl_deb_nocontext not found in libperl.so
> Symbol Perl_form_nocontext not found in libperl.so
> Symbol Perl_load_module_nocontext not found in libperl.so
> Symbol Perl_mess_nocontext not found in libperl.so
> Symbol Perl_warn_nocontext not found in libperl.so
> Symbol Perl_warner_nocontext not found in libperl.so
> Symbol Perl_newSVpvf_nocontext not found in libperl.so
> Symbol Perl_sv_catpvf_nocontext not found in libperl.so
> Symbol Perl_sv_setpvf_nocontext not found in libperl.so
> Symbol Perl_sv_catpvf_mg_nocontext not found in libperl.so
> Symbol Perl_sv_setpvf_mg_nocontext not found in libperl.so
> Symbol Perl_do_aspawn not found in libperl.so
> Symbol Perl_do_spawn not found in libperl.so
> Symbol Perl_do_spawn_nowait not found in libperl.so
> Symbol Perl_dump_fds not found in libperl.so
> Symbol Perl_my_bcopy not found in libperl.so
> Symbol Perl_my_bzero not found in libperl.so
> Symbol Perl_my_memcmp not found in libperl.so
> Symbol Perl_my_memset not found in libperl.so
> Symbol Perl_my_swap not found in libperl.so
> Symbol Perl_my_htonl not found in libperl.so
> Symbol Perl_my_ntohl not found in libperl.so
> Symbol Perl_newPADOP not found in libperl.so
> Symbol Perl_regdupe_internal not found in libperl.so
> Symbol Perl_unlnk not found in libperl.so
> Symbol Perl_dump_mstats not found in libperl.so
> Symbol Perl_get_mstats not found in libperl.so
> Symbol Perl_GetVars not found in libperl.so
> Symbol Perl_init_global_struct not found in libperl.so
> Symbol Perl_free_global_struct not found in libperl.so
> Symbol Perl_cx_dup not found in libperl.so
> Symbol Perl_si_dup not found in libperl.so
> Symbol Perl_ss_dup not found in libperl.so
> Symbol Perl_any_dup not found in libperl.so
> Symbol Perl_he_dup not found in libperl.so
> Symbol Perl_hek_dup not found in libperl.so
> Symbol Perl_re_dup_guts not found in libperl.so
> Symbol Perl_fp_dup not found in libperl.so
> Symbol Perl_dirp_dup not found in libperl.so
> Symbol Perl_gp_dup not found in libperl.so
> Symbol Perl_mg_dup not found in libperl.so
> Symbol Perl_sv_dup not found in libperl.so
> Symbol Perl_rvpv_dup not found in libperl.so
> Symbol Perl_parser_dup not found in libperl.so
> Symbol Perl_sys_intern_dup not found in libperl.so
> Symbol Perl_sys_intern_clear not found in libperl.so
> Symbol Perl_sys_intern_init not found in libperl.so
> Symbol Perl_Slab_Alloc not found in libperl.so
> Symbol Perl_Slab_Free not found in libperl.so
> Symbol Perl_sv_setsv_cow not found in libperl.so
> Symbol Perl_stashpv_hvname_match not found in libperl.so
> Symbol Perl_my_sprintf not found in libperl.so
> Symbol Perl_my_cxt_init not found in libperl.so
> Symbol Perl_my_cxt_index not found in libperl.so
> Symbol Perl_signbit not found in libperl.so
> Linux $
>
> And on AIX:
>
> $ /pro/bin/perl /tmp/global.pl
> Symbol perl_alloc_using not found in libperl.a
> Symbol perl_clone_using not found in libperl.a
> Symbol Perl_my_chsize not found in libperl.a
> Symbol Perl_do_aspawn not found in libperl.a
> Symbol Perl_do_spawn not found in libperl.a
> Symbol Perl_do_spawn_nowait not found in libperl.a
> Symbol Perl_dump_fds not found in libperl.a
> Symbol Perl_my_bcopy not found in libperl.a
> Symbol Perl_my_bzero not found in libperl.a
> Symbol Perl_my_memcmp not found in libperl.a
> Symbol Perl_my_memset not found in libperl.a
> Symbol Perl_my_swap not found in libperl.a
> Symbol Perl_my_htonl not found in libperl.a
> Symbol Perl_my_ntohl not found in libperl.a
> Symbol Perl_unlnk not found in libperl.a
> Symbol Perl_dump_mstats not found in libperl.a
> Symbol Perl_get_mstats not found in libperl.a
> Symbol Perl_GetVars not found in libperl.a
> Symbol Perl_init_global_struct not found in libperl.a
> Symbol Perl_free_global_struct not found in libperl.a
> Symbol Perl_sys_intern_dup not found in libperl.a
> Symbol Perl_sys_intern_clear not found in libperl.a
> Symbol Perl_sys_intern_init not found in libperl.a
> Symbol Perl_Slab_Alloc not found in libperl.a
> Symbol Perl_Slab_Free not found in libperl.a
> Symbol Perl_sv_setsv_cow not found in libperl.a
> Symbol Perl_my_sprintf not found in libperl.a
> Symbol Perl_my_cxt_index not found in libperl.a
> Symbol Perl_signbit not found in libperl.a
> $
>
> Note that the list on AIX is actually shorter
>
> BTW I'm extremely interested in a way to portably do this on win32
--
H.Merijn Brand
http://tux.nl Perl Monger
http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, SuSE 10.1, 10.3, and 11.0, AIX 5.2, and Cygwin.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/