Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
cmucl
cmucl
Commits
dbf7c0af
Commit
dbf7c0af
authored
Aug 29, 2017
by
Raymond Toy
Browse files
Merge branch 'rtoy-fix-40-map-heap-higher' into 'master'
Fix
#40
: Move start of heap space higher Closes
#40
See merge request
!21
parents
2830e140
aba0bc5c
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/bootfiles/21b/boot-2017-04-1.lisp
0 → 100644
View file @
dbf7c0af
;; Bootstrap file for linuu to move the heap to a higher address so
;; that executables will work on newer OSes, as mentioned in issue
;; #40.
;;
;; Use "bin/build.sh -B boot-2017-04" to build this.
;;
;; Also need to move the foreign linkage start to a different address
;; because this also overlaps where the C code is placed in an
;; executable image.
;;
;; This reduces the max total heap space on older systems, but it
;; looks like newer systems have the C libraries and stack mapped at a
;; much higher address.
#+
linux
(
setf
(
c::backend-foreign-linkage-space-start
c::*target-backend*
)
#x5f000000
)
#+
linux
(
handler-bind
((
error
(
lambda
(
c
)
(
declare
(
ignore
c
))
(
invoke-restart
'continue
))))
(
defconstant
vm::target-foreign-linkage-space-start
(
c:backend-foreign-linkage-space-start
c::*target-backend*
))
(
defconstant
vm::target-dynamic-space-start
#x60000000
))
src/compiler/x86/parms.lisp
View file @
dbf7c0af
...
...
@@ -64,7 +64,7 @@
(
setf
(
backend-page-size
*target-backend*
)
4096
)
(
setf
(
c::backend-foreign-linkage-space-start
*target-backend*
)
#+
linux
#x5
8
000000
#+
linux
#x5
f
000000
#+
solaris
#x30000000
#-
(
or
linux
solaris
)
#xB0000000
(
c::backend-foreign-linkage-entry-size
*target-backend*
)
...
...
@@ -235,7 +235,7 @@
#+
FreeBSD
#x28F00000
#-
FreeBSD
#x28000000
)
(
defconstant
target-dynamic-space-start
#+
linux
#x
581
00000
#+
linux
#x
600
00000
#+
solaris
#x40000000
#-
(
or
linux
solaris
)
#x48000000
)
(
defconstant
target-foreign-linkage-space-start
...
...
src/lisp/x86-validate-linux.h
View file @
dbf7c0af
...
...
@@ -37,6 +37,24 @@
* However, Fedora 22 ther appears to be nothing mapped there. In
* fact it appears to be free all the way to 0xf7c1b000. That would
* allow a heap of size 2555 MB.
*
* On even newer OSes like Ubuntu 17.04, the map looks something like
*
* 0x00000000->0x10000000 128M ?
* 0x10000000->0x20000000 256M Read-Only Space.
* 0x20000000->0x28000000 128M Binding stack growing up.
* 0x28000000->0x38000000 256M Static Space.
* 0x38000000-> ?
* 0x56555000-> C space
* 0xf7dfe000-> [anon]
* 0xf7e00000->0xf7fb4000 libc.so
* 0xf7fb5000->0xf7fd9000 [anon]
* 0xf7fd9000->0xf7ffd000 ld.so
* 0xfffdd000-> [stack]
*
* There's a potential clash if the lisp heap is mapped near
* 0x58100000 as shown above. This happens if a lisp exectuable image
* is created.
*/
#define READ_ONLY_SPACE_START (SpaceStart_TargetReadOnly)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment