/[cmucl]/src/lisp/FreeBSD-os.c
ViewVC logotype

Log of /src/lisp/FreeBSD-os.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Links to dynamic-extent-base: (view) (annotate)
Sticky Tag:

Revision 1.10 - (view) (annotate) - [select for diffs]
Sun Mar 23 21:23:41 2003 UTC (11 years ago) by gerd
Branch: MAIN
CVS Tags: amd64-merge-start, dynamic-extent-base, lisp-executable-base, mod-arith-base, ppc_gencgc_snap_2005-05-14, prm-before-macosx-merge-tag, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, release-19b-base, release-19b-pre1, release-19b-pre2, remove_negative_zero_not_zero, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02, snapshot-2005-03, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09, sparc_gencgc, sparc_gencgc_merge
Branch point for: dynamic-extent, lisp-executable, mod-arith-branch, ppc_gencgc_branch, release-19a-branch, release-19b-branch, sparc_gencgc_branch
Changes since 1.9: +105 -89 lines
Diff to previous 1.9
	Optional control stack checking.  This is controlled by the
	feature :stack-checking because it's not implemented for other
	systems/architectures yet.  It is currently known to work on
	FreeBSD 4.8-RC/x86 and Debian 2.2.20/x86.

	* bootfiles/18e/boot3.lisp: New boot file, well, only a
	description of the boot procedure since no boot file is needed.

	* lisp/x86-validate.h (SIGNAL_STACK_START, SIGNAL_STACK_SIZE)
	[__FreeBSD__, __linux__]: New defines.
	(CONTROL_STACK_SIZE) {__FreeBSD__, __linux__]:
	Adjust for signal stack.

	* lisp/validate.c (validate) [RED_ZONE_HIT]: Call
	os_guard_control_stack.  Some cleanup.

	* lisp/os.h (BOTH_ZONES, YELLOW_ZONE, RED_ZONE): New enums.
	Add function prototypes.

	* lisp/interrupt.c (interrupt_install_low_level_handler)
	[RED_ZONE_HIT]: Deliver protection violations on a dedicated
	signal stack.

	* lisp/os-common.c (os_stack_grows_down_1, os_stack_grows_down):
	New functions.
	(guard_zones, control_stack_zone, os_guard_control_stack)
	(os_control_stack_overflow) [RED_ZONE_HIT]: New functions.
	(os_control_stack_overflow) [!RED_ZONE_HIT]: Dummy function.

	* lisp/Linux-os.c (sigsegv_handler) [RED_ZONE_HIT]: Handle control
	stack overflows.

	* lisp/FreeBSD-os.c: General cleansing.
	(sigbus_handler) [RED_ZONE_HIT]: Handle control stack overflows.

	* lisp/FreeBSD-os.h (PROTECTION_VIOLATION_SIGNAL): New define.

	* lisp/Linux-os.h (PROTECTION_VIOLATION_SIGNAL): New define.

	* compiler/x86/system.lisp (lisp::%scrub-control-stack): Change
	defknown from sys:scrub-control-stack.
	(%scrub-control-stack): Rename VOP.

	* code/lispinit.lisp (os-guard-control-stack) [#+stack-checking]:
	Define alien os_guard_control_stack.
	(%scrub-control-stack) [#+x86]: New function.
	(scrub-control-stack) [#+x86]: Call %scrub-control-stack,
	call os-guard-control-stack if #+stack-checking.

	* code/interr.lisp (yellow-zone-hit,
	red-zone-hit) [#+stack-checking]: New functions.

	* code/error.lisp (stack-overflow) [#+stack-checking]: New
	condition.

	* compiler/generic/new-genesis.lisp (finish-symbols)
	[#+stack-checking]: Add symbols for control stack checking.

	* compiler/x86/parms.lisp (static-symbols): Likewise.

Revision 1.9 - (view) (annotate) - [select for diffs]
Wed Aug 28 07:16:38 2002 UTC (11 years, 7 months ago) by moore
Branch: MAIN
CVS Tags: UNICODE-BASE, cold-pcl-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2
Branch point for: UNICODE-BRANCH, cold-pcl, release-18e-branch
Changes since 1.8: +3 -3 lines
Diff to previous 1.8
Fix foregin object braindamage noted by Pierre Mai.

Revision 1.8 - (view) (annotate) - [select for diffs]
Tue Aug 27 22:18:30 2002 UTC (11 years, 7 months ago) by moore
Branch: MAIN
CVS Tags: LINKAGE_TABLE
Changes since 1.7: +21 -1 lines
Diff to previous 1.7
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.

Revision 1.7 - (view) (annotate) - [select for diffs]
Wed Mar 13 08:02:04 2002 UTC (12 years, 1 month ago) by moore
Branch: MAIN
CVS Tags: PRE_LINKAGE_TABLE
Changes since 1.6: +7 -1 lines
Diff to previous 1.6
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.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue Oct 24 13:32:30 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.5: +3 -3 lines
Diff to previous 1.5
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.

Revision 1.5 - (view) (annotate) - [select for diffs]
Mon Nov 29 17:04:07 1999 UTC (14 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.4: +69 -82 lines
Diff to previous 1.4
Source cleanup.

Revision 1.4 - (view) (annotate) - [select for diffs]
Wed Aug 25 14:25:06 1999 UTC (14 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.3: +10 -33 lines
Diff to previous 1.3
Improve the packing of information into the page table, reducing the
table size by 25%, and move to a fixed layout of the page flags to
better support future atomic operations for threaded code.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Feb 25 12:41:02 1999 UTC (15 years, 1 month ago) by pw
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2
Minor change to #include validate.h instead of x86-validate.h

Revision 1.2 - (view) (annotate) - [select for diffs]
Tue Nov 25 17:59:16 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.1: +66 -87 lines
Diff to previous 1.1
Conservative generational garbage collection for the x86 port.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Jan 21 00:28:13 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
CVS Tags: RELEASE_18a
Branch point for: RELENG_18
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.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5