Re: [opensource-dev] Linux x64 - libmedia_plugin_cef.so error
On 2018-03-23 02:00, Henri Beauchamp wrote: > #elif defined(__linux__) > CefString(_subprocess_path) = "dullahan_host"; > #endif > > > Henri. Well that certainly got me further! Thank you! Its' at least _trying_ to start dullahan_host now, but some strange behavour: alex@desktop:~/ivyviewer$ grep dullahan trace.txt | pcregrep -o1 '.*(execve\([a-z0-9\/_\"]+),' execve("/usr/local/sbin/dullahan_host" execve("/usr/local/bin/dullahan_host" execve("/usr/sbin/dullahan_host" execve("/usr/bin/dullahan_host" execve("/sbin/dullahan_host" execve("/bin/dullahan_host" execve("/usr/games/dullahan_host" execve("/usr/local/games/dullahan_host" execve("/snap/bin/dullahan_host" It is trying to launch it from the wrong place... lol! I am guessing I have failed to set some setting for dullahan somewhere or something silly like that. Looks like I have some more debugging to do. -- 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-23 02:00, Henri Beauchamp wrote: > On Fri, 23 Mar 2018 01:48:08 +1000, Alex wrote: > >> It does indeed sound like the viewer is subsequently spawning another >> SLPlugin instead of dullahan_host, you are right. I have no idea why >> the >> viewer would be doing that. From what I am aware, the viewer _should_ >> start one instance of SLPlugin and dullahan_host when its at the login >> screen. >> >> Do you have a rough idea (assuming the standard LL viewer behavior) >> where these processes get launched from on startup (which part of the >> viewer code)? > > In fact, the viewer (and SLPlugin) code itself got no knowlegde of > dullahan_host: the latter is launched (and gets passed arguments) by > CEF, from a setting given in dullahan_impl.cpp, in > dullahan_impl::init() > > My guess is that your plugin lacks a #elif defined(__linux__) and the > corresponding CefString(_subprocess_path) there. > Here is what I put in mine: > #elif defined(__linux__) > CefString(_subprocess_path) = "dullahan_host"; > #endif > > Henri. Ahhh!!! Thats going to be what it is for sure! I am missing that part in mine.. and it explains why I found no reference to the dullahan_host in my strace data.. Not even attempt to start it. It all makes sense now. Thank you so much! I'll rebuild the plugin and the viewer and see how that goes. -- 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 Fri, 23 Mar 2018 01:48:08 +1000, Alex wrote: > It does indeed sound like the viewer is subsequently spawning another > SLPlugin instead of dullahan_host, you are right. I have no idea why the > viewer would be doing that. From what I am aware, the viewer _should_ > start one instance of SLPlugin and dullahan_host when its at the login > screen. > > Do you have a rough idea (assuming the standard LL viewer behavior) > where these processes get launched from on startup (which part of the > viewer code)? In fact, the viewer (and SLPlugin) code itself got no knowlegde of dullahan_host: the latter is launched (and gets passed arguments) by CEF, from a setting given in dullahan_impl.cpp, in dullahan_impl::init() My guess is that your plugin lacks a #elif defined(__linux__) and the corresponding CefString(_subprocess_path) there. Here is what I put in mine: bool dullahan_impl::init(dullahan::dullahan_settings& user_settings) { DLNOUT("dullahan_impl::init()"); #ifdef WIN32 CefMainArgs args(GetModuleHandle(nullptr)); #else CefMainArgs args(0, nullptr); #endif CefSettings settings; // point to host application #ifdef WIN32 CefString(_subprocess_path) = "dullahan_host.exe"; #elif __APPLE__ NSString* appBundlePath = [[NSBundle mainBundle] bundlePath]; CefString(_subprocess_path) = [[NSString stringWithFormat: @"%@/Contents/Frameworks/DullahanHelper.app/Contents/MacOS/DullahanHelper", appBundlePath] UTF8String]; #elif defined(__linux__) CefString(_subprocess_path) = "dullahan_host"; #endif // Do not bother with the stupid sandbox which keeps failing under Windows // and which must be set UID root under Linux... settings.no_sandbox = true; .../... 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 Thu, 22 Mar 2018 16:31:29 +0100, Henri Beauchamp wrote: > In my viewer, SLPlugin is never passed any other argument than the port, > so maybe these arguments you see passed are an "extension" to Firestorm's > plugin system... In fact, looking at the processes for a viewer on at login sceen step, I get: 4283 ?S 0:00 /bin/bash /usr/local/CoolVLViewer-1.26.21/cool_vl_viewer 4309 ?SLl0:02 ./bin/cool_vl_viewer-bin 4326 ?Sl 0:00 /usr/local/CoolVLViewer-1.26.21/bin/llplugin/SLPlugin 41321 4330 ?S 0:00 /usr/local/CoolVLViewer-1.26.21/bin/llplugin/dullahan_host --type=zygote --no-sandbox --log-file=/root/.secondlife/ --product-version=(Dullahan:1.1.1080 [64bit] - SecondLife/1.26.21.14 (Cool VL Viewer; default skin)) Chrome/65.0.3325.146 [64bit] - 4356 ?Sl 0:00 /usr/local/CoolVLViewer-1.26.21/bin/llplugin/dullahan_host --type=renderer --no-sandbox --disable-gpu-compositing --service-pipe-token=3FECC7FC7B452E7F87FF8F85FB58EB32 --lang=en-US --log-file=/root/.secondlife/ --product-version=(Dullahan:1.1.1080 4357 ?Sl 0:00 dullahan_host --type=gpu-process --no-sandbox --log-file=/root/.secondlife/ --product-version=(Dullahan:1.1.1080 [64bit] - SecondLife/1.26.21.14 (Cool VL Viewer; default skin)) Chrome/65.0.3325.146 [64bit] --lang=en-US --gpu-preferences=KA So, the argument you are seeing are actually dullahan_host ones ! Could it be that your viewer launches SLPlugin instead of dullahan_host ? 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 Thu, 22 Mar 2018 23:39:51 +1000, Alex wrote: > 2018-03-22T10:08:12Z llplugin/slplugin/slplugin.cpp(194) : error > 2018-03-22T10:08:12Z ERROR: llplugin/slplugin/slplugin.cpp(194) : main: > port number must be numeric > .../... > 4589 execve("/home/alex/ivyviewer/bin/SLPlugin", > ["/home/alex/ivyviewer/bin/SLPlugin", "38655"], [/ 66 vars /] > > 4592 execve("/home/alex/ivyviewer/bin/SLPlugin", > ["/home/alex/ivyviewer/bin/SLPlugin", "--type=zygote", "--lang=en-US", > "--log-file=/home/alex/ivyviewer/bin/debug.log", > "--product-version=(Dullahan:1.1.820 [64bit] - SecondLife/5.1.3.54978 > (Firestorm-private-x64build; firestorm skin)) Chrome/59.0."...], [/ 69 > vars /] > > I am seeing SLPlugin called once correctly, with the port number it > expects, then it is being called a second time with data that it is not > expecting, thus the error condition is triggered in slplugin.cpp > > I know this is a bit of a shot in the dark but can you think of any > possibilities why this could happen? Hard to tell without having the sources to look at, but to me, it would appear like an arguments quoting or missing argument issue in the command line passed to SLPlugin... In my viewer, SLPlugin is never passed any other argument than the port, so maybe these arguments you see passed are an "extension" to Firestorm's plugin system... You'll have to follow the track in the code, starting from LLViewerMedia, then LLPluginClassMedia, LLPluginProcessParent, LLProcessLauncher, etc... 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 19:30, Henri Beauchamp wrote: > Yes, under Linux, ld uses the provided library and searches for > , lib.so, lib.a, etc... > > But your problem was related to a bad call in your plugin (did you read > my message dated Wed, 21 Mar 2018 00:43:41 +0100 ?). Hi Henri, I saw it. Ive resolved the loading issues of the plugin not loading. I no longer see symbol errors. I have no working media still which is strange. I did notice an error in the log which looked suspicious so hopefully I am going down the right path here with troubleshooting it... I notice there are no instances of SLPlugin running when my viewer starts, or any instance of dullahan_host, that immediately got me suspicious. This is the error I saw in the log: 2018-03-22T10:08:12Z llplugin/slplugin/slplugin.cpp(194) : error 2018-03-22T10:08:12Z ERROR: llplugin/slplugin/slplugin.cpp(194) : main: port number must be numeric I've looked at the code in slplugin.cpp and see this: #elif LL_DARWIN || LL_LINUX if(argc < 2) { LL_ERRS("slplugin") << "usage: " << argv[0] << " launcher_port" << LL_ENDL; } U32 port = 0; if(!LLStringUtil::convertToU32(argv[1], port)) { LL_ERRS("slplugin") << "port number must be numeric" << LL_ENDL; } So the argc count is being satisfied... and obviously some parameter is being sent that obviously is not numeric and throwing the error. I ran the viewer under strace and observed some interesting behavior: 4589 execve("/home/alex/ivyviewer/bin/SLPlugin", ["/home/alex/ivyviewer/bin/SLPlugin", "38655"], [/ 66 vars /] 4592 execve("/home/alex/ivyviewer/bin/SLPlugin", ["/home/alex/ivyviewer/bin/SLPlugin", "--type=zygote", "--lang=en-US", "--log-file=/home/alex/ivyviewer/bin/debug.log", "--product-version=(Dullahan:1.1.820 [64bit] - SecondLife/5.1.3.54978 (Firestorm-private-x64build; firestorm skin)) Chrome/59.0."...], [/ 69 vars /] I am seeing SLPlugin called once correctly, with the port number it expects, then it is being called a second time with data that it is not expecting, thus the error condition is triggered in slplugin.cpp I know this is a bit of a shot in the dark but can you think of any possibilities why this could happen? Just thought I would ask since I am all out of ideas at this point. -- 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 16:59:58 +1000, Alex wrote: > Just a quick question about the above. In the list for > target_link_libraries, the first two make sense to me, but what is 'cef' > referring to? is it libcef.so? Yes, under Linux, ld uses the provided library and searches for , lib.so, lib.a, etc... But your problem was related to a bad call in your plugin (did you read my message dated Wed, 21 Mar 2018 00:43:41 +0100 ?). In media_plugin_cef.cpp, simply replace the calls to: set*Callback(boost:bind(::on*Callback..., _1, ...)) with: set*Callback(std:bind(::on*Callback, std::placeholders::_1, ...)) Or (to keep the boost interface and C++98 compatibility) use my plugin and Dullahan versions, but you can't mix LL's C++11 Dullahan with the old boost-wrapped calls in the CEF 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-20 23:28, Henri Beauchamp wrote: > 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) Just a quick question about the above. In the list for target_link_libraries, the first two make sense to me, but what is 'cef' referring to? is it libcef.so? -- 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
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 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 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 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 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 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 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 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-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 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: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 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 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: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 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 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 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 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 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
> 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 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
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 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 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