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

[perl #120933] Win32 nmake Makefile no dep for static modules in dynamic linking perl

Thread Previous
From:
bulk88
Date:
January 5, 2014 09:56
Subject:
[perl #120933] Win32 nmake Makefile no dep for static modules in dynamic linking perl
Message ID:
rt-4.0.18-1793-1388915771-1532.120933-75-0@perl.org
# New Ticket Created by  bulk88 
# Please include the string:  [perl #120933]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=120933 >


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


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

While changing ext/Win32CORE, I then did a "nmake all" and the new 
perl519.dll still had the old code static linked. After a "nmake all", 
Extensions_static target does not rebuild/get called for some unknown to 
me reason, so "$(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" 
--dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static" is never 
called, and ext/Win32CORE's generated makefile is never called. Below is 
after a "nmake all", notice "..\make_ext.pl --nonxs" and "..\make_ext.pl 
--dynaloader" run, but "..\make_ext.pl --static" is not proposed to be run.
------------------------------------------------------------------------------------------------
C:\perl519\src\win32>nmake -n

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

        xcopy /f /r /i /d /y ..\*.h ..\lib\CORE\*.*
        ..\miniperl.exe -I..\lib ..\make_ext.pl "MAKE=nmake -nologo" 
--dir=..\cp
an --dir=..\dist --dir=..\ext --nonxs
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\D
ecomposition.pl ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\C
ombiningClass.pl ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\N
ame.pl ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\H
eavy.pl ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\m
ktables.lst ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\U
CD.pl ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\N
ame.pm ..\lib\unicore\Decomposition.pl
        cd ..\lib\unicore &&  ..\..\miniperl.exe -I.. 
-I..\..\dist\Cwd\lib -I..\
..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check 
..\lib\unicore\T
estProp.pl ..\lib\unicore\Decomposition.pl
        ..\miniperl.exe -I..\lib ..\mkppport
        xcopy /f /r /i /d /y ..\*.h ..\lib\CORE\*.*
        ..\miniperl.exe -I..\lib ..\make_ext.pl "MAKE=nmake -nologo" 
--dir=..\ex
t --dynaloader
        link -dll -def:perldll.def -base:0x28000000 -out:..\perl519.dll 
@Extensi
ons_static @C:\WINDOWS\TEMP\nm157B.tmp
        if exist ..\perl519.dll.manifest mt -nologo -manifest 
..\perl519.dll.man
ifest -outputresource:..\perl519.dll;2 &&  if exist 
..\perl519.dll.manifest del
..\perl519.dll.manifest
        xcopy /f /r /i /d /y ..\perl519.lib ..\lib\CORE
        link -subsystem:console -out:..\perl.exe -nologo -nodefaultlib 
-debug -o
pt:ref,icf -ltcg  -libpath:"c:\perl519\lib\CORE"  -machine:x86  
perlmain.obj .\p
erlexe.res ..\perl519.lib oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspoo
l.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  
netapi32.li
b uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib 
odbccp32.lib com
ctl32.lib msvcrt.lib
        if exist ..\perl.exe.manifest mt -nologo -manifest 
..\perl.exe.manifest
-outputresource:..\perl.exe;1 &&  if exist ..\perl.exe.manifest del 
..\perl.exe.
manifest
        copy ..\perl.exe ..\wperl.exe
        ..\miniperl.exe -I..\lib bin\exetype.pl ..\wperl.exe WINDOWS
        xcopy /f /r /i /d /y ..\*.h ..\lib\CORE\*.*
        ..\miniperl.exe -I..\lib ..\make_ext.pl "MAKE=nmake -nologo" 
--dir=..\cp
an --dir=..\dist --dir=..\ext --dynamic
        ..\miniperl.exe -I..\lib ..\x2p\find2perl.PL
        ..\miniperl.exe -I..\lib ..\x2p\s2p.PL
        link -subsystem:console -out:..\x2p\a2p.exe 
@C:\WINDOWS\TEMP\nm157C.tmp
        if exist ..\x2p\a2p.exe.manifest mt -nologo -manifest 
..\x2p\a2p.exe.man
ifest -outputresource:..\x2p\a2p.exe;1 &&  if exist 
..\x2p\a2p.exe.manifest del
..\x2p\a2p.exe.manifest
        echo    Everything is up to date. 'nmake test' to run test suite.
        del C:\WINDOWS\TEMP\nm157B.tmp
        del C:\WINDOWS\TEMP\nm157C.tmp

C:\perl519\src\win32>
----------------------------------------------------------
If I manually specify the target, it still says there is nothing to be done.
----------------------------------------------------------
C:\perl519\src\win32>nmake -n Extensions_static

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

'Extensions_static' is up-to-date

C:\perl519\src\win32>
----------------------------------------------------------
So while perl519.dll dep correctly deps on Extensions_static, for some 
reason I dont understand, Extensions_static isn't being built. I changed 
Extensions_static to be absolutely identical to Extensions_nonxs and I 
still couldn't get it to build.
----------------------------------------------------------
Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) 
$(CONFIGPM) ..\pod\perlfunc.pod
    $(XCOPY) ..\*.h $(COREDIR)\*.*
    $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) 
--dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs

Extensions_nonxs: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) 
$(CONFIGPM) ..\pod\perlfunc.pod
    $(XCOPY) ..\*.h $(COREDIR)\*.*
    $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) 
--dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs
-----------------------------------------------------------
C:\perl519\src\win32>nmake -n Extensions_static

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

'Extensions_static' is up-to-date

C:\perl519\src\win32>nmake -n Extensions_nonxs

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

        xcopy /f /r /i /d /y ..\*.h ..\lib\CORE\*.*
        ..\miniperl.exe -I..\lib ..\make_ext.pl "MAKE=nmake -nologo" 
--dir=..\cp
an --dir=..\dist --dir=..\ext --nonxs

C:\perl519\src\win32>
------------------------------------------------------------

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

Configured by Owner at Thu Dec 26 04:12:47 2013.

Summary of my perl5 (revision 5 version 19 subversion 8) configuration:
  Derived from:
  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
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    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

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

---
Environment for perl 5.19.8:
    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)


Thread Previous


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