Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

more -DNO_MATHOMS breakage on Win32 #16513

Closed
p5pRT opened this issue Apr 20, 2018 · 9 comments
Closed

more -DNO_MATHOMS breakage on Win32 #16513

p5pRT opened this issue Apr 20, 2018 · 9 comments

Comments

@p5pRT
Copy link

@p5pRT p5pRT commented Apr 20, 2018

Migrated from rt.perl.org#133125 (status was 'resolved')

Searchable as RT133125$

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @bulk88

Created by @bulk88

This is a 5.28 blocker.

Round #2 of https://rt.perl.org/Public/Bug/Display.html?id=133098 .

The patch "fix -DNO_MATHOMS build, mathomed syms were not removed from
perldll.def" breaks a WITH_MATHOMS (not a define) win32 build. I didn't
test on my main machine a WITH_MATHOMS (default) build before submitting
the patch but I tested today on another machine and got breakage.
-----------------------------------------------
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE
-DNO_STRICT
-DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME
-DPERL_DISABLE_PMC -DPERL
_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO
-D_USE_32
BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL -DVERSION=\"0.97\"
-DXS_VERSION=\"0.97\"
"-I..\..\lib\CORE" APItest.c
APItest.c
"..\..\miniperl.exe" "-I..\..\lib"
"C​:\perl521\srcnew\dist\ExtUtils-ParseXS\lib\
ExtUtils/xsubpp" -typemap C​:\perl521\srcnew\lib\ExtUtils\typemap
-typemap C​:\pe
rl521\srcnew\ext\XS-APItest\typemap XSUB-undef-XS_VERSION.xs >
XSUB-undef-XS_VE
RSION.xsc
C​:\perl521\srcnew\miniperl.exe "-I..\..\lib" -MExtUtils​::Command -e mv
-- XSUB-u
ndef-XS_VERSION.xsc XSUB-undef-XS_VERSION.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE
-DNO_STRICT
-DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME
-DPERL_DISABLE_PMC -DPERL
_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO
-D_USE_32
BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL -DVERSION=\"0.97\"
-DXS_VERSION=\"0.97\"
"-I..\..\lib\CORE" XSUB-undef-XS_VERSION.c
XSUB-undef-XS_VERSION.c
"..\..\miniperl.exe" "-I..\..\lib"
"C​:\perl521\srcnew\dist\ExtUtils-ParseXS\lib\
ExtUtils/xsubpp" -typemap C​:\perl521\srcnew\lib\ExtUtils\typemap
-typemap C​:\pe
rl521\srcnew\ext\XS-APItest\typemap XSUB-redefined-macros.xs >
XSUB-redefined-m
acros.xsc
C​:\perl521\srcnew\miniperl.exe "-I..\..\lib" -MExtUtils​::Command -e mv
-- XSUB-r
edefined-macros.xsc XSUB-redefined-macros.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE
-DNO_STRICT
-DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME
-DPERL_DISABLE_PMC -DPERL
_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO
-D_USE_32
BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL -DVERSION=\"0.97\"
-DXS_VERSION=\"0.97\"
"-I..\..\lib\CORE" XSUB-redefined-macros.c
XSUB-redefined-macros.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE
-DNO_STRICT
-DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME
-DPERL_DISABLE_PMC -DPERL
_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO
-D_USE_32
BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL -DVERSION=\"0.97\"
-DXS_VERSION=\"0.97\"
"-I..\..\lib\CORE" core.c
core.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE
-DNO_STRICT
-DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME
-DPERL_DISABLE_PMC -DPERL
_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO
-D_USE_32
BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL -DVERSION=\"0.97\"
-DXS_VERSION=\"0.97\"
"-I..\..\lib\CORE" exception.c
exception.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE
-DNO_STRICT
-DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME
-DPERL_DISABLE_PMC -DPERL
_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO
-D_USE_32
BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL -DVERSION=\"0.97\"
-DXS_VERSION=\"0.97\"
"-I..\..\lib\CORE" notcore.c
notcore.c
"..\..\miniperl.exe" "-I..\..\lib" -MExtUtils​::Mksymlists \
  -e "Mksymlists('NAME'=>\"XS​::APItest\", 'DLBASE' => 'APItest',
'DL_FUNCS' =

{ }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
link -out​:..\..\lib\auto\XS\APItest\APItest.dll -dll -nologo
-nodefaultlib -debu
g -opt​:ref,icf -ltcg -libpath​:"c​:\perl\lib\CORE" -machine​:x86
APItest.obj XSUB-u
ndef-XS_VERSION.obj XSUB-redefined-macros.obj core.obj exception.obj
notcore.obj
  "..\..\lib\CORE\perl527.lib" oldnames.lib kernel32.lib user32.lib
gdi32.lib w
inspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi3
2.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib
odbccp32.lib
comctl32.lib msvcrt.lib -def​:APItest.def
  Creating library ..\..\lib\auto\XS\APItest\APItest.lib and object
..\..\lib\a
uto\XS\APItest\APItest.exp
APItest.obj : error LNK2001​: unresolved external symbol
__imp__Perl_to_utf8_titl
e
APItest.obj : error LNK2001​: unresolved external symbol
__imp__Perl_to_utf8_fold

APItest.obj : error LNK2001​: unresolved external symbol
__imp__Perl_to_utf8_lowe
r
APItest.obj : error LNK2001​: unresolved external symbol
__imp__Perl_to_utf8_uppe
r
..\..\lib\auto\XS\APItest\APItest.dll : fatal error LNK1120​: 4
unresolved extern
als
makefile​:483​: recipe for target '..\..\lib\auto\XS\APItest\APItest.dll'
failed
gmake[1]​: *** [..\..\lib\auto\XS\APItest\APItest.dll] Error 1120
gmake[1]​: Leaving directory 'C​:/perl521/srcnew/ext/XS-APItest'
Unsuccessful make(ext/XS-APItest)​: code=512 at ..\make_ext.pl line 570.
GNUmakefile​:1578​: recipe for target 'Extensions' failed
gmake​: *** [Extensions] Error 2
--------------------------

These link errors bring up a question of what is a mathom-ed function
anyways.

The link error I see is because of
https://perl5.git.perl.org/perl.git/commitdiff/607313a19740cb756ab98d5e58e6040ea8c125d4
which used mathomed functions by their full name "Perl_to_utf8_title"
and not "to_utf8_title" which is redirected to a newer C func by preproc
in
https://perl5.git.perl.org/perl.git/blob/4273b0cccad37ddd85afb1abe763af2c6a6023a5:/utf8.h#l86

The top of embed.fnc
https://perl5.git.perl.org/perl.git/blob/4273b0cccad37ddd85afb1abe763af2c6a6023a5:/embed.fnc#l107
says that "m" symbols are not exported. Docs for "b" are ambiguous
https://perl5.git.perl.org/perl.git/blob/4273b0cccad37ddd85afb1abe763af2c6a6023a5:/embed.fnc#l67
  Those 4 funcs are "ApbmdD" So "A" for public API (IE exported), "b"
for not avail on -DNO_MATHOMS, "m" for macro not a func. I thought I got
the permutation right in
https://perl5.git.perl.org/perl.git/commitdiff/1545ba5b042c208e23333479730479c0acd55325
"xmi" flags mean not exported. Previous KHW code that I was fixing
https://perl5.git.perl.org/perl.git/commitdiff/3f1866a8f6c7a9d70d0c8bb1b4f20d2db63756f1

so what is the definition of "b"?

I did a diff of my "fix -DNO_MATHOMS build, mathomed syms were not
removed from perldll.def" commit and cooked up this regex of now deleted
in WITH_MATHOMS symbols because they all have "m" flag but are also "b".

Perl_do_aexec|Perl_do_open|Perl_gv_AVadd|Perl_gv_HVadd|Perl_gv_IOadd|Perl_gv_SVadd|Perl_gv_efullname3|Perl_gv_fetchmethod|Perl_gv_fullname3|Perl_hv_delete|Perl_hv_delete_ent|Perl_hv_exists|Perl_hv_exists_ent|Perl_hv_fetch|Perl_hv_fetch_ent|Perl_hv_iternext|Perl_hv_magic|Perl_hv_store|Perl_hv_store_ent|Perl_hv_store_flags|Perl_instr|Perl_is_utf8_char_buf|Perl_is_utf8_string_loc|Perl_mem_collxfrm|Perl_my_lstat|Perl_my_stat|Perl_newAV|Perl_newHV|Perl_newIO|Perl_newSUB|Perl_ref|Perl_save_freeop|Perl_save_freepv|Perl_save_freesv|Perl_save_mortalizesv|Perl_save_op|Perl_sv_2iv|Perl_sv_2pv|Perl_sv_2pv_nolen|Perl_sv_2pvbyte_nolen|Perl_sv_2pvutf8_nolen|Perl_sv_2uv|Perl_sv_catpvn|Perl_sv_catpvn_mg|Perl_sv_catsv|Perl_sv_catsv_mg|Perl_sv_copypv|Perl_sv_force_normal|Perl_sv_insert|Perl_sv_mortalcopy|Perl_sv_nolocking|Perl_sv_pv|Perl_sv_pvbyte|Perl_sv_pvn_force|Perl_sv_pvutf8|Perl_sv_setsv|Perl_sv_taint|Perl_sv_unref|Perl_sv_usepvn|Perl_sv_usepvn_mg|Perl_sv_utf8_upgrade|Perl_to_utf8_fold|P
erl_to_utf8_lower|Perl_to_utf8_title|Perl_to_utf8_upper

but grep.metacpan.org doesn't pull up anything unless I narrow the
search "to_utf8_title" (design bugs/search limit in seconds) and the
more trusty grep.cpan.me is down.

So again, I wonder, what is the definition of "b"? Is
https://perl5.git.perl.org/perl.git/commitdiff/607313a19740cb756ab98d5e58e6040ea8c125d4
correct and exactly how mathom symbols are supposed to be used in
fallback mode and "b" always means exported from binary unless
NO_MATHOMS? or does "m" always mean "never exported" regardless of any
other build choices and XS-Apitest and any CPAN code is wrong?

A decision must be made for 5.28.

Perl Info
---
Flags:
               category=core
               severity=low
---
Site configuration information for perl 5.27.9:

Configured by Administrator at Tue Jan 30 20:34:30 2018.

Summary of my perl5 (revision 5 version 27 subversion 9) configuration:

             Platform:
               osname=MSWin32
               osvers=5.2.3790
               archname=MSWin32-x86-multi-thread
               uname=''
               config_args='undef'
               hint=recommended
               useposix=true
               d_sigaction=undef
               useithreads=define
               usemultiplicity=define
               use64bitint=undef
               use64bitall=undef
               uselongdouble=undef
               usemymalloc=n
               default_inc_excludes_dot=define
               bincompat5005=undef
             Compiler:
               cc='cl'
               ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32
-D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE  -DPERL_TEXTMODE_SCRIPTS
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY'
               optimize='-O1 -MD -Zi -DNDEBUG -GL'
               cppflags='-DWIN32'
               ccversion='15.00.30729.01'
               gccversion=''
               gccosandvers=''
               intsize=4
               longsize=4
               ptrsize=4
               doublesize=8
               byteorder=1234
               doublekind=3
               d_longlong=undef
               longlongsize=8
               d_longdbl=define
               longdblsize=8
               longdblkind=0
               ivtype='long'
               ivsize=4
               nvtype='double'
               nvsize=8
               Off_t='__int64'
               lseeksize=8
               alignbytes=8
               prototype=define
             Linker and Libraries:
               ld='link'
               ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg
-libpath:"c:\perl\lib\CORE"        -machine:x86'
               libpth="C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\lib"
               libs=oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
               perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
               libc=msvcrt.lib
               so=dll
               useshrplib=true
               libperl=perl527.lib
               gnulibc_version=''
             Dynamic Linking:
               dlsrc=dl_win32.xs
               dlext=dll
               d_dlsymun=undef
               ccdlflags=' '
               cccdlflags=' '
               lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf
-ltcg
               -libpath:"c:\perl\lib\CORE"        -machine:x86'


---
@INC for perl 5.27.9:
               lib
               C:/p527/srcnew/lib

---
Environment for perl 5.27.9:
               CYGWIN=tty
               HOME (unset)
               LANG (unset)
               LANGUAGE (unset)
               LD_LIBRARY_PATH=/usr/lib/x86:/usr/X11R6/lib
               LOGDIR (unset)
               PATH=C:\WINDOWS\system32;C:\Program Files (x86)\Microsoft
Visual
Studio 9.0\VC\BIN;C:\Program Files\Microsoft
SDKs\Windows\v6.0A\bin;C:\Perl\bin;C:\WINDOWS;C:\Program Files
(x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files
(x86)\Git\bin;C:\sp3220\c\bin;
               PERL_BADLANG (unset)
               SHELL (unset)



@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @bulk88

On Thu, 19 Apr 2018 20​:43​:35 -0700, bulk88 wrote​:

This is a bug report for perl from bulk88@​hotmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

This is a 5.28 blocker.

If nobody can come with any discussion or design, here is a patch that I think is the right solution and on the conservative side (assume you can use Perl_FOO() funcs freely as if they are public API when I dont think they are).

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @bulk88

0001-133125-revise-DNO_MATHOM-logic-again-in-makedef.pl.patch
From fc2890081ff90cf3a8d02927a682fd1341fb9ba0 Mon Sep 17 00:00:00 2001
From: Daniel Dragan <bulk88@hotmail.com>
Date: Fri, 20 Apr 2018 10:46:39 -0400
Subject: [PATCH] #133125 revise -DNO_MATHOM logic again in makedef.pl

Revision of patch in #133098.

There is a problem described in #133125 with XS-APITest using with "Perl_"
mathomed C symbols instead of the Perl_-less ones which would get
preprocessor redirected to newer C funcs, then link failure of XS-APITest
on Win32 because missing symbols. These symbols were missing because they
were marked "m" and I thought in commit 1545ba5b04 "m" means no C symbol,
ever, but that isn't true. It seems that "b" means must export on a
with-mathoms default perl. So put back part of the original code before
commit 1545ba5b04 from commit 3f1866a8f6, so that on with mathoms builds
all "b"s are exported, but on no mathom builds, all "b"s are removed/not
exported.

There are some logic holes here for strange or impossible combinations
of flags, like flags "Abi" or just "b" without "A", that I wont address
here.
---
 makedef.pl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/makedef.pl b/makedef.pl
index daf6b40..dbd756d 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -736,7 +736,8 @@ unless ($define{'USE_QUADMATH'}) {
     foreach (@$embed) {
 	my ($flags, $retval, $func, @args) = @$_;
 	next unless $func;
-	if ($flags =~ /[AX]/ && $flags !~ $excludedre)
+	if (($flags =~ /[AX]/ && $flags !~ $excludedre)
+            || (!$define{'NO_MATHOMS'} && $flags =~ /b/))
         {
 	    # public API, so export
 
-- 
2.5.0.windows.1

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @craigberry

On Fri, Apr 20, 2018 at 9​:50 AM, bulk88 via RT
<perlbug-followup@​perl.org> wrote​:

On Thu, 19 Apr 2018 20​:43​:35 -0700, bulk88 wrote​:

This is a bug report for perl from bulk88@​hotmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

This is a 5.28 blocker.

If nobody can come with any discussion or design, here is a patch that I think is the right solution and on the conservative side (assume you can use Perl_FOO() funcs freely as if they are public API when I dont think they are).

FWIW, VMS is broken the same way. I'll try to take your patch for a
spin later today.

Link /Debug/Trace/Map
/Shareable=[--.LIB.AUTO.XS.APITEST]PL_XS__APITEST.EXE
APItest.opt/Option,[--]perlshr_attr.opt/Option
%ILINK-W-NUDFSYMS, 4 undefined symbols​:
%ILINK-I-UDFSYM, PERL_TO_UTF8_FOLD
%ILINK-I-UDFSYM, PERL_TO_UTF8_LOWER
%ILINK-I-UDFSYM, PERL_TO_UTF8_TITLE
%ILINK-I-UDFSYM, PERL_TO_UTF8_UPPER
%ILINK-W-USEUNDEF, undefined symbol PERL_TO_UTF8_LOWER referenced
  section​: $CODE$
  offset​: %X00000000000FB890 slot​: 1
  module​: APITEST
  file​: D0​:[craig.blead.lib.auto.XS.APItest]APITEST.OLB;1
%ILINK-W-USEUNDEF, undefined symbol PERL_TO_UTF8_FOLD referenced
  section​: $CODE$
  offset​: %X00000000000FE400 slot​: 1
  module​: APITEST
  file​: D0​:[craig.blead.lib.auto.XS.APItest]APITEST.OLB;1
%ILINK-W-USEUNDEF, undefined symbol PERL_TO_UTF8_UPPER referenced
  section​: $CODE$
  offset​: %X0000000000100F40 slot​: 1
  module​: APITEST
  file​: D0​:[craig.blead.lib.auto.XS.APItest]APITEST.OLB;1
%ILINK-W-USEUNDEF, undefined symbol PERL_TO_UTF8_TITLE referenced
  section​: $CODE$
  offset​: %X0000000000103070 slot​: 1
  module​: APITEST
  file​: D0​:[craig.blead.lib.auto.XS.APItest]APITEST.OLB;1
%MMK-F-ERRUPD, error status %X1789A0C0 occurred when updating target
[--.LIB.AUTO.XS.APITEST]PL_XS__APITEST.EXE
%MMK-F-ERRUPD, error status %X1789A0C0 occurred when updating target
[--.LIB.AUTO.XS.APITEST]PL_XS__APITEST.EXE

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 20, 2018

From @craigberry

On Fri, Apr 20, 2018 at 10​:05 AM, Craig A. Berry
<craig.a.berry@​gmail.com> wrote​:

On Fri, Apr 20, 2018 at 9​:50 AM, bulk88 via RT
<perlbug-followup@​perl.org> wrote​:

On Thu, 19 Apr 2018 20​:43​:35 -0700, bulk88 wrote​:

This is a bug report for perl from bulk88@​hotmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

This is a 5.28 blocker.

If nobody can come with any discussion or design, here is a patch that I think is the right solution and on the conservative side (assume you can use Perl_FOO() funcs freely as if they are public API when I dont think they are).

FWIW, VMS is broken the same way. I'll try to take your patch for a
spin later today.

bulk88's patch works for me and also seems like the right thing to do.
I don't think we can just add an X flag to those symbols in embed.fnc
because that would conflict with the m flag that's already there.
Since we're in freeze, do I need a pumpking ruling to push this?

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 21, 2018

From @xsawyerx

On 04/20/2018 09​:42 PM, Craig A. Berry wrote​:

On Fri, Apr 20, 2018 at 10​:05 AM, Craig A. Berry
<craig.a.berry@​gmail.com> wrote​:

On Fri, Apr 20, 2018 at 9​:50 AM, bulk88 via RT
<perlbug-followup@​perl.org> wrote​:

On Thu, 19 Apr 2018 20​:43​:35 -0700, bulk88 wrote​:

This is a bug report for perl from bulk88@​hotmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

This is a 5.28 blocker.
If nobody can come with any discussion or design, here is a patch that I think is the right solution and on the conservative side (assume you can use Perl_FOO() funcs freely as if they are public API when I dont think they are).
FWIW, VMS is broken the same way. I'll try to take your patch for a
spin later today.
bulk88's patch works for me and also seems like the right thing to do.
I don't think we can just add an X flag to those symbols in embed.fnc
because that would conflict with the m flag that's already there.
Since we're in freeze, do I need a pumpking ruling to push this?

Yes. And you have it. Go for it.

Thanks, Craig.

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 21, 2018

From @craigberry

On Sat, Apr 21, 2018 at 3​:22 AM, Sawyer X <xsawyerx@​gmail.com> wrote​:

On 04/20/2018 09​:42 PM, Craig A. Berry wrote​:

On Fri, Apr 20, 2018 at 10​:05 AM, Craig A. Berry
<craig.a.berry@​gmail.com> wrote​:

On Fri, Apr 20, 2018 at 9​:50 AM, bulk88 via RT
<perlbug-followup@​perl.org> wrote​:

On Thu, 19 Apr 2018 20​:43​:35 -0700, bulk88 wrote​:

This is a bug report for perl from bulk88@​hotmail.com,
generated with the help of perlbug 1.41 running under perl 5.27.9.

-----------------------------------------------------------------
[Please describe your issue here]

This is a 5.28 blocker.
If nobody can come with any discussion or design, here is a patch that I think is the right solution and on the conservative side (assume you can use Perl_FOO() funcs freely as if they are public API when I dont think they are).
FWIW, VMS is broken the same way. I'll try to take your patch for a
spin later today.
bulk88's patch works for me and also seems like the right thing to do.
I don't think we can just add an X flag to those symbols in embed.fnc
because that would conflict with the m flag that's already there.
Since we're in freeze, do I need a pumpking ruling to push this?

Yes. And you have it. Go for it.

Thanks. Now done as c41ed02.

@p5pRT
Copy link
Author

@p5pRT p5pRT commented Apr 21, 2018

@iabyn - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant