2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 | Index | 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Problems with parallel make in base 7.0.1.1 on Visual Studio 2015 and Visual Studio 2017 when HOST_OP=NO |
From: | <[email protected]> |
To: | <[email protected]>, <[email protected]> |
Cc: | [email protected] |
Date: | Fri, 26 Jan 2018 13:02:30 +0000 |
Hi Mark, I’ve recently come across the same issue – we only need to support VS2010 and 2015/2017 and I found that adding:
ifneq ($(VisualStudioVersion),) OPT_CXXFLAGS_NO += -FS OPT_CFLAGS_NO += -FS endif to CONFIG.win32-x86.win32-x86 worked for this case as the VisualStudioVersion environment variable isn’t defined in 2010 but is in 2015 and above. Depending on when it was introduced, this (or something
based in it) might work in the more general case Regards, Freddie From: [email protected] [mailto:[email protected]]
On Behalf Of Mark Rivers Hi Andrew, I can fix this issue on Visual Studio 2015 (and presumably 2017) by changing CONFIG_SITE.Common.windows-x64-static to add the /FS flag when compiling for
debug. # Temporarily enable debugging HOST_OPT = NO OPT_CFLAGS_NO += /FS OPT_CXXFLAGS_NO += /FS However, that generates an error if using Visual Studio 2010. H:\epics-devel\base-7.0.1>make -sj8 cl : Command line error D8021 : invalid numeric argument '/FS' cl : Command line error D8021 : invalid numeric argument '/FS' cl : Command line error D8021 : invalid numeric argument '/FS' So we need a way to add the /FS flag to OPT_C[XX]FLAGS_NO only for Visual Studio 2013 and later (that is where MSDN indicates the /FS flag was added). Mark From: Mark Rivers
Hi Andrew, I am trying to build base 7.0.1.1 with the following configuration: -
windows-x64-static architecture
-
CONFIG_SITE.Common.windows-x64-static contains HOST_OPT=NO to enable debugging. Note that there is a windows-x64-debug architecture in base, but there is no windows-x64-static-debug,
so I just changed the CONFIG_SITE file. -
Parallel make (make –sj8) The above settings work OK for Visual Studio 2010, but they fail with Visual Studio 2015 and Visual Studio 2017. If I remove the HOST_OPT=NO then this problem
does not occur. Here is the output for Visual Studio 2015. H:\epics-devel\base-7.0.1>make -sj clean H:\epics-devel\base-7.0.1>make -sj8 dfa.c ccl.c epicsTempFile.cpp gen.c misc.c ecs.c nfa.c ../../src/flex/ecs.c: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS ../../src/osi/os/WIN32/epicsTempFile.cpp: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS ../../src/flex/misc.c: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS ../../src/flex/dfa.c: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS ../../src/flex/gen.c: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS ../../src/flex/nfa.c: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS make[4]: INTERNAL: Exiting with 3 jobserver tokens (should be 0)! sym.c ../../src/flex/sym.c: fatal error C1041: cannot open program database 'H:\epics-devel\base-7.0.1\modules\libcom\src\O.windows-x64-static-vs2015\vc140.pdb';
if multiple CL.EXE write to the same .PDB file, please use /FS make reaped child pid 37264320, still waiting for pid 37265184 H:/epics-devel/base-7.0.1/configure/RULES_ARCHS:58: recipe for target 'install.windows-x64-static-vs2015' failed Thanks, Mark |