diff options
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/BUILD.bazel | 15 | ||||
-rw-r--r-- | third_party/android/BUILD | 0 | ||||
-rw-r--r-- | third_party/android/android_configure.bzl | 57 | ||||
-rw-r--r-- | third_party/bazel-toolchain-export-dynamic-macos-asan.patch | 12 | ||||
-rw-r--r-- | third_party/gflags-use-double-dash-args.patch | 11 | ||||
-rw-r--r-- | third_party/jacoco-ignore-offline-instrumentation.patch | 16 | ||||
-rw-r--r-- | third_party/jacoco_internal.BUILD | 8 | ||||
-rw-r--r-- | third_party/libFuzzer.BUILD | 12 | ||||
-rw-r--r-- | third_party/protobuf-disable-layering_check.patch | 249 | ||||
-rw-r--r-- | third_party/slicer.BUILD | 31 |
10 files changed, 364 insertions, 47 deletions
diff --git a/third_party/BUILD.bazel b/third_party/BUILD.bazel index a234e836..b70d5ddd 100644 --- a/third_party/BUILD.bazel +++ b/third_party/BUILD.bazel @@ -1,16 +1 @@ -load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") - -bool_flag( - name = "toolchain", - build_setting_default = False, -) - -config_setting( - name = "uses_toolchain", - flag_values = { - ":toolchain": "true", - }, - visibility = ["//visibility:public"], -) - exports_files(["jacoco_internal.jarjar"]) diff --git a/third_party/android/BUILD b/third_party/android/BUILD new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/third_party/android/BUILD diff --git a/third_party/android/android_configure.bzl b/third_party/android/android_configure.bzl new file mode 100644 index 00000000..33118904 --- /dev/null +++ b/third_party/android/android_configure.bzl @@ -0,0 +1,57 @@ +"""Repository rule for Android SKD and NDK autoconfigure""" + +load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") +load("@rules_android_ndk//:rules.bzl", "android_ndk_repository") + +_ANDROID_SDK_HOME = "ANDROID_HOME" +_ANDROID_NDK_HOME = "ANDROID_NDK_HOME" + +_ANDROID_REPOS_TEMPLATE = """android_sdk_repository( + name="androidsdk", + path={sdk_home}, + ) + android_ndk_repository( + name="androidndk", + path={ndk_home}, + ) +""" + +def _is_windows(repository_ctx): + """Returns true if the current platform is Windows""" + return repository_ctx.os.name.lower().startswith("windows") + +def _supports_android(repository_ctx): + sdk_home = repository_ctx.os.environ.get(_ANDROID_SDK_HOME) + ndk_home = repository_ctx.os.environ.get(_ANDROID_NDK_HOME) + return sdk_home and ndk_home and not _is_windows(repository_ctx) + +def _android_autoconf_impl(repository_ctx): + """Implementation of the android_autoconf repo rule""" + sdk_home = repository_ctx.os.environ.get(_ANDROID_SDK_HOME) + ndk_home = repository_ctx.os.environ.get(_ANDROID_NDK_HOME) + + # rules_android_ndk does not support Windows yet. + if _supports_android(repository_ctx): + repos = _ANDROID_REPOS_TEMPLATE.format( + sdk_home = repr(sdk_home), + ndk_home = repr(ndk_home), + ) + else: + repos = "pass" + + repository_ctx.file("BUILD.bazel", "") + repository_ctx.file("android_configure.bzl", """ +load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") +load("@rules_android_ndk//:rules.bzl", "android_ndk_repository") + +def android_workspace(): + {repos} + """.format(repos = repos)) + +android_configure = repository_rule( + implementation = _android_autoconf_impl, + environ = [ + _ANDROID_SDK_HOME, + _ANDROID_NDK_HOME, + ], +) diff --git a/third_party/bazel-toolchain-export-dynamic-macos-asan.patch b/third_party/bazel-toolchain-export-dynamic-macos-asan.patch deleted file mode 100644 index 05020e28..00000000 --- a/third_party/bazel-toolchain-export-dynamic-macos-asan.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git toolchain/BUILD.llvm_repo toolchain/BUILD.llvm_repo ---- toolchain/BUILD.llvm_repo -+++ toolchain/BUILD.llvm_repo -@@ -124,3 +124,8 @@ filegroup( - name = "strip", - srcs = ["bin/llvm-strip"], - ) -+ -+cc_import( -+ name = "macos_asan_dynamic", -+ shared_library = "lib/clang/13.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib", -+) diff --git a/third_party/gflags-use-double-dash-args.patch b/third_party/gflags-use-double-dash-args.patch deleted file mode 100644 index 554b41bd..00000000 --- a/third_party/gflags-use-double-dash-args.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/gflags_reporting.cc -+++ src/gflags_reporting.cc -@@ -118,7 +118,7 @@ - // Goes to some trouble to make pretty line breaks. - string DescribeOneFlag(const CommandLineFlagInfo& flag) { - string main_part; -- SStringPrintf(&main_part, " -%s (%s)", -+ SStringPrintf(&main_part, " --%s (%s)", - flag.name.c_str(), - flag.description.c_str()); - const char* c_string = main_part.c_str(); diff --git a/third_party/jacoco-ignore-offline-instrumentation.patch b/third_party/jacoco-ignore-offline-instrumentation.patch new file mode 100644 index 00000000..53d68eaf --- /dev/null +++ b/third_party/jacoco-ignore-offline-instrumentation.patch @@ -0,0 +1,16 @@ +diff --git org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java +index b8333a2f..1c728638 100644 +--- org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java ++++ org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java +@@ -234,11 +234,6 @@ public final class InstrSupport { + */ + public static void assertNotInstrumented(final String member, + final String owner) throws IllegalStateException { +- if (member.equals(DATAFIELD_NAME) || member.equals(INITMETHOD_NAME)) { +- throw new IllegalStateException(format( +- "Cannot process instrumented class %s. Please supply original non-instrumented classes.", +- owner)); +- } + } + + /** diff --git a/third_party/jacoco_internal.BUILD b/third_party/jacoco_internal.BUILD index 38ac7f6c..72669be4 100644 --- a/third_party/jacoco_internal.BUILD +++ b/third_party/jacoco_internal.BUILD @@ -3,12 +3,12 @@ load("@com_github_johnynek_bazel_jar_jar//:jar_jar.bzl", "jar_jar") java_import( name = "jacoco_internal", jars = ["jacoco_internal_shaded.jar"], + visibility = ["//visibility:public"], deps = [ "@org_ow2_asm_asm//jar", "@org_ow2_asm_asm_commons//jar", "@org_ow2_asm_asm_tree//jar", ], - visibility = ["//visibility:public"], ) jar_jar( @@ -22,13 +22,13 @@ java_library( srcs = glob([ "org.jacoco.core/src/org/jacoco/core/**/*.java", ]), - resources = glob([ - "org.jacoco.core/src/org/jacoco/core/**/*.properties", - ]), javacopts = [ "-Xep:EqualsHashCode:OFF", "-Xep:ReturnValueIgnored:OFF", ], + resources = glob([ + "org.jacoco.core/src/org/jacoco/core/**/*.properties", + ]), deps = [ "@org_ow2_asm_asm//jar", "@org_ow2_asm_asm_commons//jar", diff --git a/third_party/libFuzzer.BUILD b/third_party/libFuzzer.BUILD index bf902f21..5506af98 100644 --- a/third_party/libFuzzer.BUILD +++ b/third_party/libFuzzer.BUILD @@ -1,8 +1,11 @@ cc_library( name = "libfuzzer_no_main", - srcs = glob([ - "*.cpp", - ], exclude = ["FuzzerMain.cpp"]), + srcs = glob( + [ + "*.cpp", + ], + exclude = ["FuzzerMain.cpp"], + ), hdrs = glob([ "*.h", "*.def", @@ -13,7 +16,6 @@ cc_library( "-fno-exceptions", "-funwind-tables", "-fno-stack-protector", - "-fno-sanitize=safe-stack", "-fvisibility=hidden", "-fno-lto", ] + select({ @@ -32,7 +34,7 @@ cc_library( "-std=c++17", ], }), - alwayslink = True, linkstatic = True, visibility = ["//visibility:public"], + alwayslink = True, ) diff --git a/third_party/protobuf-disable-layering_check.patch b/third_party/protobuf-disable-layering_check.patch new file mode 100644 index 00000000..69d3449a --- /dev/null +++ b/third_party/protobuf-disable-layering_check.patch @@ -0,0 +1,249 @@ +commit 0cb6965869ab94858d9b843ab5d94f7deaea5dc8 +Author: Fabian Meumertzheim <fabian@meumertzhe.im> +Date: Mon Jun 12 16:12:02 2023 +0200 + + Disable layering_check + + protobuf misses a sizeable number of dependency declarations, which + means that `layering_check` has to be disabled for it. + + Generated with: + ``` + buildozer 'add features -layering_check' //src/...:__pkg__ + ``` + + Contains only the changes to `package` directives. + +diff --git src/BUILD.bazel src/BUILD.bazel +index 0de1a4eb1..b7e405147 100644 +--- src/BUILD.bazel ++++ src/BUILD.bazel +@@ -7,6 +7,8 @@ load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix") + load("@upb//cmake:build_defs.bzl", "staleness_test") + load("//conformance:defs.bzl", "conformance_test") + ++package(features = ["-layering_check"]) ++ + pkg_files( + name = "dist_files", + srcs = glob(["**"]), +diff --git src/google/protobuf/BUILD.bazel src/google/protobuf/BUILD.bazel +index 77ed2309f..8c38fb872 100644 +--- src/google/protobuf/BUILD.bazel ++++ src/google/protobuf/BUILD.bazel +@@ -13,6 +13,7 @@ package( + "//:__pkg__", # "public" targets are alias rules in //. + "//json:__subpackages__", + ], ++ features = ["-layering_check"], + ) + + proto_library( +diff --git src/google/protobuf/compiler/BUILD.bazel src/google/protobuf/compiler/BUILD.bazel +index a2171c806..8dcd34667 100644 +--- src/google/protobuf/compiler/BUILD.bazel ++++ src/google/protobuf/compiler/BUILD.bazel +@@ -13,6 +13,8 @@ load("@rules_proto//proto:defs.bzl", "proto_library") + load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test") + load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS") + ++package(features = ["-layering_check"]) ++ + proto_library( + name = "plugin_proto", + srcs = ["plugin.proto"], +diff --git src/google/protobuf/compiler/allowlists/BUILD.bazel src/google/protobuf/compiler/allowlists/BUILD.bazel +index 569a142fc..0a90b312f 100644 +--- src/google/protobuf/compiler/allowlists/BUILD.bazel ++++ src/google/protobuf/compiler/allowlists/BUILD.bazel +@@ -1,7 +1,10 @@ + load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("//build_defs:cpp_opts.bzl", "COPTS") + +-package(default_visibility = ["//visibility:private"]) ++package( ++ default_visibility = ["//visibility:private"], ++ features = ["-layering_check"], ++) + + cc_library( + name = "allowlist", +diff --git src/google/protobuf/compiler/cpp/BUILD.bazel src/google/protobuf/compiler/cpp/BUILD.bazel +index ac1184d32..deacbf582 100644 +--- src/google/protobuf/compiler/cpp/BUILD.bazel ++++ src/google/protobuf/compiler/cpp/BUILD.bazel +@@ -7,6 +7,8 @@ load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("@rules_proto//proto:defs.bzl", "proto_library") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "names", + hdrs = ["names.h"], +diff --git src/google/protobuf/compiler/csharp/BUILD.bazel src/google/protobuf/compiler/csharp/BUILD.bazel +index 96b8dcbc0..a2d549f26 100644 +--- src/google/protobuf/compiler/csharp/BUILD.bazel ++++ src/google/protobuf/compiler/csharp/BUILD.bazel +@@ -6,6 +6,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "names", + hdrs = ["names.h"], +diff --git src/google/protobuf/compiler/java/BUILD.bazel src/google/protobuf/compiler/java/BUILD.bazel +index 94573892c..c94f472d6 100644 +--- src/google/protobuf/compiler/java/BUILD.bazel ++++ src/google/protobuf/compiler/java/BUILD.bazel +@@ -6,6 +6,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "names", + hdrs = ["names.h"], +diff --git src/google/protobuf/compiler/objectivec/BUILD.bazel src/google/protobuf/compiler/objectivec/BUILD.bazel +index f78990394..6c534219a 100644 +--- src/google/protobuf/compiler/objectivec/BUILD.bazel ++++ src/google/protobuf/compiler/objectivec/BUILD.bazel +@@ -6,6 +6,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "names", + hdrs = ["names.h"], +diff --git src/google/protobuf/compiler/php/BUILD.bazel src/google/protobuf/compiler/php/BUILD.bazel +index fe9e75c2c..a569a1c9d 100644 +--- src/google/protobuf/compiler/php/BUILD.bazel ++++ src/google/protobuf/compiler/php/BUILD.bazel +@@ -6,6 +6,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "names", + hdrs = ["names.h"], +diff --git src/google/protobuf/compiler/python/BUILD.bazel src/google/protobuf/compiler/python/BUILD.bazel +index 5d26e0ce9..ce017acf1 100644 +--- src/google/protobuf/compiler/python/BUILD.bazel ++++ src/google/protobuf/compiler/python/BUILD.bazel +@@ -6,6 +6,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "python", + srcs = [ +diff --git src/google/protobuf/compiler/ruby/BUILD.bazel src/google/protobuf/compiler/ruby/BUILD.bazel +index 520b69194..1e437e7bc 100644 +--- src/google/protobuf/compiler/ruby/BUILD.bazel ++++ src/google/protobuf/compiler/ruby/BUILD.bazel +@@ -6,6 +6,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "ruby", + srcs = ["ruby_generator.cc"], +diff --git src/google/protobuf/compiler/rust/BUILD.bazel src/google/protobuf/compiler/rust/BUILD.bazel +index 7c1f5b856..4a10038d1 100644 +--- src/google/protobuf/compiler/rust/BUILD.bazel ++++ src/google/protobuf/compiler/rust/BUILD.bazel +@@ -5,6 +5,8 @@ + load("@rules_cc//cc:defs.bzl", "cc_library") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "rust", + srcs = ["generator.cc"], +diff --git src/google/protobuf/io/BUILD.bazel src/google/protobuf/io/BUILD.bazel +index 8f39625c2..fc2f8e002 100644 +--- src/google/protobuf/io/BUILD.bazel ++++ src/google/protobuf/io/BUILD.bazel +@@ -6,6 +6,7 @@ load("//build_defs:cpp_opts.bzl", "COPTS") + + package( + default_visibility = ["//visibility:public"], ++ features = ["-layering_check"], + ) + + cc_library( +diff --git src/google/protobuf/json/BUILD.bazel src/google/protobuf/json/BUILD.bazel +index d6019f939..83caca985 100644 +--- src/google/protobuf/json/BUILD.bazel ++++ src/google/protobuf/json/BUILD.bazel +@@ -1,10 +1,13 @@ + load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") + load("//build_defs:cpp_opts.bzl", "COPTS") + +-package(default_visibility = [ +- "//pkg:__pkg__", +- "//src/google/protobuf/json:__pkg__", +-]) ++package( ++ default_visibility = [ ++ "//pkg:__pkg__", ++ "//src/google/protobuf/json:__pkg__", ++ ], ++ features = ["-layering_check"], ++) + + licenses(["notice"]) + +diff --git src/google/protobuf/stubs/BUILD.bazel src/google/protobuf/stubs/BUILD.bazel +index c8fc3e9d0..9521f5103 100644 +--- src/google/protobuf/stubs/BUILD.bazel ++++ src/google/protobuf/stubs/BUILD.bazel +@@ -7,6 +7,7 @@ load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS") + + package( + default_visibility = ["//:__subpackages__"], ++ features = ["-layering_check"], + ) + + cc_library( +diff --git src/google/protobuf/testing/BUILD.bazel src/google/protobuf/testing/BUILD.bazel +index 572c1f9f4..d10435cce 100644 +--- src/google/protobuf/testing/BUILD.bazel ++++ src/google/protobuf/testing/BUILD.bazel +@@ -5,7 +5,10 @@ load("@rules_cc//cc:defs.bzl", "cc_library") + load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS") + +-package(default_visibility = ["//:__subpackages__"]) ++package( ++ default_visibility = ["//:__subpackages__"], ++ features = ["-layering_check"], ++) + + cc_library( + name = "testing", +diff --git src/google/protobuf/util/BUILD.bazel src/google/protobuf/util/BUILD.bazel +index 3afe464cf..03a3045b3 100644 +--- src/google/protobuf/util/BUILD.bazel ++++ src/google/protobuf/util/BUILD.bazel +@@ -7,6 +7,8 @@ load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + load("@rules_proto//proto:defs.bzl", "proto_library") + load("//build_defs:cpp_opts.bzl", "COPTS") + ++package(features = ["-layering_check"]) ++ + cc_library( + name = "delimited_message_util", + srcs = ["delimited_message_util.cc"], diff --git a/third_party/slicer.BUILD b/third_party/slicer.BUILD new file mode 100644 index 00000000..a7bc7b67 --- /dev/null +++ b/third_party/slicer.BUILD @@ -0,0 +1,31 @@ +cc_library( + name = "jazzer_slicer", + srcs = [ + "slicer/bytecode_encoder.cc", + "slicer/code_ir.cc", + "slicer/common.cc", + "slicer/control_flow_graph.cc", + "slicer/debuginfo_encoder.cc", + "slicer/dex_bytecode.cc", + "slicer/dex_format.cc", + "slicer/dex_ir.cc", + "slicer/dex_ir_builder.cc", + "slicer/dex_utf8.cc", + "slicer/instrumentation.cc", + "slicer/reader.cc", + "slicer/tryblocks_encoder.cc", + "slicer/writer.cc", + ], + hdrs = glob(["slicer/export/slicer/*.h"]), + copts = [ + "-Wall", + "-Wno-sign-compare", + "-Wno-unused-parameter", + "-Wno-shift-count-overflow", + "-Wno-missing-braces", + ], + includes = ["slicer/export"], + visibility = [ + "//visibility:public", + ], +) |