diff options
Diffstat (limited to 'driver/BUILD.bazel')
-rw-r--r-- | driver/BUILD.bazel | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/driver/BUILD.bazel b/driver/BUILD.bazel deleted file mode 100644 index 2d503cce..00000000 --- a/driver/BUILD.bazel +++ /dev/null @@ -1,234 +0,0 @@ -load("@fmeum_rules_jni//jni:defs.bzl", "cc_jni_library") -load("//bazel:compat.bzl", "SKIP_ON_WINDOWS") - -cc_library( - name = "jazzer_main", - srcs = ["jazzer_main.cpp"], - deps = [ - ":jvm_tooling_lib", - "@com_google_absl//absl/strings", - "@fmeum_rules_jni//jni:libjvm", - "@jazzer_com_github_gflags_gflags//:gflags", - ], -) - -cc_library( - name = "jvm_tooling_lib", - srcs = ["jvm_tooling.cpp"], - hdrs = ["jvm_tooling.h"], - tags = [ - # Should be built through the cc_17_library driver_lib. - "manual", - ], - deps = [ - "@bazel_tools//tools/cpp/runfiles", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", - "@fmeum_rules_jni//jni", - "@jazzer_com_github_gflags_gflags//:gflags", - ], -) - -DYNAMIC_SYMBOLS_TO_EXPORT = [ - "__sanitizer_cov_8bit_counters_init", - "__sanitizer_cov_pcs_init", - "__sanitizer_cov_trace_cmp1", - "__sanitizer_cov_trace_cmp4", - "__sanitizer_cov_trace_cmp4", - "__sanitizer_cov_trace_cmp8", - "__sanitizer_cov_trace_const_cmp1", - "__sanitizer_cov_trace_const_cmp4", - "__sanitizer_cov_trace_const_cmp4", - "__sanitizer_cov_trace_const_cmp8", - "__sanitizer_cov_trace_div4", - "__sanitizer_cov_trace_div8", - "__sanitizer_cov_trace_gep", - "__sanitizer_cov_trace_pc_indir", - "__sanitizer_cov_trace_switch", - "__sanitizer_weak_hook_memcmp", - "__sanitizer_weak_hook_memmem", - "__sanitizer_weak_hook_strcasecmp", - "__sanitizer_weak_hook_strcasestr", - "__sanitizer_weak_hook_strcmp", - "__sanitizer_weak_hook_strncasecmp", - "__sanitizer_weak_hook_strncmp", - "__sanitizer_weak_hook_strstr", - "bcmp", - "jazzer_initialize_native_hooks", - "memcmp", - "memmem", - "strcasecmp", - "strcasestr", - "strcmp", - "strncasecmp", - "strncmp", - "strstr", -] - -cc_library( - name = "native_fuzzer_hooks", - srcs = ["native_fuzzer_hooks.c"], - linkopts = select({ - "@platforms//os:linux": [ - "-Wl,--export-dynamic-symbol=" + symbol - for symbol in DYNAMIC_SYMBOLS_TO_EXPORT - ] + [ - "-ldl", - ], - "@platforms//os:macos": [ - "-rdynamic", - "-ldl", - ], - "//conditions:default": [], - }), - target_compatible_with = SKIP_ON_WINDOWS, - deps = ["//driver/src/main/native/com/code_intelligence/jazzer/driver:sanitizer_hooks_with_pc"], - alwayslink = True, -) - -cc_binary( - name = "jazzer_driver", - data = [ - "//agent:jazzer_agent_deploy", - ], - linkopts = select({ - "//:clang_on_linux": ["-fuse-ld=lld"], - "//conditions:default": [], - }), - linkstatic = True, - visibility = ["//visibility:public"], - deps = [":jazzer_main"], -) - -alias( - name = "using_toolchain_on_osx", - actual = select({ - "//third_party:uses_toolchain": "@platforms//os:osx", - # In order to achieve AND semantics, reference a setting that is known - # not to apply. - "//conditions:default": "//third_party:uses_toolchain", - }), -) - -cc_binary( - name = "jazzer_driver_asan", - data = [ - "//agent:jazzer_agent_deploy", - ], - linkopts = select({ - "@platforms//os:windows": [ - # Sanitizer runtimes have to be linked manually on Windows: - # https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/ - "/wholearchive:clang_rt.asan-x86_64.lib", - "/wholearchive:clang_rt.asan_cxx-x86_64.lib", - ], - "//conditions:default": [ - "-fsanitize=address", - "-static-libsan", - ], - }) + select({ - "//:clang_on_linux": ["-fuse-ld=lld"], - "//conditions:default": [], - }), - linkstatic = True, - visibility = ["//visibility:public"], - deps = [":jazzer_main"] + select({ - # There is no static ASan runtime on macOS, so link to the dynamic - # runtime library if on macOS and using the toolchain. - ":using_toolchain_on_osx": ["@llvm_toolchain_llvm//:macos_asan_dynamic"], - "//conditions:default": [], - }) + select({ - "@platforms//os:windows": [], - "//conditions:default": [":native_fuzzer_hooks"], - }), -) - -cc_binary( - name = "jazzer_driver_ubsan", - data = [ - "//agent:jazzer_agent_deploy", - ], - linkopts = select({ - "@platforms//os:windows": [ - # Sanitizer runtimes have to be linked manually on Windows: - # https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/ - "/wholearchive:clang_rt.ubsan_standalone-x86_64.lib", - "/wholearchive:clang_rt.ubsan_standalone_cxx-x86_64.lib", - ], - "//conditions:default": [ - "-fsanitize=undefined", - # Link UBSan statically, even on macOS. - "-static-libsan", - "-fsanitize-link-c++-runtime", - ], - }) + select({ - "//:clang_on_linux": ["-fuse-ld=lld"], - "//conditions:default": [], - }), - linkstatic = True, - visibility = ["//visibility:public"], - deps = [ - ":jazzer_main", - ] + select({ - "@platforms//os:windows": [], - "//conditions:default": [":native_fuzzer_hooks"], - }), -) - -cc_test( - name = "jvm_tooling_test", - size = "small", - srcs = ["jvm_tooling_test.cpp"], - args = [ - "--cp=jazzer/$(rootpath //driver/testdata:fuzz_target_mocks_deploy.jar)", - ], - data = [ - "//agent:jazzer_agent_deploy", - "//driver/testdata:fuzz_target_mocks_deploy.jar", - ], - includes = ["."], - deps = [ - ":jvm_tooling_lib", - ":test_main", - "@bazel_tools//tools/cpp/runfiles", - "@googletest//:gtest", - "@jazzer_com_github_gflags_gflags//:gflags", - ], -) - -cc_test( - name = "fuzzed_data_provider_test", - size = "medium", - srcs = ["fuzzed_data_provider_test.cpp"], - args = [ - "--cp=jazzer/$(rootpath //driver/testdata:fuzz_target_mocks_deploy.jar)", - ], - copts = select({ - "@platforms//os:windows": ["/std:c++17"], - "//conditions:default": ["-std=c++17"], - }), - data = [ - "//agent:jazzer_agent_deploy", - "//driver/testdata:fuzz_target_mocks_deploy.jar", - ], - includes = ["."], - deps = [ - ":jvm_tooling_lib", - ":test_main", - "//driver/src/main/native/com/code_intelligence/jazzer/driver:fuzzed_data_provider", - "@bazel_tools//tools/cpp/runfiles", - "@googletest//:gtest", - "@jazzer_com_github_gflags_gflags//:gflags", - ], -) - -cc_library( - name = "test_main", - srcs = ["test_main.cpp"], - linkstatic = True, - deps = [ - "@fmeum_rules_jni//jni:libjvm", - "@googletest//:gtest", - "@jazzer_com_github_gflags_gflags//:gflags", - ], -) |