On 31/10/2025 12:21, Andriy Gapon wrote:
Noone reacted to this on [email protected], maybe people here would be
interested.
It seems that now some official package builds are affected by this.
Just in case, this is the same kind of issue as discussed at length in
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285401
Multiple ports had to be (individually) patched for it.
-------- Forwarded Message --------
Subject: multimedia/ffmpeg: fix symbol versioning problem on stable/14
Date: Thu, 25 Sep 2025 16:16:01 +0300
From: Andriy Gapon <[email protected]>
To: [email protected]
Preamble: I made this change a while ago but couldn't find time to share it.
Now I see that ffmpeg 8 is in the works, so maybe I am too late or, at least,
the change will need some rework.
The change addresses an issue similar to https://bugs.freebsd.org/bugzilla/
show_bug.cgi?id=284651 and multiple others.
commit 7f9d8df0bafbb3ffbe0399a28b8d232bb2c58612
Author: Andriy Gapon <[email protected]>
AuthorDate: Sat Jun 21 17:16:33 2025 +0300
Commit: Andriy Gapon <[email protected]>
CommitDate: Sat Sep 6 15:47:50 2025 +0300
multimedia/ffmpeg: fix symbol versioning problem on stable/14
This is a well-known issue related to visibility of environ and __progname
symbols from /usr/lib/crt1.o.
This change patches configure to give those symbols global visibility
when testing --version-script support.
Otherwise, the port would produce broken libraries without symbol versions.
This change also adds HAS_SYMBOL_VERSION to catch the problem using
libavcodec.so as a canary.
diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile
index f7c5d80adeac..fd25b9238021 100644
--- a/multimedia/ffmpeg/Makefile
+++ b/multimedia/ffmpeg/Makefile
@@ -28,6 +28,7 @@ USE_PERL5= build
SHEBANG_FILES= doc/texi2pod.pl
NOPRECIOUSMAKEVARS= yes # ARCH
+HAS_SYMBOL_VERSION= ${PREFIX}/lib/libavcodec.so
PORTSCOUT= limit:^6\.
# Option CHROMAPRINT disabled, it cannot work and people are baffled.
diff --git a/multimedia/ffmpeg/files/patch-configure b/multimedia/ffmpeg/files/
patch-configure
index 9654237228cc..c3a166b984ca 100644
--- a/multimedia/ffmpeg/files/patch-configure
+++ b/multimedia/ffmpeg/files/patch-configure
@@ -28,3 +28,12 @@
-lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-
Tools -lpthread -lstdc++ -lm; }
enabled libgme && { check_pkg_config libgme libgme gme/gme.h
gme_new_emu ||
require libgme gme/gme.h gme_new_emu -lgme -
lstdc++; }
+@@ -7307,7 +7301,7 @@
+ EOF
+
+ if enabled proper_dce; then
+- echo "X { local: *; };" > $TMPV
++ echo "X { global: environ; __progname; local: *; };" > $TMPV
+ if test_ldflags -Wl,${version_script},$TMPV; then
+ append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
+ quotes='""'
--
Andriy Gapon