mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-27 03:10:23 -06:00
More makefile changes to get modules loading right. Hacked the crashes
away by commenting out calls to lt_dlclose ... will figure out what's going on later. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5801 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
724b06e581
commit
ef1786df1c
12
po/ChangeLog
12
po/ChangeLog
@ -1,3 +1,15 @@
|
||||
2001-11-08 gettextize <bug-gnu-utils@gnu.org>
|
||||
|
||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
||||
|
||||
2001-11-08 gettextize <bug-gnu-utils@gnu.org>
|
||||
|
||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
||||
|
||||
2001-11-08 gettextize <bug-gnu-utils@gnu.org>
|
||||
|
||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
||||
|
||||
2001-11-07 gettextize <bug-gnu-utils@gnu.org>
|
||||
|
||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
||||
|
@ -29,8 +29,6 @@ libgncmod_app_file_la_LDFLAGS = -module
|
||||
libgncmod_app_file_la_LIBADD = \
|
||||
../gnc-module/libgncmodule.la \
|
||||
../engine/libgncmod-engine.la \
|
||||
../app-utils/libgncmod-app-utils.la \
|
||||
../calculation/libgncmod-calculation.la \
|
||||
../gnome-utils/libgncmod-gnome-utils.la \
|
||||
./gnome/libgnc-app-file-gnome.la \
|
||||
${GUILE_LIBS} \
|
||||
|
@ -1,9 +1,9 @@
|
||||
TESTS=test-link test-load-module
|
||||
|
||||
TESTS_ENVIRONMENT=\
|
||||
GNC_MODULE_PATH=${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/engine \
|
||||
GUILE_LOAD_PATH=${G_WRAP_MODULE_DIR}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/engine \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/engine:${top_srcdir}/src/app-file/gnome
|
||||
GNC_MODULE_PATH=${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/engine:${top_srcdir}/src/calculation \
|
||||
GUILE_LOAD_PATH=${G_WRAP_MODULE_DIR}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/engine:${top_srcdir}/src/calculation:${top_srcdir}/lib:${top_srcdir}/src/gnome:${top_srcdir}/src/scm \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/engine:${top_srcdir}/src/app-file/gnome:${top_srcdir}/src/calculation:${top_srcdir}/src/gnome
|
||||
|
||||
|
||||
noinst_PROGRAMS=test-link
|
||||
|
@ -49,8 +49,7 @@ LDADD = ${top_srcdir}/src/test-core/libgncmod-test.la \
|
||||
${top_srcdir}/src/engine/libgw-kvp.la \
|
||||
${top_srcdir}/src/engine/test-core/libgncmod-test-engine.la \
|
||||
../libgncmod-backend-file.la \
|
||||
./libgnc-test-file-stuff.la \
|
||||
-lltdl
|
||||
./libgnc-test-file-stuff.la
|
||||
|
||||
AM_CFLAGS = \
|
||||
-I${top_srcdir}/src/gnc-module \
|
||||
|
@ -407,6 +407,7 @@ test_updates (GNCSession *session, const char *db_name, const char *mode,
|
||||
|
||||
gnc_session_destroy (session_2);
|
||||
g_free (filename);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -243,6 +243,7 @@ gnc_module_get_info(const char * fullpath)
|
||||
{
|
||||
lt_dlhandle handle;
|
||||
|
||||
//printf("(init) dlopening %s\n", fullpath);
|
||||
handle = lt_dlopen(fullpath);
|
||||
if(handle)
|
||||
{
|
||||
@ -252,7 +253,8 @@ gnc_module_get_info(const char * fullpath)
|
||||
* types are */
|
||||
if (!modsysver)
|
||||
{
|
||||
lt_dlclose(handle);
|
||||
//printf("(init) closing %s\n", fullpath);
|
||||
//lt_dlclose(handle);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -278,13 +280,14 @@ gnc_module_get_info(const char * fullpath)
|
||||
info->module_interface = *(int *)interface;
|
||||
info->module_age = *(int *)age;
|
||||
info->module_revision = *(int *)revision;
|
||||
lt_dlclose(handle);
|
||||
//printf("(init) closing %s\n", fullpath);
|
||||
//lt_dlclose(handle);
|
||||
return info;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("module '%s' does not match module signature\n", fullpath);
|
||||
lt_dlclose(handle);
|
||||
//lt_dlclose(handle);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -293,7 +296,7 @@ gnc_module_get_info(const char * fullpath)
|
||||
/* unsupported module system interface version */
|
||||
/* printf("\n** WARNING ** : module '%s' requires newer module system\n",
|
||||
fullpath); */
|
||||
lt_dlclose(handle);
|
||||
//lt_dlclose(handle);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -421,6 +424,9 @@ gnc_module_load(char * module_name, gint interface)
|
||||
/* module already loaded ... call the init thunk */
|
||||
if(info->init_func)
|
||||
{
|
||||
printf("calling init func for '%s' .. refcount = %d\n",
|
||||
module_name, info->load_count);
|
||||
|
||||
if(info->init_func(info->load_count))
|
||||
{
|
||||
info->load_count++;
|
||||
@ -442,6 +448,9 @@ gnc_module_load(char * module_name, gint interface)
|
||||
GNCModuleInfo * modinfo = gnc_module_locate(module_name, interface);
|
||||
lt_dlhandle handle = NULL;
|
||||
|
||||
//if(modinfo)
|
||||
//printf("(load) dlopening %s\n", modinfo->module_filepath);
|
||||
|
||||
if(modinfo && ((handle = lt_dlopen(modinfo->module_filepath)) != NULL))
|
||||
{
|
||||
lt_ptr initfunc = lt_dlsym(handle, "gnc_module_init");
|
||||
@ -458,6 +467,9 @@ gnc_module_load(char * module_name, gint interface)
|
||||
|
||||
/* now call its init function. this should load any dependent
|
||||
* modules, too. If it doesn't return TRUE unload the module. */
|
||||
printf("calling init func for '%s' .. refcount = 0\n",
|
||||
module_name);
|
||||
|
||||
if(!info->init_func(0))
|
||||
{
|
||||
/* init failed. unload the module. */
|
||||
@ -465,7 +477,7 @@ gnc_module_load(char * module_name, gint interface)
|
||||
g_hash_table_remove(loaded_modules, info);
|
||||
g_free(info->filename);
|
||||
g_free(info);
|
||||
lt_dlclose(handle);
|
||||
//lt_dlclose(handle);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -475,7 +487,7 @@ gnc_module_load(char * module_name, gint interface)
|
||||
{
|
||||
g_warning ("Module %s (%s) is not a gnc-module.\n", module_name,
|
||||
modinfo->module_filepath);
|
||||
lt_dlclose(handle);
|
||||
//lt_dlclose(handle);
|
||||
}
|
||||
return info;
|
||||
}
|
||||
@ -522,7 +534,8 @@ gnc_module_unload(GNCModule module)
|
||||
if(info->load_count == 0)
|
||||
{
|
||||
/* now close the module and free the struct */
|
||||
lt_dlclose(info->handle);
|
||||
//printf("(unload) closing %s\n", info->filename);
|
||||
//lt_dlclose(info->handle);
|
||||
g_hash_table_remove(loaded_modules, module);
|
||||
g_free(info);
|
||||
}
|
||||
|
@ -19,10 +19,9 @@ TESTS = \
|
||||
test-scm-init
|
||||
|
||||
TESTS_ENVIRONMENT = \
|
||||
GNC_MODULE_PATH=${PWD}/mod-foo:${PWD}/mod-bar:${PWD}/mod-baz:${PWD}/misc-mods:${top_srcdir}/src/import-export/qif-import \
|
||||
GNC_MODULE_PATH=mod-foo:mod-bar:mod-baz:misc-mods \
|
||||
GUILE_LOAD_PATH=..:${G_WRAP_MODULE_DIR} \
|
||||
LTDL_LIBRARY_PATH=../ \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/app-file:mod-foo:mod-foo/.libs:mod-bar:mod-bar/.libs:mod-baz:mod-baz/.libs:..:../.libs
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:mod-foo:mod-bar:mod-baz:misc-mods:..:
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
test-load-c \
|
||||
|
@ -78,6 +78,7 @@ libgncmod_gnome_utils_la_LIBADD = \
|
||||
${GNOME_LIBDIR} \
|
||||
${GNOME_PRINT_LIBS} \
|
||||
${GTKHTML_LIBS} \
|
||||
${GDK_PIXBUF_LIBS} \
|
||||
${GLADE_LIBS} \
|
||||
${GUILE_LIBS} \
|
||||
${GUPPI_LIBS} \
|
||||
|
@ -1,11 +1,22 @@
|
||||
TESTS = \
|
||||
test-link-module
|
||||
test-link-module test-load-module
|
||||
|
||||
TESTS_ENVIRONMENT=\
|
||||
GNC_MODULE_PATH=${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/gnome-utils:${top_srcdir}/src/network-utils:${top_srcdir}/src/engine:${top_srcdir}/src/calculation:${top_srcdir}/src/tax/us:${top_srcdir}/src/report/locale-specific/us \
|
||||
GUILE_LOAD_PATH=${G_WRAP_MODULE_DIR}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/gnome-utils:${top_srcdir}/src/network-utils:${top_srcdir}/src/engine:${top_srcdir}/src/calculation:${top_srcdir}/lib:${top_srcdir}/src/gnome:${top_srcdir}/src/scm:${top_srcdir}/src/report/report-system:${top_srcdir}/src/tax/us:${G_WRAP_MODULE_DIR}:${top_srcdir}/src/report/locale-specific/us \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/gnome-utils:${top_srcdir}/src/network-utils:${top_srcdir}/src/engine:${top_srcdir}/src/app-file/gnome:${top_srcdir}/src/calculation:${top_srcdir}/src/gnome:${top_srcdir}/src/report/report-system:${top_srcdir}/src/report/locale-specific/us:${top_srcdir}/src/tax/us
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
test-link-module
|
||||
|
||||
INCLUDES=-I../../gnc-module ${GLIB_CFLAGS} ${GUILE_CFLAGS}
|
||||
|
||||
test_link_module_SOURCES=test-link-module.c
|
||||
test_link_module_LDADD=../libgncmod-gnome-utils.la
|
||||
test_link_module_LDADD= \
|
||||
../../gnc-module/libgncmodule.la
|
||||
|
||||
|
||||
testit:
|
||||
libtool --mode execute gdb test-link-module
|
||||
|
||||
|
||||
|
@ -1,6 +1,16 @@
|
||||
#include <stdlib.h>
|
||||
#include <guile/gh.h>
|
||||
#include <gnc-module.h>
|
||||
|
||||
int
|
||||
main(int argc, char ** argv) {
|
||||
void
|
||||
guile_main(int argc, char ** argv) {
|
||||
gnc_module_system_init();
|
||||
/* gnc_module_load("gnucash/gnome-utils", 0); */
|
||||
exit(0);
|
||||
}
|
||||
int
|
||||
main(int argc, char ** argv) {
|
||||
gh_enter(argc, argv, guile_main);
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
11
src/gnome-utils/test/test-load-module
Executable file
11
src/gnome-utils/test/test-load-module
Executable file
@ -0,0 +1,11 @@
|
||||
#! /bin/sh
|
||||
exec guile -s $0
|
||||
!#
|
||||
|
||||
(use-modules (gnucash gnc-module))
|
||||
(gnc:module-system-init)
|
||||
|
||||
(display " testing gnome-utils module load ... ")
|
||||
(gnc:module-load "gnucash/gnome-utils" 0)
|
||||
|
||||
(display " ok\n")
|
@ -10,6 +10,7 @@ libgw_gnc_la_LIBADD = ${G_WRAP_LINK_ARGS} ${GLIB_LIBS}
|
||||
libgw_gnc_la_LDFLAGS = -module
|
||||
|
||||
libgncgnome_la_LDFLAGS = -module
|
||||
libgncgnome_la_LIBADD = ${GNOMEUI_LIBS} ${GLIB_LIBS} ${GUILE_LIBS}
|
||||
|
||||
libgncgnome_la_SOURCES = \
|
||||
argv-list-converters.c \
|
||||
|
@ -1,12 +1,11 @@
|
||||
TESTS = \
|
||||
test-link-module
|
||||
# test-load-module
|
||||
test-link-module \
|
||||
test-load-module
|
||||
|
||||
TESTS_ENVIRONMENT= \
|
||||
GNC_MODULE_PATH=../../gnc-module:.. \
|
||||
GNC_MODULE_PATH=.. \
|
||||
GUILE_LOAD_PATH=${G_WRAP_MODULE_DIR}:..:../../gnc-module:${top_srcdir}/lib \
|
||||
LTDL_LIBRARY_PATH=.. \
|
||||
LD_LIBRARY_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/src/gnc-module/.libs
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/network-utils
|
||||
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
|
11
src/network-utils/test/test-load-module
Executable file
11
src/network-utils/test/test-load-module
Executable file
@ -0,0 +1,11 @@
|
||||
#! /bin/sh
|
||||
exec guile -s $0
|
||||
!#
|
||||
|
||||
(use-modules (gnucash gnc-module))
|
||||
(gnc:module-system-init)
|
||||
|
||||
(display " testing network-utils module load ... ")
|
||||
(gnc:module-load "gnucash/network-utils" 0)
|
||||
|
||||
(display " ok\n")
|
@ -1 +1 @@
|
||||
SUBDIRS=ledger-core register-core register-gnome
|
||||
SUBDIRS=register-core register-gnome ledger-core
|
||||
|
@ -24,6 +24,7 @@ noinst_HEADERS = \
|
||||
|
||||
libgncmod_ledger_core_la_LDFLAGS = -module
|
||||
libgncmod_ledger_core_la_LIBADD = \
|
||||
${top_srcdir}/src/register/register-core/libgncmod-register-core.la \
|
||||
${top_srcdir}/src/gnome/libgncgnome.la
|
||||
|
||||
AM_CFLAGS = \
|
||||
|
@ -1,9 +1,9 @@
|
||||
TESTS= test-load-module test-link-module
|
||||
TESTS=test-load-module test-link-module
|
||||
|
||||
TESTS_ENVIRONMENT= \
|
||||
GNC_MODULE_PATH=${top_srcdir}/src/engine:${top_srcdir}/src/report/report-system:${top_srcdir}/src/app-utils:${top_srcdir}/src/app-file:${top_srcdir}/src/calculation:${top_srcdir}/src/tax/us:${top_srcdir}/src/report/locale-specific/us \
|
||||
GUILE_LOAD_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/src/scm:${top_srcdir}/src/app-file:${top_srcdir}/src/gnome:${top_srcdir}/src/report/report-system:${top_srcdir}/src/tax/us:${G_WRAP_MODULE_DIR}:${top_srcdir}/src/report/locale-specific/us:${top_srcdir}/lib \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/engine:${top_srcdir}/src/app-utils:${top_srcdir}/src/calculation:${top_srcdir}/src/app-file:${top_srcdir}/src/app-file/gnome:${top_srcdir}/src/gnome:${top_srcdir}/src/report/report-system:${top_srcdir}/src/tax/us:${top_srcdir}/src/scm:..
|
||||
GNC_MODULE_PATH=${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/gnome-utils:{top_srcdir}/src/network-utils:${top_srcdir}/src/engine:${top_srcdir}/src/calculation:${top_srcdir}/src/tax/us:${top_srcdir}/src/report/report-system:${top_srcdir}/src/report/locale-specific/us \
|
||||
GUILE_LOAD_PATH=${G_WRAP_MODULE_DIR}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/gnome-utils:{top_srcdir}/src/network-utils:${top_srcdir}/src/engine:${top_srcdir}/src/calculation:${top_srcdir}/lib:${top_srcdir}/src/gnome:${top_srcdir}/src/scm:${top_srcdir}/src/report/report-system:${top_srcdir}/src/tax/us:${G_WRAP_MODULE_DIR}:${top_srcdir}/src/report/locale-specific/us \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/app-file:${top_srcdir}/src/app-utils:${top_srcdir}/src/gnome-utils:{top_srcdir}/src/network-utils:${top_srcdir}/src/engine:${top_srcdir}/src/app-file/gnome:${top_srcdir}/src/calculation:${top_srcdir}/src/gnome:${top_srcdir}/src/report/report-system:${top_srcdir}/src/report/locale-specific/us:${top_srcdir}/src/tax/us
|
||||
|
||||
EXTRA_DIST = test-load-module
|
||||
|
||||
|
@ -2,7 +2,7 @@ TESTS=test-load-module
|
||||
|
||||
TESTS_ENVIRONMENT= \
|
||||
GNC_MODULE_PATH=${top_srcdir}/src/engine:${top_srcdir}/src/report/report-system:${top_srcdir}/src/app-utils:${top_srcdir}/src/calculation:.. \
|
||||
GUILE_LOAD_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/lib:..:${G_WRAP_MODULE_DIR}:${top_srcdir}/src/guile:${top_srcdir}/src/scm \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/engine:${top_srcdir}/src/app-utils:${top_srcdir}/src/calculation:${top_srcdir}/src/guile
|
||||
GUILE_LOAD_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/lib:..:${G_WRAP_MODULE_DIR}:${top_srcdir}/src/guile:${top_srcdir}/src/scm:${top_srcdir}/src/gnome \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${top_srcdir}/src/gnc-module:${top_srcdir}/src/engine:${top_srcdir}/src/app-utils:${top_srcdir}/src/calculation:${top_srcdir}/src/guile:${top_srcdir}/src/gnome
|
||||
|
||||
EXTRA_DIST = test-load-module
|
||||
|
Loading…
Reference in New Issue
Block a user