Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Include libgen.h on Darwin/x86 to get rid of a compiler warning about dirname being undefined.
Let the linker remove the object files we created for the Lisp spaces. lisp/elf.c: lisp/mach-o.c: o Remove obj_cleanup function. lisp/save.c: o Don't call obj_cleanup anymore (because it doesn't exist.) toosl/linker-x86.sh: o Remove CORRO.o CORSTA.o CORDYN.o on exit.
Some cleanup of the names of main functions for creating executable images. lisp/elf.c: o Change write_elf_object, elf_cleanup, and elf_run_linker to write_space_object, obj_cleanup, and obj_run_linker. lisp/elf.h: o Update so that this can used for both elf and mach-o. Not great, but I don't want to rename this file. lisp/mach-o.c: o Include elf.h o Remove items that are defined in elf.h. o Change function names from elf to mach_o. lisp/save.c: o Update names to new ones.
First cut at executable images on Darwin/x86. The resulting executable appears to work! bootfiles/20a/boot-2010-07-1.lisp: o Add :executable for darwin/x86. code/bsd-os.lisp: o Make :elf and :mach-o runtime features too. o Register :executable of :executable is defined. lisp/Config.x86_darwin: o Need mach-o.c o Add exec-final.c lisp/lisp.c: o Don't include elf.h if we're on Darwin since Darwin uses Mach-O, not ELF. o For Darwin, we get the initial function address from initial_function_addr, not from &initial_function_addr, like for Linux. lisp/save.c o Don't include libgen.h and elf.h on Darwin. tools/linker-x86.sh: o Update to support Darwin. tools/make-main-dist.sh: o Add support for executables on Darwin. lisp/mach-o.c: o Initial support for writing Mach-O files for the Lisp spaces. o Initial support for reading a Mach-O executable to find and map the Lisp spaces.
Some cleanup for Linux executables. The value of the initial_function_addr is saved to a file and compiled in when linking the executable. This makes building the executable more portable. All that's need is a way for gcc to link all of lisp.a and to set the starting address of some segments. lisp/lisp.c: o For Linux, use the value of initial_function_addr instead of the address. tools/linker-x86.sh: o Disable -x option, unless CMU_DEBUG_LINKER is not empty. o Instead of using --defsym feature of GNU ld, save the initial function address in a file to be compiled when making the executable. lisp/elf.c: o Remove printing of the sizeof elf headers o Print some info about the object being written and print somewhat neatly. lisp/save.c: o Rework printing info of the core objects. Let write_elf_object do it.
Change how we build executables for Linux. We no longer need the hairy and fragile linker script. Instead, we can use regular old gcc to do what we need. (Should also work for FreeBSD, but not yet implemented.) lisp/elf.c: o Include validate.h so we can get the starting addresses of the read-only, static, and dynamic spaces. o Add special case for linux to run the linker script correctly. lisp/elf.h: o There's a separate linker script for Linux. lisp/save.c: o Temporarily don't run elf_cleanup so we can have easier testing/debugging. tools/linker.sh: o Don't need BIFLAG anymore. tools/make-main-dist.sh: o Install linker-x86.sh.
of (FresBSD+) Get rid of gcc warnings: int != ulong; char *strdup() != int strdup; lisp space
Merge dirname fix from trunk.
From A.M.Raportirenko, on cmucl-imp, Sep 25, 2009: dirname destructively modifies its argument. lisp/save.c: o Call dirname once, saving the result, and use it everywhere.
Merge changes from utf16 branch to update to snapshot 2008-12.
Merge Snapshot 2008-12 to this branch. Some tweaks needed in boot-2008-05-cross-unicode-x86.lisp and the Config files. FreeBSD and Darwin/x86 untested, but Linux and Solaris build ok.
Change how we put the FPU type into the core file. We can't use compile-time options to do this. The running core file has to tell us. lisp/save.c: o Add extra arg to save function to indicate whether the core we're saving supports sse2 or not. Non-zero means sse2. o Put the correct indication into the core file. lisp/save.h: o Update declaration of save. code/save.lisp: o Update alien definition for save o Pass in the extra parameter for the save routine to indicate if we support sse2 or not.
Merge in SSE2 changes from sse2-packed-branch (tag sse2-packed-2008-11-12).
Use the fpu_mode_t enum when writing out the fpu mode word to the core.
Only output the FPU type for x86. Don't do anything for any other architecture.
Remove uses of x87 stuff when using sse2. Update core file format to tell us if the core is for x87 or sse2. compiler/x86/sse2-c-call.lisp: o Remove all of the fp-pop, fldz stuff from the inline foreign call. o If there's a floating-point result, save the result and pop the FPU stack. lisp/x86-assem.S: o Add global variable use_sse2. Non-zero means we are using SSE2 and should not do any x87 stuff in call_into_c and call_into_lisp. We just branch around that code. (Should we do this in a different way and have separate versions for x87 and sse2?) lisp/save.c: o After the core version, output a word indicating the type of FPU. Default is 0. A value of 1 indicates we have SSE2. lisp/coreparse.c: o Read the fpu type word and return it. o load_core_file has extra parameter to return the fpu type. lisp/core.h: o Update declaration of load_core_file lisp/lisp.c: o Update calls to new load_core_file. o Add check to print a message before exiting in the case that the core uses SSE2 and but the chip doesn't support SSE2. o Set use_sse2 flag appropriately.
Remove the libgen.h include from FreeBSD-os.h and make its inclusion in save.c dependent on FEATURE_EXECUTABLE.
Solaris needs libgen.h to define dirname.
Fixed indentation I broke in save.c and lisp.c.
featureized version of executable stuff
Add Lisp executable mods.
This checkin adds some debugging code for the x86 heap corruption issue and also works around the heap corruption. These are enabled if DEBUG_BAD_HEAP is #defined. gencgc.c: o Make print_ptr and verify_gc non-static so they can be used elsewhere. lisp.c: o Call verify_gc at startup (if enabled) so we can see the heap corruption. save.c: o Add debugging prints and stuff to see what's going on, if enabled. o The workaround is to skip over the call to update_dynamic_space_free_pointer in save(). See the comments there for more info.
Merge code from main branch of 2005-12-17 to ppc gencgc branch. Still doesn't work of course.
Indent all source files using GNU indent using the config in .indent.pro.
Remove superfluous sys/file.h include.
Don't use unlink() when the standard C remove() will do.
Include stdlib.h to get functions like exit() defined.
Fix more compiler warnings: * backtrace.c, save.c: fprintf warnings. * interrupt.h: Declare build_fake_control_stack_frame and interrupt_handle_space_overflow. * os-common.c: Include interrupt.h to define build_fake_control_stack_frame. * parse.c, runprog.c, search.c: Include some standard system headers to get rid of undefined function warnings.
Fred Gilham's Lisp executable support for CMUCL.
Merge with HEAD.
Merge sparc_gencgc_branch that adds support for gencgc for Solaris.
gencgc.c: o More code cleanups, getting rid of GC_DEBUG o Make fpu_state variable large enough to hold all 32 double-float regs for Sparc V9. o Get rid of unneeded debugging printfs o Rename update_x86_dynamic_space_free_pointer to update_dynamic_space_free_pointer since it's not x86 specific anymore. o Get rid of the need_to_pop_stack stuff. It's not needed. o Don't compile sniff_code_object and apply_code_fixups for non-x86. save.c: o Rename update_x86_dynamic_space_free_pointer to update_dynamic_space_free_pointer since it's not x86 specific anymore. o Cleanup calls to gc_alloc_update_page_tables. sparc-arch.c: o Get rid of the need_to_pop_stack stuff. It's not needed. o Comment out pop_fake_control_stack_frame. sparc-assem.S o Save the extra 16 double-float regs, if FEATURE_SPARC_V9.
Initial port of gencgc to Solaris.
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation for release tagging 18d.
Cleanup compiler warnings.
This set of revisions brings the RELENG_18 branch up to HEAD in preparation for an 18c release.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Conservative generational garbage collection for the x86 port.
source kit 1.03.7
Add RCS header.
Changed save to pad the core file out to CORE_PAGESIZE bytes, so that when we mmap it back it, we won't get bus errors if the real page size is less then the CORE_PAGESIZE.
Changed core saving to no longer save the stacks. Instead, when the core is restored, a (supplied) initial function is invoked which can do whatever kind of setup it wants. This makes a saved lisp totally independent of the location of the C stack.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|