stackless-dev / stackless Public
forked from python/cpythonNew 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
Stackman integration: race in "make -j" #298
Comments
The was a race, when extracting libstackman.a.
|
Fixed |
|
Ah, so you are extracting the objects from the lib and adding them individually, but it happens for every object? I wonder if stackman should simply be a single .obj or .o file instead of an .a. We could supply both, I suppose. Although, in the case of at least 32 bit windows, we need both .c code (the SEH wrapping code) and the .asm code, and they create different objects.... I wonder if it is possible to merge two object files into one.... |
Kristján pointed me to another race, but now extracting the archive members should be save.
|
Good point, you perfectly right. But now it should be OK.
Yes, first I tried linking the lib, but I was not pleased with the result. The static libpython.a didn't contain the stackman object files and libstackman was listed in the output of Therefore changed the build process to simply extract all object files from libstackman. Now libpython.a contains the stackman object files and the existence of a libstackman.a is a hidden implementation detail of the build process. That's perfect.
The archive is fine and more flexible. |
Kristján pointed me to another race, but now extracting the archive members should be save. (cherry picked from commit 61e405e)


There is a race condition in the build process, if you compile Stackless using
make -jor variants.It is caused by the rule
This rule runs once for every file in
$(SLP_STACKMAN_OBJS). The race is betweencpandrm. The fix is trivial.The text was updated successfully, but these errors were encountered: