[opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
Hi Guys,

I am working to try and get a Linux version of the FS viewer running and 
I have been successful for the most part after fixing a bunch of build 
issues.. however I seem to have an issue with CEF failing in the new 
viewer, this can be seen in the logs:

2018-03-20T07:44:13Z WARNING: LLPluginInstance::load: apr_dso_load of 
/home/alex/fsivy/bin/llplugin/libmedia_plugin_cef.so failed with error 
20019 , additional info string: 
/home/alex/fsivy/bin/llplugin/libmedia_plugin_cef.so: undefined symbol: 
AtomicOps_Internalx86CPUFeatures

Some Googling reveals that AtomicOps_Internalx86CPUFeatures is part of 
CEF? Has something gone wrong with linking somewhere?

What might have gone wrong for this to happen? I am out of ideas as to 
what it might be. Any thoughts appreciated.

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 18:45:54 +1000, Alex wrote:

> I am working to try and get a Linux version of the FS viewer running and 
> I have been successful for the most part after fixing a bunch of build 
> issues.. however I seem to have an issue with CEF failing in the new 
> viewer, this can be seen in the logs:
> 
> 2018-03-20T07:44:13Z WARNING: LLPluginInstance::load: apr_dso_load of 
> /home/alex/fsivy/bin/llplugin/libmedia_plugin_cef.so failed with error 
> 20019 , additional info string: 
> /home/alex/fsivy/bin/llplugin/libmedia_plugin_cef.so: undefined symbol: 
> AtomicOps_Internalx86CPUFeatures
> 
> Some Googling reveals that AtomicOps_Internalx86CPUFeatures is part of 
> CEF? Has something gone wrong with linking somewhere?
> 
> What might have gone wrong for this to happen? I am out of ideas as to 
> what it might be. Any thoughts appreciated.

When typed from a terminal pointing in your viewer directory, what does

LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd ./path 
bin/llplugin/libmedia_plugin_cef.so

tells you ?

If it can't find libcef.so, then it would explain it...

Make sure your viewer_manifest.py script does properly copy all the CEF
libraries, binaries and resources in the right places.

Also, you will find a working Dullahan Linux plugin on the Cool VL Viewer
site (in http://sldev.free.fr/libraries/ ), as well as the corresponding
sources (in http://sldev.free.fr/libraries/sources/ ). Note however that
this is a modified version with extended parameters for CEF (to learn how to
use them, have a look at indra/media_plugins/libvlc/media_plugin_libvlc.cpp
in the sources for the Cool VL Viewer v1.26.21.x). This plugin can also be
used to compile the viewer with a non C++11 compliant compiler (e.g. with
gcc v4.6, even though you will still need to link the viewer to a version
of libstdc++.so v6.0.19 or newer (shipped with gcc v4.8 or newer), since
this is what libcef.so expects), unlike LL's version.

Regards,

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 10:22:43 +0100, Henri Beauchamp wrote:

> LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd ./path 
> bin/llplugin/libmedia_plugin_cef.so

I meant:
LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd 
./bin/llplugin/libmedia_plugin_cef.so

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 10:24:24 +0100, Henri Beauchamp wrote:

> On Tue, 20 Mar 2018 10:22:43 +0100, Henri Beauchamp wrote:
> 
> > LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd ./path 
> > bin/llplugin/libmedia_plugin_cef.so
> 
> I meant:
> LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd 
> ./bin/llplugin/libmedia_plugin_cef.so

And without the typos in "library", it actually is:
LD_LIBRARY_PATH="./lib:$LD_LIBRARY_PATH" ldd 
./bin/llplugin/libmedia_plugin_cef.so

* drinks a cup of strong expresso, slaps his face twice and re-reads thrice *
Should be OK, this time...

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex

On 2018-03-20 19:35, Henri Beauchamp wrote:
> On Tue, 20 Mar 2018 10:24:24 +0100, Henri Beauchamp wrote:
> 
>> On Tue, 20 Mar 2018 10:22:43 +0100, Henri Beauchamp wrote:
>> 
>> > LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd ./path 
>> > bin/llplugin/libmedia_plugin_cef.so
>> 
>> I meant:
>> LD_LIRABRY_PATH="./lib:$LD_LIRABRY_PATH" ldd 
>> ./bin/llplugin/libmedia_plugin_cef.so
> 
> And without the typos in "library", it actually is:
> LD_LIBRARY_PATH="./lib:$LD_LIBRARY_PATH" ldd
> ./bin/llplugin/libmedia_plugin_cef.so
> 
> * drinks a cup of strong expresso, slaps his face twice and re-reads 
> thrice *
> Should be OK, this time...
> 
> Henri.
> ___
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/OpenSource-Dev
> Please read the policies before posting to keep unmoderated posting 
> privileges

Hi Henri!

Thank you for responding.

This is what I get:
alex@desktop:~/ivyviewer$ LD_LIBRARY_PATH="./lib:$LD_LIBRARY_PATH" ldd 
./bin/llplugin/libmedia_plugin_cef.so
 linux-vdso.so.1 =>  (0x7ffcedd68000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 
(0x7f07a805e000)
 libaprutil-1.so.0 => ./lib/libaprutil-1.so.0 
(0x7f07a7e15000)
 libapr-1.so.0 => ./lib/libapr-1.so.0 (0x7f07a7be5000)
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
(0x7f07a785f000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 
(0x7f07a7509000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x7f07a72f2000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x7f07a70d3000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 
(0x7f07a6cf3000)
 /lib64/ld-linux-x86-64.so.2 (0x7f07a867)
 libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 
(0x7f07a6aee000)
 libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 
(0x7f07a68b6000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 
(0x7f07a66b2000)

alex@desktop:~/ivyviewer$ find . -name 'libcef.so'
./lib/libcef.so

I would have expected to see a 'not found' in the ldd output if it had 
not been copied or it was sitting somewhere outside of LD_LIBRARY_PATH. 
Is it likely has gotten screwed up during the link of 
libmedia_plugin_cef.so?

Kind Regards,
Alex.

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
> Hi Henri!
> 
> Thank you for responding.
> 
> This is what I get:
> alex@desktop:~/ivyviewer$ LD_LIBRARY_PATH="./lib:$LD_LIBRARY_PATH" ldd
> ./bin/llplugin/libmedia_plugin_cef.so
>  linux-vdso.so.1 =>  (0x7ffcedd68000)
>  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
> (0x7f07a805e000)
>  libaprutil-1.so.0 => ./lib/libaprutil-1.so.0
> (0x7f07a7e15000)
>  libapr-1.so.0 => ./lib/libapr-1.so.0 (0x7f07a7be5000)
>  libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> (0x7f07a785f000)
>  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
> (0x7f07a7509000)
>  libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
> (0x7f07a72f2000)
>  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x7f07a70d3000)
>  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
> (0x7f07a6cf3000)
>  /lib64/ld-linux-x86-64.so.2 (0x7f07a867)
>  libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
> (0x7f07a6aee000)
>  libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
> (0x7f07a68b6000)
>  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
> (0x7f07a66b2000)
> 
> alex@desktop:~/ivyviewer$ find . -name 'libcef.so'
> ./lib/libcef.so
> 
> I would have expected to see a 'not found' in the ldd output if it had
> not been copied or it was sitting somewhere outside of LD_LIBRARY_PATH.
> Is it likely has gotten screwed up during the link of
> libmedia_plugin_cef.so?

Interestingly if I run ldd against a pre dullahan era instance of FS:

alex@desktop:~/fs_avx2/bin/llplugin$ ldd libmedia_plugin_cef.so
 linux-vdso.so.1 =>  (0x7fff637d2000)
 libllceflib.so => not found
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 
(0x7f341b9ed000)
 libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 
(0x7f341b7c2000)
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
(0x7f341b43c000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 
(0x7f341b0e6000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x7f341aecf000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 
(0x7f341aaef000)
 /lib64/ld-linux-x86-64.so.2 (0x7f341bffd000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x7f341a8d)

The 'not found' is probably just due to LD_LIBRARY_PATH not being set. 
But at least the dependency is there! In my problematic install it seems 
the dependency is completely missing!

I'm guessing something has gone bad during the link of 
libmedia_plugin_cef

Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 19:58:49 +1000, Alex wrote:

> This is what I get:
> alex@desktop:~/ivyviewer$ LD_LIBRARY_PATH="./lib:$LD_LIBRARY_PATH" ldd 
> ./bin/llplugin/libmedia_plugin_cef.so
>  linux-vdso.so.1 =>  (0x7ffcedd68000)
>  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 
> (0x7f07a805e000)
>  libaprutil-1.so.0 => ./lib/libaprutil-1.so.0 
> (0x7f07a7e15000)
>  libapr-1.so.0 => ./lib/libapr-1.so.0 (0x7f07a7be5000)
>  libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
> (0x7f07a785f000)
>  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 
> (0x7f07a7509000)
>  libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
> (0x7f07a72f2000)
>  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
> (0x7f07a70d3000)
>  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 
> (0x7f07a6cf3000)
>  /lib64/ld-linux-x86-64.so.2 (0x7f07a867)
>  libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 
> (0x7f07a6aee000)
>  libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 
> (0x7f07a68b6000)
>  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 
> (0x7f07a66b2000)
> 
> alex@desktop:~/ivyviewer$ find . -name 'libcef.so'
> ./lib/libcef.so
> 
> I would have expected to see a 'not found' in the ldd output if it had 
> not been copied or it was sitting somewhere outside of LD_LIBRARY_PATH. 
> Is it likely has gotten screwed up during the link of 
> libmedia_plugin_cef.so?

Yes, obviously, libcef.so did not get linked with your plugin...

Check your indra/cmake/CEFPlugin.cmake: the library names changed there,
from libllceflib.a to libdullahan.a. Note also the bit of vodoo magic
needed under Linux to avoid seeing ld "optimizing out" the functions that
are needed in libcef_dll_wrapper.a and libdullahan.a. It should look like
this (note the -Wl,-[no-]whole-archive options):

if (LINUX)
  set(CEF_PLUGIN_LIBRARIES
  -Wl,-whole-archive
  ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
  ${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
  -Wl,-no-whole-archive
  ${ARCH_PREBUILT_DIRS_RELEASE}/libcef.so
  )
endif ()

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-20 20:34, Henri Beauchamp wrote:
> 
> Yes, obviously, libcef.so did not get linked with your plugin...
> 
> Check your indra/cmake/CEFPlugin.cmake: the library names changed 
> there,
> from libllceflib.a to libdullahan.a. Note also the bit of vodoo magic
> needed under Linux to avoid seeing ld "optimizing out" the functions 
> that
> are needed in libcef_dll_wrapper.a and libdullahan.a. It should look 
> like
> this (note the -Wl,-[no-]whole-archive options):
> 
> if (LINUX)
>   set(CEF_PLUGIN_LIBRARIES
>   -Wl,-whole-archive
>   ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
>   ${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
>   -Wl,-no-whole-archive
>   ${ARCH_PREBUILT_DIRS_RELEASE}/libcef.so
>   )
> endif ()
> 
> Henri.

Ah!! Yes! That will do it... I just checked that cmake file and that 
section was wrong (and missing things). I'll try another rebuild with 
that. I have a feeling thats going to fix it! Now how can I send you a 
nice bottle of wine? :D

Thank you so much! appreciate it!

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-20 20:34, Henri Beauchamp wrote:
> Yes, obviously, libcef.so did not get linked with your plugin...
> 
> Check your indra/cmake/CEFPlugin.cmake: the library names changed 
> there,
> from libllceflib.a to libdullahan.a. Note also the bit of vodoo magic
> needed under Linux to avoid seeing ld "optimizing out" the functions 
> that
> are needed in libcef_dll_wrapper.a and libdullahan.a. It should look 
> like
> this (note the -Wl,-[no-]whole-archive options):
> 
> if (LINUX)
>   set(CEF_PLUGIN_LIBRARIES
>   -Wl,-whole-archive
>   ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
>   ${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
>   -Wl,-no-whole-archive
>   ${ARCH_PREBUILT_DIRS_RELEASE}/libcef.so
>   )
> endif ()
> 
> Henri.

Well, I am a little closer :)

I have a different error now.

2018-03-20T11:53:39Z WARNING: LLPluginInstance::load: apr_dso_load of 
/home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so failed with 
error 20019 , additional info string: 
/home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so: undefined 
symbol: _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE

Any ideas what might be behind this one?

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-20 22:00, Alex wrote:
> 2018-03-20T11:53:39Z WARNING: LLPluginInstance::load: apr_dso_load of
> /home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so failed with
> error 20019 , additional info string:
> /home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so: undefined
> symbol: _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> 
> Any ideas what might be behind this one?

Something I noticed:

alex@desktop:~/ivyviewer/bin/llplugin$ strings libmedia_plugin_cef.so | 
grep ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
_ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
_ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE

The symbol is there... I'm not seeing any 'not found' errors when I 
check that plugin with ldd.

I have no idea what it might be. Strange.


-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 22:00:36 +1000, Alex wrote:

> Well, I am a little closer :)
> 
> I have a different error now.
> 
> 2018-03-20T11:53:39Z WARNING: LLPluginInstance::load: apr_dso_load of 
> /home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so failed with 
> error 20019 , additional info string: 
> /home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so: undefined 
> symbol: _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> 
> Any ideas what might be behind this one?

Apparently a failure to properly link libdullahan.a to your plugin
(the library should be statically linked and so apr_dso_load() should
not search for this method symbol at all)...

Still something wrong in indra/cmake/CEFPlugin.cmake, or perhaps a
failure to specify the $CEF_PLUGIN_LIBRARIES in
indra/media_plugins/cef/CMakeLists.txt

Watch out for (similar) lines in it:

set(media_plugin_cef_LINK_LIBRARIES
  ${LLPLUGIN_LIBRARIES}
  ${MEDIA_PLUGIN_BASE_LIBRARIES}
  ${CEF_PLUGIN_LIBRARIES}
  ${LLCOMMON_LIBRARIES}
  ${PLUGIN_API_LIBRARIES}
)

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 22:30:14 +1000, Alex wrote:

> The symbol is there... I'm not seeing any 'not found' errors when I 
> check that plugin with ldd.

Depending on your ld version (old ones are very sensitive to the library
link order), this could be an issue with not linking the libraries in the
proper order...

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-20 22:33, Henri Beauchamp wrote:
> 
> Apparently a failure to properly link libdullahan.a to your plugin
> (the library should be statically linked and so apr_dso_load() should
> not search for this method symbol at all)...
> 
> Still something wrong in indra/cmake/CEFPlugin.cmake, or perhaps a
> failure to specify the $CEF_PLUGIN_LIBRARIES in
> indra/media_plugins/cef/CMakeLists.txt
> 
> Watch out for (similar) lines in it:
> 
> set(media_plugin_cef_LINK_LIBRARIES
>   ${LLPLUGIN_LIBRARIES}
>   ${MEDIA_PLUGIN_BASE_LIBRARIES}
>   ${CEF_PLUGIN_LIBRARIES}
>   ${LLCOMMON_LIBRARIES}
>   ${PLUGIN_API_LIBRARIES}
> )
> 
> Henri.

I couldn't spot a problem in either of those files, but my eyes might 
have missed something.

Does anything stand out at you:

https://pastebin.com/c7wRQik8 (indra/cmake/CEFPlugin.cmake)
https://pastebin.com/ZhytizN8 (indra/media_plugins/cef/CMakeLists.txt)



-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 22:48:05 +1000, Alex wrote:

> I couldn't spot a problem in either of those files, but my eyes might 
> have missed something.
> 
> Does anything stand out at you:
> 
> https://pastebin.com/c7wRQik8 (indra/cmake/CEFPlugin.cmake)
> https://pastebin.com/ZhytizN8 (indra/media_plugins/cef/CMakeLists.txt)

Looks fine to me... Putting the blame on a buggy ld, you could try this
trick (specifying libcef.so twice for linking) in CEFPlugin.cmake:

.../...
elseif (LINUX)
  set(CEF_PLUGIN_LIBRARIES
  ${ARCH_PREBUILT_DIRS_RELEASE}/libcef.so
  -Wl,-whole-archive
  ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
  ${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
  -Wl,-no-whole-archive
  ${ARCH_PREBUILT_DIRS_RELEASE}/libcef.so
  )
endif (WINDOWS)

What is your Linux build system ?

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-20 23:15, Henri Beauchamp wrote:
> What is your Linux build system ?

Ubuntu 17.10 64 bit

gcc/g++ version 4.9.4
GNU ld (GNU Binutils for Ubuntu) 2.29.1

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 14:15:09 +0100, Henri Beauchamp wrote:

> Looks fine to me... Putting the blame on a buggy ld, you could try this
> trick (specifying libcef.so twice for linking) in CEFPlugin.cmake:

Or... This could be an issue in how you linked libdullahan.a and/or
dullahan_host... In the Dullahan Cmake file, check for the proper
ordering in target link libraries:

target_link_libraries(dullahan_host cef_dll_wrapper cef)


Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-20 23:28, Henri Beauchamp wrote:
> On Tue, 20 Mar 2018 14:15:09 +0100, Henri Beauchamp wrote:
> 
>> Looks fine to me... Putting the blame on a buggy ld, you could try 
>> this
>> trick (specifying libcef.so twice for linking) in CEFPlugin.cmake:
> 
> Or... This could be an issue in how you linked libdullahan.a and/or
> dullahan_host... In the Dullahan Cmake file, check for the proper
> ordering in target link libraries:
> 
> target_link_libraries(dullahan_host cef_dll_wrapper cef)

The ordering in the dullahan cmake file looks the same as above :)

I'll try the trick with linking libcef twice and see what happens :)

Thank you :)



-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Tue, 20 Mar 2018 22:30:14 +1000, Alex wrote:

> On 2018-03-20 22:00, Alex wrote:
> > 2018-03-20T11:53:39Z WARNING: LLPluginInstance::load: apr_dso_load of
> > /home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so failed with
> > error 20019 , additional info string:
> > /home/alex/ivyviewer/bin/llplugin/libmedia_plugin_cef.so: undefined
> > symbol: _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> > 
> > Any ideas what might be behind this one?
> 
> Something I noticed:
> 
> alex@desktop:~/ivyviewer/bin/llplugin$ strings libmedia_plugin_cef.so | 
> grep ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> 
> The symbol is there...

But only twice... I get it listed thrice in my plugin...
strings /usr/local/CoolVLViewer-1.26.21/bin/llplugin/media_plugin_cef.so |
grep _ZN8dullahan26setOnStatusMessageCallback
_ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
_ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
_ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE

(there's "boost" because I "re-boostified" Dullhan's interface for
C++98 compatibility).

So, it looks indeed like a linking issue even though:

On Tue, 20 Mar 2018 23:20:59 +1000, Alex wrote:
 
> gcc/g++ version 4.9.4
> GNU ld (GNU Binutils for Ubuntu) 2.29.1

Using the same versions here, for personal builds, with no issue
whatsoever.

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-21 04:10, Henri Beauchamp wrote:
> But only twice... I get it listed thrice in my plugin...
> strings 
> /usr/local/CoolVLViewer-1.26.21/bin/llplugin/media_plugin_cef.so |
> grep _ZN8dullahan26setOnStatusMessageCallback
> _ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
> _ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
> _ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
> 
> (there's "boost" because I "re-boostified" Dullhan's interface for
> C++98 compatibility).

Ah. But in the case of boost and dullahan, it was making use of header 
only parts of boost right?

Relinking libcef twice didnt help sadly.. I gave up for the night and 
went to sleep hehe. Do you have any ideas what else might be causing it? 
:)

Interesting that that symbol is defined 3 times in your library.

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread monty
On 3/20/2018 17:32, Alex wrote:
> 
> Interesting that that symbol is defined 3 times in your library.
> 

'nm' that thing and see what is definition and what is reference.

___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-21 07:57, monty wrote:
> On 3/20/2018 17:32, Alex wrote:
>> 
>> Interesting that that symbol is defined 3 times in your library.
>> 
> 
> 'nm' that thing and see what is definition and what is reference.

I pasted the result here:

https://pastebin.com/BZyKEJf2

command used: nm --print-file-name -u libmedia_plugin_cef.so

Lots of undefined symbols... So this means there is a reference but no 
definition?



-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
> On 2018-03-21 07:57, monty wrote:
>> 'nm' that thing and see what is definition and what is reference.

nm --print-file-name libmedia_plugin_cef.so | grep 
setOnStatusMessageCallback
libmedia_plugin_cef.so:0011ecf0 T 
_ZN25dullahan_callback_manager26setOnStatusMessageCallbackESt8functionIFvSsEE
libmedia_plugin_cef.so:00114cd0 T 
_ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
libmedia_plugin_cef.so: U 
_ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE

-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Wed, 21 Mar 2018 07:32:08 +1000, Alex wrote:

> On 2018-03-21 04:10, Henri Beauchamp wrote:
> > But only twice... I get it listed thrice in my plugin...
> > strings 
> > /usr/local/CoolVLViewer-1.26.21/bin/llplugin/media_plugin_cef.so |
> > grep _ZN8dullahan26setOnStatusMessageCallback
> > _ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
> > _ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
> > _ZN8dullahan26setOnStatusMessageCallbackEN5boost8functionIFvSsEEE
> > 
> > (there's "boost" because I "re-boostified" Dullhan's interface for
> > C++98 compatibility).
> 
> Ah. But in the case of boost and dullahan, it was making use of header 
> only parts of boost right?

Yes, only templates from the three boost/function.hpp, boost/bind.hpp and
boost/move/unique_ptr.hpp headers are used.

> Relinking libcef twice didnt help sadly.. I gave up for the night and 
> went to sleep hehe. Do you have any ideas what else might be causing it?

Beside a linking problem (either in libdullahan.a itself or in the plugin),
I'm short of ideas...


> On 3/20/2018 17:32, Alex wrote:
>
> > Interesting that that symbol is defined 3 times in your library.
> 
> 'nm' that thing and see what is definition and what is reference.

AFAIK, nm only lists exported symbols (i.e. the entries for the
definitions), not their invocations from another linked module (the
references).

nm -C /usr/local/CoolVLViewer-1.26.21/bin/llplugin/media_plugin_cef.so | grep 
setOnStatusMessageCallback
000ed710 T 
dullahan_callback_manager::setOnStatusMessageCallback(std::function)
000e4090 T dullahan::setOnStatusMessageCallback(boost::function)

These correspond to the two definitions of the homonymous methods in
the Dullahan's library classes 'dullahan' and 'dullahan_callback_manager',
but nm does not list the call to dullahan::setOnStatusMessageCallback()
from media_plugin_cef.cpp, which should correspond to the third string
in media_plugin_cef.so.

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Wed, 21 Mar 2018 08:58:55 +1000, Alex wrote:

> On 2018-03-21 07:57, monty wrote:
>
> > 'nm' that thing and see what is definition and what is reference.
> 
> I pasted the result here:
> 
> https://pastebin.com/BZyKEJf2
> 
> command used: nm --print-file-name -u libmedia_plugin_cef.so

With the -C option you would get more readable, demangled symbols...

> Lots of undefined symbols... So this means there is a reference but no 
> definition?

It lists:
U _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE

So it indeed shows that the libdullahan.a library did not get properly
linked to your plugin...

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Alex
On 2018-03-21 09:33, Henri Beauchamp wrote:
> 
> It lists:
> U _ZN8dullahan26setOnStatusMessageCallbackESt8functionIFvSsEE
> 
> So it indeed shows that the libdullahan.a library did not get properly
> linked to your plugin...
> 
> Henri.

Ah! You're right:

nm --print-file-name -C libmedia_plugin_cef.so | grep 
setOnStatusMessageCallback
libmedia_plugin_cef.so:0011ecf0 T 
dullahan_callback_manager::setOnStatusMessageCallback(std::function)
libmedia_plugin_cef.so:00114cd0 T 
dullahan::setOnStatusMessageCallback(boost::function)
libmedia_plugin_cef.so: U 
dullahan::setOnStatusMessageCallback(std::function)

A lot easier to read.

Would this suggest that the libdullahan.a library itself I am trying to 
link against is fine and there is a problem with the viewer build 
configuration somewhere?


-- 
Kind Regards,
Alex.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error

2018-03-20 Thread Henri Beauchamp
On Wed, 21 Mar 2018 09:38:07 +1000, Alex wrote:

> libmedia_plugin_cef.so:00114cd0 T 
> dullahan::setOnStatusMessageCallback(boost::function (std::string)>)
> libmedia_plugin_cef.so: U 
> dullahan::setOnStatusMessageCallback(std::function)

The problem is that the dullahan::setOnStatusMessageCallback() definition
is using  ***boost::function*** and the plugin is calling
dullahan::setOnStatusMessageCallback(***std::function***)

So, the plugin is searching for another method than the one linked together
with libdullhana.a...

Henri.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges