Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: freerdp fails on latest snapshot
To:
mike@marcott.net, ports@openbsd.org
Date:
Thu, 6 Nov 2025 16:59:03 +0000

Download raw body.

Thread
On 2025/11/06 14:59, Kirill A. Korinsky wrote:
> On Thu, 06 Nov 2025 13:24:46 +0100,
> Mike Marcott <mike@marcott.net> wrote:
> > 
> > Good morning,
> >  
> > After previously working for the last years through current 7.8 snapshot from around 10/8/2025, a recent update to snapshot OpenBSD 7.8-current has freerdp-2.11.7 failing to connect to multiple win10 boxes withi this error:
> >  
> > xfreerdp:/usr/local/lib/libfreerdp2.so.3.0: undefined symbol 'avcodec_close'
> > ld.so: xfreerdp: lazy binding failed!
> > Killed
> >  
> > The password negotiation works, the typical window pops up briefly then closes with that error.
> >  
> > OpenBSD 7.8-current (GENERIC.MP) #81: Sat Nov 1 11:07:45 MDT 2025
> > deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP mailto:deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> >  
> > Anyone else seeing this?  Thank you 
> >
> 
> This is side effect of switching to ffmpeg8.
> 
> Thanks for reporting it.

I don't get that far on an IBT system:

xfreerdp /cert-name:XX -grab-keyboard +compression /cert-tofu /size:85% /u:XX /p:XX /v:10.71.12.35:3389
[16:44:38:451] [52487:74a9ba40] [WARN][com.freerdp.crypto] - Certificate verification failure 'unable to get local issuer certificate (20)' at stack position 0
[16:44:38:451] [52487:74a9ba40] [WARN][com.freerdp.crypto] - CN = XX
[16:44:40:995] [52487:74a9ba40] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[16:44:40:995] [52487:74a9ba40] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_BGRA32
[16:44:40:157] [52487:74a9ba40] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[16:44:40:157] [52487:74a9ba40] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel rdpgfx
[16:44:40:531] [52487:48754440] [ERROR][com.freerdp.utils] - Caught signal 'Illegal instruction' [4]
[16:44:40:532] [52487:48754440] [FATAL][com.winpr.utils.debug] - Invalid stacktrace buffer! check if platform is supported!
[16:44:40:532] [52487:48754440] [ERROR][com.freerdp.utils] - winpr_backtrace failed!

Illegal instruction (core dumped)

...
 65642 xfreerdp RET   kbind 0
 65642 xfreerdp CALL  mmap(0,0x3000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 65642 xfreerdp RET   mmap 12071689031680/0xafaa8bc9000
 65642 xfreerdp CALL  mmap(0,0x3000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,-1,0)
 65642 xfreerdp RET   mmap 12075412787200/0xafb86b09000
 65642 xfreerdp PSIG  SIGILL caught handler=0xafb53c4ebe0 mask=0<> code=ILL_BTCFI addr=0xafb3dd2fd20 trapno=21
...

(gdb) bt
#0  thrkill () at /tmp/-:2
#1  0x092bbf8d77d8580e in ?? ()
#2  0x000008f2d950bd2d in fatal_handler () from /usr/local/lib/libfreerdp2.so.3.0
#3  <signal handler called>
#4  ff_prefetch_mmxext[loop] () at src/libavcodec/x86/videodsp.asm:401
#5  0x000008f270e5a3de in hl_decode_mb_simple_8 (h=0x8f34d035000, sl=0x8f2a8613000) at src/libavcodec/h264_mb_template.c:60
#6  0x000008f270e77a40 in decode_slice (avctx=<optimized out>, arg=0x8f2a8613000) at src/libavcodec/h264_slice.c:2690
#7  0x000008f270e77087 in ff_h264_execute_decode_slices (h=0x8f34d035000) at src/libavcodec/h264_slice.c:2790
#8  0x000008f270e7faf1 in decode_nal_units (h=0x8f34d035000, buf_ref=0x8f266541140, buf=0x8f27a443000 "", buf_size=5383)
    at src/libavcodec/h264dec.c:677
#9  h264_decode_frame (avctx=0x8f26652dc00, pict=0x8f266510600, got_frame=0x8f2afcf86b4, avpkt=<optimized out>)
    at src/libavcodec/h264dec.c:1052
#10 0x000008f270d45d61 in decode_simple_internal (avctx=0x8f26652dc00, frame=0x8f266510600, discarded_samples=<optimized out>)
    at src/libavcodec/decode.c:439
#11 decode_simple_receive_frame (avctx=0x8f26652dc00, frame=0x8f266510600) at src/libavcodec/decode.c:597
#12 ff_decode_receive_frame_internal (avctx=0x8f26652dc00, frame=0x8f266510600) at src/libavcodec/decode.c:633
#13 0x000008f270d46493 in decode_receive_frame_internal (avctx=0x8f26652dc00, frame=0x8f266510600) at src/libavcodec/decode.c:650
#14 0x000008f270d46410 in avcodec_send_packet (avctx=0x8f26652dc00, avpkt=0x8f266519030) at src/libavcodec/decode.c:726
#15 0x000008f2d95ea8ae in libavcodec_decompress () from /usr/local/lib/libfreerdp2.so.3.0
#16 0x000008f2d95e9d5e in avc444_process_rects () from /usr/local/lib/libfreerdp2.so.3.0
#17 0x000008f2d95e9cda in avc444_decompress () from /usr/local/lib/libfreerdp2.so.3.0
#18 0x000008f2d9523f6f in gdi_SurfaceCommand () from /usr/local/lib/libfreerdp2.so.3.0
#19 0x000008f33551b0e9 in rdpgfx_decode () from /usr/local/lib/libfreerdp-client2.so.1.1
#20 0x000008f335518090 in rdpgfx_on_data_received () from /usr/local/lib/libfreerdp-client2.so.1.1
#21 0x000008f3354ef20c in dvcman_receive_channel_data () from /usr/local/lib/libfreerdp-client2.so.1.1
#22 0x000008f3354ed600 in drdynvc_virtual_channel_client_thread () from /usr/local/lib/libfreerdp-client2.so.1.1
#23 0x000008f2707656fc in thread_launcher () from /usr/local/lib/libwinpr2.so.2.1
#24 0x000008f2e097c312 in _rthread_start (v=0x0) at /usr/src/lib/librthread/rthread.c:99
#25 0x000008f2d533f6da in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87

> But our version is quite old.

newer versions need posix timers :/