It's a misfeature of older FreeBSD releases really, but they have declared
dlerror as returning const char * instead of char *.  This leads to the error:

plugins.c: In function 'bool load_plugins(void*, void*, const char*, const 
char*, bool (*)(Plugin*))':
plugins.c:162: error: invalid conversion from 'const char*' to 'char*'

The declaration is fixed in the latest FreeBSD, but the following patch works
around it in Bacula:

--- src/lib/plugins.c.orig      2012-01-23 14:56:28.775678852 +0000
+++ src/lib/plugins.c   2012-01-23 15:06:06.752865296 +0000
@@ -159,7 +159,7 @@
       plugin->file_len = strstr(plugin->file, type) - plugin->file;
       plugin->pHandle = dlopen(fname.c_str(), RTLD_NOW);
       if (!plugin->pHandle) {
-         char *error = dlerror();
+         char *error = (char *)dlerror();
          Jmsg(NULL, M_ERROR, 0, _("dlopen plugin %s failed: ERR=%s\n"), 
               fname.c_str(), NPRT(error));
          Dmsg2(dbglvl, "dlopen plugin %s failed: ERR=%s\n", fname.c_str(), 

__Martin

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to