[vlc-devel] X265 contrib link error against master generation
Gilles Sabourin
gilles.sabourin at free.fr
Fri Oct 6 21:00:53 CEST 2017
Le samedi 30 septembre 2017, 06:12:11 CEST Sean McGovern a écrit :
> Hi Gilles,
>
> On Sat, Sep 30, 2017 at 2:45 AM, Gilles Sabourin
>
> <gilles.sabourin at free.fr> wrote:
> > Hello team,
> >
> > Shortly after the beginning, vlc master compilation is failing with this
> > link error:
> >
> > /usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/bin/ld:
> > /usr/
> > src/packages/BUILD/vlc-beta-3.0.0/contrib/x86_64-suse-linux/lib/libx265.a
> > (cpu- a.asm.o): relocation R_X86_64_PC32 against symbol
> > `x265_intel_cpu_indicator_init' can not be used when making a shared
> > object; recompile with -fPIC
> > /usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/bin/ld:
> > final link failed: Bad value
> > collect2: error: ld returned 1 exit status
> > Makefile:16940: recipe for target 'libx265_plugin.la' failed
> > make[4]: *** [libx265_plugin.la] Error 1
> >
> > X265 contrib itself compile well : no error.
> >
> > The issue has been here for more then 7 days, this was the case, last
> > 23rd.
>
> I have seen the same issue.
>
> It has been this way for much longer than 7 days. I've resorted to
> using the x265 package from my distribution.
>
> I suspect that x265_intel_cpu_indicator_init() is not supposed to be
> externally visible -- it's not in the API.
>
> -- Sean McG.
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
Sean,
There has been no version bump for x265 and this issue has appeared recently.
Last Saturday 16th, vlc still compiled successfully...
So I have a look at vlc master tree and I found this commit:
Author: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
Date: Mon Sep 18 10:22:52 2017 +0200
modules: x265 is a C++ module
diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am
index 10eb160d36..da49a0704f 100644
--- a/modules/codec/Makefile.am
+++ b/modules/codec/Makefile.am
@@ -475,9 +475,9 @@ endif
### X26x encoders ###
-libx265_plugin_la_SOURCES = codec/x265.c
+libx265_plugin_la_SOURCES = codec/x265.c dummy.cpp
libx265_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
-libx265_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_x265)
+libx265_plugin_la_CXXFLAGS = $(AM_CFLAGS) $(CFLAGS_x265)
libx265_plugin_la_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_x265) -rpath '$
(codecdir)'
libx265_plugin_la_LIBADD = $(LIBS_x265)
EXTRA_LTLIBRARIES += libx265_plugin.la
I reverted it and I was able to link successfully with x265. I think this
commit is wrong : x265 team has developed his library using C++, but this does
not imply that their API is only reachable using C++...
In any case, this is working like that for months/years. Especially when there
has been no x265 version bump in contribs recently, hence no API change. I am
not developer at all, this is not my job, but I have a logical approach, and I
do not understand why this would have suddenly changed.
Maybe you can talk to each other, if you don't want to talk to me, because I
am only "a user"...
Best,
Gilles
More information about the vlc-devel
mailing list