[vlc-devel] [vlc-commits] Revert "modules: x265 is a C++ module"

Rémi Denis-Courmont remi at remlab.net
Mon Oct 9 11:37:57 CEST 2017


Le 9 octobre 2017 12:17:08 GMT+03:00, "Hugo Beauzée-Luyssen" <hugo at beauzee.fr> a écrit :
>On Mon, Oct 9, 2017, at 10:23 AM, Marvin Scholz wrote:
>> On 9 Oct 2017, at 8:29, David Fuhrmann wrote:
>> 
>> >> Am 08.10.2017 um 09:49 schrieb Rémi Denis-Courmont 
>> >> <git at videolan.org>:
>> >>
>> >> vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun
>
>> >> Oct  8 10:48:51 2017 +0300| 
>> >> [0c98ed76b0250ebc25ff7bb981117b1d99bd2ce6] | committer: Rémi 
>> >> Denis-Courmont
>> >>
>> >> Revert "modules: x265 is a C++ module"
>> >>
>> >> This reverts commit a1f9dfd57c84f2340755443200e6f03d2c895548.
>> >> This fixes linking.
>> >>
>> >>>
>http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0c98ed76b0250ebc25ff7bb981117b1d99bd2ce6
>> >> ---
>> >>
>> >> modules/codec/Makefile.am | 4 ++--
>> >> 1 file changed, 2 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am
>> >> index da49a0704f..10eb160d36 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 dummy.cpp
>> >> +libx265_plugin_la_SOURCES = codec/x265.c
>> >> libx265_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
>> >> -libx265_plugin_la_CXXFLAGS = $(AM_CFLAGS) $(CFLAGS_x265)
>> >> +libx265_plugin_la_CFLAGS = $(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
>> >
>> > Hello all,
>> >
>> > This breaks linking on the macOS nightly builds: 
>> >
>https://jenkins.videolan.org/job/vlc-nightly/job/vlc-nightly-macOS-contrib/474/console
>
>> >
><https://jenkins.videolan.org/job/vlc-nightly/job/vlc-nightly-macOS-contrib/474/console>
>> >
>> > Undefined symbols for architecture x86_64:
>> >   "vtable for __cxxabiv1::__class_type_info", referenced from:
>> >       typeinfo for x265::BitInterface in libx265.a(bitstream.cpp.o)
>> >
>> > I’m not exactly sure why, and I cannot reproduce the problem 
>> > locally. Does anyone have an idea whats wrong here?
>> >
>> 
>> It fails when I try to build locally too, for me. (Same link errors)
>> 
>> > BR. David
>> >
>> > _______________________________________________
>> > vlc-devel mailing list
>> > To unsubscribe or modify your subscription options:
>> > https://mailman.videolan.org/listinfo/vlc-devel
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>
>Reverting this causes clang to be used instead of clang++
>That doesn't seem like a good idea IMHO, since one way or another,
>libstdc++/libc++ needs to linked with.
>
>-- 
>  Hugo Beauzée-Luyssen
>  hugo at beauzee.fr
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

As per the other thread, linking a pure C module with CXX linker is wrong. It introduces unused deps (which violates distro policy), and in this specific case, it actually breaks the Linux x86-64 build.

The C++ runtime is loaded in as needed as a dependency of the shared library, or added with pkg-config for the static library.
-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.


More information about the vlc-devel mailing list