aboutsummaryrefslogtreecommitdiff
path: root/third_party
diff options
context:
space:
mode:
Diffstat (limited to 'third_party')
-rw-r--r--third_party/BUILD.bazel15
-rw-r--r--third_party/android/BUILD0
-rw-r--r--third_party/android/android_configure.bzl57
-rw-r--r--third_party/bazel-toolchain-export-dynamic-macos-asan.patch12
-rw-r--r--third_party/gflags-use-double-dash-args.patch11
-rw-r--r--third_party/jacoco-ignore-offline-instrumentation.patch16
-rw-r--r--third_party/jacoco_internal.BUILD8
-rw-r--r--third_party/libFuzzer.BUILD12
-rw-r--r--third_party/protobuf-disable-layering_check.patch249
-rw-r--r--third_party/slicer.BUILD31
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",
+ ],
+)