develooper Front page | perl.perl5.porters | Postings from April 2018

Re: Adding stuff to mathoms.c is now simplified, generalized

Thread Previous | Thread Next
From:
bulk 88
Date:
April 11, 2018 00:20
Subject:
Re: Adding stuff to mathoms.c is now simplified, generalized
Message ID:
BN6PR04MB09636DC13C15D01B11567924DFBD0@BN6PR04MB0963.namprd04.prod.outlook.com
Karl Williamson wrote:
> With commit 5f81fa4069cb15ccd77b1c4253c870df84c1788a, moving something 
> to mathoms.c is now simplified.  Previously no C function prototype 
> was generated, so you had to add one yourself at the beginning of the 
> file.  Some things required the parameter asserts to also be added 
> individually, and some functions required special handling in 
> makedef.pl.  All of that is gone.
>
> To move a function to mathoms.c, simply cut and paste it to there, and 
> change its embed.fnc entry to additionally have the 'b' flag.  If, for 
> some reason a function you'd like to be treated as mathoms can't be 
> moved from its current place, simply enclose it between
>
>    #ifndef NO_MATHOMS
>    ...
>    #endif
>
> and add the 'b' flag in embed.fnc.

Commit 3f1866a8f6c7a9d70d0c8bb1b4f20d2db63756f1 "embed.fnc: Alter 'b' 
flag meaning" broke a -DNO_MATHOMS win32 build. Once the
---------------------------------------
    while (<$mathoms>) {
        ++$skip{$1} if /\A ( NATIVE_TO_NEED
                           | ASCII_TO_NEED
                           | Perl_\w+ ) \s* \( /axms;
    }
--------------------------------------

code was removed from makedef.pl, makedef.pl started putting all these 
funcs in perldll.def, which created an symbol dep inside perl52*.dll 
requiring that symbol for perl52*.dll export table, but the symbol was 
never compiled because of -DNO_MATHOMS. I haven't been following blead 
in 2017 and not tried to rebase my fork for 2 years so this breakage 
slipped in. This same link failure is still in 5.27.11 when doing 
-DNO_MATHOMS on Win32.

-----------------------------------------
cl -c           -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 
-D_CONSOLE -DNO
_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
-DNO_MATHOMS -DPE
RL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS 
-DWIN32_NO_REGIS
TRY -DPERLDLL -O1 -MD -Zi -DNDEBUG -GL    -DVERSION=\"1.38\"    
-DXS_VERSION=\"1
.38\"  "-I..\..\lib\CORE"  -DLIBC="msvcrt.lib" DynaLoader.c
DynaLoader.c
C:\p527\srcnew\miniperl.exe "-I..\..\lib" "-I..\..\lib" 
-MExtUtils::Command -e r
m_rf -- ..\..\DynaLoader.obj
C:\p527\srcnew\miniperl.exe "-I..\..\lib" "-I..\..\lib" 
-MExtUtils::Command -e c
p -- DynaLoader.obj ..\..\DynaLoader.obj
link -dll -out:..\perl525.dll "/manifestdependency:type='Win32' 
name='Microsoft.
Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' 
publicKeyTo
ken='6595b64144ccf1df' language='*'" -subsystem:console -nologo 
-nodefaultlib -d
ebug -opt:ref,icf -ltcg                 -libpath:"c:\perl\lib\CORE"
-machine:x86 \
            @Extensions_static \
            @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\mk2076_2358_5
if exist ..\perl525.dll.manifest mt -nologo -manifest 
..\perl525.dll.manifest -o
utputresource:..\perl525.dll;2 &&                 if exist 
..\perl525.dll.manife
st del ..\perl525.dll.manifest
perl525.exp : error LNK2001: unresolved external symbol _ASCII_TO_NEED
perl525.exp : error LNK2001: unresolved external symbol _NATIVE_TO_NEED
perl525.exp : error LNK2001: unresolved external symbol _Perl_custom_op_desc
perl525.exp : error LNK2001: unresolved external symbol _Perl_custom_op_name
perl525.exp : error LNK2001: unresolved external symbol _Perl_do_binmode
perl525.exp : error LNK2001: unresolved external symbol _Perl_do_open9
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_fprintf_nocontext
perl525.exp : error LNK2001: unresolved external symbol _Perl_gv_efullname
perl525.exp : error LNK2001: unresolved external symbol _Perl_gv_fullname
perl525.exp : error LNK2001: unresolved external symbol _Perl_init_i18nl14n
perl525.exp : error LNK2001: unresolved external symbol _Perl_isALNUM_lazy
perl525.exp : error LNK2001: unresolved external symbol _Perl_isIDFIRST_lazy
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_alnum
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_alnum_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_alnumc
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_alnumc_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_alpha
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_alpha_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_ascii
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_ascii_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_blank
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_blank_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_cntrl
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_cntrl_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_digit
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_digit_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_graph
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_graph_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_idfirst
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_idfirst_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_lower
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_lower_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_print
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_print_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_punct
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_punct_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_space
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_space_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_upper
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_upper_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_uni_xdigit
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_uni_xdigit_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_alnum
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_alnumc
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_alpha
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_ascii
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_blank
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_char
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_cntrl
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_digit
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_graph
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_idcont
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_utf8_idfirst
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_lower
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_mark
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_utf8_perl_space

perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_utf8_perl_word
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_utf8_posix_digi
t
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_print
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_punct
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_space
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_upper
perl525.exp : error LNK2001: unresolved external symbol _Perl_is_utf8_xdigit
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_utf8_xidcont
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_is_utf8_xidfirst
perl525.exp : error LNK2001: unresolved external symbol _Perl_pack_cat
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_pad_compname_type
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_printf_nocontext
perl525.exp : error LNK2001: unresolved external symbol _Perl_save_iv
perl525.exp : error LNK2001: unresolved external symbol _Perl_save_list
perl525.exp : error LNK2001: unresolved external symbol _Perl_save_long
perl525.exp : error LNK2001: unresolved external symbol _Perl_save_nogv
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_iv
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_nounlocking
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_nv
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_pvbyten
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_pvn
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_pvn_nomg
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_pvutf8n
perl525.exp : error LNK2001: unresolved external symbol _Perl_sv_uv
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_to_uni_lower_lc
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_to_uni_title_lc
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_to_uni_upper_lc
perl525.exp : error LNK2001: unresolved external symbol _Perl_unpack_str
perl525.exp : error LNK2001: unresolved external symbol _Perl_utf8_to_uvchr
perl525.exp : error LNK2001: unresolved external symbol _Perl_utf8_to_uvuni
perl525.exp : error LNK2001: unresolved external symbol 
_Perl_valid_utf8_to_uvun
i
..\perl525.dll : fatal error LNK1120: 87 unresolved externals
b88-dmake:  Error code 224, while making '..\perl525.dll'

C:\p527\srcnew\win32>
-----------------------------------------

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About