Skip to content

Commit

Permalink
Don't leak -g0 to the MSVC compiler on Windows
Browse files Browse the repository at this point in the history
Workaround #24545

RELNOTES: None
PiperOrigin-RevId: 702651276
Change-Id: Ic2e6f8f215798d202603e1771bd228bcd6b21bed
  • Loading branch information
meteorcloudy authored and copybara-github committed Dec 4, 2024
1 parent 9b4fa35 commit 75ca6db
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
See https://github.com/bazelbuild/bazel/discussions/19213.
"""

# TODO: Remove when get_current_os_name is no longer needed
load("@_builtins//:common/python/py_internal.bzl", "py_internal")

# The fragments that make up Bazel's exec transition. The fragment() calls in
# this file fill out this map.
bazel_fragments = {}
Expand Down Expand Up @@ -340,8 +343,9 @@ bazel_fragments["CppOptions"] = fragment(
"//command_line_option:crosstool_top": settings["//command_line_option:host_crosstool_top"],
"//command_line_option:compiler": settings["//command_line_option:host_compiler"],
"//command_line_option:grte_top": settings["//command_line_option:host_grte_top"],
"//command_line_option:copt": settings["//command_line_option:host_copt"] + ["-g0"], # Don't add for Windows
"//command_line_option:cxxopt": settings["//command_line_option:host_cxxopt"] + ["-g0"], # Don't add for Windows
# TODO: Properly fix https://github.com/bazelbuild/bazel/issues/24545 with features.
"//command_line_option:copt": settings["//command_line_option:host_copt"] + ([] if py_internal.get_current_os_name() == "windows" else ["-g0"]),
"//command_line_option:cxxopt": settings["//command_line_option:host_cxxopt"] + ([] if py_internal.get_current_os_name() == "windows" else ["-g0"]),
"//command_line_option:conlyopt": settings["//command_line_option:host_conlyopt"],
"//command_line_option:per_file_copt": settings["//command_line_option:host_per_file_copt"],
"//command_line_option:linkopt": settings["//command_line_option:host_linkopt"],
Expand Down
27 changes: 27 additions & 0 deletions src/test/py/bazel/bazel_windows_cpp_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -1277,6 +1277,33 @@ def testCompilerSettingMingwGcc(self):
])
self.AssertExitCode(exit_code, 0, stderr)

def testNoUnknownOptionsLeakedToMSVC(self):
# Regression test for https://github.com/bazelbuild/bazel/issues/24545.
self.createModuleDotBazel()
self.ScratchFile(
'BUILD',
[
'cc_binary(',
' name = "main",',
' srcs = ["main.cc"],',
')',
'genrule(',
' name = "gen",',
' cmd = "echo $(location :main) > $@",',
' outs = ["output.txt"],',
' tools = [":main"],',
')',
],
)
self.ScratchFile('main.cc', ['int main() { return 0; }'])

exit_code, _, stderr = self.RunBazel([
'build',
'//...',
'--copt=/options:strict',
'--host_copt=/options:strict',
])
self.AssertExitCode(exit_code, 0, stderr)

if __name__ == '__main__':
absltest.main()

0 comments on commit 75ca6db

Please sign in to comment.