Re: dlopen() implementaiotn level (Re: Is gnome-dl required ??)
- From: raster redhat com
- To: timj gtk org
- cc: yosh gimp org, Gnome-Hackers athena nuclecu unam mx, gtkdev gtk org, gtk-devel-list redhat com
- Subject: Re: dlopen() implementaiotn level (Re: Is gnome-dl required ??)
- Date: Thu, 6 Aug 1998 23:49:50 -0400 (EDT)
On 7 Aug, Tim Janik shouted:
-> On Tue, 4 Aug 1998, Manish Singh wrote:
->
-> > > I don't know... i think it's got a good place in glib.. glib is a nice
-> > > utility library to make for easier porting of apps and reducton in
-> > > re-writing basic data structures (lists etc.)...
-> >
-> > I don't think we should be bloating glib unecessarily. What does xdelta
-> > need with a dl implementation? Conversely, a program that already has an
-> > established, mature code base but wants dl stuff doesn't need to saddle
-> > itself with glib.
->
-> hm, after spending some thoughts on this, i don't think it is a big
-> burden on established programs that need a dl-wrapper to require GLib.
-> since a lot of the glib stuff will be used by the dl-wrapper anyways,
-> such as assertements and linked lists, i'd rather like to have a subdir
-> in glib that builds a seperate library which holds the dlwrapper code
-> and can take advantage of glib's code and configure stuff.
->
-> so basically i think we should create a glib/gmodule dir and have an
-> additional libgmodule.so and gmodule.h installed.
-> glib-config can be tweaked to recognize an aditional --gmodule flag
-> and will then put out "-L/usr/local/lib -lgmodule-1.1 -lglib-1.1"
-> if invoked as `glib-config --libs --gmodule`.
->
-> what i currently have for the gmodule.h API is basically:
->
-> typedef enum
-> {
-> G_MODULE_BIND_LAZY = 1 << 0,
-> G_MODULE_BIND_MASK = 0x01
-> } GModuleBindFlags;
->
-> /* return TRUE if dynamic module loading is supported */
-> gboolean g_module_supported (void);
->
-> /* open a module `file_name' and return handle, which is NULL on error */
-> GModule* g_module_open (const gchar *file_name,
-> GModuleBindFlags bind_flags);
-> /* close a previously opened module, if return_val == TRUE, an error occoured */
-> gboolean g_module_close (GModule *module);
-> /* query the last module error as a string */
-> gchar* g_module_error (void);
-> /* retrive a symbol pointer from `module', and return TRUE on failure */
-> gboolean g_module_symbol (GModule *module,
-> const gchar *symbol_name,
-> gpointer *symbol);
->
->
-> i don't think the creation of a fully-standalone library with own linked list
-> implementations, malloc wrappers, assertment handling and similar stuff is
-> justified for this task, which narrows down to some wrapper code and a
-> reference count implementation for most platforms.
Well on REAL platformas (ie linux) it boils down to the g_moudle stuff
almost being simple wrappers for dlopen() and dlcym() and dlclose();
and dlerror(); :)
--
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
raster@rasterman.com /\___ /\ ___/||\___ ____/|/\___ raster@redhat.com
Carsten Haitzler | _ //__\\ __||_ __\\ ___|| _ / Red Hat Advanced
218/21 Conner Drive || // __ \\_ \ | | \ _/_|| / Development Labs
Chapel Hill NC 27514 USA ||\\\/ \//__/ |_| /___/||\\ 919 547 0012 ext 282
+1 (919) 929 9443, 801 4392 For pure Enlightenment http://www.rasterman.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]