Loading lisp/save.c +9 −6 Original line number Diff line number Diff line /* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/save.c,v 1.21 2008/12/10 16:16:11 rtoy Exp $ $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/save.c,v 1.21.6.1 2009/09/28 13:02:52 rtoy Exp $ This code was written as part of the CMU Common Lisp project at Carnegie Mellon University, and has been placed in the public domain. Loading Loading @@ -247,6 +247,7 @@ save(char *filename, lispobj init_function, int sse2_mode) boolean save_executable(char *filename, lispobj init_function) { char *dir_name; #if defined WANT_CGC volatile lispobj *func_ptr = &init_function; Loading @@ -269,6 +270,8 @@ save_executable(char *filename, lispobj init_function) if(SymbolValue(X86_CGC_ACTIVE_P) != NIL) SetSymbolValue(ALLOCATION_POINTER, DYNAMIC_0_SPACE_START); #endif dir_name = dirname(strdup(filename)); printf("[Undoing binding stack... "); fflush(stdout); unbind_to_here((lispobj *)BINDING_STACK_START); Loading @@ -285,11 +288,11 @@ save_executable(char *filename, lispobj init_function) fflush(stdout); printf("read-only... "); fflush(stdout); write_elf_object(dirname(filename), READ_ONLY_SPACE_ID, (os_vm_address_t)read_only_space, write_elf_object(dir_name, READ_ONLY_SPACE_ID, (os_vm_address_t)read_only_space, (os_vm_address_t)SymbolValue(READ_ONLY_SPACE_FREE_POINTER)); printf("static... "); fflush(stdout); write_elf_object(dirname(filename), STATIC_SPACE_ID, (os_vm_address_t)static_space, write_elf_object(dir_name, STATIC_SPACE_ID, (os_vm_address_t)static_space, (os_vm_address_t)SymbolValue(STATIC_SPACE_FREE_POINTER)); #ifdef GENCGC /* Flush the current_region updating the tables. */ Loading Loading @@ -345,10 +348,10 @@ save_executable(char *filename, lispobj init_function) printf("dynamic... "); fflush(stdout); #ifdef reg_ALLOC write_elf_object(dirname(filename), DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, write_elf_object(dir_name, DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, (os_vm_address_t)current_dynamic_space_free_pointer); #else write_elf_object(dirname(filename), DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, write_elf_object(dir_name, DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, (os_vm_address_t)SymbolValue(ALLOCATION_POINTER)); #endif Loading @@ -358,7 +361,7 @@ save_executable(char *filename, lispobj init_function) printf("Linking executable...\n"); fflush(stdout); elf_run_linker(init_function, filename); elf_cleanup(dirname(filename)); elf_cleanup(dir_name); printf("done.\n"); exit(0); Loading tools/linker.sh +6 −1 Original line number Diff line number Diff line #!/bin/sh -x # $Id: linker.sh,v 1.7 2007/08/14 15:57:48 rtoy Exp $ # $Id: linker.sh,v 1.7.16.1 2009/09/28 13:02:52 rtoy Exp $ # This file was written by Fred Gilham and is placed in the public domain. # It comes without warranty of any kind. Loading Loading @@ -51,6 +51,9 @@ VER='' # Default values OUTPUT="-o $2" OUTDIR=`dirname $2` CURDIR=`pwd` LINKER=/usr/bin/ld CMUCLLIB=`dirname $0` OBJS="--whole-archive $CMUCLLIB/lisp.a --no-whole-archive" Loading Loading @@ -128,6 +131,8 @@ case "$OPSYS" in ;; esac cd $OUTDIR $LINKER $SCRIPT $DLINKER $OUTPUT $STARTCRT $FLAGS $BIFLAG $IFADDR $OBJS $LIBS $ENDCRT cd $CURDIR exit 0 Loading
lisp/save.c +9 −6 Original line number Diff line number Diff line /* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/save.c,v 1.21 2008/12/10 16:16:11 rtoy Exp $ $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/save.c,v 1.21.6.1 2009/09/28 13:02:52 rtoy Exp $ This code was written as part of the CMU Common Lisp project at Carnegie Mellon University, and has been placed in the public domain. Loading Loading @@ -247,6 +247,7 @@ save(char *filename, lispobj init_function, int sse2_mode) boolean save_executable(char *filename, lispobj init_function) { char *dir_name; #if defined WANT_CGC volatile lispobj *func_ptr = &init_function; Loading @@ -269,6 +270,8 @@ save_executable(char *filename, lispobj init_function) if(SymbolValue(X86_CGC_ACTIVE_P) != NIL) SetSymbolValue(ALLOCATION_POINTER, DYNAMIC_0_SPACE_START); #endif dir_name = dirname(strdup(filename)); printf("[Undoing binding stack... "); fflush(stdout); unbind_to_here((lispobj *)BINDING_STACK_START); Loading @@ -285,11 +288,11 @@ save_executable(char *filename, lispobj init_function) fflush(stdout); printf("read-only... "); fflush(stdout); write_elf_object(dirname(filename), READ_ONLY_SPACE_ID, (os_vm_address_t)read_only_space, write_elf_object(dir_name, READ_ONLY_SPACE_ID, (os_vm_address_t)read_only_space, (os_vm_address_t)SymbolValue(READ_ONLY_SPACE_FREE_POINTER)); printf("static... "); fflush(stdout); write_elf_object(dirname(filename), STATIC_SPACE_ID, (os_vm_address_t)static_space, write_elf_object(dir_name, STATIC_SPACE_ID, (os_vm_address_t)static_space, (os_vm_address_t)SymbolValue(STATIC_SPACE_FREE_POINTER)); #ifdef GENCGC /* Flush the current_region updating the tables. */ Loading Loading @@ -345,10 +348,10 @@ save_executable(char *filename, lispobj init_function) printf("dynamic... "); fflush(stdout); #ifdef reg_ALLOC write_elf_object(dirname(filename), DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, write_elf_object(dir_name, DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, (os_vm_address_t)current_dynamic_space_free_pointer); #else write_elf_object(dirname(filename), DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, write_elf_object(dir_name, DYNAMIC_SPACE_ID, (os_vm_address_t)current_dynamic_space, (os_vm_address_t)SymbolValue(ALLOCATION_POINTER)); #endif Loading @@ -358,7 +361,7 @@ save_executable(char *filename, lispobj init_function) printf("Linking executable...\n"); fflush(stdout); elf_run_linker(init_function, filename); elf_cleanup(dirname(filename)); elf_cleanup(dir_name); printf("done.\n"); exit(0); Loading
tools/linker.sh +6 −1 Original line number Diff line number Diff line #!/bin/sh -x # $Id: linker.sh,v 1.7 2007/08/14 15:57:48 rtoy Exp $ # $Id: linker.sh,v 1.7.16.1 2009/09/28 13:02:52 rtoy Exp $ # This file was written by Fred Gilham and is placed in the public domain. # It comes without warranty of any kind. Loading Loading @@ -51,6 +51,9 @@ VER='' # Default values OUTPUT="-o $2" OUTDIR=`dirname $2` CURDIR=`pwd` LINKER=/usr/bin/ld CMUCLLIB=`dirname $0` OBJS="--whole-archive $CMUCLLIB/lisp.a --no-whole-archive" Loading Loading @@ -128,6 +131,8 @@ case "$OPSYS" in ;; esac cd $OUTDIR $LINKER $SCRIPT $DLINKER $OUTPUT $STARTCRT $FLAGS $BIFLAG $IFADDR $OBJS $LIBS $ENDCRT cd $CURDIR exit 0