[K/N] Move calls checker into separate module ^KT-62091
This commit is contained in:
committed by
Space Team
parent
8cd87059c8
commit
3f2584bb02
@@ -42,6 +42,7 @@ val targetList: List<String> by project
|
||||
bitcode {
|
||||
allTargets {
|
||||
module("main") {
|
||||
headersDirs.from("src/externalCallsChecker/common/cpp")
|
||||
sourceSets {
|
||||
main {
|
||||
// TODO: Split out out `base` module and merge it together with `main` into `runtime.bc`
|
||||
@@ -133,21 +134,21 @@ bitcode {
|
||||
}
|
||||
|
||||
module("compiler_interface") {
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
}
|
||||
|
||||
module("launcher") {
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
}
|
||||
|
||||
module("debug") {
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -155,7 +156,7 @@ bitcode {
|
||||
|
||||
module("common_alloc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/alloc/common"))
|
||||
headersDirs.from(files("src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -163,7 +164,7 @@ bitcode {
|
||||
|
||||
module("std_alloc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/alloc/std"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/alloc/legacy/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/alloc/legacy/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -171,7 +172,7 @@ bitcode {
|
||||
|
||||
module("custom_alloc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/alloc/custom"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -183,7 +184,7 @@ bitcode {
|
||||
|
||||
module("mimalloc_alloc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/alloc/mimalloc"))
|
||||
headersDirs.from(files("src/mimalloc/c/include", "src/alloc/common/cpp", "src/alloc/legacy/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/mimalloc/c/include", "src/alloc/common/cpp", "src/alloc/legacy/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -193,7 +194,7 @@ bitcode {
|
||||
|
||||
module("legacy_alloc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/alloc/legacy"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -203,7 +204,7 @@ bitcode {
|
||||
|
||||
module("exceptionsSupport") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/exceptions_support"))
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -211,7 +212,7 @@ bitcode {
|
||||
|
||||
module("source_info_core_symbolication") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/source_info/core_symbolication"))
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -221,7 +222,7 @@ bitcode {
|
||||
|
||||
module("source_info_libbacktrace") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/source_info/libbacktrace"))
|
||||
headersDirs.from(files("src/main/cpp", "src/libbacktrace/c/include"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp", "src/libbacktrace/c/include"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -230,14 +231,14 @@ bitcode {
|
||||
}
|
||||
|
||||
module("objc") {
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
}
|
||||
|
||||
module("test_support") {
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
testFixtures {
|
||||
inputFiles.include("**/*.cpp", "**/*.mm")
|
||||
@@ -246,7 +247,7 @@ bitcode {
|
||||
}
|
||||
|
||||
module("mm") {
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
testFixtures {}
|
||||
@@ -256,7 +257,7 @@ bitcode {
|
||||
|
||||
module("common_gc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/common"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -265,7 +266,7 @@ bitcode {
|
||||
|
||||
module("noop_gc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/noop"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -273,7 +274,7 @@ bitcode {
|
||||
|
||||
module("noop_gc_custom") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/noop"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -283,7 +284,7 @@ bitcode {
|
||||
|
||||
module("same_thread_ms_gc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/stms"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -292,7 +293,7 @@ bitcode {
|
||||
|
||||
module("same_thread_ms_gc_custom") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/stms"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -303,7 +304,7 @@ bitcode {
|
||||
|
||||
module("pmcs_gc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/pmcs"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -312,7 +313,7 @@ bitcode {
|
||||
|
||||
module("pmcs_gc_custom") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/pmcs"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -323,7 +324,7 @@ bitcode {
|
||||
|
||||
module("concurrent_ms_gc") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/cms"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/legacy/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -332,7 +333,7 @@ bitcode {
|
||||
|
||||
module("concurrent_ms_gc_custom") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gc/cms"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp", "src/alloc/custom/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -343,7 +344,7 @@ bitcode {
|
||||
|
||||
module("common_gcScheduler") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gcScheduler/common"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -352,7 +353,7 @@ bitcode {
|
||||
|
||||
module("manual_gcScheduler") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gcScheduler/manual"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
@@ -360,7 +361,7 @@ bitcode {
|
||||
|
||||
module("adaptive_gcScheduler") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gcScheduler/adaptive"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
@@ -369,15 +370,31 @@ bitcode {
|
||||
|
||||
module("aggressive_gcScheduler") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/gcScheduler/aggressive"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/main/cpp"))
|
||||
headersDirs.from(files("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
sourceSets {
|
||||
main {}
|
||||
test {}
|
||||
}
|
||||
}
|
||||
|
||||
module("impl_externalCallsChecker") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/externalCallsChecker/impl"))
|
||||
headersDirs.from("src/alloc/common/cpp", "src/gcScheduler/common/cpp", "src/gc/common/cpp", "src/mm/cpp", "src/externalCallsChecker/common/cpp", "src/main/cpp")
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
}
|
||||
|
||||
module("noop_externalCallsChecker") {
|
||||
srcRoot.set(layout.projectDirectory.dir("src/externalCallsChecker/noop"))
|
||||
headersDirs.from("src/externalCallsChecker/common/cpp", "src/main/cpp")
|
||||
sourceSets {
|
||||
main {}
|
||||
}
|
||||
}
|
||||
|
||||
module("xctest_launcher") {
|
||||
headersDirs.from(files("src/main/cpp"))
|
||||
headersDirs.from(files("src/externalCallsChecker/common/cpp", "src/main/cpp"))
|
||||
|
||||
sourceSets {
|
||||
main {}
|
||||
@@ -387,69 +404,69 @@ bitcode {
|
||||
|
||||
testsGroup("custom_alloc_runtime_tests") {
|
||||
testedModules.addAll("custom_alloc")
|
||||
testSupportModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "concurrent_ms_gc_custom", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "concurrent_ms_gc_custom", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_stms_mimalloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "same_thread_ms_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "same_thread_ms_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_stms_std_alloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "same_thread_ms_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "same_thread_ms_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_stms_custom_alloc_runtime_tests") {
|
||||
testedModules.addAll("mm", "same_thread_ms_gc_custom")
|
||||
testSupportModules.addAll("main", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_pmcs_mimalloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "pmcs_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "pmcs_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_pmcs_std_alloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "pmcs_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "pmcs_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_pmcs_custom_alloc_runtime_tests") {
|
||||
testedModules.addAll("mm", "pmcs_gc_custom")
|
||||
testSupportModules.addAll("main", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_cms_mimalloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "concurrent_ms_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "concurrent_ms_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_cms_std_alloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "concurrent_ms_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "concurrent_ms_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_cms_custom_alloc_runtime_tests") {
|
||||
testedModules.addAll("mm", "concurrent_ms_gc_custom")
|
||||
testSupportModules.addAll("main", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_noop_mimalloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "noop_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "noop_gc", "mimalloc", "mimalloc_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_noop_std_alloc_runtime_tests") {
|
||||
testedModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "noop_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
testedModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "noop_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("experimentalMM_noop_custom_alloc_runtime_tests") {
|
||||
testedModules.addAll("mm", "noop_gc_custom")
|
||||
testSupportModules.addAll("main", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "common_alloc", "common_gc", "common_gcScheduler", "manual_gcScheduler", "custom_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("aggressive_gcScheduler_runtime_tests") {
|
||||
testedModules.addAll("aggressive_gcScheduler")
|
||||
testSupportModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "noop_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "noop_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
|
||||
testsGroup("adaptive_gcScheduler_runtime_tests") {
|
||||
testedModules.addAll("adaptive_gcScheduler")
|
||||
testSupportModules.addAll("main", "mm", "common_alloc", "common_gc", "common_gcScheduler", "noop_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
testSupportModules.addAll("main", "noop_externalCallsChecker", "mm", "common_alloc", "common_gc", "common_gcScheduler", "noop_gc", "std_alloc", "legacy_alloc", "objc")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -8,6 +8,8 @@
|
||||
#include "Common.h"
|
||||
#include "Utils.hpp"
|
||||
|
||||
#define NO_EXTERNAL_CALLS_CHECK __attribute__((annotate("no_external_calls_check")))
|
||||
|
||||
namespace kotlin {
|
||||
|
||||
// Ignore thread state checker for the scope.
|
||||
@@ -19,4 +21,4 @@ public:
|
||||
ALWAYS_INLINE ~CallsCheckerIgnoreGuard();
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace kotlin
|
||||
+16
-12
@@ -20,7 +20,7 @@
|
||||
using namespace kotlin;
|
||||
|
||||
// this values will be substituted by compiler
|
||||
extern "C" const void **Kotlin_callsCheckerKnownFunctions = nullptr;
|
||||
extern "C" const void** Kotlin_callsCheckerKnownFunctions = nullptr;
|
||||
extern "C" int Kotlin_callsCheckerKnownFunctionsCount = 0;
|
||||
|
||||
extern "C" const char* Kotlin_callsCheckerGoodFunctionNames[] = {
|
||||
@@ -290,13 +290,13 @@ public:
|
||||
for (int i = 0; i < Kotlin_callsCheckerKnownFunctionsCount; i++) {
|
||||
known_functions_.insert(Kotlin_callsCheckerKnownFunctions[i]);
|
||||
}
|
||||
std::copy(std::begin(Kotlin_callsCheckerGoodFunctionNames), std::end(Kotlin_callsCheckerGoodFunctionNames), std::begin(good_names_copy_));
|
||||
std::copy(
|
||||
std::begin(Kotlin_callsCheckerGoodFunctionNames), std::end(Kotlin_callsCheckerGoodFunctionNames),
|
||||
std::begin(good_names_copy_));
|
||||
std::sort(std::begin(good_names_copy_), std::end(good_names_copy_));
|
||||
}
|
||||
|
||||
bool isKnown(const void* fun) const noexcept {
|
||||
return known_functions_.find(fun) != known_functions_.end();
|
||||
}
|
||||
bool isKnown(const void* fun) const noexcept { return known_functions_.find(fun) != known_functions_.end(); }
|
||||
|
||||
bool isSafeByName(std::string_view name) const noexcept {
|
||||
auto it = std::lower_bound(std::begin(good_names_copy_), std::end(good_names_copy_), name);
|
||||
@@ -307,10 +307,10 @@ public:
|
||||
return name.substr(0, banned.size() - 1) == banned.substr(0, banned.size() - 1);
|
||||
};
|
||||
if (it != std::end(good_names_copy_) && check(*it)) {
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
if (it != std::begin(good_names_copy_) && check(*std::prev(it))) {
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -324,13 +324,12 @@ private:
|
||||
|
||||
[[clang::no_destroy]] const KnownFunctionChecker checker;
|
||||
|
||||
|
||||
constexpr int MSG_SEND_TO_NULL = -1;
|
||||
constexpr int CALLED_LLVM_BUILTIN = -2;
|
||||
|
||||
thread_local size_t ignoreGuardsCount = 0;
|
||||
|
||||
}
|
||||
} // namespace
|
||||
|
||||
/**
|
||||
* This function calls is inserted to llvm bitcode automatically, so it can be called almost anywhre.
|
||||
@@ -342,7 +341,8 @@ thread_local size_t ignoreGuardsCount = 0;
|
||||
* should not be accessed. So before guard checking we need to check is thread destructor is running,
|
||||
* which requires special handling of recursive calls from this check.
|
||||
*/
|
||||
extern "C" RUNTIME_NOTHROW RUNTIME_NODEBUG void Kotlin_mm_checkStateAtExternalFunctionCall(const char* caller, const char *callee, const void *calleePtr) noexcept {
|
||||
extern "C" RUNTIME_NOTHROW RUNTIME_NODEBUG void Kotlin_mm_checkStateAtExternalFunctionCall(
|
||||
const char* caller, const char* callee, const void* calleePtr) noexcept {
|
||||
if (reinterpret_cast<int64_t>(calleePtr) == MSG_SEND_TO_NULL) return; // objc_sendMsg called on nil, it does nothing, so it's ok
|
||||
if (ignoreGuardsCount != 0) return;
|
||||
if (konan::isOnThreadExitNotSetOrAlreadyStarted()) return;
|
||||
@@ -375,5 +375,9 @@ extern "C" RUNTIME_NOTHROW RUNTIME_NODEBUG void Kotlin_mm_checkStateAtExternalFu
|
||||
RuntimeFail("Expected kNative thread state at call of function %s by function %s", callee, caller);
|
||||
}
|
||||
|
||||
CallsCheckerIgnoreGuard::CallsCheckerIgnoreGuard() noexcept { ++ignoreGuardsCount; }
|
||||
CallsCheckerIgnoreGuard::~CallsCheckerIgnoreGuard() { --ignoreGuardsCount; }
|
||||
CallsCheckerIgnoreGuard::CallsCheckerIgnoreGuard() noexcept {
|
||||
++ignoreGuardsCount;
|
||||
}
|
||||
CallsCheckerIgnoreGuard::~CallsCheckerIgnoreGuard() {
|
||||
--ignoreGuardsCount;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "CallsChecker.hpp"
|
||||
|
||||
using namespace kotlin;
|
||||
|
||||
CallsCheckerIgnoreGuard::CallsCheckerIgnoreGuard() noexcept = default;
|
||||
CallsCheckerIgnoreGuard::~CallsCheckerIgnoreGuard() = default;
|
||||
@@ -36,8 +36,6 @@
|
||||
#endif
|
||||
#define NO_INLINE __attribute__((noinline))
|
||||
|
||||
#define NO_EXTERNAL_CALLS_CHECK __attribute__((annotate("no_external_calls_check")))
|
||||
|
||||
#define OPTNONE __attribute__((optnone))
|
||||
|
||||
#define THREAD_LOCAL_VARIABLE __thread
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <cinttypes>
|
||||
#include <thread>
|
||||
|
||||
#include "CallsChecker.hpp"
|
||||
#include "KAssert.h"
|
||||
#include "Memory.h"
|
||||
#include "Utils.hpp"
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#import <Foundation/NSDictionary.h>
|
||||
#import <Foundation/NSSet.h>
|
||||
|
||||
#import "CallsChecker.hpp"
|
||||
#import "Exceptions.h"
|
||||
#import "ObjCExport.h"
|
||||
#import "ObjCExportCollections.h"
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include "CallsChecker.hpp"
|
||||
#include "Common.h"
|
||||
#include "CompilerConstants.hpp"
|
||||
#include "Porting.h"
|
||||
|
||||
Reference in New Issue
Block a user