[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