> I tried editing embed.fnc, but I couldn't get it to make any > difference. > > Instead, I've found that adding PerlIO_isutf8 to the list of > @layer_syms > in makedef.pl solves the problem for me. Here's the patch against > perl-current: > > ### START PATCH ### > --- makedef.pl.orig 2003-07-18 09:42:08.000000000 +0100 > +++ makedef.pl 2003-07-18 09:45:25.000000000 +0100 > @@ -805,6 +805,7 @@ > PerlIO_arg_fetch > PerlIO_debug > PerlIO_define_layer > + PerlIO_isutf8 > PerlIO_layer_fetch > PerlIO_list_free > PerlIO_modestr > ### END PATCH ### > > I don't know if this is the correct place to add this symbol > - there are > other PerlIO symbols listed in the _DATA_ section in makedef.pl, and > probably other files around with similar lists of symbols too > (embed.fnc > for one) - but it works for me.
this is quite correct place to fix. If a function is not there, it will exists inside perl.dll but will not be exportable (speaking of $^O eq 'Win32', but applicable for more platforms). While you're there, it would be great if you'll search for other similar functions to enlist there. At least all functions mentioned in perlapi.pod should be exportable plus may be some more. I think this would be a great opportunity to expand test suite to check whether required functions are available in perl5.lib I could do this by myself, but I'm too busy at work until 1st august. > > Does any documentation need updating to mention this function? Other > functions in this @layer_syms list are not documented anywhere that I > can see, despite a comment in the code saying that these symbols are > exported for the benefit of XS authors! Why have public API > functions > that aren't documented anywhere? > > Steve >
