* Got rid of CAN_LOAD_OBJ. We'll only use dlopen()-like functions now.
git-svn-id: svn://svn.zoy.org/elk/trunk@115 55e467fa-43c5-0310-a8a2-de718669efc6
This commit is contained in:
parent
b7a437f9a5
commit
58b8dc6976
|
@ -166,13 +166,9 @@ if test "${ac_cv_my_have_elf}" = "yes"; then
|
||||||
AC_DEFINE(HAVE_LIBELF, 1, Define if you have libelf.)
|
AC_DEFINE(HAVE_LIBELF, 1, Define if you have libelf.)
|
||||||
ELK_LIBS="${ELK_LIBS} -lelf"
|
ELK_LIBS="${ELK_LIBS} -lelf"
|
||||||
ac_cv_my_can_dump=yes
|
ac_cv_my_can_dump=yes
|
||||||
ac_cv_my_can_load_obj=yes
|
|
||||||
ac_cv_my_can_load_lib=yes
|
ac_cv_my_can_load_lib=yes
|
||||||
CAN_DUMP=1
|
|
||||||
CAN_LOAD_OBJ=1
|
|
||||||
else
|
else
|
||||||
ac_cv_my_can_dump=no
|
ac_cv_my_can_dump=no
|
||||||
ac_cv_my_can_load_obj=no
|
|
||||||
ac_cv_my_can_load_lib=no
|
ac_cv_my_can_load_lib=no
|
||||||
dnl AC_MSG_ERROR([could not handle the native object format, if you are running Linux please install the libelf development headers])
|
dnl AC_MSG_ERROR([could not handle the native object format, if you are running Linux please install the libelf development headers])
|
||||||
fi
|
fi
|
||||||
|
@ -186,9 +182,6 @@ fi
|
||||||
# dl SysVR4/SunOS5 dlopen()
|
# dl SysVR4/SunOS5 dlopen()
|
||||||
#
|
#
|
||||||
# Leave load_obj empty if dynamic loading is not supported.
|
# Leave load_obj empty if dynamic loading is not supported.
|
||||||
if test "${ac_cv_my_can_load_obj}" = "yes"; then
|
|
||||||
AC_DEFINE(CAN_LOAD_OBJ, 1, [FIXME HARD])
|
|
||||||
fi
|
|
||||||
if test "${ac_cv_my_can_load_lib}" = "yes"; then
|
if test "${ac_cv_my_can_load_lib}" = "yes"; then
|
||||||
AC_DEFINE(CAN_LOAD_LIB, 1, [FIXME HARD])
|
AC_DEFINE(CAN_LOAD_LIB, 1, [FIXME HARD])
|
||||||
fi
|
fi
|
||||||
|
|
28
src/load.c
28
src/load.c
|
@ -34,21 +34,11 @@
|
||||||
|
|
||||||
Object V_Load_Path, V_Load_Noisilyp, V_Load_Libraries;
|
Object V_Load_Path, V_Load_Noisilyp, V_Load_Libraries;
|
||||||
|
|
||||||
#ifdef CAN_LOAD_OBJ
|
|
||||||
# define Default_Load_Libraries LOAD_LIBRARIES
|
|
||||||
#else
|
|
||||||
# define Default_Load_Libraries ""
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *Loader_Input; /* tmp file name used by load.xx.c */
|
char *Loader_Input; /* tmp file name used by load.xx.c */
|
||||||
|
|
||||||
extern void Switch_Environment (Object);
|
extern void Switch_Environment (Object);
|
||||||
void Load_Source (Object);
|
void Load_Source (Object);
|
||||||
|
|
||||||
#ifdef CAN_LOAD_OBJ
|
|
||||||
void Fork_Load();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(USE_LD)
|
#if defined(USE_LD)
|
||||||
# include "load-ld.c"
|
# include "load-ld.c"
|
||||||
#elif defined(USE_RLD)
|
#elif defined(USE_RLD)
|
||||||
|
@ -65,11 +55,7 @@ void Init_Load () {
|
||||||
Cons (Make_String (SCM_DIR, sizeof (SCM_DIR) - 1),
|
Cons (Make_String (SCM_DIR, sizeof (SCM_DIR) - 1),
|
||||||
Cons (Make_String (OBJ_DIR, sizeof (OBJ_DIR) - 1), Null))));
|
Cons (Make_String (OBJ_DIR, sizeof (OBJ_DIR) - 1), Null))));
|
||||||
Define_Variable (&V_Load_Noisilyp, "load-noisily?", False);
|
Define_Variable (&V_Load_Noisilyp, "load-noisily?", False);
|
||||||
Define_Variable (&V_Load_Libraries, "load-libraries",
|
Define_Variable (&V_Load_Libraries, "load-libraries", Make_String ("", 0));
|
||||||
Make_String (Default_Load_Libraries, sizeof Default_Load_Libraries-1));
|
|
||||||
#ifdef CAN_LOAD_OBJ
|
|
||||||
Register_Onfork (Fork_Load);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Init_Loadpath (char *s) { /* No GC possible here */
|
void Init_Loadpath (char *s) { /* No GC possible here */
|
||||||
|
@ -131,22 +117,12 @@ Object General_Load (Object what, Object env) {
|
||||||
Switch_Environment (env);
|
Switch_Environment (env);
|
||||||
Check_Loadarg (what);
|
Check_Loadarg (what);
|
||||||
if (TYPE(what) == T_Pair) {
|
if (TYPE(what) == T_Pair) {
|
||||||
if (Has_Suffix (Car (what), ".o"))
|
if (Has_Suffix (Car (what), ".so"))
|
||||||
#ifdef CAN_LOAD_OBJ
|
|
||||||
Load_Object (what)
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
else if (Has_Suffix (Car (what), ".so"))
|
|
||||||
#ifdef CAN_LOAD_LIB
|
#ifdef CAN_LOAD_LIB
|
||||||
Load_Library (what)
|
Load_Library (what)
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
else if (Has_Suffix (what, ".o"))
|
|
||||||
#ifdef CAN_LOAD_OBJ
|
|
||||||
Load_Object (Cons (what, Null))
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
else if (Has_Suffix (what, ".so"))
|
else if (Has_Suffix (what, ".so"))
|
||||||
#ifdef CAN_LOAD_LIB
|
#ifdef CAN_LOAD_LIB
|
||||||
Load_Library (Cons (what, Null))
|
Load_Library (Cons (what, Null))
|
||||||
|
|
Loading…
Reference in New Issue