develooper Front page | perl.perl5.porters | Postings from March 2014

[perl #121494] win32/Makefile comments says USE_ITHREADS must have USE_MULTI but it ignores USE_MULTI instead

From:
bulk88
Date:
March 24, 2014 05:57
Subject:
[perl #121494] win32/Makefile comments says USE_ITHREADS must have USE_MULTI but it ignores USE_MULTI instead
Message ID:
rt-4.0.18-8695-1395640627-641.121494-75-0@perl.org
# New Ticket Created by  bulk88 
# Please include the string:  [perl #121494]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=121494 >


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


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

Given the attached makefile diff. I turned off USE_IMP_SYS and 
USE_MULTI, but left USE_ITHREADS at the (default) on. I got a 
PERL_IMPLICIT_CONTEXT with that which I didn't want. Ignore the -V at 
the bottom.

win32/Makefile says
-----------------------------------------------------------------
#
# uncomment to enable multiple interpreters.  This is need for fork()
# emulation and for thread support.
#
USE_MULTI    = define

#
# Beginnings of interpreter cloning/threads; now reasonably complete.
# This should be enabled to get the fork() emulation.  This needs
# USE_MULTI as well.
#
USE_ITHREADS    = define
------------------------------------------------------------------

but infact, none of the requirements mention in the comments are 
followed or error out by the makefile's logic. Later on in 
win32/Makefile there is
------------------------------------------------------------------
!IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
USE_MULTI    = define
!ENDIF

!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
USE_MULTI    = define
!ENDIF
------------------------------------------------------------------

which "helps" your incompatible choices become compilable (but not with 
what you wanted to choose). Either the "help" logic should be removed 
and a hard error says the choices are incompatible, or the comments 
reworked to describe the help logic. The one of the previous versions of 
the comments in the diffs below used the word "auto-enabled" as in "# 
made by perl.  This is needed and auto-enabled by USE_OBJECT above."

The comments were added in 
http://perl5.git.perl.org/perl.git/commitdiff/d08ede9a86fc6f23c9d8f6a6b0ba2b5edd36ad0f 
and the "help" logic added 1 day before in 
http://perl5.git.perl.org/perl.git/commitdiff/6f4183fe04888927cb36b966262c959c5166404b 
or depending how you interpret the blame, 7 months earlier in 
http://perl5.git.perl.org/perl.git/commitdiff/0b94c7bb9a33fcbef93724c1b5f96b2616e1e13f 
, all by Gurusamy Sarathy.

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=low
---
Site configuration information for perl 5.19.10:

Configured by Owner at Sat Mar 15 22:30:42 2014.

Summary of my perl5 (revision 5 version 19 subversion 10) configuration:
  Derived from: 2179658b5e799a6e3c4e736ec7c84b0f50bf3473
  Ancestor: e9251c1a8f4944e6dceff5240d9e109ba075ff29
  Platform:
    osname=MSWin32, osvers=5.1, 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, bincompat5005=undef
  Compiler:
    cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL 
-DWIN32 -D_CONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS 
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DPERL_IMPLICIT_CONTEXT 
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T',
    optimize='-O1 -MD -Zi -DNDEBUG -G7 -GL',
    cppflags='-DWIN32'
    ccversion='13.10.6030', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
    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:\perl519\lib\CORE"  -machine:x86'
    libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\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=perl519.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:\perl519\lib\CORE"  -machine:x86'

Locally applied patches:
    uncommitted-changes
    2179658b5e799a6e3c4e736ec7c84b0f50bf3473

---
@INC for perl 5.19.10:
    C:/perl519/site/lib
    C:/perl519/lib
    .

---
Environment for perl 5.19.10:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=C:\perl519\bin;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET 
2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;
    PERL_BADLANG (unset)
    SHELL (unset)




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