diff mbox series

[FFmpeg-devel,v3,1/2] configure: fix symbol prefix detection

Message ID D44MXKIO0XHO.39H8523KNX4FZ@gmail.com
State Accepted
Headers show
Series [FFmpeg-devel,v3,1/2] configure: fix symbol prefix detection | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Marvin Scholz Sept. 11, 2024, 9:09 p.m. UTC
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(-)


base-commit: ca77fc21774daac141664818db871d9df493eb3a
diff mbox series

Patch

diff --git a/configure b/configure
index d3bd46f382a..ad5bf6d6844 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