X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.c;h=a4fc68adbf13ced6c1fc871b5d4c63830ed19035;hb=f2b65035e35f3f7ae5f645cea6338538235ca899;hp=ab619517738c6eab6f77e486e161d555901beb07;hpb=3106aee96a20d1a76a114e504bc2931f8196cace;p=sbcl.git diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c index ab61951..a4fc68a 100644 --- a/src/runtime/runtime.c +++ b/src/runtime/runtime.c @@ -194,7 +194,7 @@ search_for_core () char *stem = "/sbcl.core"; char *core; - if(!sbcl_home) sbcl_home = SBCL_HOME; + if (!(sbcl_home && *sbcl_home)) sbcl_home = SBCL_HOME; lookhere = (char *) calloc(strlen(sbcl_home) + strlen(stem) + 1, @@ -234,6 +234,7 @@ main(int argc, char *argv[], char *envp[]) boolean end_runtime_options = 0; lispobj initial_function; + const char *sbcl_home = getenv("SBCL_HOME"); interrupt_init(); block_blockable_signals(); @@ -332,7 +333,7 @@ main(int argc, char *argv[], char *envp[]) } /* Align down to multiple of page_table page size */ - dynamic_space_size = (dynamic_space_size/PAGE_BYTES) * PAGE_BYTES; + dynamic_space_size &= ~(PAGE_BYTES - 1); /* KLUDGE: os_vm_page_size is set by os_init(), and on some * systems (e.g. Alpha) arch_init() needs need os_vm_page_size, so @@ -361,8 +362,9 @@ main(int argc, char *argv[], char *envp[]) } } - /* Make sure that SBCL_HOME is set, unless loading an embedded core. */ - if (!getenv("SBCL_HOME") && embedded_core_offset == 0) { + /* Make sure that SBCL_HOME is set and not the empty string, + unless loading an embedded core. */ + if (!(sbcl_home && *sbcl_home) && embedded_core_offset == 0) { char *envstring, *copied_core, *dir; char *stem = "SBCL_HOME="; copied_core = copied_string(core);