# HG changeset patch
# User Armin Rigo <arigo@tunes.org>
# Date 1438461000 -7200
#      Sat Aug 01 22:30:00 2015 +0200
# Branch extradoc
# Node ID 988a7121a7d5d2cb16fcc45a3804c9a3ccdfe06f
# Parent  3cd948df449bec18359def109b3ebbb7482423fe
Issue #2103: comments about --source and the PAX issues.

diff --git a/download.html b/download.html
--- a/download.html
+++ b/download.html
@@ -282,6 +282,13 @@
 PYPY_GC_MAX_DELTA=200MB pypy --jit loop_longevity=300 ../../rpython/bin/rpython -Ojit targetpypystandalone
 </pre>
 </li>
+<li><p class="first">You can run translations with <tt class="docutils literal"><span class="pre">--source</span></tt>, which only builds the C
+source files (and prints at the end where).  Then you can <tt class="docutils literal">cd</tt> there
+and execute <tt class="docutils literal">make</tt>.  This is another way to reduce memory usage.
+Note that afterwards, you have to run manually <tt class="docutils literal"><span class="pre">pypy-c</span>
+<span class="pre">.../pypy/tool/build_cffi_imports.py</span></tt> if you want to be able to import
+the cffi-based modules.</p>
+</li>
 <li><p class="first">On Linux, because of <tt class="docutils literal">asmgcroot</tt>, compiling the generated C files
 is delicate.  It requires using gcc with no particularly
 fancy options.  It does not work e.g. with clang, or if you pass uncommon
@@ -290,6 +297,12 @@
 the <a class="reference external" href="http://pypy.readthedocs.org/en/latest/config/translation.gcrootfinder.html">shadow stack</a> option instead (for a small performance price in
 non-JITted code).</p>
 </li>
+<li><p class="first">Like other JITs, PyPy doesn't work out of the box on some Linux
+distributions that trade full POSIX compliance for extra security
+features.  E.g. with PAX, you have to run PyPy with <tt class="docutils literal">paxctl <span class="pre">-cm</span></tt>.
+This also applies to translation (unless you use CPython to run the
+translation and you specify <tt class="docutils literal"><span class="pre">--source</span></tt>).</p>
+</li>
 </ul>
 </div>
 <div class="section" id="packaging">
diff --git a/source/download.txt b/source/download.txt
--- a/source/download.txt
+++ b/source/download.txt
@@ -295,6 +295,13 @@
 
     PYPY_GC_MAX_DELTA=200MB pypy --jit loop_longevity=300 ../../rpython/bin/rpython -Ojit targetpypystandalone
 
+* You can run translations with ``--source``, which only builds the C
+  source files (and prints at the end where).  Then you can ``cd`` there
+  and execute ``make``.  This is another way to reduce memory usage.
+  Note that afterwards, you have to run manually ``pypy-c
+  .../pypy/tool/build_cffi_imports.py`` if you want to be able to import
+  the cffi-based modules.
+
 * On Linux, because of ``asmgcroot``, compiling the generated C files
   is delicate.  It requires using gcc with no particularly
   fancy options.  It does not work e.g. with clang, or if you pass uncommon
@@ -303,6 +310,12 @@
   the `shadow stack`_ option instead (for a small performance price in
   non-JITted code).
 
+* Like other JITs, PyPy doesn't work out of the box on some Linux
+  distributions that trade full POSIX compliance for extra security
+  features.  E.g. with PAX, you have to run PyPy with ``paxctl -cm``.
+  This also applies to translation (unless you use CPython to run the
+  translation and you specify ``--source``).
+
 .. _`x86 (IA-32)`: http://en.wikipedia.org/wiki/IA-32
 .. _`x86-64`: http://en.wikipedia.org/wiki/X86-64
 .. _SSE2: http://en.wikipedia.org/wiki/SSE2