@@ -103,53 +103,19 @@ AC_SUBST([FFMPEG_LIBS])
103103CPPFLAGS="$CPPFLAGS -D__STDC_CONSTANT_MACROS"
104104CFLAGS="$_CFLAGS $FFMPEG_CFLAGS"
105105
106- AC_DEFUN ( [ TEST_FFMPEG] ,
107- [ AC_LINK_IFELSE ( [ AC_LANG_PROGRAM ( [ [
108- #include <libavformat/avformat.h>
109- #include <libswscale/swscale.h>
110- ] ] ,[ [
111- avformat_network_init();
112- swscale_version();
113- ] ] ) ] , [ eval $1 =yes] , [ eval $1 =no] )
114- ] )
115-
116- AC_MSG_CHECKING ( [ whether FFmpeg works] )
117- LIBS="$_LIBS $FFMPEG_LIBS"
118- TEST_FFMPEG([ FFMPEG_WORKS] )
119- AC_MSG_RESULT ( [ $FFMPEG_WORKS] )
120- if test "$FFMPEG_WORKS" = no; then
121- AC_MSG_FAILURE ( [ cannot link with FFmpeg] )
122- fi
123-
106+ dnl The -Wl,-Bsymbolic flag is required only when building ffms2 as a shared library against a static build of FFmpeg.
107+ dnl Unfortunately, there is no reliable way to detect whether FFmpeg is static at configure time (especially when using *-uninstalled.pc files).
108+ dnl To avoid unexpected link errors, we always enable it when building shared.
109+ dnl For details, see FFmpeg’s advanced linking notes:https://ffmpeg.org/platform.html#Advanced-linking-configuration
124110src_core_libffms2_la_LDFLAGS=""
125- AC_MSG_CHECKING ( [ whether -Wl,-Bsymbolic is needed] )
126111if test "$enable_shared" = yes; then
127- _LDFLAGS="$LDFLAGS"
128- LDFLAGS="$LDFLAGS -shared $lt_prog_compiler_pic"
129- TEST_FFMPEG([ no_bsymbolic] )
130- if test "$no_bsymbolic" = "no"; then
131- LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
132- TEST_FFMPEG([ bsymbolic] )
133- if test "$bsymbolic" = "yes"; then
134- src_core_libffms2_la_LDFLAGS="$src_core_libffms2_la_LDFLAGS -Wl,-Bsymbolic"
135- else
136- AC_MSG_RESULT ( $bsymbolic )
137- AC_MSG_FAILURE ( [ cannot build ffms2 as a shared library] )
138- fi
139- else
140- bsymbolic=no
141- fi
142- LDFLAGS="$_LDFLAGS"
143- src_core_libffms2_la_LDFLAGS="$src_core_libffms2_la_LDFLAGS -version-info $VERSION_INFO"
144- else
145- bsymbolic=no
112+ AX_CHECK_LINK_FLAG ( [ -Wl,-Bsymbolic] , [ src_core_libffms2_la_LDFLAGS="$src_core_libffms2_la_LDFLAGS -Wl,-Bsymbolic -version-info $VERSION_INFO"] )
146113fi
147114AC_SUBST ( [ src_core_libffms2_la_LDFLAGS] )
148115
149116CFLAGS="$_CFLAGS"
150117CPPFLAGS="$_CPPFLAGS"
151118LIBS="$_LIBS"
152- AC_MSG_RESULT ( $bsymbolic )
153119
154120if echo "$host" | $GREP "mingw" >/dev/null 2>&1; then
155121 LTUNDEF="-no-undefined"
0 commit comments