From: Kirill A. Korinsky Subject: Re: graphics/ffmpeg vs llvm 22 on i386 To: Brad , "Kirill A. Korinsky" , ports Date: Mon, 01 Jun 2026 19:25:45 +0200 On Sat, 30 May 2026 17:08:05 +0200, Stuart Henderson wrote: > > [1 ] > swscale build fails, full build log for current (llvm 22) and previous > (llvm 19) builds attached, tail below. both are from the same version > (8.1.1). > > there is this change in configure output: > > llvm19: EBP available no > llvm22: EBP available yes > > I also notice there are a bunch of 'loop not vectorized' warnings > but that's not new. > > cc -I. -Isrc/ -D_ISOC11_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -I/pobj/ffmpeg-8.1.1/ffmpeg-8.1.1/compat/stdbit -DZLIB_CONST -DHAVE_AV_CONFIG_H -DBUILDING_swscale -O2 -pipe -I/usr/local/include -I/usr/X11R6/include -std=c17 -fPIC -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include -pthread -I/usr/local/include -I/usr/local/include -I/usr/X11R6/include -I/usr/local/include/harfbuzz -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/fribidi -I/usr/X11R6/include/freetype2 -I/usr/local/include -I/usr/X11R6/include -I/usr/X11R6/include/libdrm -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include/freetype2 -I/usr/local/include/fribidi -I/usr/local/include/harfbuzz -I/usr/X11R6/include/freetype2 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/opus -I/usr/local/include/opus -I/usr/local/include -I/usr/local/include/svt-av1 -DEB_DLL -DRTC_BUILD=0 -I/usr /local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/webp -I/usr/local/include -I/usr/local/include/webp -I/usr/local/include -DX264_API_IMPORTS -I/usr/local/include -I/usr/local/include -I/usr/local/include/libxml2 -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include/libdrm -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include -g -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wempty-body -Wmissing-prototypes -Wstrict-prototypes -Wunterminated-string-initialization -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -Wno-implicit-const-int-float-conversion -Wno-microsoft-enum-forward-reference -O2 -pipe -Wno-red un > src/libswscale/x86/rgb2rgb.c:1476:13: error: inline assembly requires more registers than available > 1476 | "mov %4, %%"FF_REG_a"\n\t" > | ^ > 1 error generated. > gmake: *** [/pobj/ffmpeg-8.1.1/ffmpeg-8.1.1/ffbuild/common.mak:91: libswscale/x86/rgb2rgb.o] Error 1 > *** Error 2 in graphics/ffmpeg (/usr/ports/infrastructure/mk/bsd.port.mk:3080 '/pobj/ffmpeg-8.1.1/build-i386/.build_done': @cd /pobj/ffmpeg-...) > *** Error 2 in graphics/ffmpeg (/usr/ports/infrastructure/mk/bsd.port.mk:2723 'build': @lock=ffmpeg-8.1.1v1; export _LOCKS_HELD=" ffmpeg-8....) > ===> Exiting graphics/ffmpeg with an error > *** Error 1 in /usr/ports (infrastructure/mk/bsd.port.subdir.mk:144 'build': @: ${echo_msg:=echo}; : ${target:=build}; for i in ; do eval...) > >>> Ended at 1780152281.15 > max_stuck=68.53/depends=7.70/show-prepare-results=4.51/patch=3.13/configure=101.99/build=240.31 > Error: job failed with 512 on i386-3 at 1780152281 > [2 ffmpeg.log.gz ] > [3 ffmpeg.previous.log.gz ] May I ask you to try this diff? Index: patches/patch-configure =================================================================== RCS file: /home/cvs/ports/graphics/ffmpeg/patches/patch-configure,v diff -u -p -r1.79 patch-configure --- patches/patch-configure 21 May 2026 16:24:15 -0000 1.79 +++ patches/patch-configure 1 Jun 2026 17:24:33 -0000 @@ -20,7 +20,28 @@ Index: configure enable_weak_pic() { disabled pic && return -@@ -7002,7 +7001,7 @@ check_headers asm/types.h +@@ -6745,11 +6744,19 @@ elif enabled x86; then + # As 'i' is stored on the stack, this program will crash + # if the base pointer is used to access it because the + # base pointer is cleared in the inline assembly code. +- check_exec_crash <