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