On Sat, 30 May 2026 17:08:05 +0200,
Stuart Henderson <[email protected]> wrote:
> 
> [1  <text/plain; us-ascii (quoted-printable)>]
> 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 <application/x-gunzip (base64)>]
> [3 ffmpeg.previous.log.gz <application/x-gunzip (base64)>]

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 <<EOF && enable ebp_available
++    # Since 
https://github.com/llvm/llvm-project/commit/0d471b3f64d3116bd57c79d872f7384fff80daa5,
++    # Clang can save/restore EBP around clobber-only asm, so the old
++    # crash probe can be a false positive.
++    check_exec_crash <<EOF && test_cc <<EOF_EBP_REGS && enable ebp_available
+ volatile int i=0;
+ __asm__ volatile ("xorl %%ebp, %%ebp" ::: "%ebp");
+ return i;
+ EOF
++void foo(void *a, void *b, void *c, void *d, int e, void *f)
++{
++    __asm__ volatile ("" :: "r"(a), "r"(b), "r"(c), "r"(d), "g"(e), "r"(f) : 
"%eax", "%edx");
++}
++EOF_EBP_REGS
+ 
+     # check whether EBX is available on x86
+     check_inline_asm ebx_available '""::"b"(0)' &&
+@@ -7002,7 +7009,7 @@ check_headers asm/types.h
  #
  # some configurations also require linking to libatomic, so try
  # both with -latomic and without
@@ -29,7 +50,7 @@ Index: configure
      check_builtin stdatomic stdatomic.h                                \
          "atomic_int foo, bar = -1; atomic_store(&foo, 0); foo += bar"  \
          $LATOMIC && eval stdatomic_extralibs="\$LATOMIC" && break
-@@ -7489,13 +7488,13 @@ enabled omx_rpi           && { test_code cc OMX_Core.h
+@@ -7489,13 +7496,13 @@ enabled omx_rpi           && { test_code cc OMX_Core.h
  enabled omx               && require_headers OMX_Core.h && \
      warn "The OpenMAX encoders are deprecated and will be removed in future 
versions"
  


-- 
wbr, Kirill

Reply via email to