[opensource-dev] Linux x64 - libmedia_plugin_cef.so error
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
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
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
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
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
> 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
> 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
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
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
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
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