New port: devel/ikos: Static analyzer for C/C++ based on theory of abstract interpretation
This commit is contained in:
@@ -1232,6 +1232,7 @@
|
||||
SUBDIR += ignition-plugin
|
||||
SUBDIR += ignition-tools
|
||||
SUBDIR += ignition-transport
|
||||
SUBDIR += ikos
|
||||
SUBDIR += imake
|
||||
SUBDIR += inastemp
|
||||
SUBDIR += include-what-you-use
|
||||
|
||||
35
devel/ikos/Makefile
Normal file
35
devel/ikos/Makefile
Normal file
@@ -0,0 +1,35 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= ikos
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 2.1
|
||||
CATEGORIES= devel
|
||||
|
||||
MAINTAINER= yuri@FreeBSD.org
|
||||
COMMENT= Static analyzer for C/C++ based on theory of abstract interpretation
|
||||
|
||||
LICENSE= MIT
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE.pdf
|
||||
|
||||
BUILD_DEPENDS= llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT}
|
||||
LIB_DEPENDS= libboost_system.so:devel/boost-libs \
|
||||
libgmp.so:math/gmp
|
||||
|
||||
USES= cmake:outsource python sqlite
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= NASA-SW-VnV
|
||||
|
||||
CXXFLAGS+= -DNDEBUG # https://github.com/NASA-SW-VnV/ikos/issues/36, it also breaks with assert without NDEBUG
|
||||
|
||||
CMAKE_ARGS= -DLLVM_CONFIG_EXECUTABLE:PATH=${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT} \
|
||||
-DPYTHON_EXECUTABLE:STRING=${PYTHON_CMD}
|
||||
|
||||
post-configure: # workaround for the problem that --color-diagnostics gets into the linker command lines
|
||||
@${REINPLACE_CMD} 's|-Wl,--color-diagnostics| |' ${BUILD_WRKSRC}/build.ninja
|
||||
|
||||
# use clang corresponding to the used llvm version
|
||||
CPP= clang-cpp${LLVM_DEFAULT}
|
||||
CC= clang${LLVM_DEFAULT}
|
||||
CXX= clang++${LLVM_DEFAULT}
|
||||
|
||||
.include <bsd.port.mk>
|
||||
3
devel/ikos/distinfo
Normal file
3
devel/ikos/distinfo
Normal file
@@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1544771357
|
||||
SHA256 (NASA-SW-VnV-ikos-v2.1_GH0.tar.gz) = bd5e75a2a94fafc3d1cd01eb6541da458a10c7674e7ae29eb211642c526f1407
|
||||
SIZE (NASA-SW-VnV-ikos-v2.1_GH0.tar.gz) = 1042131
|
||||
17
devel/ikos/files/patch-analyzer_python_ikos_analyzer.py
Normal file
17
devel/ikos/files/patch-analyzer_python_ikos_analyzer.py
Normal file
@@ -0,0 +1,17 @@
|
||||
--- analyzer/python/ikos/analyzer.py.orig 2018-12-14 07:13:50 UTC
|
||||
+++ analyzer/python/ikos/analyzer.py
|
||||
@@ -554,10 +554,10 @@ def clang(bc_path, cpp_path, colors=True
|
||||
# For #include <ikos/analyzer/intrinsic.hpp>
|
||||
cmd += ['-isystem', settings.INCLUDE_DIR]
|
||||
|
||||
- if colors:
|
||||
- cmd.append('-fcolor-diagnostics')
|
||||
- else:
|
||||
- cmd.append('-fno-color-diagnostics')
|
||||
+ #if colors:
|
||||
+ # cmd.append('-fcolor-diagnostics')
|
||||
+ #else:
|
||||
+ # cmd.append('-fno-color-diagnostics')
|
||||
|
||||
if cpp_path.endswith('.cpp'):
|
||||
cmd.append('-std=c++14') # available because clang >= 4.0
|
||||
13
devel/ikos/pkg-descr
Normal file
13
devel/ikos/pkg-descr
Normal file
@@ -0,0 +1,13 @@
|
||||
IKOS (Inference Kernel for Open Static Analyzers) is a static analyzer for C/C++
|
||||
based on the theory of Abstract Interpretation.
|
||||
|
||||
IKOS provides a generic and efficient implementation of state-of-the-art
|
||||
Abstract Interpretation data structures and algorithms, such as control-flow
|
||||
graphs, fixpoint iterators, numerical abstract domains, etc. IKOS is independent
|
||||
of a particular programming language.
|
||||
|
||||
IKOS also provides a C and C++ static analyzer based on LLVM. It implements
|
||||
scalable analyses for detecting and proving the absence of runtime errors in C
|
||||
and C++ programs.
|
||||
|
||||
WWW: https://github.com/NASA-SW-VnV/ikos
|
||||
212
devel/ikos/pkg-plist
Normal file
212
devel/ikos/pkg-plist
Normal file
@@ -0,0 +1,212 @@
|
||||
bin/ikos
|
||||
bin/ikos-analyzer
|
||||
bin/ikos-config
|
||||
bin/ikos-import
|
||||
bin/ikos-pp
|
||||
bin/ikos-report
|
||||
bin/ikos-scan
|
||||
bin/ikos-scan-c++
|
||||
bin/ikos-scan-cc
|
||||
bin/ikos-view
|
||||
include/ikos/analyzer/intrinsic.h
|
||||
include/ikos/ar/format/dot.hpp
|
||||
include/ikos/ar/format/formatter.hpp
|
||||
include/ikos/ar/format/namer.hpp
|
||||
include/ikos/ar/format/text.hpp
|
||||
include/ikos/ar/pass/add_loop_counters.hpp
|
||||
include/ikos/ar/pass/name_values.hpp
|
||||
include/ikos/ar/pass/pass.hpp
|
||||
include/ikos/ar/pass/simplify_cfg.hpp
|
||||
include/ikos/ar/pass/simplify_upcast_comparison.hpp
|
||||
include/ikos/ar/pass/unify_exit_nodes.hpp
|
||||
include/ikos/ar/semantic.hpp
|
||||
include/ikos/ar/semantic/bundle.hpp
|
||||
include/ikos/ar/semantic/code.hpp
|
||||
include/ikos/ar/semantic/context.hpp
|
||||
include/ikos/ar/semantic/data_layout.hpp
|
||||
include/ikos/ar/semantic/function.hpp
|
||||
include/ikos/ar/semantic/intrinsic.hpp
|
||||
include/ikos/ar/semantic/statement.hpp
|
||||
include/ikos/ar/semantic/statement_visitor.hpp
|
||||
include/ikos/ar/semantic/type.hpp
|
||||
include/ikos/ar/semantic/type_visitor.hpp
|
||||
include/ikos/ar/semantic/value.hpp
|
||||
include/ikos/ar/semantic/value_visitor.hpp
|
||||
include/ikos/ar/support/assert.hpp
|
||||
include/ikos/ar/support/cast.hpp
|
||||
include/ikos/ar/support/flags.hpp
|
||||
include/ikos/ar/support/iterator.hpp
|
||||
include/ikos/ar/support/number.hpp
|
||||
include/ikos/ar/support/string_ref.hpp
|
||||
include/ikos/ar/support/traceable.hpp
|
||||
include/ikos/ar/verify/frontend.hpp
|
||||
include/ikos/ar/verify/type.hpp
|
||||
include/ikos/core/adt/patricia_tree/map.hpp
|
||||
include/ikos/core/adt/patricia_tree/set.hpp
|
||||
include/ikos/core/adt/patricia_tree/utils.hpp
|
||||
include/ikos/core/adt/small_vector.hpp
|
||||
include/ikos/core/adt/string_ref.hpp
|
||||
include/ikos/core/domain/abstract_domain.hpp
|
||||
include/ikos/core/domain/discrete_domain.hpp
|
||||
include/ikos/core/domain/domain_product.hpp
|
||||
include/ikos/core/domain/exception/abstract_domain.hpp
|
||||
include/ikos/core/domain/exception/exception.hpp
|
||||
include/ikos/core/domain/lifetime/abstract_domain.hpp
|
||||
include/ikos/core/domain/lifetime/dummy.hpp
|
||||
include/ikos/core/domain/lifetime/lifetime.hpp
|
||||
include/ikos/core/domain/machine_int/abstract_domain.hpp
|
||||
include/ikos/core/domain/machine_int/congruence.hpp
|
||||
include/ikos/core/domain/machine_int/dummy.hpp
|
||||
include/ikos/core/domain/machine_int/interval.hpp
|
||||
include/ikos/core/domain/machine_int/interval_congruence.hpp
|
||||
include/ikos/core/domain/machine_int/numeric_domain_adapter.hpp
|
||||
include/ikos/core/domain/machine_int/operator.hpp
|
||||
include/ikos/core/domain/machine_int/polymorphic_domain.hpp
|
||||
include/ikos/core/domain/machine_int/separate_domain.hpp
|
||||
include/ikos/core/domain/memory/abstract_domain.hpp
|
||||
include/ikos/core/domain/memory/dummy.hpp
|
||||
include/ikos/core/domain/memory/value.hpp
|
||||
include/ikos/core/domain/memory/value/cell_set.hpp
|
||||
include/ikos/core/domain/memory/value/mem_loc_to_cell_set.hpp
|
||||
include/ikos/core/domain/memory/value/mem_loc_to_pointer_set.hpp
|
||||
include/ikos/core/domain/nullity/abstract_domain.hpp
|
||||
include/ikos/core/domain/nullity/dummy.hpp
|
||||
include/ikos/core/domain/nullity/nullity.hpp
|
||||
include/ikos/core/domain/numeric/abstract_domain.hpp
|
||||
include/ikos/core/domain/numeric/apron.hpp
|
||||
include/ikos/core/domain/numeric/congruence.hpp
|
||||
include/ikos/core/domain/numeric/constant.hpp
|
||||
include/ikos/core/domain/numeric/dbm.hpp
|
||||
include/ikos/core/domain/numeric/domain_product.hpp
|
||||
include/ikos/core/domain/numeric/equality_congruence_solver.hpp
|
||||
include/ikos/core/domain/numeric/gauge.hpp
|
||||
include/ikos/core/domain/numeric/gauge_interval_congruence.hpp
|
||||
include/ikos/core/domain/numeric/interval.hpp
|
||||
include/ikos/core/domain/numeric/interval_congruence.hpp
|
||||
include/ikos/core/domain/numeric/linear_interval_solver.hpp
|
||||
include/ikos/core/domain/numeric/octagon.hpp
|
||||
include/ikos/core/domain/numeric/operator.hpp
|
||||
include/ikos/core/domain/numeric/separate_domain.hpp
|
||||
include/ikos/core/domain/numeric/union.hpp
|
||||
include/ikos/core/domain/numeric/var_packing_dbm.hpp
|
||||
include/ikos/core/domain/numeric/var_packing_dbm_congruence.hpp
|
||||
include/ikos/core/domain/numeric/var_packing_domain.hpp
|
||||
include/ikos/core/domain/pointer/abstract_domain.hpp
|
||||
include/ikos/core/domain/pointer/dummy.hpp
|
||||
include/ikos/core/domain/pointer/operator.hpp
|
||||
include/ikos/core/domain/pointer/pointer.hpp
|
||||
include/ikos/core/domain/pointer/solver.hpp
|
||||
include/ikos/core/domain/separate_domain.hpp
|
||||
include/ikos/core/domain/uninitialized/abstract_domain.hpp
|
||||
include/ikos/core/domain/uninitialized/dummy.hpp
|
||||
include/ikos/core/domain/uninitialized/uninitialized.hpp
|
||||
include/ikos/core/example/machine_int/variable_factory.hpp
|
||||
include/ikos/core/example/muzq.hpp
|
||||
include/ikos/core/example/variable_factory.hpp
|
||||
include/ikos/core/exception.hpp
|
||||
include/ikos/core/fixpoint/fixpoint_iterator.hpp
|
||||
include/ikos/core/fixpoint/fwd_fixpoint_iterator.hpp
|
||||
include/ikos/core/fixpoint/wto.hpp
|
||||
include/ikos/core/legacy/adt/mergeable_map.hpp
|
||||
include/ikos/core/legacy/adt/patricia_tree.hpp
|
||||
include/ikos/core/legacy/common/type.hpp
|
||||
include/ikos/core/legacy/domain/array_graph.hpp
|
||||
include/ikos/core/legacy/domain/cpa.hpp
|
||||
include/ikos/core/legacy/domain/dataflow_domain.hpp
|
||||
include/ikos/core/legacy/domain/reaching.hpp
|
||||
include/ikos/core/legacy/domain/summary.hpp
|
||||
include/ikos/core/legacy/domain/uninitialized_array.hpp
|
||||
include/ikos/core/legacy/example/muaz.hpp
|
||||
include/ikos/core/legacy/expression.hpp
|
||||
include/ikos/core/linear_constraint.hpp
|
||||
include/ikos/core/linear_expression.hpp
|
||||
include/ikos/core/literal.hpp
|
||||
include/ikos/core/number.hpp
|
||||
include/ikos/core/number/bound.hpp
|
||||
include/ikos/core/number/compatibility.hpp
|
||||
include/ikos/core/number/dummy_number.hpp
|
||||
include/ikos/core/number/exception.hpp
|
||||
include/ikos/core/number/machine_int.hpp
|
||||
include/ikos/core/number/q_number.hpp
|
||||
include/ikos/core/number/signedness.hpp
|
||||
include/ikos/core/number/supported_integral.hpp
|
||||
include/ikos/core/number/z_number.hpp
|
||||
include/ikos/core/semantic/dumpable.hpp
|
||||
include/ikos/core/semantic/graph.hpp
|
||||
include/ikos/core/semantic/indexable.hpp
|
||||
include/ikos/core/semantic/machine_int/variable.hpp
|
||||
include/ikos/core/semantic/memory/cell.hpp
|
||||
include/ikos/core/semantic/memory/variable.hpp
|
||||
include/ikos/core/semantic/memory_location.hpp
|
||||
include/ikos/core/semantic/pointer/variable.hpp
|
||||
include/ikos/core/semantic/variable.hpp
|
||||
include/ikos/core/support/assert.hpp
|
||||
include/ikos/core/support/cast.hpp
|
||||
include/ikos/core/support/compiler.hpp
|
||||
include/ikos/core/support/mpl.hpp
|
||||
include/ikos/core/value/lifetime.hpp
|
||||
include/ikos/core/value/machine_int/congruence.hpp
|
||||
include/ikos/core/value/machine_int/constant.hpp
|
||||
include/ikos/core/value/machine_int/interval.hpp
|
||||
include/ikos/core/value/machine_int/interval_congruence.hpp
|
||||
include/ikos/core/value/nullity.hpp
|
||||
include/ikos/core/value/numeric/congruence.hpp
|
||||
include/ikos/core/value/numeric/constant.hpp
|
||||
include/ikos/core/value/numeric/gauge.hpp
|
||||
include/ikos/core/value/numeric/interval.hpp
|
||||
include/ikos/core/value/numeric/interval_congruence.hpp
|
||||
include/ikos/core/value/pointer/pointer.hpp
|
||||
include/ikos/core/value/pointer/pointer_set.hpp
|
||||
include/ikos/core/value/pointer/points_to_set.hpp
|
||||
include/ikos/core/value/uninitialized.hpp
|
||||
include/ikos/frontend/llvm/import.hpp
|
||||
include/ikos/frontend/llvm/import/exception.hpp
|
||||
include/ikos/frontend/llvm/import/importer.hpp
|
||||
include/ikos/frontend/llvm/import/source_location.hpp
|
||||
include/ikos/frontend/llvm/pass.hpp
|
||||
lib/libikos-ar.a
|
||||
lib/libikos-llvm-to-ar.a
|
||||
lib/libikos-pp.a
|
||||
%%PYTHON_SITELIBDIR%%/ikos-2.1-py%%PYTHON_VER%%.egg-info
|
||||
%%PYTHON_SITELIBDIR%%/ikos/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/abs_int.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/abs_int.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/analyzer.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/analyzer.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/args.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/args.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/colors.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/colors.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/enums.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/enums.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/filetype.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/filetype.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/highlight.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/highlight.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/html.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/html.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/http.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/http.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/log.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/log.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/output_db.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/output_db.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/report.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/report.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/scan.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/scan.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/settings/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/settings/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/stats.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/stats.pyc
|
||||
%%PYTHON_SITELIBDIR%%/ikos/view.py
|
||||
%%PYTHON_SITELIBDIR%%/ikos/view.pyc
|
||||
%%DATADIR%%/view/static/css/ikos_theme.css
|
||||
%%DATADIR%%/view/static/js/ikos_homepage.js
|
||||
%%DATADIR%%/view/static/js/ikos_report.js
|
||||
%%DATADIR%%/view/template/error.html
|
||||
%%DATADIR%%/view/template/homepage.html
|
||||
%%DATADIR%%/view/template/not_found.html
|
||||
%%DATADIR%%/view/template/report.html
|
||||
%%DATADIR%%/view/template/settings.html
|
||||
Reference in New Issue
Block a user