On Wed, 2011-06-15 at 03:45 -0400, Ulrich Prinz wrote:
Hi!
I cross compiled syslog-ng 3.2.4 for my ARM board. I called ./configure with the usual --host, --prefix and --exec-prefix options. Then I ran make with DESTDIR to my cross target directory. I moved everything to my ARM target and syslog-ng starts up. While it locates and loads the configuration files properly, there is a problem with the modules:
~ # syslog-ng Error opening plugin module; module='syslogformat', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='basicfuncs', error='//lib/syslog-ng/: cannot read file data: Is a directory' Plugin module not found in 'module-path'; module-path='/lib/syslog-ng', module='afsocket' Error opening plugin module; module='affile', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='afprog', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='afuser', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='dbparser', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='csvparser', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='syslogformat', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='basicfuncs', error='//lib/syslog-ng/: cannot read file data: Is a directory' Plugin module not found in 'module-path'; module-path='/lib/syslog-ng', module='afsocket' Error opening plugin module; module='affile', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='afprog', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='afuser', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='dbparser', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='csvparser', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='confgen', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error opening plugin module; module='confgen', error='//lib/syslog-ng/: cannot read file data: Is a directory' Error parsing source, source plugin system not found in /etc/syslog-ng/syslog-ng.conf at line 10, column 2:
Checking the directory shows: /etc2/syslog-ng # ll /lib/syslog-ng/ drwxr-xr-x 2 root root 1024 Jun 14 16:01 ./ drwxr-xr-x 7 root root 3072 Jun 14 16:01 ../ -rw-r--r-- 1 root root 139122 Jun 14 16:01 libaffile.a -rwxr-xr-x 1 root root 1289 Jun 14 16:01 libaffile.la* -rw-r--r-- 1 root root 110150 Jun 14 16:01 libafprog.a -rwxr-xr-x 1 root root 1289 Jun 14 16:01 libafprog.la* -rw-r--r-- 1 root root 227144 Jun 14 16:01 libafsocket-notls.a -rwxr-xr-x 1 root root 1313 Jun 14 16:01 libafsocket-notls.la* -rw-r--r-- 1 root root 484708 Jun 14 16:01 libafsocket-tls.a -rwxr-xr-x 1 root root 1326 Jun 14 16:01 libafsocket-tls.la* lrwxrwxrwx 1 root root 18 Jun 14 16:03 libafsocket.so -> libafsocket-tls.so@ -rw-r--r-- 1 root root 89662 Jun 14 16:01 libafuser.a -rwxr-xr-x 1 root root 1289 Jun 14 16:01 libafuser.la* -rw-r--r-- 1 root root 26398 Jun 14 16:01 libbasicfuncs.a -rwxr-xr-x 1 root root 1301 Jun 14 16:01 libbasicfuncs.la* -rw-r--r-- 1 root root 15366 Jun 14 16:01 libconfgen.a -rwxr-xr-x 1 root root 1292 Jun 14 16:01 libconfgen.la* -rw-r--r-- 1 root root 18030 Jun 14 16:01 libconvertfuncs.a -rwxr-xr-x 1 root root 1307 Jun 14 16:01 libconvertfuncs.la* -rw-r--r-- 1 root root 96416 Jun 14 16:01 libcsvparser.a -rwxr-xr-x 1 root root 1298 Jun 14 16:01 libcsvparser.la* -rw-r--r-- 1 root root 265984 Jun 14 16:01 libdbparser.a -rwxr-xr-x 1 root root 1314 Jun 14 16:01 libdbparser.la* -rw-r--r-- 1 root root 78426 Jun 14 16:01 libdummy.a -rwxr-xr-x 1 root root 1286 Jun 14 16:01 libdummy.la* -rw-r--r-- 1 root root 1662352 Jun 14 16:01 libsyslog-ng.a -rwxr-xr-x 1 root root 1265 Jun 14 16:01 libsyslog-ng.la* -rw-r--r-- 1 root root 60868 Jun 14 16:01 libsyslogformat.a -rwxr-xr-x 1 root root 1307 Jun 14 16:01 libsyslogformat.la*
I tried calling syslog-ng --module-path=/lib/syslog-ng too, but I get the same result,
Any idea to get around that would be appreciated :)
although I didn't get the build log, I might be able to help to diagnose the problem. You seem to have static libraries only, which is strange as the configure script contains LT_INIT([dlopen disable-static]) e.g. static libraries are disabled by default. They probably get reenabled, because libtool is unable to detect how to generate shared libraries. Then, the 2nd problem seems to be that the Glib call g_module_build_path() returns a bogus shared library name, which doesn't contain the basename of the module at all, instead it points to the plugin base directory. This is strange, but this is probably a glib compilation issue. In my ancient glib version, this function looks like: static gchar* _g_module_build_path (const gchar *directory, const gchar *module_name) { if (directory && *directory) { if (strncmp (module_name, "lib", 3) == 0) return g_strconcat (directory, "/", module_name, NULL); else return g_strconcat (directory, "/lib", module_name, "." G_MODULE_SUFFIX, NULL); } else if (strncmp (module_name, "lib", 3) == 0) return g_strdup (module_name); else return g_strconcat ("lib", module_name, "." G_MODULE_SUFFIX, NULL); } I don't see how this could possibly return that name that you are seeing. How did you set up your build environment? Did you compile glib, eventlog and others by hand? -- Bazsi