Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to UNICODE-BASE:||(view) (annotate)|
On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved. They now go through a table -- effectively a new space in the core file. Function references are resolved lazily, data references are resolved on startup and when a .so is loaded. The end result is that cores can be dumped that contain references to symbols in shared libraries. Also, the dependence of the core on addresses in the Lisp runtime is broken. The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C runtime. Several foreign symbols are now Lisp static symbols, so a cross compile is required whether or not the new stuff is used. I've checked in boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:) Seriously, lets start a discussion on standardizing "cross compilation," not to mention the general build procedure.
Support for dynamic loading in FreeBSD 4.0 and later. This involves moving the static space up, so a cross-compile is required to bootstrap these changes.
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.
Added specialised port to OpenBSD (2.9). Many parts of the original code which were previously conditionalized on :FreeBSD, are now conditionalized on :BSD instead, with the :BSD feature now implying a 4.4BSD(lite2) derived OS. This should make future BSD-ports easier. FreeBSD and OpenBSD are differentiated by having either :FreeBSD or :OpenBSD on the features list. Currently the OpenBSD port does not have working ELF support, because OpenBSD 2.9 is still non-ELF by default. So don't put ELF on the features list when building for OpenBSD, or fix the code to work correctly in this case instead.
o Add the command line switch -dynamic-space-size for setting the size of the dynamic space. DYNAMIC_SPACE_SIZE now defines the maximum size, and when defined DEFAULT_DYNAMIC_SPACE_SIZE gives the default. o Increase the maximum dynamic space size for Linux x86 to 1.625GB, with the default remaining at 512MB. o Define the default dynamic space size for FreeBSD x86 to also be 512MB, with a maximum of 2GB.
Move Linux over to the new address map, giving 256M for the static and read-only spaces; all the code branches work fine with this map on recent Linux systems.
Reworking of the linux address map to support larger heaps, and bringing it closer to the FreeBSD map. From Raymond Toy.
Back-out the address map changes for Linux. Only FreeBSD now uses a new address space.
Fix a typo in the CONTROL_STACK_START for linux.
Revise the address map to better utilise the address space, allowing larger heaps and stacks: * There is now the potential for up to 2.75GB dynamic space on FreeBSD, and 1.75GB on linux. Since GENCGC statically allocates page tables the default size is set at just 1GB. * The Read-only and Static spaces have been increased to 256MB allowing larger heaps to be purified. The Read-only and Static spaces are in the same locations for both the FreeBSD and Linux ports to avoid unnecessary binary incompatibility. * The Control stack and Binking stack now have room for upto 128MB, supporting deeply nested algorithms, and potentially giving room for subdivision for thread stacks. * There is a reserve for the FreeBSD static libraries in the event that the FreeBSD lisp binary is dynamically linked, and the foreign segment size for FreeBSD is now 32MB, up from just 4MB. * There is now significantly more room for C allocated memory, roughly 128M on Linux and 224M on FreeBSD.
Increase the default read-only space size by 8MB because non-:small cores loaded with subsystems can grow rather large.
Update for the linux port from Peter VanEynde, adds preliminary support for glibc2.
Increase the read-only space size to 32MB under GENCGC as code is move here and it can fill up with a big core.
Conservative generational garbage collection for the x86 port.
source kit 1.03.7
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|