Bug#1141426: libyuv: FTBFS on i386: the register ‘xmm0’ cannot be clobbered in ‘asm’ for the current target

Simon McVittie <[email protected]> Sat, 4 Jul 2026 13:55:19 +0100
Newsgroups gmane.linux.debian.devel.multimedia
Message-ID <akkCt9m-dn8DcK1N__49665.6208111503$1783169852$gmane$org@definition.pseudorandom.co.uk>
Source: libyuv
Version: 0.0.1948.20260702-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
User: [email protected]
Usertags: i386
Control: affects -1 + libwine

https://buildd.debian.org/status/fetch.php?pkg=libyuv&arch=i386&ver=0.0.1948.20260702-1&stamp=1783025641&raw=0:
> ...
> [ 63%] Building C object CMakeFiles/cpuid.dir/util/cpuid.c.o
> /usr/bin/i686-linux-gnu-gcc -DHAVE_JPEG -I/build/reproducible-path/libyuv-0.0.1948.20260702/include -I/usr/src/googletest/googletest -I/usr/src/googletest/googletest/include -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libyuv-0.0.1948.20260702=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIE -MD -MT CMakeFiles/cpuid.dir/util/cpuid.c.o -MF CMakeFiles/cpuid.dir/util/cpuid.c.o.d -o CMakeFiles/cpuid.dir/util/cpuid.c.o -c /build/reproducible-path/libyuv-0.0.1948.20260702/util/cpuid.c
> /build/reproducible-path/libyuv-0.0.1948.20260702/util/cpuid.c: In function ‘main’:
> /build/reproducible-path/libyuv-0.0.1948.20260702/util/cpuid.c:233:9: error: the register ‘xmm0’ cannot be clobbered in ‘asm’ for the current target
>   233 |         __asm__ volatile("vdpphps %%xmm0, %%xmm0, %%xmm0" : : : "xmm0");

Perhaps this stuff involving vdpphps should be

-#ifdef __linux__
+#if defined(__linux__) && !defined(__i386__)

or perhaps (similar to 
https://github.com/PurpleI2P/i2pd/commit/7373dae026e50f2cb3754bbd4b108b4a90291c85)

-#ifdef __linux__
+#if defined(__linux__) && defined(__AVX__)

to avoid that code path on i386?

libyuv0:i386 is required by 32-bit Wine via this dependency chain:

    libyuv0:i386 -> libavif16:i386 -> libgd3:i386 -> libgphoto2-6t64:i386 -> libwine:i386

so it's important to keep it installable on i386.

Thanks,
    smcv