Re: [genius-list] Portability problems: modules

From: George <jirka_at_5z.com>
Date: Mon, 28 Aug 2006 11:40:51 -0700

On Tue, Aug 22, 2006 at 11:46:43AM -0400, Daniel Macks wrote:
>
> Modules are loaded with g_module_open, a nice generic interface,
> however other parts of genius (0.7.6.1) contain things that are
> hard-coded to the linux implementation of it.
>
> 1. test.plugin.in hardcodes the module extension as .so even though
> that's not always true. As distributed, genius builds me
> libtestplugin.dylib, I assume win32 folks might get .dll, etc.
> Instead, ./configure should query glib to get the appropriate
> extension and patch that into the test.plugin.in->test.plugin
> setup. Probably best way is with AC_RUN_IFELSE and have the program
> print the value of the G_MODULE_SUFFIX macro from glibconfig.h.

I have an easier solution. Put no extension in the .plugin file and append
G_MODULE_SUFFIX in the code. I'm making this change now.

> 2. Technically, g_module_open opens modules, not shared libraries, and
> on some platforms, there's a difference in those binary types. When
> compiling modules, need to pass -module to the linker. Also, should
> pass -avoid-version, since there's no need for library versioning. Add
> to src/Makefile.am:
>
> libtestplugin_la_LDFLAGS = -module -avoid-version

OK done ...

Thanks! Good catches, it's been a long time since I wrote the plugin
interface and the test plugin is the only plugin in existence anyway.

Jiri

-- 
George <jirka_at_5z.com>
   The surprising thing about this paper is that a man who could write
   it would.
                       -- J. E. Littlewood
Received on Mon Aug 28 2006 - 18:41:00 CDT

This archive was generated by hypermail 2.2.0 : Sun Apr 17 2011 - 21:00:02 CDT