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.
o Oops. We want the xmm registers if index >= 8. o Add some debugging prints.
Fix os_sigcontext_fpu_reg to return the correct address for SSE2 registers. This works. We also try to get the correct data for the x87 registers, but this is not tested.
Return address from os_sigcontext_fpu_reg(), make sigsegv_handler compile when SIGSEGV_VERBOSE defined.
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.
Test fpu_mode instead of calling arch_support_sse2() to match Linux and FreeBSD.
Add new FPU interface code.
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.
Instead of defining DPRINTF in every X-os.c file, do it once, in os.h
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.
Move the gencgc write barrier code into its own function.
Merge changes from HEAD to the unicode-utf16 branch.
Make it build again for NetBSD.
Directly specify the SA_SIGINFO signal option. Remove USE_SA_SIGINFO all of its remaining references.
Remove the attempted include of a local signal.h header. Replace this quoted include with an include of the system signal.h where needed.
Remove unused context saving and setting functions.
Remove no-op compatibility macros.
Make SC_REG expand out to an lvalue on the x86 and AMD64. Define a reg_NARGS macro on these targets and use SC_REG to replace open-coded assignments to platform specific sigcontext members in interrupt.c and os-common.c. This code could be simplified further by merging the x86 and AMD64 cases into the general case.
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.
Changes from Robert Swindells to support NetBSD.
Added specialised port to NetBSD (1.5.2) on x86. Since the code-base was already cleaned up with the OpenBSD port, this doesn't require massive changes. Since current NetBSD is ELF-based by default, we don't make use of the ELF feature, or in other words: The presence of the NetBSD feature implies ELF, since there is no support for non-ELF NetBSD. The page-protection feature of the generational GC had to be turned off, because currently NetBSD 1.5.2 doesn't provide access to the faulting memory address in SIGSEGV signal-handlers on the x86 platform. The memory is validated/mmapped in 64MB chunks in os-validate, in order to circumvent a restriction on NetBSD, that prevented me from mmapping 128MB or more apiece. It has been pointed out to me that this may be caused by the default ulimit on data segment sizes, which seems kind of strange, but might be true. In any case the current approach works OK, and doesn't require root interaction, so is probably the better approach.
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|