ViewVC logotype

Log of /src/lisp/x86-validate.h

Parent Directory Parent Directory | Revision Log Revision Log

Links to HEAD: (view) (annotate)
Links to cross-sol-x86-branch: (view) (annotate)
Sticky Tag:

Revision - (view) (annotate) - [select for diffs]
Wed Dec 15 12:43:46 2010 UTC (3 years, 4 months ago) by rtoy
Branch: cross-sol-x86-branch
CVS Tags: cross-sol-x86-2010-12-20
Changes since +19 -1 lines
Diff to previous , to branch point 1.31 , to next main 1.34
Move the spaces around a bit.

o Move the linkage space to #x30000000, which is in the gap between
  the static space and the control stack.

o Document the memory map for Solaris.
o Set the altstack to the end of the control stack.

Revision - (view) (annotate) - [select for diffs]
Tue Dec 14 04:25:11 2010 UTC (3 years, 4 months ago) by rtoy
Branch: cross-sol-x86-branch
Changes since 1.31: +29 -2 lines
Diff to previous 1.31
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.

o New cross-compile script to use darwin/x86 to cross-compile to

o For now, put thel linkage space start at 0xc0000000 on Solaris/x86.

o Separate out the common parts between Solaris sparc and x86.  Move
  the different parts into the appropriate file.

o Add ASSEM_SRC and ARCH_SRC here, with the appropriate OS_SRC,

o New file for building solaris/x86 using Sun C (aka Sun Studio aka
  Solaris Studio)

o Use a static array for the altstack.  Should eventually do what
  other x86 platforms do.

o Don't need os_flush_icache on x86 (?), so make the body empty for
o Add x86 version of os_sigcontext_reg and os_sigcontext_pc.

o The pagesize is 4096 on x86 instead of 8192.
o Don't need (?) SAVE_CONTEXT.

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.

o Add entry for Solaris.  This needs work, but it looks like these
  values will work.

Revision 1.31 - (view) (annotate) - [select for diffs]
Fri May 21 19:26:53 2010 UTC (3 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_20b, cross-sol-x86-base, cross-sparc-branch-base, release-20b-pre1, release-20b-pre2, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch, sparc-tramp-assem-branch
Changes since 1.30: +10 -1 lines
Diff to previous 1.30
o Maximum dynamic space size for darwin was too large.

o Update.

Revision 1.30 - (view) (annotate) - [select for diffs]
Mon Feb 1 16:12:04 2010 UTC (4 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: intl-2-branch-base, intl-branch-2010-03-18-1300, intl-branch-base, intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000, post-merge-intl-branch, pre-merge-intl-branch, snapshot-2010-03, snapshot-2010-04, snapshot-2010-05
Branch point for: intl-2-branch, intl-branch
Changes since 1.29: +8 -8 lines
Diff to previous 1.29
o For DARWIN (and NetBSD), use the SpaceStart_* values for the
  starting addresses.
o Make DYNAMIC_SPACE_SIZE an unsigned to get rid of an overflow
  warning when compiling.

Revision 1.29 - (view) (annotate) - [select for diffs]
Fri Dec 18 04:03:24 2009 UTC (4 years, 4 months ago) by agoncharov
Branch: MAIN
CVS Tags: snapshot-2010-01, snapshot-2010-02
Changes since 1.28: +6 -6 lines
Diff to previous 1.28
of (FresBSD+) Get rid of gcc warnings: int != ulong; char *strdup() != int strdup; lisp space

Revision 1.28 - (view) (annotate) - [select for diffs]
Fri Jul 6 08:04:39 2007 UTC (6 years, 9 months ago) by cshapiro
Branch: MAIN
CVS Tags: RELEASE_19f, RELEASE_20a, amd64-dd-start, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, pre-telent-clx, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-string-buffer-base, unicode-string-buffer-impl-base, unicode-utf16-base, unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-extfmts-sync-2008-12, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11, unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, amd64-dd-branch, portable-clx-branch, release-19e-branch, sse2-branch, sse2-packed-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.27: +4 -4 lines
Diff to previous 1.27
Import x86 Darwin port.

Revision 1.27 - (view) (annotate) - [select for diffs]
Tue May 1 15:35:09 2007 UTC (6 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2007-06, snapshot-2007-07
Changes since 1.26: +5 -3 lines
Diff to previous 1.26
Update comments because the foreign linkage space and dynamic space
start have changed in compiler/x86/parms.lisp.

Revision 1.26 - (view) (annotate) - [select for diffs]
Wed Mar 28 02:18:20 2007 UTC (7 years ago) by fgilham
Branch: MAIN
CVS Tags: snapshot-2007-04, snapshot-2007-05
Changes since 1.25: +2 -2 lines
Diff to previous 1.25
Fix FreeBSD's dynamic space size limit to be 1.7 GB.

Revision 1.25 - (view) (annotate) - [select for diffs]
Thu Sep 15 18:26:53 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, release-19c, release-19c-base, release-19c-pre1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19c-branch, release-19d-branch
Changes since 1.24: +34 -34 lines
Diff to previous 1.24
Indent all source files using GNU indent using the config in

Revision 1.24 - (view) (annotate) - [select for diffs]
Fri Mar 18 17:56:56 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: release-19b-base, release-19b-pre1, release-19b-pre2, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09
Branch point for: release-19b-branch
Changes since 1.23: +2 -2 lines
Diff to previous 1.23
DYNAMIC_SPACE_SIZE was too large and causes the heap to overlap
foreign linkage space.  Make it smaller.

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Jan 13 19:55:01 2005 UTC (9 years, 3 months ago) by fgilham
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, snapshot-2005-02, snapshot-2005-03
Branch point for: ppc_gencgc_branch
Changes since 1.22: +6 -1 lines
Diff to previous 1.22
Add #ifndef _FOO_H_ etc. lines to all .h files.  Moved a few lines in
lisp.c into the correct <foo>-os.h files.

Revision 1.22 - (view) (annotate) - [select for diffs]
Thu Jul 8 03:18:15 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: prm-before-macosx-merge-tag, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01
Changes since 1.21: +2 -2 lines
Diff to previous 1.21
More compiler warning fixes:

* purify.c: fixup up fprintf warnings
* x86-validate.h:  LinkageSpaceStart is an unsigned, so cast it.

Revision 1.21 - (view) (annotate) - [select for diffs]
Wed Jul 7 15:13:05 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.20: +14 -3 lines
Diff to previous 1.20
Correct some comments for NetBSD memory map.

Revision 1.20 - (view) (annotate) - [select for diffs]
Wed Jul 7 15:03:12 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.19: +36 -5 lines
Diff to previous 1.19
Changes from Robert Swindells to support NetBSD.

Revision 1.19 - (view) (annotate) - [select for diffs]
Fri Jan 16 03:32:21 2004 UTC (10 years, 3 months ago) by toy
Branch: MAIN
CVS Tags: amd64-merge-start, mod-arith-base, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07
Branch point for: mod-arith-branch, release-19a-branch
Changes since 1.18: +34 -27 lines
Diff to previous 1.18
Update comments on address spaces.

Revision 1.18 - (view) (annotate) - [select for diffs]
Fri Jan 16 03:04:46 2004 UTC (10 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.17: +7 -6 lines
Diff to previous 1.17
Get the starting addresses of spaces from Lisp via internals.h instead of
being defined here and in a Lisp file.

Revision 1.17 - (view) (annotate) - [select for diffs]
Sun Mar 23 21:23:41 2003 UTC (11 years ago) by gerd
Branch: MAIN
CVS Tags: dynamic-extent-base, lisp-executable-base, remove_negative_zero_not_zero, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, sparc_gencgc, sparc_gencgc_merge
Branch point for: dynamic-extent, lisp-executable, sparc_gencgc_branch
Changes since 1.16: +9 -5 lines
Diff to previous 1.16
	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

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

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

Revision 1.16 - (view) (annotate) - [select for diffs]
Tue Aug 27 22:18:34 2002 UTC (11 years, 7 months ago) by moore
Branch: MAIN
CVS Tags: LINKAGE_TABLE, 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.15: +9 -1 lines
Diff to previous 1.15
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.15 - (view) (annotate) - [select for diffs]
Wed Mar 13 08:02:05 2002 UTC (12 years, 1 month ago) by moore
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14
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.14 - (view) (annotate) - [select for diffs]
Mon Jan 28 20:17:12 2002 UTC (12 years, 2 months ago) by pmai
Branch: MAIN
Changes since 1.13: +3 -3 lines
Diff to previous 1.13
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.

Revision 1.13 - (view) (annotate) - [select for diffs]
Thu Dec 6 19:15:46 2001 UTC (12 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.12: +35 -1 lines
Diff to previous 1.12
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.

Revision 1.12 - (view) (annotate) - [select for diffs]
Tue Oct 24 13:32:32 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.11: +4 -2 lines
Diff to previous 1.11
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.11 - (view) (annotate) - [select for diffs]
Thu Sep 16 15:40:11 1999 UTC (14 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.10: +6 -7 lines
Diff to previous 1.10
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.

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Nov 13 04:39:42 1998 UTC (15 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.9: +5 -4 lines
Diff to previous 1.9
Reworking of the linux address map to support larger heaps,
and bringing it closer to the FreeBSD map. From Raymond Toy.

Revision 1.9 - (view) (annotate) - [select for diffs]
Thu Sep 17 10:54:23 1998 UTC (15 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.8: +29 -16 lines
Diff to previous 1.8
Back-out the address map changes for Linux. Only FreeBSD now uses a new
address space.

Revision 1.8 - (view) (annotate) - [select for diffs]
Tue Sep 1 13:00:44 1998 UTC (15 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7
Fix a typo in the CONTROL_STACK_START for linux.

Revision 1.7 - (view) (annotate) - [select for diffs]
Sun Aug 30 04:56:49 1998 UTC (15 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.6: +59 -31 lines
Diff to previous 1.6
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.

Revision 1.6 - (view) (annotate) - [select for diffs]
Wed May 27 03:20:22 1998 UTC (15 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.5: +2 -2 lines
Diff to previous 1.5
Increase the default read-only space size by 8MB because non-:small
cores loaded with subsystems can grow rather large.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri May 1 01:21:42 1998 UTC (15 years, 11 months ago) by dtc
Branch: MAIN
Changes since 1.4: +1 -0 lines
Diff to previous 1.4
Update for the linux port from Peter VanEynde, adds preliminary
support for glibc2.

Revision 1.4 - (view) (annotate) - [select for diffs]
Wed Dec 17 23:00:55 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.3: +7 -3 lines
Diff to previous 1.3
Increase the read-only space size to 32MB under GENCGC as code is move
here and it can fill up with a big core.

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

Revision 1.2 - (view) (annotate) - [select for diffs]
Tue Feb 18 01:14:31 1997 UTC (17 years, 2 months ago) by dtc
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.1: +1 -0 lines
Diff to previous 1.1

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
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