Disable Opus stack probes under Windows gnullvm Bazel builds

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Ahmed Ibrahim
2026-04-04 15:58:17 -07:00
parent 763dc66fb6
commit 1f9567d121
3 changed files with 138 additions and 0 deletions

View File

@@ -347,6 +347,15 @@ inject_repo(crate, "alsa_lib")
bazel_dep(name = "opus", version = "1.6.0")
single_version_override(
module_name = "opus",
patch_strip = 1,
patches = [
"//patches:opus_windows_gnullvm_stack_probe.patch",
],
version = "1.6.0",
)
crate.annotation(
crate = "audiopus_sys",
gen_build_script = "off",

View File

@@ -4,6 +4,7 @@ exports_files([
"aws-lc-sys_windows_msvc_prebuilt_nasm.patch",
"aws-lc-sys_windows_msvc_memcmp_probe.patch",
"llvm_windows_symlink_extract.patch",
"opus_windows_gnullvm_stack_probe.patch",
"rules_rust_windows_bootstrap_process_wrapper_linker.patch",
"rules_rust_windows_build_script_runner_paths.patch",
"rules_rust_windows_exec_bin_target.patch",

View File

@@ -0,0 +1,128 @@
--- a/overlay/BUILD.bazel
+++ b/overlay/BUILD.bazel
@@ -1,5 +1,5 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
-load("//:defs.bzl", "AVX2_COPTS", "OPUS_COPTS", "OPUS_INCLUDES", "OPUS_LINKOPTS", "SSE2_COPTS", "SSE4_1_COPTS", "SSE_COPTS")
+load("//:defs.bzl", "AVX2_COPTS", "OPUS_COPTS", "OPUS_INCLUDES", "OPUS_LINKOPTS", "OPUS_X86_STACK_COPTS", "SSE2_COPTS", "SSE4_1_COPTS", "SSE_COPTS")
package(default_visibility = ["//:__subpackages__"])
@@ -76,7 +76,7 @@ cc_library(
"celt/x86/x86cpu.c",
"celt/x86/x86_celt_map.c",
] + INTERNAL_HEADERS,
- copts = OPUS_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -91,7 +91,7 @@ cc_library(
cc_library(
name = "celt_sse",
srcs = ["celt/x86/pitch_sse.c"] + INTERNAL_HEADERS,
- copts = OPUS_COPTS + SSE_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS + SSE_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -108,7 +108,7 @@ cc_library(
"celt/x86/pitch_sse2.c",
"celt/x86/vq_sse2.c",
] + INTERNAL_HEADERS,
- copts = OPUS_COPTS + SSE2_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS + SSE2_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -125,7 +125,7 @@ cc_library(
"celt/x86/celt_lpc_sse4_1.c",
"celt/x86/pitch_sse4_1.c",
] + INTERNAL_HEADERS,
- copts = OPUS_COPTS + SSE4_1_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS + SSE4_1_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -140,7 +140,7 @@ cc_library(
cc_library(
name = "celt_avx2",
srcs = ["celt/x86/pitch_avx.c"] + INTERNAL_HEADERS,
- copts = OPUS_COPTS + AVX2_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS + AVX2_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -184,7 +184,7 @@ cc_library(
cc_library(
name = "silk_x86_rtcd",
srcs = ["silk/x86/x86_silk_map.c"] + INTERNAL_HEADERS,
- copts = OPUS_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -201,7 +201,7 @@ cc_library(
"silk/x86/VAD_sse4_1.c",
"silk/x86/VQ_WMat_EC_sse4_1.c",
] + INTERNAL_HEADERS,
- copts = OPUS_COPTS + SSE4_1_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS + SSE4_1_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -219,7 +219,7 @@ cc_library(
"silk/x86/NSQ_del_dec_avx2.c",
"silk/float/x86/inner_product_FLP_avx2.c",
] + INTERNAL_HEADERS,
- copts = OPUS_COPTS + AVX2_COPTS,
+ copts = OPUS_COPTS + OPUS_X86_STACK_COPTS + AVX2_COPTS,
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -258,7 +258,10 @@ cc_library(
"celt/mathops.c",
],
- copts = OPUS_COPTS,
+ copts = OPUS_COPTS + select({
+ "@platforms//cpu:x86_64": OPUS_X86_STACK_COPTS,
+ "//conditions:default": [],
+ }),
includes = OPUS_INCLUDES,
deps = [
":config",
@@ -373,7 +376,10 @@ cc_library(
"silk/float/schur_FLP.c",
"silk/float/sort_FLP.c",
] + glob(["silk/**/*.h"]),
- copts = OPUS_COPTS,
+ copts = OPUS_COPTS + select({
+ "@platforms//cpu:x86_64": OPUS_X86_STACK_COPTS,
+ "//conditions:default": [],
+ }),
includes = OPUS_INCLUDES,
deps = [
":celt",
@@ -419,7 +425,10 @@ cc_library(
"src/mlp_data.c",
] + glob(["src/*.h"]),
- copts = OPUS_COPTS,
+ copts = OPUS_COPTS + select({
+ "@platforms//cpu:x86_64": OPUS_X86_STACK_COPTS,
+ "//conditions:default": [],
+ }),
includes = ["include"],
deps = [
":celt",
--- a/overlay/defs.bzl
+++ b/overlay/defs.bzl
@@ -1,4 +1,9 @@
-OPUS_COPTS = ["-std=gnu99"]
+OPUS_COPTS = [
+ "-fno-stack-protector",
+ "-std=gnu99",
+]
+
+OPUS_X86_STACK_COPTS = ["-mno-stack-arg-probe"]
OPUS_INCLUDES = [
"include",