[openssl/openssl] be6788: Windows: Use /Z7 compiler flag to enable parallel ...

0 views
Skip to first unread message

Milan Broz

unread,
Apr 13, 2026, 4:51:46 AM (yesterday) Apr 13
to openssl...@openssl.org
Branch: refs/heads/master
Home: https://github.com/openssl/openssl
Commit: be67880c1e6e37102a8488f81a8263554fa97d53
https://github.com/openssl/openssl/commit/be67880c1e6e37102a8488f81a8263554fa97d53
Author: Milan Broz <gmaz...@gmail.com>
Date: 2026-04-13 (Mon, 13 Apr 2026)

Changed paths:
M Configurations/10-main.conf
M Configurations/windows-makefile.tmpl

Log Message:
-----------
Windows: Use /Z7 compiler flag to enable parallel builds

MSVC compilation on Windows cannot be reliably parallelized
with tools like jom (an nmake replacement) due to contention
on shared .pdb files used for debug info. Writes to a shared
.pdb must be serialized.

The /FS compiler flag serializes concurrent compiler writes,
but does not resolve contention when the compiler and linker
access the same .pdb file. With shared .pdb files (e.g. app.pdb),
the makefile does not prevent races between the linker and
compilation of multiple targets.

This can be resolved either by restructuring the makefile
to introduce sentinel dependencies that serialize the conflicting
steps, or by eliminating the shared .pdb entirely.

This patch takes the latter approach: it replaces /Zi with /Z7,
which embeds debug info directly into each .obj file and avoids
any shared-file contention. /Z7 is supported by all MSVC versions.

The linker-generated .pdb is unaffected.

Side effects: object files are slightly larger, and all .pdb files
are now named after their target — the shared app.pdb, ossl_static.pdb,
and dso.pdb no longer exist.

With this change, jom can be used to parallelize the build.

Fixes: #9931

Signed-off-by: Milan Broz <gmaz...@gmail.com>

Reviewed-by: Neil Horman <nho...@openssl.org>
Reviewed-by: Norbert Pocs <norb...@openssl.org>
MergeDate: Mon Apr 13 08:46:20 2026
(Merged from https://github.com/openssl/openssl/pull/30703)


Commit: bdebaa496c2e98115c3d881951084cb69b053a47
https://github.com/openssl/openssl/commit/bdebaa496c2e98115c3d881951084cb69b053a47
Author: Milan Broz <gmaz...@gmail.com>
Date: 2026-04-13 (Mon, 13 Apr 2026)

Changed paths:
M .github/workflows/os-zoo.yml
M .github/workflows/windows.yml
M .github/workflows/windows_comp.yml

Log Message:
-----------
ci: Use jom to parallize Windows builds

The jom version in choco install is obsolete,
but it works fine for CI.

Users should use jom 1.1.7 or more recent.

Signed-off-by: Milan Broz <gmaz...@gmail.com>

Reviewed-by: Neil Horman <nho...@openssl.org>
Reviewed-by: Norbert Pocs <norb...@openssl.org>
MergeDate: Mon Apr 13 08:46:21 2026
(Merged from https://github.com/openssl/openssl/pull/30703)


Compare: https://github.com/openssl/openssl/compare/0463cbf18568...bdebaa496c2e

To unsubscribe from these emails, change your notification settings at https://github.com/openssl/openssl/settings/notifications
Reply all
Reply to author
Forward
0 new messages