Skip to content
Snippets Groups Projects
Commit b6018cc7 authored by Steve Fink's avatar Steve Fink
Browse files

Bug 1836094 - remove remaining references to rootingHazards.txt r=jonco

parent c4b3fe86
No related branches found
No related tags found
No related merge requests found
# -*- Mode: makefile -*-
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# This Makefile is used to kick off a static rooting analysis. This Makefile is
# NOT intended for use as part of the standard Mozilla build. Instead, this
# Makefile will use $PATH to subvert compiler invocations to add in the sixgill
# plugin, and then do a regular build of whatever portion of the tree you are
# analyzing. The plugins will dump out several xdb database files. Various
# analysis scripts, written in JS, will run over those database files to
# produce the final analysis output.
include $(topsrcdir)/config/config.mk
# Tree to build and analyze, defaulting to the current tree
TARGET_JSOBJDIR ?= $(TOPOBJDIR)
# Path to a JS binary to use to run the analysis. You really want this to be an
# optimized build.
JS ?= $(DIST)/bin/js
# Path to an xgill checkout containing the GCC plugin, xdb-processing binaries,
# and compiler wrapper scripts used to automatically integrate into an existing
# build system.
SIXGILL ?= @SIXGILL_PATH@
# Path to the JS scripts that will perform the analysis, defaulting to the same
# place as this Makefile.in, which is probably what you want.
ANALYSIS_SCRIPT_DIR ?= $(srcdir)
# Number of simultanous analyzeRoots.js scripts to run.
JOBS ?= 6
all : rootingHazards.txt allFunctions.txt
CALL_JS := time env PATH=$$PATH:$(SIXGILL)/bin XDB=$(SIXGILL)/bin/xdb.so $(JS)
src_body.xdb src_comp.xdb: run_complete
@echo Started compilation at $$(date)
$(ANALYSIS_SCRIPT_DIR)/run_complete --foreground --build-root=$(TARGET_JSOBJDIR) --work-dir=work -b $(SIXGILL)/bin $(CURDIR)
@echo Finished compilation at $$(date)
callgraph.txt: src_body.xdb src_comp.xdb computeCallgraph.js
@echo Started computation of $@ at $$(date)
$(CALL_JS) $(ANALYSIS_SCRIPT_DIR)/computeCallgraph.js > $@.tmp
mv $@.tmp $@
@echo Finished computation of $@ at $$(date)
gcFunctions.txt: callgraph.txt computeGCFunctions.js annotations.js
@echo Started computation of $@ at $$(date)
$(CALL_JS) $(ANALYSIS_SCRIPT_DIR)/computeGCFunctions.js ./callgraph.txt > $@.tmp
mv $@.tmp $@
@echo Finished computation of $@ at $$(date)
gcFunctions.lst: gcFunctions.txt
perl -lne 'print $$1 if /^GC Function: (.*)/' gcFunctions.txt > $@
suppressedFunctions.lst: gcFunctions.txt
perl -lne 'print $$1 if /^Suppressed Function: (.*)/' gcFunctions.txt > $@
gcTypes.txt: src_comp.xdb computeGCTypes.js annotations.js
@echo Started computation of $@ at $$(date)
$(CALL_JS) $(ANALYSIS_SCRIPT_DIR)/computeGCTypes.js > $@.tmp
mv $@.tmp $@
@echo Finished computation of $@ at $$(date)
allFunctions.txt: src_body.xdb
@echo Started computation of $@ at $$(date)
time $(SIXGILL)/bin/xdbkeys $^ > $@.tmp
mv $@.tmp $@
@echo Finished computation of $@ at $$(date)
rootingHazards.txt: gcFunctions.lst suppressedFunctions.lst gcTypes.txt analyzeRoots.js annotations.js gen-hazards.sh
@echo Started computation of $@ at $$(date)
time env JS=$(JS) ANALYZE='$(ANALYSIS_SCRIPT_DIR)/analyzeRoots.js' SIXGILL='$(SIXGILL)' '$(ANALYSIS_SCRIPT_DIR)/gen-hazards.sh' $(JOBS) > $@.tmp
mv $@.tmp $@
@echo Finished computation of $@ at $$(date)
......@@ -12,14 +12,52 @@ from html import escape
SRCDIR = pathlib.Path(__file__).parent.parent.parent.absolute()
parser = argparse.ArgumentParser(description="Process some integers.")
parser.add_argument("--verbose", type=bool, default=False)
parser.add_argument("rootingHazards", nargs="?", default="rootingHazards.txt")
parser.add_argument("gcFunctions", nargs="?", default="gcFunctions.txt")
parser.add_argument("hazards", nargs="?", default="hazards.txt")
parser.add_argument("extra", nargs="?", default="unnecessary.txt")
parser.add_argument("refs", nargs="?", default="refs.txt")
parser.add_argument("html", nargs="?", default="hazards.html")
parser = argparse.ArgumentParser(
description="Convert the JSON output of the hazard analysis into various text files describing the results.",
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
parser.add_argument("--verbose", type=bool, default=False, help="verbose output")
inputs = parser.add_argument_group("Input")
inputs.add_argument(
"rootingHazards",
nargs="?",
default="rootingHazards.json",
help="JSON input file describing the output of the hazard analysis",
)
outputs = parser.add_argument_group("Output")
outputs.add_argument(
"gcFunctions",
nargs="?",
default="gcFunctions.txt",
help="file containing a list of functions that can GC",
)
outputs.add_argument(
"hazards",
nargs="?",
default="hazards.txt",
help="file containing the rooting hazards found",
)
outputs.add_argument(
"extra",
nargs="?",
default="unnecessary.txt",
help="file containing unnecessary roots",
)
outputs.add_argument(
"refs",
nargs="?",
default="refs.txt",
help="file containing a list of unsafe references to unrooted values",
)
outputs.add_argument(
"html",
nargs="?",
default="hazards.html",
help="HTML-formatted file with the hazards found",
)
args = parser.parse_args()
......
......@@ -89,9 +89,6 @@ if CONFIG["FUZZING_JS_FUZZILLI"]:
# trace-pc instrumentation.
include("/tools/fuzzing/libfuzzer-config.mozbuild")
CONFIGURE_SUBST_FILES += [
"devtools/rootAnalysis/Makefile",
]
CONFIGURE_DEFINE_FILES += [
"js-confdefs.h",
]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment