Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Add os_init0 to allow for some really early OS inits. On Linux, os_init can re-exec lisp to set up the correct personality. Not normally a problem, but if any output happens before os_init is called, the output appears to happen twice. So add os_init0 to do this early on, before any output. This is a bit of a kludge. lisp/lisp.c: o Call os_init0 early in main. lisp/Linux-os.c: o Move the personality stuff from os_init to os_init0. lisp/Darwin-os.c: lisp/FreeBSD-os.c: lisp/NetBSD-os.c: lisp/OpenBSD-os.c: lisp/hpux-os.c: lisp/irix-os.c: lisp/mach-os.c: lisp/osf1-os.c: lisp/solaris-os.c: lisp/sunos-os.c: o Add dummy implementation of os_init0. These OSes don't (currently) need anything special. lisp/os.h: o Declare os_init0.
Add a test for whether the operating system supports use of the SSE2 registers. The test is a stub on everything except NetBSD for now.
The address computation for x87 registers was wrong. Fix them so. Among other things, this makes tracing work with x87 floating-point values.
Merge changes from cross-sol-x86-2010-12-20 which adds support for Solaris/x86. There should be no functional changes for either other x86 ports or for the sparc port.
o Fix a compiler warning. o Get the correct data from the x87 FPU state for the control and status words. Unfortunately, it looks as if Solaris/x86 doesn't save the x87 state in the sigcontext.
Add implementation of os_sigcontext_fpu_reg. Tested to work with SSE2. X87 not yet tested.
o #include internals.h before including gencgc.h to get rid of a #warning about struct code being used. o Ifdef out fprintf's. o Add implementation of os_sigcontext_fpu_modes. This needs testing!
Add function real_segv_handler to handle "real protection" violations. Useful for debugging so we can easily stop in such cases.
Ifdef out solaris_register_address if we're on an x86, since this isn't used.
First cut at a build for Solaris/x86. Result doesn't work; it gets as far as TYPE-INIT, but then crashes. These changes still allow solaris/sparc and darwin/x86 to build, so we haven't broken both sparc and x86 while doing this. tools/cross-scripts/cross-x86-osx-solaris.lisp: o New cross-compile script to use darwin/x86 to cross-compile to solaris/x86. compiler/x86/parms.lisp: o For now, put thel linkage space start at 0xc0000000 on Solaris/x86. lisp/Config.sparc_common: o Separate out the common parts between Solaris sparc and x86. Move the different parts into the appropriate file. lisp/Config.sparc_sunc: o Add ASSEM_SRC and ARCH_SRC here, with the appropriate OS_SRC, OS_LINK_FLAGS, and OS_LIBS> lisp/Config.x86_solaris_sunc: o New file for building solaris/x86 using Sun C (aka Sun Studio aka Solaris Studio) lisp/interrupt.c: o Use a static array for the altstack. Should eventually do what other x86 platforms do. lisp/solaris-os.c: o Don't need os_flush_icache on x86 (?), so make the body empty for x86. o Add x86 version of os_sigcontext_reg and os_sigcontext_pc. lisp/sunos-os.h: o The pagesize is 4096 on x86 instead of 8192. o Don't need (?) SAVE_CONTEXT. lisp/x86-assem.S: o Update to support Sun C assembler: - Add appropriate GNAME, FUNCDEF and ENDFUNC macros. - Sun assembler doesn't have int3 instruction, so add INT3 macro to do the appropriate things. - Sun assembler doesn't like control L characters in the file so remove them. lisp/x86-validate.h: o Add entry for Solaris. This needs work, but it looks like these values will work.
Print out the PC when we get a real protection violation.
Linux-os.c: o Follow CMUCL coding style. o Argv and envp are const char*. os.h: lisp.c: Darwin-os.c: FreeBSD-os.c: NetBSD-os.c: OpenBSD-os.c: hpux-os.c: irix-os.c: mach-os.c: osf1-os.c: solaris-os.c: sunos-os.c: o argv and envp are const char *.
Patch from Stelian Ionescu on cmucl-imp, 2010/02/01: When run on a kernel compiled without COMPAT_BRK CMUCL segfaults, so I copied the kludge used by SBCL - check the current personality, and if necessary, enable ADDR_NO_RANDOMIZE and re-exec itself. Linux-os.c: o Check for personality and rexec if necessary. os.h: o New prototype for os_init needed because it needs argv and envp. lisp.c: Darwin-os.c: FreeBSD-os.c: NetBSD-os.c: OpenBSD-os.c: hpux-os.c: irix-os.c: mach-os.c: osf1-os.c: solaris-os.c: sunos-os.c: o Update call to os_init, which needs argv and envp now.
Sync to snapshot 2008-11. But we didn't sync code/extfmts.lisp or iso8859-1.lisp and utf-8.lisp. (I don't think we want those changes, yet.)
Sync to snapshot 2008-11.
Use openpty to obtain a pseudo-terminal pair instead of searching for an available devices on our own. This resolves an issue with Linux systems that do not populate /dev with BSD pseudo-terminal devices.
Move the gencgc write barrier code into its own function.
Remove code to support very old releases of Solaris 2.
Always use prototype style function definitions. Consistently use the void keyword to specify empty parameter lists.
Merge fix from release-19e-branch. os_validate should return NULL on failure instead of -1.
os_validate is apparently supposed to return NULL instead of -1 on failure.
On a C stack overflow, call segv_handle_now instead of interrupt_handle_now directly. (For debugging purposes.)
Merge code from main branch of 2005-12-17 to ppc gencgc branch. Still doesn't work of course.
Remove some unused macros and stuff. From Carl.
Indent all source files using GNU indent using the config in .indent.pro.
Clean up some compiler warnings: * gencgc.h: Add declaration for alloc. * solaris-os.c: o Include interrupt.h o Clean up some printf warnings, apply appropriate casts for converting address to longs and vice versa. * sparc-arch.c: o Include gencgc.h, breakpoint.h, interr.h to declare some functions for us. o Instructions are ints, not longs. (64-bitness cleanup.) o handle_breakpoint and handle_function_end_breakpoint were not called with the right second arg. * sunos-os.h: o Declare flush_icache and save_context.
Add sigsegv_handle_now (and segv_handle_now) to handle segv's that weren't caused by a write-protected heap. Requested by Lynn Quam.
Check to see if we are getting a segfault from a stack overflow and print out a message saying so instead of silently dumping core. (Requires an alternate signal stack.)
valid_addr shouldn't test against DYNAMIC_1_SPACE_START in gencgc builds because there is no dynamic 1 space. (Minor opt.)
Don't try to protect the hold for the dynamic_1 space when GENCGC is enabled, because there is no dynamic_1 space with GENCGC. This was causing CMUCL to segfault when using more than 512 MB of heap.
Moved definition of SPARSE_BLOCK_SIZE to sparc-validate.h
Fred Gilham's Lisp executable support for CMUCL.
Merge with HEAD.
Merge sparc_gencgc_branch that adds support for gencgc for Solaris.
Initial port of gencgc to Solaris.
- fix a signed/unsigned cast bug that was prevented the auto-gc-trigger from functioning correctly when using certain dynamic-space sizes (for platforms that don't have an internal gc trigger). - added a few #include files to avoid compiler warnings - changed some #ifdef semantics: DEBUG activates additional assertions, and PRINTNOISE activates debugging statements.
Add control-stack checking for Sparc. Based on work from SBCL. * lisp/sunos-os.h (PROTECTION_VIOLATION_SIGNAL): Define it for stack-checking. * lisp/solaris-os.c (segv_handler): Add stack-checking support for Solaris. * lisp/os.h (os_control_stack_overflow): Give a type name to the zone enums (mostly for the debugger). * lisp/os-common.c (guard_zones): Add stack-checking support for Solaris. (os_control_stack_overflow): Add stack-checking support for Solaris. * lisp/interrupt.c (build_fake_control_stack_frame): New function for building a stack frame without the foreign call stuff. Used for stack checking. (interrupt_install_low_level_handler): Only need to install alternate signal stack for x86. * lispinit.lisp: (scrub-control-stack): Rename to %scrub-control-stack to match x86 version so control stack guard is done. * parms.lisp (static-symbols): Added new static symbols for control stack checking.
There is no dlsym_fallback on Solaris, so remove it and return whatever dlsym returns.
o Port over Tim Moore's cool foreign linkage table stuff to sparc. o Make new-genesis save target-foreign-linkage-table-size to internals.h.
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation for release tagging 18d.
From Raymond Toy: o Remove unused empty_fd stuff (Noted by Hallvard B Furuseth <email@example.com>). o Do some testing of addresses in valid_addr, stolen from Linux-os.c. o Clean up some compiler warnings about passing pointers without casts.
Update holes support as was done for sunos-os.c. From Raymond Toy.
Update holes support as was done for sunos-os.c. From Raymond Toy.
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.
Cleanup the segv_handler.
Solaris OS dependent routines.
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|