BZNotify | bzflag.org: allejo synchronized pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd) | 01:28 |
---|---|---|
BZNotify | bzflag.org: allejo synchronized pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd) | 01:33 |
Zehra | While trying a manual compile of a plug-in, I get this error: undefined symbol: _ZN12PluginConfigC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE | 01:36 |
Zehra | Compile command is basically this: g++ -I /pathToDeps/ -shared -fPIC -o plugin.so plugin.cpp | 01:37 |
Zehra | And in the pathToDeps, it includes the files from 'plugin_utils' as well as 'bzfsAPI.h'. | 01:38 |
Zehra | Also to note, error is when attempting to loadplugin and start server at debug level '-ddd'. | 01:39 |
Zehra | "bzfs: symbol lookup error: /pathToPlug/plugin.so" is before error message as well. | 01:40 |
allejo | why are you compiling a plugin manually? | 01:40 |
Zehra | It's easy for me, I only need to change a single line and my script compiles them. | 01:41 |
Zehra | Also most of the time, I generally simply test/run plug-ins in a write/test cycle, so it works well in that regard. | 01:42 |
Zehra | or all the time* | 01:42 |
allejo | looks to me like you're not linking the built plugin_utils. because that's where PluginConfig is defined | 01:44 |
BZNotify | bzflag.org: allejo review_requested pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd) | 01:44 |
Flash | Zehra: I assume that was a typo, that the -G flag was omitted? | 01:45 |
Zehra | Flash: I didn't include the -G option, should I include it? | 01:47 |
Flash | I guess it is -shared for g++ | 01:47 |
Flash | sorry | 01:47 |
Flash | that's what comes of being a dinosaur ... your brain is littered with useless obsolete info | 01:47 |
Zehra | np, happens to the best. | 01:48 |
Flash | what version of g++? | 01:49 |
Flash | and what version of bzfs? | 01:50 |
Zehra | g++ version: g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, bzfs version: 2.4.20 | 01:52 |
BZNotify | bzflag.org: allejo synchronized pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd) | 01:53 |
BZNotify | bzflag.org: The-Noah commented on pull request #38 "Documentation for server permissions" (https://git.io/JLhyb): I'm glad I could help, and thank you @allejo for making this 10x be... | 01:56 |
blast007 | Zehra: you really should just build the plugin with our build system | 01:56 |
blast007 | you'd already have it working by now if you just did that | 01:57 |
blast007 | if you're just adding a new plugin to an existing build of the source, it doesn't have to recompile everything. just had to re-run autogen, configure, and then it'll build just the new/changed stuff (in this case, the plugin) | 01:58 |
BZNotify | bzflag.org: allejo opened issue #39 "Migrate documentation for groups and permissions" (https://git.io/JLhSf) | 02:00 |
Zehra | blast007: Thanks. I'll be looking into autogen and the configuration stuff. | 02:02 |
Flash | I'm having trouble digging into bzfs, but the error it is giving you says PluginConfig::PluginConfig(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) is missing | 02:04 |
Flash | in C++11, they changed the name mangling for std::string, to allow pre-11 and post-11 implementations to coexist | 02:04 |
allejo | https://forums.bzflag.org/viewtopic.php?f=79&t=19104 | 02:05 |
Flash | you aren't compiling with -std=c++11 (or later); that may be why the symbol isn't found | 02:05 |
allejo | an unfound symbol like that means something wasn't linked correctly, no? plugin_utils.a (or whatever extension) isn't being linked in that command | 02:05 |
allejo | but regardless, compiling as part of the bzfs build system is 10x easier | 02:06 |
Flash | and always safer | 02:06 |
Flash | I have had to troubleshoot so many issues coworkers have caused by building "just what I need" and they don't understand why things don't work | 02:07 |
Flash | That said, it might be nice not to tie plugins to the project build, since we are supposedly isolated behind the API ... unless the issue is exactly what you said before, about not linking plugin_utils | 02:09 |
blast007 | what is the problem with having it tied to the project build? | 02:10 |
Flash | The plugin isn't really part of the server | 02:10 |
Flash | so I should be able to configure/build a plugin completely independently of the server | 02:11 |
blast007 | I see no point in supporting that | 02:11 |
Flash | see https://wiki.gnuradio.org/index.php/OutOfTreeModules for an example of how this can be done | 02:11 |
blast007 | people seem to act like it such a huge hassle to build plugins, but it's not | 02:12 |
blast007 | it doesn't take long to rebuild the entire source tree, and it certainly doesn't take long to copy in a plugin folder, add a line to a file, and autogen/configure/make to build the extra plugin | 02:14 |
blast007 | the configure script has a --enable-custom-plugins-file argument (or --enable-custom-plugins if you just want to pass the names on the command line) | 02:15 |
Flash | that it works (the way you describe) is not the same as it couldn't be improved | 02:15 |
blast007 | doing it separately just causes problems | 02:16 |
blast007 | the server and plugins end up out of sync and then stuff goes badly | 02:17 |
blast007 | an improvement would be getting rid of C++ plugins and moving to a scripting language like lua, angel script, or squirrel | 02:19 |
Flash | the ability to support scripting plugins (a good idea) would require a sufficiently rigid API boundary that you could also support independently compiled C++ (or Fortran, or COBOL) plugins also | 02:25 |
Flash | that there is any dependency between the server and the plugins, to get out of sync, is evidence of a blurry API line | 02:25 |
JeffM[m] | I made the api with the intent of it being possible to write plug-ins that can implement scripting language plug-ins | 02:30 |
JeffM[m] | The plug-in can register plug-in loaders for other extensions, so you can do a python or lua plug-in | 02:31 |
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has quit IRC (Quit: Quit) | 02:36 | |
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer) | 09:58 | |
*** Delusional <Delusional!~delusiona@unaffiliated/delusional> has quit IRC (Quit: Textual IRC Client: www.textualapp.com) | 11:12 | |
*** Delusional <Delusional!~delusiona@unaffiliated/delusional> has joined #bzflag | 11:14 | |
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has joined #bzflag | 17:11 | |
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag | 17:35 | |
*** Sgeo_ <Sgeo_!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag | 17:43 | |
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Ping timeout: 260 seconds) | 17:45 | |
*** Sgeo_ <Sgeo_!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer) | 20:07 | |
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag | 20:09 | |
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer) | 20:32 | |
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag | 20:34 | |
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has quit IRC (Quit: Quit) | 23:54 |
Generated by irclog2html.py 2.17.3.dev0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!