-
Notifications
You must be signed in to change notification settings - Fork 64
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
JITpackage not building on Windows #301
Comments
-1073740791 is 0xc0000409 in hexadecimal. I'm guessing that error is from running the JIT package generator executable (not actually from cmd.exe). That could be caused by an array index that is too large (positive or negative) when indexing a variable that is allocated on the stack. Maybe an erroneous integer typecast? Which cmake command do you use to configure GRAPHBLAS? |
Is the problem visible in a Debug build? I know MSVC's C++ Debug builds have bounds checks on iterators, maybe they also have checks that might help identify this. If not, maybe run in a debugger? |
Other differences to the CI are Visual Studio 2019 vs Visual Studio 2022 and Visual Studio vs. Ninja as the CMake generator. |
@alugowski: Unsure if this is related: UNIX Makefiles are sometimes a bit iffy on Windows. Do you have the option to switch to the Ninja generator in your CI rules? That is working better on Windows in my experience. (It is working fine on any platform where I tried it.) |
Don't need to, Makefiles works in all cases we need. I remember I had to explicitly add that argument to solve an issue that I've forgotten, but I believe it was actually to fix something on Windows. My preference is to use Ninja whenever possible as it's nicer on Unix too, but alas that wasn't an option. Note the official instructions only use |
I tried to reproduce the error with a current head of the I used the following commands (in
That also picked the Visual Studio generator. But it is building without issues here. In particular, the JIT package generator was built and it generated the sources without issues. After that, building the object files continued without any errors or warnings. Edit:
Relevant part of the build step:
|
Fwiw, the generator executable only links to the C runtime and the kernel for me:
Or with Visual Studio tools:
|
Just another idea: The maximum number of characters for a command line in The sources are checked out at a deeper absolute path for you than they are for me. It might be that the longer base path on your checkout location leads to the command line length limit being exceeded. Does it work if you checkout the GraphBLAS sources to a path that is shorter (e.g., to |
I opened #302 to address the potential issue described in the previous comment. |
Oh -- that's got to be it. There are 243 or so files in the JITpackage, and I'm working in a folder that is C: ... something here ... Documents/Github/GraphBLAS/build ... Leave it MS to report The 'something here' is my Windows home folder (I'm not on my Windows machine at the moment). I think that itself might be deeper than normal because it's a departmentally-managed machine. I don't have admin access, so I can't do C:/my/GraphBLAS. Adding to the complexity is that I so rarely use Windows at all, for anything, let alone development. |
I will try to shorten the paths of my files to see if that works. I will rewrite the JITpackage to write out the set of filenames to a file, in the cmake build process. |
Yes, the dev2 branch of GraphBLAS and the dev2 branch of SuiteSparse are currently identical. I also tend to keep the default branches of the 2 repos synced. When I started GraphBLAS, I didn't place it inside my SuiteSparse repo because it was a stand-alone project, but then I decided later it should be part of SuiteSparse. But by then, lots of people were getting GraphBLAS from its own repo, not inside SuiteSparse. Thus the two repos. I guess eventually I should close down the stand-alone GraphBLAS repo and use SuiteSparse as a whole, instead, since it's more comprehensive (building GraphBLAS from the root CMakeLists.txt in SuiteSparse is very handy on Windows). Plus the github CI is far better. |
Oh you beat me to it :-) ... #302 ... thanks! |
Fixed with #302 and subsequent updates. |
When I try to build GraphBLAS in its own CMakeLists.txt build file (not as part of the root SuiteSparse build), I get this error. I'm using cmake 3.26 and am building the GraphBLAS project in Visual Studio:
I can't tell how the grb_jitpackage.exe is failing. I do see a grb_jitpackage.exe file that is compiled where I expect to see it (
Documents/GitHub/GraphBLAS/build/JITpackage/Release/grb_jitpackage.exe ).
My cmake configure output looks OK:
In the SuiteSparse CI, the build looks different, and it succeeds, when using the SuiteSparse root CMakeLists.txt:
@mmuetzel : any ideas?
@alugowski is seeing a similar problem here: GraphBLAS/python-suitesparse-graphblas#128 ,
see https://github.com/GraphBLAS/python-suitesparse-graphblas/actions/runs/9343575516/job/25713378326#step:9:351
The text was updated successfully, but these errors were encountered: