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

Re: [perl #132955] USE_CPLUSPLUS build broken in 5.27 blead and all5.26 stables

Thread Previous | Thread Next
From:
Steve Hay via perl5-porters
Date:
April 13, 2018 08:20
Subject:
Re: [perl #132955] USE_CPLUSPLUS build broken in 5.27 blead and all5.26 stables
Message ID:
CADED=K6nTUiN6Z6b0ctWPAvGUN8he2Rx6Ow2A+M4WRxjah83=g@mail.gmail.com
On 8 March 2018 at 15:57, bulk88 <perlbug-followup@perl.org> wrote:
> # New Ticket Created by  bulk88
> # Please include the string:  [perl #132955]
> # in the subject line of all future correspondence about this issue.
> # <URL: https://rt.perl.org/Ticket/Display.html?id=132955 >
>
>
> 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]
>
> 5.26 (maint-5.26) and 5.27 blead both fail with Win32 VC perl compiled
> with USE_CPLUSPLUS=define build option. Solution need backporting to 5.26.
>
> --------------------------------------
> cl -c           -nologo -GF -W3 -TP -EHsc -O1 -MD -Zi -DNDEBUG -GL
> -DWIN32 -D_CO
> NSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT
> -DPERL_IMPLICI
> T_SYS -DWIN32_NO_REGISTRY -D_USE_32BIT_TIME_T -O1 -MD -Zi -DNDEBUG -GL
>    -DVERS
> ION=\"1.76\"    -DXS_VERSION=\"1.76\"  "-I..\..\lib\CORE"   POSIX.c
> POSIX.c
> "..\..\miniperl.exe" "-I..\..\lib" -MExtUtils::Mksymlists \
>       -e "Mksymlists('NAME'=>\"POSIX\", 'DLBASE' => 'POSIX', 'DL_FUNCS'
> => {  },
> 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
> link -out:..\..\lib\auto\POSIX\POSIX.dll -dll -nologo -nodefaultlib
> -debug -opt:
> ref,icf -ltcg           -libpath:"c:\perl\lib\CORE"
> -machine:x86 POS
> IX.obj   "..\..\lib\CORE\perl526.lib" oldnames.lib kernel32.lib
> user32.lib gdi32
> .lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
> oleaut32.lib n
> etapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib
> odbccp3
> 2.lib comctl32.lib msvcrt.lib -def:POSIX.def
>     Creating library ..\..\lib\auto\POSIX\POSIX.lib and object
> ..\..\lib\auto\POS
> IX\POSIX.exp
> POSIX.obj : error LNK2001: unresolved external symbol _PL_nan
> ..\..\lib\auto\POSIX\POSIX.dll : fatal error LNK1120: 1 unresolved externals
> dmake:  Error code 224, while making '..\..\lib\auto\POSIX\POSIX.dll'

I also see this with VC10 and VC12.

With VC14 and VC141 I the build fails earlier with a problem in vutil.c:

cl -c -nologo -GF -W3 -TP -EHsc -I..\lib\CORE -I.\include -I. -I..
-DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS
-DPERLDLL -DPERL_CORE   -O1 -MD -Zi -DNDEBUG -GL -DPERL_EXTERNAL_GLOB
-DPERL_IS_MINIPERL -Fo.\mini\util.obj ..\util.c
util.c
c:\dev\git\perl\vutil.c(696): error C3688: invalid literal suffix
'NVff'; literal operator or literal operator template 'operator
""NVff' not found
c:\dev\git\perl\vutil.c(696): error C2664: 'void Perl_sv_catpvf(SV
*const ,const char *const ,...)': cannot convert argument 2 from 'NV'
to 'const char *const '
c:\dev\git\perl\vutil.c(701): error C3688: invalid literal suffix
'NVff'; literal operator or literal operator template 'operator
""NVff' not found
c:\dev\git\perl\vutil.c(701): error C2664: 'int Perl_my_snprintf(char
*,const std::size_t,const char *,...)': cannot convert argument 3 from
'NV' to 'const char *'
c:\dev\git\perl\vutil.c(992): error C3688: invalid literal suffix
'IVdf'; literal operator or literal operator template 'operator
""IVdf' not found
c:\dev\git\perl\vutil.c(996): error C3688: invalid literal suffix
'IVdf'; literal operator or literal operator template 'operator
""IVdf' not found
c:\dev\git\perl\vutil.c(996): error C2664: 'void Perl_sv_catpvf(SV
*const ,const char *const ,...)': cannot convert argument 2 from 'IV'
to 'const char *const '
c:\dev\git\perl\vutil.c(996): note: Conversion from integral type to
pointer type requires reinterpret_cast, C-style cast or function-style
cast
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0
\VC\BIN\cl.EXE"' : return code '0x2'
Stop.

(All these versions of VC work fine without USE_CPLUSPLUS=define.)

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