| ... | @@ -428,16 +428,21 @@ fn workerMakeOneStep( | ... | @@ -428,16 +428,21 @@ fn workerMakeOneStep( |
| 428 | // For example, CompileStep does some sus things with modifying the saved | 428 | // For example, CompileStep does some sus things with modifying the saved |
| 429 | // *Build object in install header steps that might be able to be removed | 429 | // *Build object in install header steps that might be able to be removed |
| 430 | // by passing the *Build object through the make() functions. | 430 | // by passing the *Build object through the make() functions. |
| 431 | s.make() catch |err| { | 431 | const make_result = s.make(); |
| 432 | s.result.err_code = err; | | |
| 433 | @atomicStore(Step.State, &s.state, .failure, .SeqCst); | | |
| 434 | | 432 | |
| | 433 | // No matter the result, we want to display error/warning messages. |
| | 434 | if (s.result.error_msgs.items.len > 0) { |
| 435 | sub_prog_node.context.lock_stderr(); | 435 | sub_prog_node.context.lock_stderr(); |
| 436 | defer sub_prog_node.context.unlock_stderr(); | 436 | defer sub_prog_node.context.unlock_stderr(); |
| 437 | | 437 | |
| 438 | for (s.result.error_msgs.items) |msg| { | 438 | for (s.result.error_msgs.items) |msg| { |
| 439 | std.io.getStdErr().writeAll(msg) catch return; | 439 | std.io.getStdErr().writeAll(msg) catch break; |
| 440 | } | 440 | } |
| | 441 | } |
| | 442 | |
| | 443 | make_result catch |err| { |
| | 444 | s.result.err_code = err; |
| | 445 | @atomicStore(Step.State, &s.state, .failure, .SeqCst); |
| 441 | return; | 446 | return; |
| 442 | }; | 447 | }; |
| 443 | | 448 | |