[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
libtool--gary--1.0--patch-30
From: |
Gary V. Vaughan |
Subject: |
libtool--gary--1.0--patch-30 |
Date: |
Fri, 9 Jul 2004 16:16:33 +0100 (BST) |
User-agent: |
mailnotify/0.3 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Okay to commit?
- --
Gary V. Vaughan ())_. address@hidden,gnu.org}
Research Scientist ( '/ http://tkd.kicks-ass.net
GNU Hacker / )= http://www.gnu.org/software/libtool
Technical Author `(_~)_ http://sources.redhat.com/autobook
_________________________________________________________
This patch notification generated by tlaapply version 0.5
http://tkd.kicks-ass.net/arch/address@hidden/cvs-utils--tla--1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Darwin)
iD8DBQFA7rbQFRMICSmD1gYRAsh+AKCc27KdVRaEdZco96ApJ6lm7oyJ7wCfetcA
fBTJT9O5A43bQFgYfiNf4IQ=
=HzkL
-----END PGP SIGNATURE-----
* looking for address@hidden/libtool--gary--1.0--patch-29 to compare with
* comparing to address@hidden/libtool--gary--1.0--patch-29
M ChangeLog
M libltdl/ltdl.c
M libltdl/lt_dlloader.h
M libltdl/loaders/dld_link.c
M libltdl/loaders/dlopen.c
M libltdl/loaders/dyld.c
M libltdl/loaders/load_add_on.c
M libltdl/loaders/loadlibrary.c
M libltdl/loaders/preopen.c
M libltdl/loaders/shl_load.c
* modified files
Index: Changelog
from Gary V. Vaughan <address@hidden>
Collapse two almost identical structures into one:
* libltdl/lt_dlloader.h (lt_dlloader): Add next field.
* libltdl/ltdl.c (lt_user_dlloader): Remove entirely. Change all
callers to use lt_dlloader instead. Add a compatibility macro.
(lt_dlloader_add): Remove copy and allocate stage, just hook
directly into the loaders list.
2004-07-09 Gary V. Vaughan <address@hidden>
--- orig/libltdl/loaders/dld_link.c
+++ mod/libltdl/loaders/dld_link.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable dld_link_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/loaders/dlopen.c
+++ mod/libltdl/loaders/dlopen.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable dlopen_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/loaders/dyld.c
+++ mod/libltdl/loaders/dyld.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable dyld_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -51,10 +51,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/loaders/load_add_on.c
+++ mod/libltdl/loaders/load_add_on.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable load_add_on_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/loaders/loadlibrary.c
+++ mod/libltdl/loaders/loadlibrary.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable loadlibrary_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/loaders/preopen.c
+++ mod/libltdl/loaders/preopen.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable preopen_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -51,10 +51,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/loaders/shl_load.c
+++ mod/libltdl/loaders/shl_load.c
@@ -36,7 +36,7 @@
be fetched from the preloaded symbol list by lt_dlsym(): */
#define get_vtable shl_load_LTX_get_vtable
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
/* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
/* Return the vtable for this loader, only the name and sym_prefix
attributes (plus the virtual function implementations, obviously)
change between loaders. */
-lt_user_dlloader *
+lt_dlloader *
get_vtable (lt_user_data loader_data)
{
- static lt_user_dlloader *vtable = 0;
+ static lt_dlloader *vtable = 0;
if (!vtable)
{
--- orig/libltdl/lt_dlloader.h
+++ mod/libltdl/lt_dlloader.h
@@ -35,15 +35,14 @@
LT_BEGIN_C_DECLS
-typedef struct lt_user_dlloader lt_user_dlloader;
typedef struct lt_dlloader lt_dlloader;
typedef void * lt_user_data;
typedef void * lt_module;
/* Type of a function to get a loader's vtable: */
-typedef lt_user_dlloader *lt_get_vtable (lt_user_data loader_data);
+typedef lt_dlloader *lt_get_vtable (lt_user_data loader_data);
-/* Function pointer types for creating user defined module loaders: */
+/* Function pointer types for module loader vtable entries: */
typedef int lt_dlloader_init (lt_user_data loader_data);
typedef int lt_dlloader_exit (lt_user_data loader_data);
typedef lt_module lt_module_open (lt_user_data loader_data,
@@ -58,7 +57,10 @@
LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND
} lt_dlloader_priority;
-struct lt_user_dlloader {
+/* This structure defines a module loader, as populated by the get_vtable
+ entry point of each loader. */
+struct lt_dlloader {
+ lt_dlloader * next;
const char * name;
const char * sym_prefix;
lt_module_open * module_open;
@@ -70,14 +72,19 @@
lt_dlloader_priority priority;
};
-LT_SCOPE lt_dlloader *lt_dlloader_next (lt_dlloader *place);
-LT_SCOPE lt_dlloader *lt_dlloader_find (const char *loader_name);
-LT_SCOPE const char *lt_dlloader_name (lt_dlloader *place);
-LT_SCOPE lt_user_data *lt_dlloader_data (lt_dlloader *place);
-LT_SCOPE int lt_dlloader_add
- (const struct lt_user_dlloader *dlloader,
- lt_user_data data);
-LT_SCOPE int lt_dlloader_remove (const char *loader_name);
+LT_SCOPE lt_dlloader * lt_dlloader_next (lt_dlloader *place);
+LT_SCOPE lt_dlloader * lt_dlloader_find (const char *name);
+LT_SCOPE const char * lt_dlloader_name (lt_dlloader *place);
+LT_SCOPE lt_user_data * lt_dlloader_data (lt_dlloader *place);
+LT_SCOPE int lt_dlloader_add (lt_dlloader *dlloader,
+ lt_user_data data);
+LT_SCOPE int lt_dlloader_remove (const char *name);
+
+
+
+/* --- Backwards source compatibility --- */
+
+#define lt_user_dlloader lt_dlloader
LT_END_C_DECLS
--- orig/libltdl/ltdl.c
+++ mod/libltdl/ltdl.c
@@ -57,23 +57,6 @@
#define LT_SYMBOL_OVERHEAD 5
-
-
-/* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */
-
-
-/* This structure is used for the list of registered loaders. */
-struct lt_dlloader {
- struct lt_dlloader *next;
- const char *loader_name; /* identifying name for each loader */
- const char *sym_prefix; /* prefix for symbols */
- lt_module_open *module_open;
- lt_module_close *module_close;
- lt_find_sym *find_sym;
- lt_dlloader_exit *dlloader_exit;
- lt_user_data dlloader_data;
-};
-
/* Various boolean flags can be stored in the flags field of an
lt_dlhandle_struct... */
#define LT_DLGET_FLAG(handle, flag) (((handle)->flags & (flag)) == (flag))
@@ -177,7 +160,7 @@
static int
loader_init (lt_get_vtable *vtable_func, lt_user_data data)
{
- lt_user_dlloader *vtable = 0;
+ lt_dlloader *vtable = 0;
int errors = 0;
if (vtable_func)
@@ -216,7 +199,7 @@
#define get_vtable preopen_LTX_get_vtable
#define preloaded_symbols LT_CONC3(lt_, LTDLOPEN, _LTX_preloaded_symbols)
-extern lt_user_dlloader * get_vtable (lt_user_data data);
+extern lt_dlloader * get_vtable (lt_user_data data);
extern lt_dlsymlist preloaded_symbols;
/* Initialize libltdl. */
@@ -2138,11 +2121,10 @@
int
-lt_dlloader_add (const struct lt_user_dlloader *dlloader,
- lt_user_data data)
+lt_dlloader_add (lt_dlloader *dlloader, lt_user_data data)
{
int errors = 0;
- lt_dlloader *node = 0, *ptr = 0;
+ lt_dlloader *ptr = 0;
if ((dlloader == 0) /* diagnose null parameters */
|| (dlloader->module_open == 0)
@@ -2153,35 +2135,19 @@
return 1;
}
- /* Create a new dlloader node with copies of the user callbacks. */
- node = lt__malloc (sizeof *node);
- if (!node)
- return 1;
-
- /* There is no need to record the dlloader->dlloader_init function,
- since we won't need it again. */
- node->next = 0;
- node->loader_name = dlloader->name;
- node->sym_prefix = dlloader->sym_prefix;
- node->module_open = dlloader->module_open;
- node->module_close = dlloader->module_close;
- node->find_sym = dlloader->find_sym;
- node->dlloader_exit = dlloader->dlloader_exit;
- node->dlloader_data = dlloader->dlloader_data;
-
switch (dlloader->priority)
{
case LT_DLLOADER_PREPEND:
/* Tack NODE on the front of the LOADERS list. */
- node->next = loaders;
- loaders = node;
+ dlloader->next = loaders;
+ loaders = dlloader;
break;
case LT_DLLOADER_APPEND:
/* Add NODE to the end of the LOADERS list. */
for (ptr = loaders; ptr->next; ptr = ptr->next)
/*NOWORK*/;
- ptr->next = node;
+ ptr->next = dlloader;
break;
default:
@@ -2194,9 +2160,9 @@
}
int
-lt_dlloader_remove (const char *loader_name)
+lt_dlloader_remove (const char *name)
{
- lt_dlloader *place = lt_dlloader_find (loader_name);
+ lt_dlloader *place = lt_dlloader_find (name);
lt_dlhandle handle;
int errors = 0;
@@ -2227,7 +2193,7 @@
lt_dlloader *prev;
for (prev = loaders; prev->next; prev = prev->next)
{
- if (streq (prev->next->loader_name, loader_name))
+ if (streq (prev->next->name, name))
{
break;
}
@@ -2260,7 +2226,7 @@
if (place)
{
- name = place ? place->loader_name : 0;
+ name = place ? place->name : 0;
}
else
{
@@ -2288,13 +2254,13 @@
}
lt_dlloader *
-lt_dlloader_find (const char *loader_name)
+lt_dlloader_find (const char *name)
{
lt_dlloader *place = 0;
for (place = loaders; place; place = place->next)
{
- if (streq (place->loader_name, loader_name))
+ if (streq (place->name, name))
{
break;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- libtool--gary--1.0--patch-30,
Gary V. Vaughan <=