Skip to content
  1. Sep 01, 2012
    • Raymond Toy's avatar
      Clean up RCS ids · eeab7066
      Raymond Toy authored
       * Get rid of the RCS Header stuff.  They're meaningless in git.
       * Add public domain comment to some of the files if the only comment
         was the RCS header.
      eeab7066
  2. Nov 04, 2011
  3. Sep 24, 2011
    • Raymond Toy's avatar
      Fix Trac ticket:46. · 44a8f0c7
      Raymond Toy authored
      Make the size of all spaces configurable from the command line.
      
      code/commandline.lisp:
      o Define the switches so lisp doesn't complain.
      
      general-info/lisp.1:
      o Document new switches.
      
      general-info/release-20c.txt:
      o Update
      
      lisp/Darwin-os.c
      lisp/FreeBSD-os.c
      lisp/Linux-os.c
      lisp/NetBSD-os.c
      lisp/backtrace.c
      lisp/cgc.c
      lisp/gencgc.c
      lisp/os-common.c
      lisp/ppc-validate.h
      lisp/purify.c
      lisp/solaris-os.c
      lisp/sparc-arch.c
      lisp/sparc-validate.h
      lisp/x86-validate.h:
      lisp/validate.c
      o Basically rename CONTROL_STACK_SIZE, BINDING_STACK_SIZE,
        READ_ONLY_SPACE_SIZE, and STATIC_SPACE_SIZE to control_stack_size,
        binding_stack_size, read_only_space_size, and static_space_size,
        respectively.
      
      lisp/coreparse.c
      o Check the space size in the core file against the allocated size.
        If the allocated space is too small, print an error message and
        exit.
      
      lisp/globals.c
      o Define new variables for the allocated size of spaces.
      
      lisp/globals.h
      o Declare the new variables for the size of the spaces.
      
      lisp/lisp.c
      o Set the default values of the spaces.
      o Parse the new command-line flags and set the space sizes.
      
      lisp/sunos-os.c:
      o Added os_init0 (that we forgot last time).
      
      lisp/x86-assem.S:
      o Change $CONTROL_STACK_END to GNAME(control_stack_end) to get the
        correct end of the stack.
      44a8f0c7
  4. Sep 01, 2011
    • rtoy's avatar
      Add os_init0 to allow for some really early OS inits. · dafb9e03
      rtoy authored
      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.
      dafb9e03
  5. Dec 26, 2010
  6. Sep 08, 2010
  7. Sep 07, 2010
  8. Jun 27, 2010
  9. Feb 01, 2010
    • rtoy's avatar
      Linux-os.c: · 0f0aed07
      rtoy authored
      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 *.
      0f0aed07
    • rtoy's avatar
      Patch from Stelian Ionescu on cmucl-imp, 2010/02/01: · 911be032
      rtoy authored
          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.
      911be032
  10. Oct 15, 2009
  11. Jun 11, 2009
  12. Jan 20, 2009
  13. Jan 06, 2009
    • agoncharov's avatar
      · c2323072
      agoncharov authored
      * code/exports.lisp -- Added a missing quote characher.
      * lisp/FreeBSD-os.c -- Fixed the switch to the SSE2 mode, in line with other OSes.
      * lisp/Linux-os.c -- Fixed a comment (sse != sse2)
      c2323072
  14. Dec 10, 2008
  15. Dec 07, 2008
    • agoncharov's avatar
      FreeBSD-os.c: · 249dadb0
      agoncharov authored
         Added SSE2 support to `os_sigcontext_fpu_modes' and `restore_fpu'
         -- essentially fixing the trap handling.  This includes changing
         the way FP state control and status words are combined in the
         returned value -- this is now in line with the way this return
         value is built on Linux and Darwin.
      
      Config.FreeBSD_gencgc:
      
        Added SSE2 support and did general maintenance/reorganization while
        I was there.
      249dadb0
    • agoncharov's avatar
      Get rid of the annoying gcc warning: "dereferencing type-punned · 0faa382f
      agoncharov authored
      pointer will break strict-aliasing rules".
      0faa382f
  16. Sep 16, 2008
  17. Mar 18, 2008
    • cshapiro's avatar
      The FreeBSD-os.h header imported headers that its definitions did not · 86957330
      cshapiro authored
      make direct use of.  Remove the includes of these headers and fix-up
      several files that indirectly depended on them.
      
      * FreeBSD-os.c - add stdio.h and unistd.h includes that were
        implicitly depended on.  Remove unused or commented system includes.
      
      * FreeBSD-os.h - remove unused includes.  Include signal.h to directly
        provide the SIGBUS, SIGSEGV, and sub-code definitions.  Redefine
        os_vm_address_t and os_vm_size_t in terms of standard types.  Now
        that the sys/param.h include is gone we no longer need to undefine
        PAGE_SIZE.
      
      * elf.c - add includes that were implicitly depended on.
      
      * lisp.c - remove unused system includes including sys/param.h which
        redefines PAGE_SIZE.
      86957330
  18. Jan 03, 2008
    • cshapiro's avatar
      Switch the FreeBSD port to use the common floating point trap handling · 9495c516
      cshapiro authored
      code.  Rather than introduce a new FreeBSD case to the x86 sigcontext
      member accessor routines, collapse all of the system specific routines
      down to a common set of routines.
      
      * code/debug-int.lisp - Disable some Darwin-specific code to debug
        NULL mcontext pointers.
      
      * code/float-trap.lisp - Remove ancient FreeBSD-specific code for
        handling floating point signals.
      
      * code/macros.lisp, code/sap.lisp, compiler/saptran.lisp - Include the
        SAP-REF-LONG setter by default on the x86.
      
      * code/x86-vm.lisp - Remove operating system specific sigcontext
        definitions and sigcontext accessors.  Define the alien sigcontext
        as a system area pointer.  Replace the sigcontext accessors with
        foreign function calls that mask the complexity of the underlying
        sigcontext member access.
      
      * compiler/x86/float.lisp - Unconditionally define STORE-LONG-FLOAT.
        This function is used by the %SET-SAP-REF-LONG VOP that underlies
        the SAP-REF-LONG setter.
      
      * compiler/x86/sap.lisp - Unconditionally define %SET-SAP-REF-LONG.
        In the case where there is not a distinct LONG-FLOAT type, admit
        DOUBLE-FLOAT values instead.  The x87 automatically widens values
        pushed onto stack.  This mirrors the behavior of the SAP-REF-LONG
        VOP.
      
      * lisp/Darwin-os.c, lisp/Linux-os.c - Define functions to access
        sigcontext members of interest to Lisp.  Delete the sc_reg function
        and replace its uses with os_sigcontext_reg which is more suitably
        typed.
      
      * lisp/FreeBSD-os.c - Define functions to access sigcontext members of
        interest to Lisp.  We need to be careful about the SSE and non-SSE
        cases for retrieving x87 registers from the saved machine state.
        Define a low-level SIGFPE handler to intercept floating point traps
        and restore the cleared status word bits based on the signal code.
        Get rid of sc_reg for the reasons noted above.
      
      * lisp/Darwin-os.h, lisp/FreeBSD-os.h - Declare the restore_fpu
        function and define a specialized RESTORE_FPU macro.  Remove the
        sc_reg prototype.
      
      * lisp/Linux-os.h - Remove the sc_reg prototype.
      
      * lisp/os.h - Add prototypes for the new os_sigcontext functions.
      
      * lisp/x86-lispregs.h - Redefine SC_REG and SC_PC to expand out to the
        new os_sigcontext functions.  Redfine SC_SP to expand out to SC_REG.
        Eliminate all platform-specific defintions of SC_PC and SC_SP.
      9495c516
  19. Dec 06, 2007
    • cshapiro's avatar
      Minor changes to support the latest betas of FreeBSD 7. · 27bc1a7b
      cshapiro authored
      * Update the Config file to detect the GCC version at build time and
        use -iquote instead of -I- if we are not using GCC 2 or 3.  This
        silences the unsilenceable deprecation message emitted by GCC 4.
      
      * Check the FreeBSD version at compile time and switch the protection
        violation signal to SIGSEGV if we are on a version of FreeBSD 7 that
        will deliver a SIGSEGV instead of a SIGBUS for access errors.
      
      * Install sigbus_handler to handle whatever UNIX signal the macro
        PROTECTION_VIOLATION_SIGNAL expands to.  Get rid of the useless
        sigsegv_handler.  Add the PROTECTION_VIOLATION_CODE macro so we do
        not have to conditionalize the check that guards the write barrier
        code.
      27bc1a7b
  20. Jul 31, 2007
  21. Jul 30, 2007
  22. Jul 15, 2007
  23. Jun 12, 2007
  24. Jun 10, 2007
  25. Nov 07, 2006
  26. May 30, 2006
  27. Sep 15, 2005
  28. Mar 23, 2003
    • gerd's avatar
      Optional control stack checking. This is controlled by the · 670d643f
      gerd authored
      	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.
      670d643f
  29. Aug 28, 2002
    • moore's avatar
      · d31f5d1a
      moore authored
      Fix foregin object braindamage noted by Pierre Mai.
      d31f5d1a
  30. Aug 27, 2002
    • moore's avatar
      · bf84be07
      moore authored
      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.
      bf84be07
  31. Mar 13, 2002
    • moore's avatar
      · c90d3517
      moore authored
      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.
      c90d3517
  32. Oct 24, 2000
    • dtc's avatar
      o Add the command line switch -dynamic-space-size for setting the size · a7070998
      dtc authored
        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.
      a7070998
  33. Nov 29, 1999
  34. Aug 25, 1999
  35. Feb 25, 1999
  36. Nov 25, 1997