Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH] allow gmake win32 builds to negotiate inter-gmake parallel job dispatch #16584

Open
p5pRT opened this issue Jun 10, 2018 · 2 comments
Open

Comments

@p5pRT
Copy link

p5pRT commented Jun 10, 2018

Migrated from rt.perl.org#133272 (status was 'new')

Searchable as RT133272$

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2018

From @bulk88

Created by @bulk88

See attached patch. Do not apply this patch until
Perl-Toolchain-Gang/ExtUtils-MakeMaker#321 is in
EUMM on CPAN and that EUMM is in core.

Perl Info
---
Flags:
                     category=core
                     severity=low
---
Site configuration information for perl 5.27.9:

Configured by Administrator at Tue Jan 30 20:34:30 2018.

Summary of my perl5 (revision 5 version 27 subversion 9) configuration:

                   Platform:
                     osname=MSWin32
                     osvers=5.2.3790
                     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
                     default_inc_excludes_dot=define
                     bincompat5005=undef
                   Compiler:
                     cc='cl'
                     ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL
-DWIN32
-D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE  -DPERL_TEXTMODE_SCRIPTS
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY'
                     optimize='-O1 -MD -Zi -DNDEBUG -GL'
                     cppflags='-DWIN32'
                     ccversion='15.00.30729.01'
                     gccversion=''
                     gccosandvers=''
                     intsize=4
                     longsize=4
                     ptrsize=4
                     doublesize=8
                     byteorder=1234
                     doublekind=3
                     d_longlong=undef
                     longlongsize=8
                     d_longdbl=define
                     longdblsize=8
                     longdblkind=0
                     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:\perl\lib\CORE"        -machine:x86'
                     libpth="C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\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=perl527.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:\perl\lib\CORE"        -machine:x86'


---
@INC for perl 5.27.9:
                     lib
                     C:/p527/srcnew/lib

---
Environment for perl 5.27.9:
                     CYGWIN=tty
                     HOME (unset)
                     LANG (unset)
                     LANGUAGE (unset)
                     LD_LIBRARY_PATH=/usr/lib/x86:/usr/X11R6/lib
                     LOGDIR (unset)
                     PATH=C:\WINDOWS\system32;C:\Program Files
(x86)\Microsoft
Visual
Studio 9.0\VC\BIN;C:\Program Files\Microsoft
SDKs\Windows\v6.0A\bin;C:\Perl\bin;C:\WINDOWS;C:\Program Files
(x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files
(x86)\Git\bin;C:\sp3220\c\bin;
                     PERL_BADLANG (unset)
                     SHELL (unset)










@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2018

From @bulk88

0001-allow-gmake-win32-builds-to-negotiate-inter-gmake-pa.patch
From ea84eec332112629551688ca518276f91d5a7425 Mon Sep 17 00:00:00 2001
From: Daniel Dragan <bulk88@hotmail.com>
Date: Sat, 9 Jun 2018 22:20:28 -0400
Subject: [PATCH] allow gmake win32 builds to negotiate inter-gmake parallel
 job dispatch

Now that ExtUtils::MakeMaker correctly tells each cl.exe (MSVC) process
where to write its .pdb symbol file, multiple cl.exe'es can execute in the
same XS directory.
See https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/321
---
 win32/GNUmakefile | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/win32/GNUmakefile b/win32/GNUmakefile
index 6caf19f..42edc7b 100644
--- a/win32/GNUmakefile
+++ b/win32/GNUmakefile
@@ -858,10 +858,6 @@ BLINK_FLAGS	= $(PRIV_LINK_FLAGS) $(LINK_FLAGS)
 #################### do not edit below this line #######################
 ############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##############
 
-#prevent -j from reaching EUMM/make_ext.pl/"sub makes", Win32 EUMM not parallel
-#compatible yet
-unexport MAKEFLAGS
-
 a ?= .lib
 
 .SUFFIXES : .c .i $(o) .dll $(a) .exe .rc .res
-- 
2.5.0.windows.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants