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] fix a race condition in parallel builds with Visual C #15150
Labels
Comments
From @bulk88Created by @bulk88See branch Perl Info
|
From @bulk88patch attached -- |
From @bulk880001-fix-a-race-condition-in-parallel-builds-with-Visual-.patchFrom 86904a6324a8267893184b28e585504d9577b72b Mon Sep 17 00:00:00 2001
From: Daniel Dragan <bulk88@hotmail.com>
Date: Tue, 26 Jan 2016 05:24:07 -0500
Subject: [PATCH] fix a race condition in parallel builds with Visual C
On older VCs a "gmake -j2 ..\generate_uudmap.exe ..\perlglob.exe" will
generate warnings, on newer VCs, a fatal error in 1 or the other cl.exe
process. This is because both cl.exes are trying to lock and write to
vc*0.pdb, the same file. Add PDBOUT option so uudmap and perlglob have
their own pdb files named after themselves and they cant conflict in a
parallel build.
---
win32/GNUmakefile | 6 +++---
win32/makefile.mk | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/win32/GNUmakefile b/win32/GNUmakefile
index 6dd26e7..3abcba6 100644
--- a/win32/GNUmakefile
+++ b/win32/GNUmakefile
@@ -1112,8 +1112,8 @@ $(GLOBEXE) : perlglob.c
ifeq ($(CCTYPE),GCC)
$(LINK32) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES)
else
- $(CC) $(OPTIMIZE) -Fe$@ perlglob.c -link $(BLINK_FLAGS) setargv$(o) \
- $(LIBFILES) && $(EMBED_EXE_MANI)
+ $(CC) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \
+ setargv$(o) $(LIBFILES) && $(EMBED_EXE_MANI)
endif
..\git_version.h : $(HAVEMINIPERL) ..\make_patchnum.pl
@@ -1413,7 +1413,7 @@ ifeq ($(CCTYPE),GCC)
$(LINK32) $(CFLAGS_O) -o..\generate_uudmap.exe ..\generate_uudmap.c \
$(BLINK_FLAGS) $(LIBFILES)
else
- $(CC) $(CFLAGS_O) -Fe..\generate_uudmap.exe ..\generate_uudmap.c -link $(LIBFILES) $(BLINK_FLAGS)
+ $(CC) $(CFLAGS_O) $(PDBOUT) -Fe..\generate_uudmap.exe ..\generate_uudmap.c -link $(LIBFILES) $(BLINK_FLAGS)
$(EMBED_EXE_MANI)
endif
diff --git a/win32/makefile.mk b/win32/makefile.mk
index edc7311..2403aa7 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -1087,8 +1087,8 @@ $(GLOBEXE) : perlglob.c
.IF "$(CCTYPE)" == "GCC"
$(LINK32) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES)
.ELSE
- $(CC) $(OPTIMIZE) -Fe$@ perlglob.c -link $(BLINK_FLAGS) setargv$(o) \
- $(LIBFILES) && $(EMBED_EXE_MANI)
+ $(CC) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \
+ setargv$(o) $(LIBFILES) && $(EMBED_EXE_MANI)
.ENDIF
..\git_version.h : $(HAVEMINIPERL) ..\make_patchnum.pl
@@ -1382,7 +1382,7 @@ $(GENUUDMAP) $(GENERATED_HEADERS) .UPDATEALL : ..\mg_raw.h
$(LINK32) $(CFLAGS_O) -o..\generate_uudmap.exe ..\generate_uudmap.c \
$(BLINK_FLAGS) -x $(mktmp $(LKPRE) $(LIBFILES) $(LKPOST))
.ELSE
- $(CC) $(CFLAGS_O) -Fe..\generate_uudmap.exe ..\generate_uudmap.c @$(mktmp -link $(LIBFILES)) -link $(BLINK_FLAGS)
+ $(CC) $(CFLAGS_O) $(PDBOUT) -Fe..\generate_uudmap.exe ..\generate_uudmap.c @$(mktmp -link $(LIBFILES)) -link $(BLINK_FLAGS)
$(EMBED_EXE_MANI:s/$@/..\generate_uudmap.exe/)
.ENDIF
$(GENUUDMAP) $(GENERATED_HEADERS)
--
1.7.9.msysgit.0
|
The RT System itself - Status changed from 'new' to 'open' |
@tonycoz - Status changed from 'open' to 'resolved' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Migrated from rt.perl.org#127381 (status was 'resolved')
Searchable as RT127381$
The text was updated successfully, but these errors were encountered: