-;;; stomping on an address range that the dynamic libraries want to use.
-;;; (They want to use this address range even if we try to reserve it
-;;; with a call to validate() as the first operation in main().)
-#!-linux (defparameter *target-read-only-space-start* #x10000000)
-#!-linux (defparameter *target-static-space-start*
- ;; FIXME: was #x28000000 until RAW's RUN-PROGRAM
- ;; patches, why the change?
- #x30000000)
-#!-linux (defparameter *target-dynamic-space-start* #x48000000)
-#!+linux (defparameter *target-read-only-space-start* #x01000000)
-#!+linux (defparameter *target-static-space-start* #x05000000)
-#!+linux (defparameter *target-dynamic-space-start* #x09000000)
+;;; stomping on an address range that the dynamic libraries want to
+;;; use. (They want to use this address range even if we try to
+;;; reserve it with a call to validate() as the first operation in
+;;; main().)
+;;; * For NetBSD 2.0, the following ranges are used by normal
+;;; executables and mmap:
+;;; ** Executables are (by default) loaded at 0x08048000.
+;;; ** The break for the sbcl runtime seems to end around 0x08400000
+;;; We set read only space around 0x20000000, static
+;;; space around 0x30000000, all ending below 0x37fff000
+;;; ** ld.so and other mmap'ed stuff like shared libs start around
+;;; 0x48000000
+;;; We set dynamic space between 0x60000000 and 0x98000000
+;;; ** Bottom of the stack is typically not below 0xb0000000
+;;; FYI, this can be looked at with the "pmap" program, and if you
+;;; set the top-down mmap allocation option in the kernel (not yet
+;;; the default), all bets are totally off!
+
+#!+linux
+(progn
+ (def!constant read-only-space-start #x01000000)
+ (def!constant read-only-space-end #x037ff000)
+
+ (def!constant static-space-start #x05000000)
+ (def!constant static-space-end #x07fff000)
+
+ (def!constant dynamic-space-start #x09000000)
+ (def!constant dynamic-space-end #x29000000)
+
+ (def!constant linkage-table-space-start #x70000000)
+ (def!constant linkage-table-space-end #x7ffff000))
+
+#!+freebsd
+(progn
+ (def!constant read-only-space-start #x10000000)
+ (def!constant read-only-space-end #x1ffff000)
+
+ (def!constant static-space-start #x30000000)
+ (def!constant static-space-end #x37fff000)
+
+ (def!constant dynamic-space-start #x48000000)
+ (def!constant dynamic-space-end #x88000000)
+
+ ;; In CMUCL: 0xB0000000->0xB1000000
+ (def!constant linkage-table-space-start #x90000000)
+ (def!constant linkage-table-space-end #x91000000))
+
+#!+openbsd
+(progn
+ (def!constant read-only-space-start #x40000000)
+ (def!constant read-only-space-end #x47fff000)
+
+ (def!constant static-space-start #x50000000)
+ (def!constant static-space-end #x5ffff000)
+
+ (def!constant dynamic-space-start #x80000000)
+ (def!constant dynamic-space-end #xA0000000)
+
+ ;; In CMUCL: 0xB0000000->0xB1000000
+ (def!constant linkage-table-space-start #xA0000000)
+ (def!constant linkage-table-space-end #xA1000000))
+
+#!+netbsd
+(progn
+ (def!constant read-only-space-start #x20000000)
+ (def!constant read-only-space-end #x2ffff000)
+
+ (def!constant static-space-start #x30000000)
+ (def!constant static-space-end #x37fff000)
+
+ (def!constant dynamic-space-start #x60000000)
+ (def!constant dynamic-space-end #x98000000)
+
+ ;; In CMUCL: 0xB0000000->0xB1000000
+ (def!constant linkage-table-space-start #xA0000000)
+ (def!constant linkage-table-space-end #xA1000000))
+
+;;; Size of one linkage-table entry in bytes.
+(def!constant linkage-table-entry-size 8)