Commit c20cca81 authored by Pierre Ynard's avatar Pierre Ynard Committed by Jean-Baptiste Kempf

x264: Use -Bsymbolic to fix static link

On my linux x86_64 system, when trying to statically link the x264
module against libx264, I get the following error:

/usr/bin/ld: /usr/local/lib/libx264.a(cabac-a.o): relocation
R_X86_64_PC32 against symbol `x264_cabac_range_lps' can not be used when
making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value

Even though libx264 was compiled as PIC. Dynamically linking against the
shared library, built during the same process, works well.

The x264 folks said that VLC needed to use the -Bsymbolic flag to allow
conversation of a static PIC library into a shared library, so that's
what I did, and it works for me.
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent b81940df
...@@ -3748,7 +3748,7 @@ if test "${enable_x264}" != "no"; then ...@@ -3748,7 +3748,7 @@ if test "${enable_x264}" != "no"; then
VLC_ADD_LIBS([x264],[-L${real_x264_tree}]) VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
PKG_CHECK_MODULES(X264,x264, [ PKG_CHECK_MODULES(X264,x264, [
VLC_ADD_PLUGIN([x264]) VLC_ADD_PLUGIN([x264])
VLC_ADD_LDFLAGS([x264],[${X264_LIBS}]) VLC_ADD_LDFLAGS([x264],[${X264_LIBS} -Wl,-Bsymbolic])
VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}]) VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB]) VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
...@@ -3764,7 +3764,7 @@ if test "${enable_x264}" != "no"; then ...@@ -3764,7 +3764,7 @@ if test "${enable_x264}" != "no"; then
else else
PKG_CHECK_MODULES(X264,x264, [ PKG_CHECK_MODULES(X264,x264, [
VLC_ADD_PLUGIN([x264]) VLC_ADD_PLUGIN([x264])
VLC_ADD_LDFLAGS([x264],[${X264_LIBS}]) VLC_ADD_LDFLAGS([x264],[${X264_LIBS} -Wl,-Bsymbolic])
VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}]) VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB]) VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment