<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>

</head>
<body>
<style type="text/css">
img {
max-width: 100%; height: auto;
}
</style>
<div class="content">
<h3>
Raymond Toy pushed to branch rtoy-mmap-anon-control-and-binding-stacks
at <a href="https://gitlab.common-lisp.net/cmucl/cmucl">cmucl / cmucl</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.common-lisp.net/cmucl/cmucl/commit/f81b1ed05030a3ec82158d3c89af3611b86b160a">f81b1ed0</a></strong>
<div>
<span>by Raymond Toy</span>
<i>at 2016-05-11T19:19:00-07:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">Add comments.</pre>
</li>
<li>
<strong><a href="https://gitlab.common-lisp.net/cmucl/cmucl/commit/c15a3f708a16275a7504ced4f163f102dfbcb287">c15a3f70</a></strong>
<div>
<span>by Raymond Toy</span>
<i>at 2016-05-11T19:20:40-07:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">Fix up to preserve old behavior without RELOCATABLE_STACK_START.</pre>
</li>
</ul>
<h4>2 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#620f2ecad2bb6f74b2fcd0134963a841" style="text-decoration: none">
src/lisp/lisp.c
</a>
</li>
<li class="file-stats">
<a href="#ad29afc395839758d41094872298bd0d" style="text-decoration: none">
src/lisp/solaris-os.c
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="620f2ecad2bb6f74b2fcd0134963a841">
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/compare/38fdea64c854d5f0e13f1b16ea94fa974caeb340...c15a3f708a16275a7504ced4f163f102dfbcb287#diff-0">
<strong>
src/lisp/lisp.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/src/lisp/lisp.c
</span><span style="background: #ddffdd; color: #000000">+++ b/src/lisp/lisp.c
</span><span style="color: #aaaaaa">@@ -687,6 +687,13 @@ main(int argc, const char *argv[], const char *envp[])
</span>     if (builtin_image_flag != 0)
        map_core_sections(argv[0]);
 #endif
<span style="background: #ddffdd; color: #000000">+
+    /*
+     * Validate the basic lisp spaces first like the heap and static
+     * and read-only spaces.  Do this so that the stacks (if thy're
+     * relocatable) don't get randomly allocated on top of our desired
+     * lisp spaces.
+     */
</span>     validate();
     gc_init();
     validate_stacks();
</code></pre>

<br>
</li>
<li id="ad29afc395839758d41094872298bd0d">
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/compare/38fdea64c854d5f0e13f1b16ea94fa974caeb340...c15a3f708a16275a7504ced4f163f102dfbcb287#diff-1">
<strong>
src/lisp/solaris-os.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/src/lisp/solaris-os.c
</span><span style="background: #ddffdd; color: #000000">+++ b/src/lisp/solaris-os.c
</span><span style="color: #aaaaaa">@@ -415,6 +415,10 @@ os_vm_address_t round_up_sparse_size(os_vm_address_t addr)
</span>  */
 static os_vm_address_t spaces[] = {
     READ_ONLY_SPACE_START, STATIC_SPACE_START
<span style="background: #ddffdd; color: #000000">+#ifndef RELOCATABLE_STACK_START
+    BINDING_STACK_START,
+    CONTROL_STACK_START
+#endif    
</span> };
 
 /*
<span style="color: #aaaaaa">@@ -458,15 +462,19 @@ make_hole(char *space_start, size_t space_size)
</span> void
 make_holes(void)
 {
<span style="background: #ddffdd; color: #000000">+    int k;
</span>     os_vm_address_t hole;
 
     /*
      * Make holes of the appropriate size for desired spaces.  The
<span style="background: #ffdddd; color: #000000">-     * stacks are handled in make_stack_holes.
</span><span style="background: #ddffdd; color: #000000">+     * stacks are handled in make_stack_holes, if they are
+     * relocatable.
</span>      */
 
<span style="background: #ffdddd; color: #000000">-    make_hole(spaces[0], *space_size[0]); /* Read-only space */
-    make_hole(spaces[1], *space_size[1]); /* Static space */
</span><span style="background: #ddffdd; color: #000000">+    for (k = 0; k < sizeof(spaces) / sizeof(spaces[0]); ++k) {
+        make_hole(spaces[k], *space_size[k]);
+    }
+    
</span>     
     /* Round up the dynamic_space_size to the nearest SPARSE_BLOCK_SIZE */
     dynamic_space_size = round_up_sparse_size(dynamic_space_size);
<span style="color: #aaaaaa">@@ -497,8 +505,10 @@ make_holes(void)
</span> void
 make_stack_holes(void)
 {
<span style="background: #ddffdd; color: #000000">+#ifdef RELOCATABLE_STACK_START
</span>     make_hole(control_stack, control_stack_size);
     make_hole(binding_stack, binding_stack_size);
<span style="background: #ddffdd; color: #000000">+#endif
</span> }
     
 void *
</code></pre>

<br>
</li>

</div>
<div class="footer" style="margin-top: 10px">
<p style="color: #777; font-size: small">

<br>
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/compare/38fdea64c854d5f0e13f1b16ea94fa974caeb340...c15a3f708a16275a7504ced4f163f102dfbcb287">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.common-lisp.net.
If you'd like to receive fewer emails, you can
adjust your notification settings.

</p>
</div>
</body>
</html>