Linking issue with VLC 3

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Linking issue with VLC 3

Brad Smith-14
I have been looking at updating VLC to version 3, but as I am looking into =
it I
have run into a linking issue. I am looking for any help to resolve the iss=
ue.

The issue is with VLC building a libtool convenience library called libcomp=
at to
provide various substitute functions which don't exist on OpenBSD, e.g. ffs=
ll(),
strnstr() and tdestroy().

Here is a start at an update plus FFmpeg 4.1 which is required for VLC 3.

https://comstyle.com/ffmpeg/ffmpeg.diff
https://comstyle.com/ffmpeg/vlc.diff


libtool: link: cc -shared  -fPIC -DPIC -o .libs/libhttps_plugin.so  access/=
http/.libs/access.o   .libs/libhttps_plugin.lax/libcompat.a/dummy.o .libs/l=
ibhttps_plugin.lax/libcompat.a/ffsll.o .libs/libhttps_plugin.lax/libcompat.=
a/strnstr.o .libs/libhttps_plugin.lax/libcompat.a/strverscmp.o .libs/libhtt=
ps_plugin.lax/libcompat.a/tdestroy.o  .libs/libhttps_plugin.lax/libvlc_http=
=2Ea/dummy.o
=2Elibs/libhttps_plugin.lax/libvlc_http.a/ffsll.o .libs/libhttps_plugin.lax=
/libvlc_http.a/libvlc_http_la-chunked.o .libs/libhttps_plugin.lax/libvlc_ht=
tp.a/libvlc_http_la-connmgr.o .libs/libhttps_plugin.lax/libvlc_http.a/libvl=
c_http_la-file.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-h1c=
onn.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-h2conn.o .libs=
/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-h2frame.o .libs/libhttps_=
plugin.lax/libvlc_http.a/libvlc_http_la-h2output.o .libs/libhttps_plugin.la=
x/libvlc_http.a/libvlc_http_la-hpack.o .libs/libhttps_plugin.lax/libvlc_htt=
p.a/libvlc_http_la-hpackenc.o .libs/libhttps_plugin.lax/libvlc_http.a/libvl=
c_http_la-live.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-mes=
sage.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-resource.o .l=
ibs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-tunnel.o .libs/libhttp=
s_plugin.lax/libvlc_http.a/strnstr.o .libs/libhttps_plugin.lax/libvlc_http.=
a/strverscmp.o .libs/libhttps_plugin.lax/libvlc_http.a/tdestroy.o   -L/home=
/ports/pobj/vlc-3.0.6/vlc-3.0.6/src/.libs -L/usr/X11R6/lib -L/usr/local/lib=
 -L../src/.libs -lvlccore -lidn -lintl -liconv -lc -ldbus-1 -lm -lpthread  =
-O2 -Wl,-z -Wl,defs   -Wl,-retain-symbols-file,.libs/libhttps_plugin.exp
ld: error: duplicate symbol: ffsll
>>> defined at ffsll.c
>>>            .libs/libhttps_plugin.lax/libcompat.a/ffsll.o:(ffsll)
>>> defined at ffsll.c
>>>            .libs/libhttps_plugin.lax/libvlc_http.a/ffsll.o:(.text+0x0)

ld: error: duplicate symbol: strnstr
>>> defined at strnstr.c
>>>            .libs/libhttps_plugin.lax/libcompat.a/strnstr.o:(strnstr)
>>> defined at strnstr.c
>>>            .libs/libhttps_plugin.lax/libvlc_http.a/strnstr.o:(.text+0x0)

ld: error: duplicate symbol: strverscmp
>>> defined at strverscmp.c
>>>            .libs/libhttps_plugin.lax/libcompat.a/strverscmp.o:(strversc=
mp)
>>> defined at strverscmp.c
>>>            .libs/libhttps_plugin.lax/libvlc_http.a/strverscmp.o:(.text+=
0x0)

ld: error: duplicate symbol: tdestroy
>>> defined at tdestroy.c
>>>            .libs/libhttps_plugin.lax/libcompat.a/tdestroy.o:(tdestroy)
>>> defined at tdestroy.c
>>>            .libs/libhttps_plugin.lax/libvlc_http.a/tdestroy.o:(.text+0x=
0)

Reply | Threaded
Open this post in threaded view
|

Re: Linking issue with VLC 3

Stuart Henderson
On 2019/02/09 11:40, Brad Smith wrote:

> I have been looking at updating VLC to version 3, but as I am looking into =
> it I
> have run into a linking issue. I am looking for any help to resolve the iss=
> ue.
>
> The issue is with VLC building a libtool convenience library called libcomp=
> at to
> provide various substitute functions which don't exist on OpenBSD, e.g. ffs=
> ll(),
> strnstr() and tdestroy().
>
> Here is a start at an update plus FFmpeg 4.1 which is required for VLC 3.
>
> https://comstyle.com/ffmpeg/ffmpeg.diff
> https://comstyle.com/ffmpeg/vlc.diff

This doesn't help, but I just wanted to add that it's no different if you
use ld.bfd instead of LLD.


> libtool: link: cc -shared  -fPIC -DPIC -o .libs/libhttps_plugin.so  access/=
> http/.libs/access.o   .libs/libhttps_plugin.lax/libcompat.a/dummy.o .libs/l=
> ibhttps_plugin.lax/libcompat.a/ffsll.o .libs/libhttps_plugin.lax/libcompat.=
> a/strnstr.o .libs/libhttps_plugin.lax/libcompat.a/strverscmp.o .libs/libhtt=
> ps_plugin.lax/libcompat.a/tdestroy.o  .libs/libhttps_plugin.lax/libvlc_http=
> =2Ea/dummy.o
> =2Elibs/libhttps_plugin.lax/libvlc_http.a/ffsll.o .libs/libhttps_plugin.lax=
> /libvlc_http.a/libvlc_http_la-chunked.o .libs/libhttps_plugin.lax/libvlc_ht=
> tp.a/libvlc_http_la-connmgr.o .libs/libhttps_plugin.lax/libvlc_http.a/libvl=
> c_http_la-file.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-h1c=
> onn.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-h2conn.o .libs=
> /libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-h2frame.o .libs/libhttps_=
> plugin.lax/libvlc_http.a/libvlc_http_la-h2output.o .libs/libhttps_plugin.la=
> x/libvlc_http.a/libvlc_http_la-hpack.o .libs/libhttps_plugin.lax/libvlc_htt=
> p.a/libvlc_http_la-hpackenc.o .libs/libhttps_plugin.lax/libvlc_http.a/libvl=
> c_http_la-live.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-mes=
> sage.o .libs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-resource.o .l=
> ibs/libhttps_plugin.lax/libvlc_http.a/libvlc_http_la-tunnel.o .libs/libhttp=
> s_plugin.lax/libvlc_http.a/strnstr.o .libs/libhttps_plugin.lax/libvlc_http.=
> a/strverscmp.o .libs/libhttps_plugin.lax/libvlc_http.a/tdestroy.o   -L/home=
> /ports/pobj/vlc-3.0.6/vlc-3.0.6/src/.libs -L/usr/X11R6/lib -L/usr/local/lib=
>  -L../src/.libs -lvlccore -lidn -lintl -liconv -lc -ldbus-1 -lm -lpthread  =
> -O2 -Wl,-z -Wl,defs   -Wl,-retain-symbols-file,.libs/libhttps_plugin.exp
> ld: error: duplicate symbol: ffsll
> >>> defined at ffsll.c
> >>>            .libs/libhttps_plugin.lax/libcompat.a/ffsll.o:(ffsll)
> >>> defined at ffsll.c
> >>>            .libs/libhttps_plugin.lax/libvlc_http.a/ffsll.o:(.text+0x0)
>
> ld: error: duplicate symbol: strnstr
> >>> defined at strnstr.c
> >>>            .libs/libhttps_plugin.lax/libcompat.a/strnstr.o:(strnstr)
> >>> defined at strnstr.c
> >>>            .libs/libhttps_plugin.lax/libvlc_http.a/strnstr.o:(.text+0x0)
>
> ld: error: duplicate symbol: strverscmp
> >>> defined at strverscmp.c
> >>>            .libs/libhttps_plugin.lax/libcompat.a/strverscmp.o:(strversc=
> mp)
> >>> defined at strverscmp.c
> >>>            .libs/libhttps_plugin.lax/libvlc_http.a/strverscmp.o:(.text+=
> 0x0)
>
> ld: error: duplicate symbol: tdestroy
> >>> defined at tdestroy.c
> >>>            .libs/libhttps_plugin.lax/libcompat.a/tdestroy.o:(tdestroy)
> >>> defined at tdestroy.c
> >>>            .libs/libhttps_plugin.lax/libvlc_http.a/tdestroy.o:(.text+0x=
> 0)
>

Reply | Threaded
Open this post in threaded view
|

Re: Linking issue with VLC 3

Brad Smith-14
In reply to this post by Brad Smith-14
On 2/9/2019 11:40 AM, Brad Smith wrote:

> I have been looking at updating VLC to version 3, but as I am looking into =
> it I
> have run into a linking issue. I am looking for any help to resolve the iss=
> ue.
>
> The issue is with VLC building a libtool convenience library called libcomp=
> at to
> provide various substitute functions which don't exist on OpenBSD, e.g. ffs=
> ll(),
> strnstr() and tdestroy().
>
> Here is a start at an update plus FFmpeg 4.1 which is required for VLC 3.
>
> https://comstyle.com/ffmpeg/ffmpeg.diff
> https://comstyle.com/ffmpeg/vlc.diff

Now that the FFmpeg update has gone in and their is a new snap for amd64
it makes it
much easier to test this. I have updated the VLC diff if anyone is able
to look at this.

https://comstyle.com/ffmpeg/vlc.diff