Date: Sunday, September 26, 2010 @ 16:38:45
Author: rtoy
Path: /project/cmucl/cvsroot/src/lisp
Modified: lisp.c
Clean up code using FEATURE_EXECUTABLE. Since builtin_image_flag is
always part of the build now, we can remove most of the
conditionalization on FEATURE_EXECUTABLE. Only need to preserve the
part about calling map_core_sections, which is only defined if
FEATURE_EXECUTABLE is defined.
--------+
lisp.c | 117 +++++++++++++++++++++++++++++----------------------------------
1 file changed, 55 insertions(+), 62 deletions(-)
Index: src/lisp/lisp.c
diff -u src/lisp/lisp.c:1.77 src/lisp/lisp.c:1.78
--- src/lisp/lisp.c:1.77 Sun Aug 1 23:58:59 2010
+++ src/lisp/lisp.c Sun Sep 26 16:38:45 2010
@@ -1,7 +1,7 @@
/*
* main() entry point for a stand alone lisp image.
*
- * $Header: /project/cmucl/cvsroot/src/lisp/lisp.c,v 1.77 2010-08-02 03:58:59 agoncharov Exp $
+ * $Header: /project/cmucl/cvsroot/src/lisp/lisp.c,v 1.78 2010-09-26 20:38:45 rtoy Exp $
*
*/
@@ -477,13 +477,12 @@
argptr = argv;
while ((arg = *++argptr) != NULL) {
if (strcmp(arg, "-core") == 0) {
-#if defined FEATURE_EXECUTABLE
if (builtin_image_flag) {
fprintf(stderr,
"Cannot specify core file in executable image --- sorry about that.\n");
exit(1);
}
-#endif
+
if (core != NULL) {
fprintf(stderr, "can only specify one core file.\n");
exit(1);
@@ -559,14 +558,19 @@
exit(1);
}
- if (strcmp(str, "auto") == 0) {
- fpu_mode = AUTO;
- } else if (strcmp(str, "x87") == 0) {
- fpu_mode = X87;
- } else if (strcmp(str, "sse2") == 0) {
- fpu_mode = SSE2;
+ if (builtin_image_flag != 0) {
+ fprintf(stderr,
+ "Warning: -fpu cannot change the fpu mode of an executable image\n");
} else {
- fprintf(stderr, "Unknown fpu type: `%s'. Using auto\n", str);
+ if (strcmp(str, "auto") == 0) {
+ fpu_mode = AUTO;
+ } else if (strcmp(str, "x87") == 0) {
+ fpu_mode = X87;
+ } else if (strcmp(str, "sse2") == 0) {
+ fpu_mode = SSE2;
+ } else {
+ fprintf(stderr, "Unknown fpu type: `%s'. Using auto\n", str);
+ }
}
}
#endif
@@ -629,70 +633,63 @@
libvar = getenv("CMUCLLIB");
if (libvar != NULL) {
cmucllib = strdup(libvar);
- } else
-#if defined FEATURE_EXECUTABLE
+ } else {
/*
* The following doesn't make sense for executables. They
* need to use the saved library path from the lisp from
* which they were dumped.
*/
- if (builtin_image_flag == 0)
-#endif
- {
- const char *newlib = NULL;
+ if (builtin_image_flag == 0) {
+ const char *newlib = NULL;
- /*
- * We need to use our default search path. If a core file
- * is given, we prepend the directory of the core file to
- * the search path.
- */
- cmucllib = default_cmucllib(argv[0]);
- if (core != NULL) {
- newlib = prepend_core_path(cmucllib, core);
- } else if (getenv("CMUCLCORE") != NULL) {
- core = getenv("CMUCLCORE");
- newlib = prepend_core_path(cmucllib, core);
- }
+ /*
+ * We need to use our default search path. If a core file
+ * is given, we prepend the directory of the core file to
+ * the search path.
+ */
+ cmucllib = default_cmucllib(argv[0]);
+ if (core != NULL) {
+ newlib = prepend_core_path(cmucllib, core);
+ } else if (getenv("CMUCLCORE") != NULL) {
+ core = getenv("CMUCLCORE");
+ newlib = prepend_core_path(cmucllib, core);
+ }
- if (newlib != NULL) {
- free((void *) cmucllib);
- cmucllib = newlib;
- }
- }
+ if (newlib != NULL) {
+ free((void *) cmucllib);
+ cmucllib = newlib;
+ }
+ }
+ }
}
/* Only look for a core file if we're not using a built-in image. */
-#if defined FEATURE_EXECUTABLE
if (builtin_image_flag == 0) {
-#endif
/*
* If no core file specified, search for it in CMUCLLIB
*/
- {
- const char* found_core;
+ const char* found_core;
- found_core = locate_core(cmucllib, core, default_core);
+ found_core = locate_core(cmucllib, core, default_core);
#ifdef FEATURE_SSE2
- if ((found_core == NULL) && (fpu_mode == AUTO)) {
- /*
- * If we support SSE2 but couldn't find the SSE2 core, try
- * to fall back to the x87 core.
- */
- found_core = locate_core(cmucllib, core, "lisp-x87.core");
- if (found_core == NULL) {
- core_failure(core, argv);
- }
- fprintf(stderr, "Warning: Chip supports SSE2, but could not find SSE2 core.\n");
- fprintf(stderr, " Falling back to x87 core.\n");
- }
-#endif
- if (!found_core) {
+ if ((found_core == NULL) && (fpu_mode == AUTO)) {
+ /*
+ * If we support SSE2 but couldn't find the SSE2 core, try
+ * to fall back to the x87 core.
+ */
+ found_core = locate_core(cmucllib, core, "lisp-x87.core");
+ if (found_core == NULL) {
core_failure(core, argv);
}
- core = found_core;
+ fprintf(stderr, "Warning: Chip supports SSE2, but could not find SSE2 core.\n");
+ fprintf(stderr, " Falling back to x87 core.\n");
}
-#if defined FEATURE_EXECUTABLE
+#endif
+ if (!found_core) {
+ core_failure(core, argv);
+ }
+ core = found_core;
} else {
/*
* The "core file" is the executable. We have to save the
@@ -701,11 +698,9 @@
*/
core = argv[0];
}
-#endif
globals_init();
-#if defined FEATURE_EXECUTABLE
if (builtin_image_flag != 0) {
extern int image_dynamic_space_size;
long allocation_pointer =
@@ -718,9 +713,6 @@
} else {
initial_function = load_core_file(core, &fpu_type);
}
-#else
- initial_function = load_core_file(core, &fpu_type);
-#endif
#ifdef i386
if ((fpu_type == SSE2) && !arch_support_sse2()) {
@@ -771,15 +763,16 @@
SetSymbolValue(LISP_ENVIRONMENT_LIST, alloc_str_list(envp));
/* Set cmucllib and cmuclcore appropriately */
-#if defined FEATURE_EXECUTABLE
/*
* This test will preserve the library: search list dumped with
* the executable unless the user specifically overrides it with
* the -lib flag or by setting the CMUCLLIB environment variable.
*/
- if (cmucllib)
-#endif
+
+ if (cmucllib) {
SetSymbolValue(CMUCL_LIB, alloc_string(cmucllib));
+ }
+
SetSymbolValue(CMUCL_CORE_PATH, alloc_string(core));
/*