2/3295] Performing build step for 'TCL_BLD'
FAILED: src/other/ext/TCL_BLD-prefix/src/TCL_BLD-stamp/TCL_BLD-build
cmd.exe /C "cd /D D:\a\cadcitest\cadcitest\build\src\other\ext\TCL_BLD-prefix\src\TCL_BLD\win && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && nmake -f makefile.vc INSTALLDIR=D:/a/cadcitest/cadcitest/build/extinstall/tcl SUFX= && D:\a\_temp\-575274851\cmake-3.18.3-win64-x64\bin\cmake.exe -E touch D:/a/cadcitest/cadcitest/build/src/other/ext/TCL_BLD-prefix/src/TCL_BLD-stamp/TCL_BLD-build"
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.7.6
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
[ERROR:team_explorer.bat] Directory not found : "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE;DOTNET_MULTILEVEL_LOOKUP=0CommonExtensions\Microsoft\TeamFoundation\Team Explorer"
[ERROR:VsDevCmd.bat] *** VsDevCmd.bat encountered errors. Environment may be incomplete and/or incorrect. ***
[ERROR:VsDevCmd.bat] In an uninitialized command prompt, please 'set VSCMD_DEBUG=[value]' and then re-run
[ERROR:VsDevCmd.bat] vsdevcmd.bat [args] for additional details.
[ERROR:VsDevCmd.bat] Where [value] is:
[ERROR:VsDevCmd.bat] 1 : basic debug logging
[ERROR:VsDevCmd.bat] 2 : detailed debug logging
[ERROR:VsDevCmd.bat] 3 : trace level logging. Redirection of output to a file when using this level is recommended.
[ERROR:VsDevCmd.bat] Example: set VSCMD_DEBUG=3
[ERROR:VsDevCmd.bat] vsdevcmd.bat > vsdevcmd.trace.txt 2>&1
ninja: build stopped: subcommand failed.
CMake Error at D:/a/_temp/449c7ed4-647d-4a1f-acb2-aae9481a6426:55 (message):
Bad exit status
https://renenyffenegger.ch/notes/Windows/development/Visual-Studio/environment-variables/index
set VSCMD_DEBUG=3
https://brlcad.org/~starseeker/github_env.txt
For those who may see this later - the problem looks like it is in our .yml file's handling of the output of the bat file's output . It's doing some parsing, and it looks like file(STRINGS) in CMake isn't properly producing one-entry-per-line if the last character on the line is a back slash ('\')
Well, that was a problem but not the problem - still getting that failure.
The environment vars showed the right values for VCINSTALLDIRS and the other envdir one?
I see you're going another route and so be it, but I do find it concerning as it implies a house of sand. :( strongly implies something about the env is wrong. could be minor, could be major. either way, makes future errors suspect. I certainly wouldn't / won't trust an error is not something underlying or something in the workaround; it's going to slow down future dev. is there someone we could ask for help?
Not sure - would have to construct a minimal test case and see if we can interest github, I suppose...
(Environment appears to show the right vars, yes)
Here's a build log: build.log
Appears to be a few new issues it warns about, but appears to ignore. Different build settings from trunk? It eventually fails on the tclint header. Let me know if you'd like me to check anything.
OK, it's picking up your system framework Tcl headers even though the bundled libraries are enabled. Grr...
The src/other builds are more verbose right now since their configure and build processes aren't getting the silencing flags from the old src/other setup - eventually I can try to pipe that to files or something so it isn't so loud, but right now we need it to see what's going on.
Urk. Actually, this may be worse than include paths... that's our tclInt.h, although I don't know why we're getting a system tcl.h...
Is the Tcl.framework based on 8.5? That might explain that particular error...
@Sean Can you do a make VERBOSE=1 so we can see where it's including things from?
If we've got the wrong Tcl include path that's easily explained, so I'm hoping that's what we're into here...
OK, I can reproduce the vsvars issue in my smaller citest repo - I'll see if I can dig a bit.
starseeker said:
Sean Can you do a make VERBOSE=1 so we can see where it's including things from?
Certainly, give me a few
and yeah, I don't think verbosity is so much an issue as it is whether any of the warnings are new indicators of some other issue. Most of the ones I saw didn't appear to be verbosity-related, but subtle misconfiguration (tcl/tk being obvious but there were others).
for example, the very first warning - it's compiling tcl/compat/strstr.c, but that shouldn't be happening (I think); and it reporting that tcl and tk are using a different prefix (perhaps this is system tcl but appears to be ours in the configure output).
The check there is to see what the vanilla tcl build does on that platform - I may be feeding it some options that are causing it problems...
@Sean I made a few adjustments to extbuild, one of which has some slight potential to improve the Tcl/Tk build behavior.
I'm trying another approach to the github CI yml file, one that doesn't require parsing the vsvars output with CMake.
hey, can I try helping you with the CI yml file? I also know a little bit about them.
@Sumagna Das the current version is in misc/repoconv/github_ci_actions.yml
It does some elaborate steps - I'm trying to simplify currently: https://github.com/starseeker/cadcitest/blob/master/.github/workflows/btest.yml
Reading in the vsvars.bat output seems to be fragile - I was able to confirm that doing the ENV trick with its output caused the breakage we were seeing trying to subsequently run it again, although I'm not sure why yet.
So, rather than jump through all the hoops, we can instead just do a simpler one-per-platform definition that is easier to understand, even if there is some duplication in some of the per-OS steps.
That seems to be work OK so far (currently testing) but the build for the extbuild branch is currently broken for some other reason (at the moment exp2cxx is wiping out with an Abort trap error) so I haven't yet been able to do a full test.
The way I'm testing in the cadcitest repo is just checking in the current CAD sources, and then setting up the actions. Hopefully, once we eventually migrate to github we'll have the actions defined and ready to turn on.
starseeker said:
Sumagna Das the current version is in misc/repoconv/github_ci_actions.yml
will look into the file ASAP.
@starseeker here's the updated log without and with verbose (on the second pass): build-77668.log
OK, yeah - we're definitely getting the Tcl and Tk frameworks in when we shouldn't be.
What's supposed to happen is the find_package(TCL) call in itcl3/CMakeLists.txt should be using the TCL_ROOT passed to it from the parent build, finding the staged Tcl in the build directory, and using that to populate the Tcl variables. Let's see...
let me know if you need any other files/tests
TCL_FRAMEWORK_INCLUDES is the most likely culprit I can see at a glance...
fighting my own build demons. tried switching one of my debugging sessions to a different linux system and it's crapping out on the lib_regex test despite having gcc/g++ 11
Ugh.
Doh! Could it be that simple?
@Sean r77674 may help with it pulling the wrong include dirs.
I'll give it a try
What's the Linux system wiping out on the lib_regex error?
Must admit I've not hit that problem in a while...
it's one of the gcc compile farm nodes (gcc110)
CentOS7?
You'll need scl enable devtoolset on that OS, IIRC
I've got the steps in doc/README.Linux, IIRC
this is my own toolchain for debugging, gcc11 + latest cmake
and scl is not installed
Blegh. I've tried to bootstrap my own toolchain a time or two - it's no cakewalk, especially if you need a newer libstdc++ or some such to keep it company.
(sorry, I thought you were referring to a C++ 11 enabled g++, not g++ version 11)
I've bootstrapped dozens of times, usually no issue. It's not that complicated -- everything literally boils down to preprocessor, compiler, or linker and the first two are usually hard-wired together.
Got it working. Just forgot that gcc/g++ defers to ld, and I hadn't specified the path to the gcc I installed.
That's a newer gcc than anything I've built with - do they have anything majorly interesting in the newer versions?
yeah, it's now reporting a slew of type mismatches and type-based pointer over-read conditions that it wasn't before. which is funny because these are the opposite type changes that were necessary back in the early 00's to keep optimizers happy.
@Sean did that FindTCL fix help with the Mac build?
I hadn’t noticed that you’d made a change but I have recompiled since then successfully. Should I be testing enable all or default?
Last updated: Jan 09 2025 at 00:46 UTC