js/src/devtools/rootAnalysis/README.txt

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 This directory contains scripts and a makefile for running Brian Hackett's
     2 static GC rooting analysis on a JS source directory.
     4 To use it:
     6 1. Download and compile sixgill. Make sure the gcc plugin is enabled. (The
     7    configure output will tell you.)
     9   - [sfink] I needed a couple of patches to get it work on Fedora 16/17/18.
    10     Ask me if you need them.
    12 2. Compile an optimized JS shell that includes the patch at
    13    <http://people.mozilla.org/~sfink/data/bug-835552-cwd-snarf>. This does not
    14    need to be in the same source tree as you are running these scripts from.
    15    Remember the full path to the resulting JS binary; we'll call it $JS_SHELL
    16    below.
    18 3. |make clean| in the objdir of the JS source tree that you're going to be
    19    analyzing. (These analysis scripts will default to the tree they are within,
    20    but you can point them at another tree.)
    22 4. in $objdir/js/src/devtools/analysis, |make JS=$JS_SHELL
    23    SIXGILL=.../path/to/sixgill...|. You may need one or more of the following
    24    additional settings in addition to the |JS| already given:
    26    - JSOBJDIR: if you are analyzing a different source tree, set this to the
    27      objdir of the tree you want to analyze.
    29    - ANALYSIS_SCRIPT_DIR: by default, the *.js files within the directory
    30      containing this README will be used, but you can point to a different
    31      directory full. At the time of this writing, there are some changes not in
    32      bhackett's git repo that are necessary, and you'll also need the
    33      gen-hazards.sh shell script.
    35    - JOBS: set this to the number of parallel jobs you'd like to run the final
    36      analysis pass with. This defaults to 6, somewhat randomly, which gave me a
    37      large speedup even on a machine with only 2 cores.
    39 The results will be in rootingHazards.txt

mercurial