From e843f825da0909fb56b09438d430063935991a37 Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 10:25:36 -0400 Subject: [PATCH 01/10] splits primus-support into sub-packages This PR adds next sub-packages: - primus-exploring-scheduler - primus-greedy-scheduler - primus-limit - primus-loader - primus-mark-visited - primus-print - primus-promiscuous - primus-round-robin-scheduler - primus-wandering-scheduler --- oasis/primus-exploring-scheduler | 13 ++++ oasis/primus-greedy-scheduler | 13 ++++ oasis/primus-limit | 13 ++++ oasis/primus-loader | 14 ++++ oasis/primus-mark-visited | 23 +++++++ oasis/primus-print | 13 ++++ oasis/primus-promiscuous | 13 ++++ oasis/primus-round-robin-scheduler | 14 ++++ oasis/primus-support | 105 ----------------------------- oasis/primus-wandering-scheduler | 14 ++++ 10 files changed, 130 insertions(+), 105 deletions(-) create mode 100644 oasis/primus-exploring-scheduler create mode 100644 oasis/primus-greedy-scheduler create mode 100644 oasis/primus-limit create mode 100644 oasis/primus-loader create mode 100644 oasis/primus-mark-visited create mode 100644 oasis/primus-print create mode 100644 oasis/primus-promiscuous create mode 100644 oasis/primus-round-robin-scheduler delete mode 100644 oasis/primus-support create mode 100644 oasis/primus-wandering-scheduler diff --git a/oasis/primus-exploring-scheduler b/oasis/primus-exploring-scheduler new file mode 100644 index 000000000..2419a8149 --- /dev/null +++ b/oasis/primus-exploring-scheduler @@ -0,0 +1,13 @@ +Flag primus_exploring_scheduler + Description: build Primus exploring scheduler + Default: false + +Library primus_exploring_scheduler_plugin + Path: plugins/primus_exploring + Build$: flag(everything) || flag(primus_exploring_scheduler) + FindlibName: bap-plugin-primus_exploring + CompiledObject: best + BuildDepends: bap, bap-primus, core_kernel, monads, bap-future + XMETADescription: evaluates all machines, prioritizing the least visited + Modules: Primus_exploring_main + XMETAExtraLines: tags="primus, scheduler" \ No newline at end of file diff --git a/oasis/primus-greedy-scheduler b/oasis/primus-greedy-scheduler new file mode 100644 index 000000000..6fee6a2d8 --- /dev/null +++ b/oasis/primus-greedy-scheduler @@ -0,0 +1,13 @@ +Flag primus_greedy_scheduler + Description: build Primus greedy scheduler + Default: false + +Library primus_greedy_scheduler_plugin + Path: plugins/primus_greedy + Build$: flag(everything) || flag(primus_greedy_scheduler) + FindlibName: bap-plugin-primus_greedy + CompiledObject: best + BuildDepends: bap, bap-primus, core_kernel, monads + XMETADescription: evaluates all machines in the DFS order + Modules: Primus_greedy_main + XMETAExtraLines: tags="primus, scheduler" diff --git a/oasis/primus-limit b/oasis/primus-limit new file mode 100644 index 000000000..d4a9b8639 --- /dev/null +++ b/oasis/primus-limit @@ -0,0 +1,13 @@ +Flag primus_limit + Description: build Primus limit plugin + Default: false + +Library primus_limit + Path: plugins/primus_limit + Build$: flag(everything) || flag(primus_limit) + FindlibName: bap-plugin-primus_limit + CompiledObject: best + BuildDepends: bap, bap-primus, bap, core_kernel, monads, bap-future, regular + XMETADescription: ensures termination by limiting Primus machines + Modules: Primus_limit_main + XMETAExtraLines: tags="primus" diff --git a/oasis/primus-loader b/oasis/primus-loader new file mode 100644 index 000000000..75251458a --- /dev/null +++ b/oasis/primus-loader @@ -0,0 +1,14 @@ +Flag primus_loader + Description: build Primus loader + Default: false + +Library primus_loader_plugin + Path: plugins/primus_loader + Build$: flag(everything) || flag(primus_loader) + FindlibName: bap-plugin-primus_loader + CompiledObject: best + BuildDepends: bap, bap-primus, core_kernel, ogre, ppx_jane + XMETADescription: generic program loader for Primus + Modules: Primus_loader_main + InternalModules: Primus_loader_basic + XMETAExtraLines: tags="abi, loader, primus" \ No newline at end of file diff --git a/oasis/primus-mark-visited b/oasis/primus-mark-visited new file mode 100644 index 000000000..ac19df6ff --- /dev/null +++ b/oasis/primus-mark-visited @@ -0,0 +1,23 @@ +Flag primus_mark_visited + Description: build Primus mark visited plugin + Default: false + +Library bap_primus_track_visited + Path: lib/bap_primus_track_visited + Build$: flag(everything) || flag(primus_mark_visited) + FindlibName: bap-primus-track-visited + CompiledObject: best + BuildDepends: bap-primus, bap, core_kernel, ppx_jane + XMETADescription: tracks basic blocks visited by Primus + Modules: Bap_primus_track_visited + XMETAExtraLines: tags="primus" + +Library primus_mark_visited_plugin + Path: plugins/primus_mark_visited + Build$: flag(everything) || flag(primus_mark_visited) + FindlibName: bap-plugin-primus_mark_visited + CompiledObject: best + BuildDepends: bap-main, bap, bap-primus, bap-primus-track-visited + XMETADescription: registers the bap:mark-visited component + InternalModules: Primus_mark_visited_main + XMETAExtraLines: tags="primus" \ No newline at end of file diff --git a/oasis/primus-print b/oasis/primus-print new file mode 100644 index 000000000..d96d0eb9b --- /dev/null +++ b/oasis/primus-print @@ -0,0 +1,13 @@ +Flag primus_print + Description: build Primus print plugin + Default: false + +Library primus_print_plugin + Path: plugins/primus_print + Build$: flag(everything) || flag(primus_print) + FindlibName: bap-plugin-primus_print + CompiledObject: best + BuildDepends: bap-primus, bare, bap, core_kernel, ppx_jane, bap-future, monads + XMETADescription: prints Primus states and observations + Modules: Primus_print_main + XMETAExtraLines: tags="primus, printer" \ No newline at end of file diff --git a/oasis/primus-promiscuous b/oasis/primus-promiscuous new file mode 100644 index 000000000..e79f8df8e --- /dev/null +++ b/oasis/primus-promiscuous @@ -0,0 +1,13 @@ +Flag primus_promiscuous + Description: build Primus promiscuous plugin + Default: false + +Library primus_promiscuous_plugin + Path: plugins/primus_promiscuous + Build$: flag(everything) || flag(primus_promiscuous) + FindlibName: bap-plugin-primus_promiscuous + CompiledObject: best + BuildDepends: bap, bap-primus, core_kernel, monads + XMETADescription: enables the promiscuous mode of execution + Modules: Primus_promiscuous_main + XMETAExtraLines: tags="primus, fuzz" \ No newline at end of file diff --git a/oasis/primus-round-robin-scheduler b/oasis/primus-round-robin-scheduler new file mode 100644 index 000000000..0e71e5da9 --- /dev/null +++ b/oasis/primus-round-robin-scheduler @@ -0,0 +1,14 @@ +Flag primus_round_robin_scheduler + Description: build Primus round robin scheduler + Default: false + + +Library primus_round_robin_scheduler_plugin + Path: plugins/primus_round_robin + Build$: flag(everything) || flag(primus_round_robin_scheduler) + FindlibName: bap-plugin-primus_round_robin + CompiledObject: best + BuildDepends: bap, bap-primus, core_kernel, monads, bap-future + XMETADescription: evaluates all machines in the BFS order + Modules: Primus_round_robin_main + XMETAExtraLines: tags="primus, scheduler" \ No newline at end of file diff --git a/oasis/primus-support b/oasis/primus-support deleted file mode 100644 index 104b7a9fd..000000000 --- a/oasis/primus-support +++ /dev/null @@ -1,105 +0,0 @@ -Flag primus_support - Description: build supporting components for Primus - Default: false - -Library primus_loader_plugin - Path: plugins/primus_loader - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_loader - CompiledObject: best - BuildDepends: bap, bap-primus, core_kernel, ogre, ppx_jane - XMETADescription: generic program loader for Primus - Modules: Primus_loader_main - InternalModules: Primus_loader_basic - XMETAExtraLines: tags="abi, loader, primus" - -Library primus_promiscuous_plugin - Path: plugins/primus_promiscuous - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_promiscuous - CompiledObject: best - BuildDepends: bap, bap-primus, core_kernel, monads - XMETADescription: enables the promiscuous mode of execution - Modules: Primus_promiscuous_main - XMETAExtraLines: tags="primus, fuzz" - -Library primus_greedy_scheduler_plugin - Path: plugins/primus_greedy - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_greedy - CompiledObject: best - BuildDepends: bap, bap-primus, core_kernel, monads - XMETADescription: evaluates all machines in the DFS order - Modules: Primus_greedy_main - XMETAExtraLines: tags="primus, scheduler" - -Library primus_round_robin_scheduler_plugin - Path: plugins/primus_round_robin - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_round_robin - CompiledObject: best - BuildDepends: bap, bap-primus, core_kernel, monads, bap-future - XMETADescription: evaluates all machines in the BFS order - Modules: Primus_round_robin_main - XMETAExtraLines: tags="primus, scheduler" - -Library primus_exploring_scheduler_plugin - Path: plugins/primus_exploring - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_exploring - CompiledObject: best - BuildDepends: bap, bap-primus, core_kernel, monads, bap-future - XMETADescription: evaluates all machines, prioritizing the least visited - Modules: Primus_exploring_main - XMETAExtraLines: tags="primus, scheduler" - -Library primus_wandering_scheduler_plugin - Path: plugins/primus_wandering - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_wandering - CompiledObject: best - BuildDepends: bap, bap-primus, core_kernel, monads, bap-future - XMETADescription: evaluates all machines while - Modules: Primus_wandering_main - XMETAExtraLines: tags="primus, scheduler" - -Library primus_print_plugin - Path: plugins/primus_print - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_print - CompiledObject: best - BuildDepends: bap-primus, bare, bap, core_kernel, ppx_jane, bap-future, monads - XMETADescription: prints Primus states and observations - Modules: Primus_print_main - XMETAExtraLines: tags="primus, printer" - - -Library bap_primus_track_visited - Path: lib/bap_primus_track_visited - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-primus-track-visited - CompiledObject: best - BuildDepends: bap-primus, bap, core_kernel, ppx_jane - XMETADescription: tracks basic blocks visited by Primus - Modules: Bap_primus_track_visited - XMETAExtraLines: tags="primus" - -Library primus_mark_visited_plugin - Path: plugins/primus_mark_visited - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_mark_visited - CompiledObject: best - BuildDepends: bap-main, bap, bap-primus, bap-primus-track-visited - XMETADescription: registers the bap:mark-visited component - InternalModules: Primus_mark_visited_main - XMETAExtraLines: tags="primus" - -Library primus_limit - Path: plugins/primus_limit - Build$: flag(everything) || flag(primus_support) - FindlibName: bap-plugin-primus_limit - CompiledObject: best - BuildDepends: bap, bap-primus, bap, core_kernel, monads, bap-future, regular - XMETADescription: ensures termination by limiting Primus machines - Modules: Primus_limit_main - XMETAExtraLines: tags="primus" diff --git a/oasis/primus-wandering-scheduler b/oasis/primus-wandering-scheduler new file mode 100644 index 000000000..4521affbe --- /dev/null +++ b/oasis/primus-wandering-scheduler @@ -0,0 +1,14 @@ + +Flag primus_wandering_scheduler + Description: build Primus wandering scheduler + Default: false + +Library primus_wandering_scheduler_plugin + Path: plugins/primus_wandering + Build$: flag(everything) || flag(primus_wandering_scheduler) + FindlibName: bap-plugin-primus_wandering + CompiledObject: best + BuildDepends: bap, bap-primus, core_kernel, monads, bap-future + XMETADescription: evaluates all machines while + Modules: Primus_wandering_main + XMETAExtraLines: tags="primus, scheduler" \ No newline at end of file From cec87e3b886b884a481a030084b3ac0de696f2b1 Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 11:11:55 -0400 Subject: [PATCH 02/10] updates oasis flags now for every plugin we add a flag with the same name as a directory in plugins/ --- oasis/elf | 6 +++++- oasis/ida-plugin | 4 ++-- oasis/llvm | 4 ++-- oasis/piqi | 6 +++++- oasis/primus-exploring-scheduler | 4 ++-- oasis/primus-greedy-scheduler | 4 ++-- oasis/primus-round-robin-scheduler | 4 ++-- oasis/primus-wandering-scheduler | 4 ++-- oasis/symbol-reader | 4 ++-- oasis/taint | 12 ++++++++++-- 10 files changed, 34 insertions(+), 18 deletions(-) diff --git a/oasis/elf b/oasis/elf index 812237cda..408432f3a 100644 --- a/oasis/elf +++ b/oasis/elf @@ -17,9 +17,13 @@ Library elf ############## Elf Native loader #################### +Flag elf_loader + Description: Build native elf loader + Default: false + Library elf_loader_plugin Path: plugins/elf_loader - Build$: flag(everything) || flag(elf) + Build$: flag(everything) || flag(elf_loader) FindlibName: bap-plugin-elf_loader CompiledObject: best BuildDepends: bap, bap-elf, bap-dwarf, core_kernel, regular, ppx_jane diff --git a/oasis/ida-plugin b/oasis/ida-plugin index 3189ab086..2809303bd 100644 --- a/oasis/ida-plugin +++ b/oasis/ida-plugin @@ -1,9 +1,9 @@ -Flag ida_plugin +Flag emit_ida_script Description: Build IDA plugin Default: false Library emit_ida_script_plugin - Build$: flag(everything) || flag(ida_plugin) + Build$: flag(everything) || flag(emit_ida_script) Path: plugins/emit_ida_script FindlibName: bap-plugin-emit_ida_script BuildDepends: bap, core_kernel, ppx_jane, regular diff --git a/oasis/llvm b/oasis/llvm index d84122b78..8a67e5485 100644 --- a/oasis/llvm +++ b/oasis/llvm @@ -6,7 +6,7 @@ Flag llvm_static Description: Links with llvm in a static mode Default: true -Flag llvm_legacy +Flag legacy_llvm Description: Build with legacy llvm backend Default: false @@ -74,7 +74,7 @@ Library llvm_plugin Library legacy_llvm_plugin XMETADescription: provide legacy loader using LLVM library Path: plugins/legacy_llvm - Build$: flag(llvm_legacy) + Build$: flag(legacy_llvm) BuildDepends: bap, bap-llvm, core_kernel FindlibName: bap-plugin-legacy_llvm InternalModules: Legacy_loader_main diff --git a/oasis/piqi b/oasis/piqi index 36146ddb5..085080db0 100644 --- a/oasis/piqi +++ b/oasis/piqi @@ -18,9 +18,13 @@ Library "bap-piqi" Ir_piqi, Ir_piqi_ext +Flag piqi_printers + Description: Build piqi printers plugin + Default: false + Library piqi_printers_plugin Path: plugins/piqi_printers - Build$: flag(everything) || flag(piqi) + Build$: flag(everything) || flag(piqi_printers) FindlibName: bap-plugin-piqi_printers CompiledObject: native BuildDepends: bap-piqi diff --git a/oasis/primus-exploring-scheduler b/oasis/primus-exploring-scheduler index 2419a8149..ccf1d6056 100644 --- a/oasis/primus-exploring-scheduler +++ b/oasis/primus-exploring-scheduler @@ -1,10 +1,10 @@ -Flag primus_exploring_scheduler +Flag primus_exploring Description: build Primus exploring scheduler Default: false Library primus_exploring_scheduler_plugin Path: plugins/primus_exploring - Build$: flag(everything) || flag(primus_exploring_scheduler) + Build$: flag(everything) || flag(primus_exploring) FindlibName: bap-plugin-primus_exploring CompiledObject: best BuildDepends: bap, bap-primus, core_kernel, monads, bap-future diff --git a/oasis/primus-greedy-scheduler b/oasis/primus-greedy-scheduler index 6fee6a2d8..e260f1952 100644 --- a/oasis/primus-greedy-scheduler +++ b/oasis/primus-greedy-scheduler @@ -1,10 +1,10 @@ -Flag primus_greedy_scheduler +Flag primus_greedy Description: build Primus greedy scheduler Default: false Library primus_greedy_scheduler_plugin Path: plugins/primus_greedy - Build$: flag(everything) || flag(primus_greedy_scheduler) + Build$: flag(everything) || flag(primus_greedy) FindlibName: bap-plugin-primus_greedy CompiledObject: best BuildDepends: bap, bap-primus, core_kernel, monads diff --git a/oasis/primus-round-robin-scheduler b/oasis/primus-round-robin-scheduler index 0e71e5da9..7f2e1bee7 100644 --- a/oasis/primus-round-robin-scheduler +++ b/oasis/primus-round-robin-scheduler @@ -1,11 +1,11 @@ -Flag primus_round_robin_scheduler +Flag primus_round_robin Description: build Primus round robin scheduler Default: false Library primus_round_robin_scheduler_plugin Path: plugins/primus_round_robin - Build$: flag(everything) || flag(primus_round_robin_scheduler) + Build$: flag(everything) || flag(primus_round_robin) FindlibName: bap-plugin-primus_round_robin CompiledObject: best BuildDepends: bap, bap-primus, core_kernel, monads, bap-future diff --git a/oasis/primus-wandering-scheduler b/oasis/primus-wandering-scheduler index 4521affbe..115552fec 100644 --- a/oasis/primus-wandering-scheduler +++ b/oasis/primus-wandering-scheduler @@ -1,11 +1,11 @@ -Flag primus_wandering_scheduler +Flag primus_wandering Description: build Primus wandering scheduler Default: false Library primus_wandering_scheduler_plugin Path: plugins/primus_wandering - Build$: flag(everything) || flag(primus_wandering_scheduler) + Build$: flag(everything) || flag(primus_wandering) FindlibName: bap-plugin-primus_wandering CompiledObject: best BuildDepends: bap, bap-primus, core_kernel, monads, bap-future diff --git a/oasis/symbol-reader b/oasis/symbol-reader index 3af326f7a..52af50fa5 100644 --- a/oasis/symbol-reader +++ b/oasis/symbol-reader @@ -1,9 +1,9 @@ -Flag symbol_reader +Flag read_symbols Description: Build read-symbols plugin Default: false Library read_symbols_plugin - Build$: flag(everything) || flag(symbol_reader) + Build$: flag(everything) || flag(read_symbols) Path: plugins/read_symbols FindlibName: bap-plugin-read_symbols BuildDepends: bap, core_kernel, ppx_jane, bap-knowledge, regular, bap-future diff --git a/oasis/taint b/oasis/taint index 6a02410ac..452e77a23 100644 --- a/oasis/taint +++ b/oasis/taint @@ -19,9 +19,13 @@ Library taint_plugin XMETADescription: taint specified terms XMETAExtraLines: tags="dataflow, pass, taint" +Flag primus_propagate_taint + Description: Build primus-propagate-taint plugin + Default: false + Library primus_propagate_taint_plugin Path: plugins/primus_propagate_taint - Build$: flag(everything) || flag(taint) + Build$: flag(everything) || flag(primus_propagate_taint) FindlibName: bap-plugin-primus_propagate_taint CompiledObject: best BuildDepends: bap-primus, bap-taint, core_kernel, bap, monads, ppx_jane @@ -29,9 +33,13 @@ Library primus_propagate_taint_plugin InternalModules: Primus_propagate_taint_main XMETAExtraLines: tags="dataflow, pass, taint, primus" +Flag primus_taint + Description: Build primus-taint plugin + Default: false + Library primus_taint_plugin Path: plugins/primus_taint - Build$: flag(everything) || flag(taint) + Build$: flag(everything) || flag(primus_taint) FindlibName: bap-plugin-primus_taint CompiledObject: best BuildDepends: bap-primus, bap-taint, bap, core_kernel, regular, monads From ed22f2c68e19e8a650dbb25b1e0ff73585190652 Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 11:58:15 -0400 Subject: [PATCH 03/10] renaming --- oasis/{primus-exploring-scheduler => primus-exploring} | 0 oasis/{primus-greedy-scheduler => primus-greedy} | 0 oasis/{primus-round-robin-scheduler => primus-round-robin} | 0 oasis/{primus-wandering-scheduler => primus-wandering} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename oasis/{primus-exploring-scheduler => primus-exploring} (100%) rename oasis/{primus-greedy-scheduler => primus-greedy} (100%) rename oasis/{primus-round-robin-scheduler => primus-round-robin} (100%) rename oasis/{primus-wandering-scheduler => primus-wandering} (100%) diff --git a/oasis/primus-exploring-scheduler b/oasis/primus-exploring similarity index 100% rename from oasis/primus-exploring-scheduler rename to oasis/primus-exploring diff --git a/oasis/primus-greedy-scheduler b/oasis/primus-greedy similarity index 100% rename from oasis/primus-greedy-scheduler rename to oasis/primus-greedy diff --git a/oasis/primus-round-robin-scheduler b/oasis/primus-round-robin similarity index 100% rename from oasis/primus-round-robin-scheduler rename to oasis/primus-round-robin diff --git a/oasis/primus-wandering-scheduler b/oasis/primus-wandering similarity index 100% rename from oasis/primus-wandering-scheduler rename to oasis/primus-wandering From c50f20f13a52ea4e989e24fdc61a492597c27bcb Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 12:49:45 -0400 Subject: [PATCH 04/10] splits taint to sub-packages, renames flags --- oasis/{elf => elf-loader} | 4 ++-- oasis/{ida-plugin => emit-ida-script} | 0 oasis/{piqi => piqi-printers} | 15 ++++++-------- oasis/primus-propagate-taint | 14 +++++++++++++ oasis/primus-taint | 15 ++++++++++++++ oasis/{symbol-reader => read-symbols} | 0 oasis/taint | 29 --------------------------- 7 files changed, 37 insertions(+), 40 deletions(-) rename oasis/{elf => elf-loader} (93%) rename oasis/{ida-plugin => emit-ida-script} (100%) rename oasis/{piqi => piqi-printers} (79%) create mode 100644 oasis/primus-propagate-taint create mode 100644 oasis/primus-taint rename oasis/{symbol-reader => read-symbols} (100%) diff --git a/oasis/elf b/oasis/elf-loader similarity index 93% rename from oasis/elf rename to oasis/elf-loader index 408432f3a..a5efe777f 100644 --- a/oasis/elf +++ b/oasis/elf-loader @@ -1,11 +1,11 @@ ########## Bap_elf Library ######################## -Flag elf +Flag elf_loader Description: Build Bap_elf library Default: false Library elf Path: lib/bap_elf - Build$: flag(everything) || flag(elf) + Build$: flag(everything) || flag(elf_loader) FindlibName: bap-elf BuildDepends: bitstring, bitstring.ppx, regular, core_kernel, ppx_jane Modules: Bap_elf diff --git a/oasis/ida-plugin b/oasis/emit-ida-script similarity index 100% rename from oasis/ida-plugin rename to oasis/emit-ida-script diff --git a/oasis/piqi b/oasis/piqi-printers similarity index 79% rename from oasis/piqi rename to oasis/piqi-printers index 085080db0..1b92151a7 100644 --- a/oasis/piqi +++ b/oasis/piqi-printers @@ -1,11 +1,11 @@ ######################## Piqi library and plugin ############################# -Flag piqi - Description: Build piqi serialization library +Flag piqi_printers + Description: Build piqi serialization library and plugin Default: false Library "bap-piqi" Path: lib/bap_piqi - Build$: flag(everything) || flag(piqi) + Build$: flag(everything) || flag(piqi_printers) FindLibName: bap-piqi BuildTools: ocamlbuild, piqi DataFiles: *.piqi @@ -18,10 +18,6 @@ Library "bap-piqi" Ir_piqi, Ir_piqi_ext -Flag piqi_printers - Description: Build piqi printers plugin - Default: false - Library piqi_printers_plugin Path: plugins/piqi_printers Build$: flag(everything) || flag(piqi_printers) @@ -32,9 +28,10 @@ Library piqi_printers_plugin XMETADescription: provides piqi serialization for main data types (BIL, IR) XMETAExtraLines: tags="printer, serialization" + Executable run_piqi_tests Path: lib/bap_piqi/test - Build$: flag(tests) && (flag(everything) || flag(piqi)) + Build$: flag(tests) && (flag(everything) || flag(piqi_printers)) CompiledObject: best BuildDepends: bap, oUnit, bap-piqi Install: false @@ -42,5 +39,5 @@ Executable run_piqi_tests Test piqi_tests TestTools: run_piqi_tests - Run$: flag(tests) && (flag(everything) || flag(piqi)) + Run$: flag(tests) && (flag(everything) || flag(piqi_printers)) Command: $run_piqi_tests -runner sequential diff --git a/oasis/primus-propagate-taint b/oasis/primus-propagate-taint new file mode 100644 index 000000000..ea80fa40b --- /dev/null +++ b/oasis/primus-propagate-taint @@ -0,0 +1,14 @@ + +Flag primus_propagate_taint + Description: Build primus-propagate-taint plugin + Default: false + +Library primus_propagate_taint_plugin + Path: plugins/primus_propagate_taint + Build$: flag(everything) || flag(primus_propagate_taint) + FindlibName: bap-plugin-primus_propagate_taint + CompiledObject: best + BuildDepends: bap-primus, bap-taint, core_kernel, bap, monads, ppx_jane + XMETADescription: a compatibility layer between different taint analysis frameworks + InternalModules: Primus_propagate_taint_main + XMETAExtraLines: tags="dataflow, pass, taint, primus" diff --git a/oasis/primus-taint b/oasis/primus-taint new file mode 100644 index 000000000..353bc2dfc --- /dev/null +++ b/oasis/primus-taint @@ -0,0 +1,15 @@ + +Flag primus_taint + Description: Build primus-taint plugin + Default: false + +Library primus_taint_plugin + Path: plugins/primus_taint + Build$: flag(everything) || flag(primus_taint) + FindlibName: bap-plugin-primus_taint + CompiledObject: best + BuildDepends: bap-primus, bap-taint, bap, core_kernel, regular, monads + XMETADescription: a taint analysis control interface + DataFiles: lisp/*.lisp ($primus_taint_lisp_path) + InternalModules: Primus_taint_main, Primus_taint_policies + XMETAExtraLines: tags="dataflow, pass, taint, primus, primus-lisp" diff --git a/oasis/symbol-reader b/oasis/read-symbols similarity index 100% rename from oasis/symbol-reader rename to oasis/read-symbols diff --git a/oasis/taint b/oasis/taint index 452e77a23..fdce40713 100644 --- a/oasis/taint +++ b/oasis/taint @@ -18,32 +18,3 @@ Library taint_plugin InternalModules: Taint_main XMETADescription: taint specified terms XMETAExtraLines: tags="dataflow, pass, taint" - -Flag primus_propagate_taint - Description: Build primus-propagate-taint plugin - Default: false - -Library primus_propagate_taint_plugin - Path: plugins/primus_propagate_taint - Build$: flag(everything) || flag(primus_propagate_taint) - FindlibName: bap-plugin-primus_propagate_taint - CompiledObject: best - BuildDepends: bap-primus, bap-taint, core_kernel, bap, monads, ppx_jane - XMETADescription: a compatibility layer between different taint analysis frameworks - InternalModules: Primus_propagate_taint_main - XMETAExtraLines: tags="dataflow, pass, taint, primus" - -Flag primus_taint - Description: Build primus-taint plugin - Default: false - -Library primus_taint_plugin - Path: plugins/primus_taint - Build$: flag(everything) || flag(primus_taint) - FindlibName: bap-plugin-primus_taint - CompiledObject: best - BuildDepends: bap-primus, bap-taint, bap, core_kernel, regular, monads - XMETADescription: a taint analysis control interface - DataFiles: lisp/*.lisp ($primus_taint_lisp_path) - InternalModules: Primus_taint_main, Primus_taint_policies - XMETAExtraLines: tags="dataflow, pass, taint, primus, primus-lisp" From 714cffb8f4810bc8976bd10e82b0a53c07cf6eea Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 13:48:12 -0400 Subject: [PATCH 05/10] renaming --- oasis/{taint.setup.ml.in => primus-taint.setup.ml.in} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename oasis/{taint.setup.ml.in => primus-taint.setup.ml.in} (100%) diff --git a/oasis/taint.setup.ml.in b/oasis/primus-taint.setup.ml.in similarity index 100% rename from oasis/taint.setup.ml.in rename to oasis/primus-taint.setup.ml.in From 1950ce00e263b5cd8b4a0981dd4582ee9b70b0ab Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 14:03:01 -0400 Subject: [PATCH 06/10] split mark-visited on two packages --- oasis/primus-mark-visited | 10 ---------- oasis/primus-track-visited | 13 +++++++++++++ 2 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 oasis/primus-track-visited diff --git a/oasis/primus-mark-visited b/oasis/primus-mark-visited index ac19df6ff..0bc66d361 100644 --- a/oasis/primus-mark-visited +++ b/oasis/primus-mark-visited @@ -2,16 +2,6 @@ Flag primus_mark_visited Description: build Primus mark visited plugin Default: false -Library bap_primus_track_visited - Path: lib/bap_primus_track_visited - Build$: flag(everything) || flag(primus_mark_visited) - FindlibName: bap-primus-track-visited - CompiledObject: best - BuildDepends: bap-primus, bap, core_kernel, ppx_jane - XMETADescription: tracks basic blocks visited by Primus - Modules: Bap_primus_track_visited - XMETAExtraLines: tags="primus" - Library primus_mark_visited_plugin Path: plugins/primus_mark_visited Build$: flag(everything) || flag(primus_mark_visited) diff --git a/oasis/primus-track-visited b/oasis/primus-track-visited new file mode 100644 index 000000000..9aa91fe03 --- /dev/null +++ b/oasis/primus-track-visited @@ -0,0 +1,13 @@ +Flag primus_track_visited + Description: build Primus track visited library + Default: false + +Library bap_primus_track_visited + Path: lib/bap_primus_track_visited + Build$: flag(everything) || flag(primus_track_visited) + FindlibName: bap-primus-track-visited + CompiledObject: best + BuildDepends: bap-primus, bap, core_kernel, ppx_jane + XMETADescription: tracks basic blocks visited by Primus + Modules: Bap_primus_track_visited + XMETAExtraLines: tags="primus" \ No newline at end of file From 2f983981f745f3a8d2107c7e445141f36c1d6dac Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 14:27:29 -0400 Subject: [PATCH 07/10] removes duplicate flag --- oasis/elf | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 oasis/elf diff --git a/oasis/elf b/oasis/elf new file mode 100644 index 000000000..2696f0214 --- /dev/null +++ b/oasis/elf @@ -0,0 +1,28 @@ +########## Bap_elf Library ######################## +Flag elf_loader + Description: Build Bap_elf library + Default: false + +Library elf + Path: lib/bap_elf + Build$: flag(everything) || flag(elf_loader) + FindlibName: bap-elf + BuildDepends: bitstring, bitstring.ppx, regular, core_kernel, ppx_jane + Modules: Bap_elf + InternalModules: + Elf_parse, + Elf_types, + Elf_utils, + Elf_internal_utils + +############## Elf Native loader #################### + +Library elf_loader_plugin + Path: plugins/elf_loader + Build$: flag(everything) || flag(elf_loader) + FindlibName: bap-plugin-elf_loader + CompiledObject: best + BuildDepends: bap, bap-elf, bap-dwarf, core_kernel, regular, ppx_jane + InternalModules: Elf_loader_main + XMETADescription: read ELF and DWARF formats in a pure OCaml + XMETAExtraLines: tags="legacy, loader, elf, dwarf" \ No newline at end of file From cdc13d3a7b54688511994fe59abb896afce553da Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 14:44:39 -0400 Subject: [PATCH 08/10] adds legacy-llvm, removes old elf --- oasis/elf | 28 ---------------------------- oasis/elf-loader | 4 ---- oasis/legacy-llvm | 13 +++++++++++++ oasis/llvm | 12 ------------ 4 files changed, 13 insertions(+), 44 deletions(-) delete mode 100644 oasis/elf create mode 100644 oasis/legacy-llvm diff --git a/oasis/elf b/oasis/elf deleted file mode 100644 index 2696f0214..000000000 --- a/oasis/elf +++ /dev/null @@ -1,28 +0,0 @@ -########## Bap_elf Library ######################## -Flag elf_loader - Description: Build Bap_elf library - Default: false - -Library elf - Path: lib/bap_elf - Build$: flag(everything) || flag(elf_loader) - FindlibName: bap-elf - BuildDepends: bitstring, bitstring.ppx, regular, core_kernel, ppx_jane - Modules: Bap_elf - InternalModules: - Elf_parse, - Elf_types, - Elf_utils, - Elf_internal_utils - -############## Elf Native loader #################### - -Library elf_loader_plugin - Path: plugins/elf_loader - Build$: flag(everything) || flag(elf_loader) - FindlibName: bap-plugin-elf_loader - CompiledObject: best - BuildDepends: bap, bap-elf, bap-dwarf, core_kernel, regular, ppx_jane - InternalModules: Elf_loader_main - XMETADescription: read ELF and DWARF formats in a pure OCaml - XMETAExtraLines: tags="legacy, loader, elf, dwarf" \ No newline at end of file diff --git a/oasis/elf-loader b/oasis/elf-loader index a5efe777f..2696f0214 100644 --- a/oasis/elf-loader +++ b/oasis/elf-loader @@ -17,10 +17,6 @@ Library elf ############## Elf Native loader #################### -Flag elf_loader - Description: Build native elf loader - Default: false - Library elf_loader_plugin Path: plugins/elf_loader Build$: flag(everything) || flag(elf_loader) diff --git a/oasis/legacy-llvm b/oasis/legacy-llvm new file mode 100644 index 000000000..f711b1a61 --- /dev/null +++ b/oasis/legacy-llvm @@ -0,0 +1,13 @@ + +Flag legacy_llvm + Description: Build with legacy llvm backend + Default: false + +Library legacy_llvm_plugin + XMETADescription: provide legacy loader using LLVM library + Path: plugins/legacy_llvm + Build$: flag(legacy_llvm) + BuildDepends: bap, bap-llvm, core_kernel + FindlibName: bap-plugin-legacy_llvm + InternalModules: Legacy_loader_main + XMETAExtraLines: tags="legacy, llvm, loader, elf, macho, coff" diff --git a/oasis/llvm b/oasis/llvm index 8a67e5485..b05351dd6 100644 --- a/oasis/llvm +++ b/oasis/llvm @@ -6,9 +6,6 @@ Flag llvm_static Description: Links with llvm in a static mode Default: true -Flag legacy_llvm - Description: Build with legacy llvm backend - Default: false Library bap_llvm Path: lib/bap_llvm @@ -70,12 +67,3 @@ Library llvm_plugin InternalModules: Llvm_main BuildDepends: bap, bap-llvm, bap-main, core_kernel XMETAExtraLines: tags="disassembler, llvm, loader, elf, macho, coff" - -Library legacy_llvm_plugin - XMETADescription: provide legacy loader using LLVM library - Path: plugins/legacy_llvm - Build$: flag(legacy_llvm) - BuildDepends: bap, bap-llvm, core_kernel - FindlibName: bap-plugin-legacy_llvm - InternalModules: Legacy_loader_main - XMETAExtraLines: tags="legacy, llvm, loader, elf, macho, coff" From ed71f75be288ad1b246a09165500e1338874b6b6 Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 16:22:44 -0400 Subject: [PATCH 09/10] try to fix omake build --- configure-omake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure-omake b/configure-omake index 4fcf49f91..c7381e469 100755 --- a/configure-omake +++ b/configure-omake @@ -2,7 +2,7 @@ rm -f _oasis mv oasis/benchmarks oasis/benchmarks.backup -mv oasis/piqi oasis/piqi.backup +mv oasis/piqi-printers oasis/piqi-printers.backup mv oasis/common oasis/common.backup cp oasis/common.omake oasis/common SECTIONS=`ocaml tools/oasis_sections.ml --sections --enable-everything` @@ -12,7 +12,7 @@ ocaml tools/cat.ml '"\n# $name\n"' -- $SECTIONS $AB _oasis ocaml tools/cat.ml '"\n#1 \"$name\"\n"' -- $SETUPS setup.ml.in setup.ml cp oasis/common.backup oasis/common cp oasis/benchmarks.backup oasis/benchmarks -cp oasis/piqi.backup oasis/piqi +cp oasis/piqi-printers.backup oasis/piqi-printers sed -i 's/.*Build$.*//' _oasis sed -i 's/.*CCOpt:.*//' _oasis sed -i 's/.*CCLib:.*//' _oasis From 8e17aa8ff26a7cbd90f62057e74609a521c73688 Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 1 Jul 2020 16:42:55 -0400 Subject: [PATCH 10/10] renaming --- oasis/{piqi.ocamlbuild.ml.in => piqi-printers.ocamlbuild.ml.in} | 0 oasis/{piqi.setup.ml.in => piqi-printers.setup.ml.in} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename oasis/{piqi.ocamlbuild.ml.in => piqi-printers.ocamlbuild.ml.in} (100%) rename oasis/{piqi.setup.ml.in => piqi-printers.setup.ml.in} (100%) diff --git a/oasis/piqi.ocamlbuild.ml.in b/oasis/piqi-printers.ocamlbuild.ml.in similarity index 100% rename from oasis/piqi.ocamlbuild.ml.in rename to oasis/piqi-printers.ocamlbuild.ml.in diff --git a/oasis/piqi.setup.ml.in b/oasis/piqi-printers.setup.ml.in similarity index 100% rename from oasis/piqi.setup.ml.in rename to oasis/piqi-printers.setup.ml.in