diff --git a/releasenotes.md b/releasenotes.md index 53136ac62..945fb6348 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -28,6 +28,7 @@ - Contracts on generic modules would evaluate too late, sometimes not catching the error until it already occurred elsewhere. - Fix bug preventing optionals from being used in ranges or as indices. - Crash compiling for arm64 when returning 16 byte and smaller structs by value not a power of 2 #1649. +- Enforce single module compilation for static libraries to make constructors run properly. ### Stdlib changes - Add `io::MultiReader`, `io::MultiWriter`, and `io::TeeReader` structs. diff --git a/src/build/builder.c b/src/build/builder.c index 6540d520c..860f723f6 100644 --- a/src/build/builder.c +++ b/src/build/builder.c @@ -297,6 +297,7 @@ static void update_build_target_from_options(BuildTarget *target, BuildOptions * break; case COMMAND_STATIC_LIB: target->type = TARGET_TYPE_STATIC_LIB; + target->single_module = true; break; default: target->run_after_compile = false;