# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. load("//sandboxed_api/bazel:build_defs.bzl", "sapi_platform_copts") load("//sandboxed_api/bazel:proto.bzl", "sapi_proto_library") package(default_visibility = [ "//sandboxed_api/sandbox2:__subpackages__", ]) licenses(["notice"]) # Apache 2.0 cc_library( name = "ptrace_hook", srcs = ["ptrace_hook.cc"], hdrs = ["ptrace_hook.h"], copts = sapi_platform_copts(), visibility = ["@org_gnu_libunwind//:__subpackages__"], ) cc_library( name = "unwind", srcs = ["unwind.cc"], hdrs = ["unwind.h"], copts = sapi_platform_copts([ # TODO(cblichmann): Remove this, fix bazel/external/libunwind.BUILD "-Iexternal/org_gnu_libunwind/include", ] + [ "-D{symbol}={symbol}_wrapped".format(symbol = symbol) for symbol in [ "_UPT_accessors", "_UPT_create", "_UPT_destroy", "_Ux86_64_create_addr_space", "_Ux86_64_destroy_addr_space", "_Ux86_64_get_proc_name", "_Ux86_64_get_reg", "_Ux86_64_init_remote", "_Ux86_64_step", ] ]), deps = [ ":ptrace_hook", ":unwind_cc_proto", "//sandboxed_api/sandbox2:comms", "//sandboxed_api/sandbox2/util:maps_parser", "//sandboxed_api/sandbox2/util:minielf", "//sandboxed_api/sandbox2/util:strerror", "//sandboxed_api/util:raw_logging", "@com_google_absl//absl/strings", "@org_gnu_libunwind//:unwind-ptrace-wrapped", ], ) sapi_proto_library( name = "unwind_proto", srcs = ["unwind.proto"], )