From 50eb784bfcf15ee3c6b0b53d747db92673395040 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:34 -0800 Subject: Import Upstream version 5e3 --- build.scm | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) (limited to 'build.scm') diff --git a/build.scm b/build.scm index 664eb28..52af8ac 100644 --- a/build.scm +++ b/build.scm @@ -89,6 +89,8 @@ ("setjump.mar" Vax-asm platform-specific "provides setjump and longjump which do not use $unwind utility on VMS.") ("ugsetjump.s" gnu-as platform-specific "provides setjump and longjump which work on Ultrix VAX.") ("setjump.s" Cray-asm platform-specific "provides setjump and longjump for the Cray YMP.") + ("continue-ia64.S" gnu-as platform-specific "replaces make_root_continuation(), make_continuation(), and dynthrow() in continue.c") + ("get-contoffset-ia64.c" c-source platform-specific "makes contoffset-ia64.S for inclusion by continue-ia64.S") ("Init.scm" Scheme core "Scheme initialization.") ("Transcen.scm" Scheme core "inexact builtin procedures.") ("Link.scm" Scheme core "Dynamic link/loading.") @@ -197,12 +199,12 @@ 'careful-interrupt-masking '((define "CAREFUL_INTS"))) -#;Turns on the features @samp{cautious}, -#;@samp{careful-interrupt-masking}, and @samp{stack-limit}; uses +#;Turns on the features @samp{cautious} and +#;@samp{careful-interrupt-masking}; uses #;@code{-g} flags for debugging SCM source code. (define-build-feature 'debug - '((c-lib debug) (features cautious careful-interrupt-masking stack-limit))) + '((c-lib debug) (features cautious careful-interrupt-masking))) #;If your scheme code runs without any errors you can disable almost #;all error checking by compiling all files with @samp{reckless}. @@ -210,15 +212,6 @@ 'reckless '((define "RECKLESS"))) -#;Use to enable checking for stack overflow. Define value of the C -#;preprocessor variable @var{STACK_LIMIT} to be the size to which SCM -#;should allow the stack to grow. STACK_LIMIT should be less than the -#;maximum size the hardware can support, as not every routine checks the -#;stack. -(define-build-feature - 'stack-limit - '((define ("STACK_LIMIT" "(HEAP_SEG_SIZE/2)")))) - #;C level support for hygienic and referentially transparent macros #;(syntax-rules macros). (define-build-feature @@ -412,6 +405,13 @@ 'no-heap-shrink '((define "DONT_GC_FREE_SEGMENTS"))) +#;SCM normally converts references to local variables to ILOCs, which +#;make programs run faster. If SCM is badly broken, try using this +#;option to disable the MEMOIZE_LOCALS feature. +(define-build-feature + 'dont-memoize-locals + '((define "DONT_MEMOIZE_LOCALS"))) + #;If you only need straight stack continuations, executables compile with #;this feature will run faster and use less storage than not having it. #;Machines with unusual stacks @emph{need} this. Also, if you incorporate @@ -440,6 +440,7 @@ ((also-runs processor-family)) ((*unknown* #f) (i8086 #f) + (ia64 #f) (acorn #f) (alpha #f) (cray #f) @@ -489,6 +490,7 @@ (irix mips irix gcc ) ;gcc (linux i386 linux gcc ) ;gcc (linux-aout i386 linux gcc ) ;gcc + (linux-ia64 ia64 linux gcc ) ;gcc (darwin powerpc unix cc ) ;gcc (microsoft-c i8086 ms-dos cl ) ;link (microsoft-c-nt i386 ms-dos cl ) ;link @@ -1073,6 +1075,21 @@ (append objects libs))) oname))) +(defcommand link-c-program linux-ia64 + (lambda (oname objects libs parms) + (and (and (batch:try-command + parms "gcc -o get-contoffset-ia64 get-contoffset-ia64.c") + (batch:try-command + parms "./get-contoffset-ia64 contoffset-ia64.S") + (batch:try-command + parms "gcc -c continue-ia64.S")) + (batch:try-command + parms "gcc" "-rdynamic" "-o" oname "continue-ia64.o" + (must-be-first + '("pre-crt0.o" "ecrt0.o" "/usr/lib/crt0.o") + (append objects libs))) + oname))) + (defcommand compile-c-files unicos (lambda (files parms) (and (batch:try-chopped-command @@ -2040,7 +2057,7 @@ (define (logger . args) (define cep (current-error-port)) - (for-each (lambda (x) (display #\ cep) (display x cep)) + (for-each (lambda (x) (display #\space cep) (display x cep)) (cond ((provided? 'bignum) (require 'posix-time) (let ((ct (ctime (current-time)))) -- cgit v1.2.3