* 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