mirror of
https://github.com/openai/codex.git
synced 2026-04-25 15:15:15 +00:00
112 lines
3.8 KiB
Diff
112 lines
3.8 KiB
Diff
diff --git a/cargo/private/cargo_build_script.bzl b/cargo/private/cargo_build_script.bzl
|
|
--- a/cargo/private/cargo_build_script.bzl
|
|
+++ b/cargo/private/cargo_build_script.bzl
|
|
@@ -142,40 +142,82 @@ def _strip_stack_protector_for_windows_llvm_mingw(toolchain, args):
|
|
def _rewrite_windows_exec_msvc_cc_args(toolchain, args):
|
|
"""Translate GNU-flavored cc args when exec-side build scripts target Windows MSVC."""
|
|
if toolchain.target_flag_value != toolchain.exec_triple.str or not toolchain.exec_triple.str.endswith("-pc-windows-msvc"):
|
|
return args
|
|
|
|
- rewritten = []
|
|
- skip_next = False
|
|
- for arg in args:
|
|
- if skip_next:
|
|
- skip_next = False
|
|
- continue
|
|
+ rewritten = [
|
|
+ "-target",
|
|
+ toolchain.target_flag_value,
|
|
+ ]
|
|
+ skip_next = False
|
|
+ for index in range(len(args)):
|
|
+ arg = args[index]
|
|
+
|
|
+ if skip_next:
|
|
+ skip_next = False
|
|
+ continue
|
|
|
|
if arg == "-target":
|
|
- skip_next = True
|
|
+ skip_next = True
|
|
continue
|
|
|
|
if arg.startswith("-target=") or arg.startswith("--target="):
|
|
continue
|
|
|
|
if arg == "-nostdlibinc" or arg.startswith("--sysroot"):
|
|
continue
|
|
|
|
- if "mingw-w64-" in arg or "mingw_import_libraries_directory" in arg or "mingw_crt_library_search_directory" in arg:
|
|
+ if arg.startswith("-fstack-protector") or arg.startswith("-D_FORTIFY_SOURCE="):
|
|
continue
|
|
|
|
- if arg.startswith("-fstack-protector"):
|
|
- continue
|
|
-
|
|
- if arg.startswith("-D_FORTIFY_SOURCE="):
|
|
- continue
|
|
+ if arg == "-isystem" and index + 1 < len(args):
|
|
+ path = args[index + 1]
|
|
+ if "mingw-w64-" in path or "mingw_import_libraries_directory" in path or "mingw_crt_library_search_directory" in path:
|
|
+ skip_next = True
|
|
+ continue
|
|
|
|
rewritten.append(arg)
|
|
|
|
- return [
|
|
- "-target",
|
|
- toolchain.target_flag_value,
|
|
- ] + rewritten
|
|
+ return rewritten
|
|
+
|
|
+def _rewrite_windows_exec_msvc_link_args(toolchain, args):
|
|
+ """Translate GNU-flavored link args when exec-side build scripts target Windows MSVC."""
|
|
+ if toolchain.target_flag_value != toolchain.exec_triple.str or not toolchain.exec_triple.str.endswith("-pc-windows-msvc"):
|
|
+ return args
|
|
+
|
|
+ rewritten = []
|
|
+ skip_next = False
|
|
+ for index in range(len(args)):
|
|
+ arg = args[index]
|
|
+
|
|
+ if skip_next:
|
|
+ skip_next = False
|
|
+ continue
|
|
+
|
|
+ if arg == "--sysroot":
|
|
+ skip_next = True
|
|
+ continue
|
|
+
|
|
+ if arg.startswith("--sysroot="):
|
|
+ continue
|
|
+
|
|
+ if arg == "-L" and index + 1 < len(args):
|
|
+ path = args[index + 1]
|
|
+ if "mingw_import_libraries_directory" in path or "mingw_crt_library_search_directory" in path:
|
|
+ skip_next = True
|
|
+ continue
|
|
+ rewritten.extend([arg, path])
|
|
+ skip_next = True
|
|
+ continue
|
|
+
|
|
+ if arg.startswith("-L") and (
|
|
+ "mingw_import_libraries_directory" in arg or
|
|
+ "mingw_crt_library_search_directory" in arg
|
|
+ ):
|
|
+ continue
|
|
+
|
|
+ rewritten.append(arg)
|
|
+
|
|
+ return rewritten
|
|
|
|
def get_cc_compile_args_and_env(cc_toolchain, feature_configuration):
|
|
"""Gather cc environment variables from the given `cc_toolchain`
|
|
@@ -509,6 +550,7 @@ def _construct_build_script_env(
|
|
linker, _, link_args, linker_env = get_linker_and_args(ctx, "bin", toolchain, cc_toolchain, feature_configuration, None)
|
|
env.update(**linker_env)
|
|
env["LD"] = linker
|
|
+ link_args = _rewrite_windows_exec_msvc_link_args(toolchain, link_args)
|
|
env["LDFLAGS"] = " ".join(_pwd_flags(link_args))
|
|
|
|
# Defaults for cxx flags.
|