[x265] [PATCH] cpu_xgetbv signature mismatch when ENABLE_ASSEMBLY is off
Aurélien David
aurelien.david at telecom-paris.fr
Mon Jul 17 13:54:50 UTC 2023
Hello,
[this is my first contribution here, I apologize if I'm not doing this right]
When building without ENABLE_ASSEMBLY, the cpu_xgetbv function is noped in primitives.cpp with a different signature than its declaration in cpu.cpp.
The signature was changed in cpu.cpp by commit 3a20c6d31fd3e1b959cdf7904118958f2ee20d8e but not in primitives.cpp.
I came across this while building with emscripten giving warnings such as:
wasm-ld: warning: function signature mismatch: x265_10bit_cpu_xgetbv
>>> defined as (i32) -> i64 in libx265.a(cpu.cpp.o)
>>> defined as (i32, i32, i32) -> void in libx265.a(primitives.cpp.o)
Here's the patch:
>From fa86cc5d43a301792562d358797ed051f2da2368 Mon Sep 17 00:00:00 2001
From: Aurelien David <aurelien.david at telecom-paris.fr>
Date: Wed, 5 Jul 2023 18:18:10 +0200
Subject: [PATCH] fix cpu_xgetbv signature mismatch when ENABLE_ASSEMBLY is off
---
source/common/primitives.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/common/primitives.cpp b/source/common/primitives.cpp
index 10e41888..cd39ca95 100644
--- a/source/common/primitives.cpp
+++ b/source/common/primitives.cpp
@@ -293,7 +293,7 @@ extern "C" {
int PFX(cpu_cpuid_test)(void) { return 0; }
void PFX(cpu_emms)(void) {}
void PFX(cpu_cpuid)(uint32_t, uint32_t *eax, uint32_t *, uint32_t *, uint32_t *) { *eax = 0; }
-void PFX(cpu_xgetbv)(uint32_t, uint32_t *, uint32_t *) {}
+uint64_t PFX(cpu_xgetbv)(int) { return 0; }
#if X265_ARCH_ARM == 0
void PFX(cpu_neon_test)(void) {}
--
2.34.1
Have a nice day,
--
Aurélien David
More information about the x265-devel
mailing list