[FFmpeg-devel] [PATCH v2] configure: fix symbol prefix detection

Marvin Scholz epirat07 at gmail.com
Thu Sep 12 00:09:34 EEST 2024


The symbol prefix check would incorrectly detect a bogus prefix in circumstances where sanitizers
instrument the build, like when configuring with the clang-asan toolchain where it would detect the
prefix as __odr_asan_gen_, which is obviously wrong.

To fix this, adjust the prefix detection to only detect a one-character prefix, which is the only case
that matters anywhere right now.
---
 configure | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index d3bd46f382a..7e84272b74b 100755
--- a/configure
+++ b/configure
@@ -6131,13 +6131,15 @@ enable_weak_pic() {
 enabled pic && enable_weak_pic
 
 test_cc <<EOF || die "Symbol mangling check failed."
 int ff_extern;
 EOF
-sym=$($nm $TMPO | awk '/ff_extern/{ print substr($0, match($0, /[^ \t]*ff_extern/)) }')
+sym=$($nm $TMPO | awk '/[ \t]+[^ \t]{0,1}ff_extern/{ print substr($0, match($0, /[^ \t]{0,1}ff_extern$/)) }')
 extern_prefix=${sym%%ff_extern*}
 
+log "Symbol prefix detected as: '${extern_prefix}'"
+
 ! disabled inline_asm && check_inline_asm inline_asm '"" ::'
 
 check_cc pragma_deprecated "" '_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")'
 
 test_cpp_condition stdlib.h "defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)" && enable bigendian

base-commit: 2e91532ead860651c135bdedd96b6112ff715529
-- 
2.46.0


More information about the ffmpeg-devel mailing list