summaryrefslogtreecommitdiffstats
path: root/build.scm
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:34 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:34 -0800
commit50eb784bfcf15ee3c6b0b53d747db92673395040 (patch)
tree60f039bb5aa27bc58d92ab0c7bab0d82dbfe7686 /build.scm
parentae2b295c7deaf2d7c18ad1ed9b6050970e56bae7 (diff)
downloadscm-50eb784bfcf15ee3c6b0b53d747db92673395040.tar.gz
scm-50eb784bfcf15ee3c6b0b53d747db92673395040.zip
Import Upstream version 5e3upstream/5e3
Diffstat (limited to 'build.scm')
-rw-r--r--build.scm43
1 files changed, 30 insertions, 13 deletions
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))))