| # This file is licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| package( |
| default_visibility = ["//visibility:public"], |
| features = ["layering_check"], |
| ) |
| |
| licenses(["notice"]) |
| |
| cc_library( |
| name = "config", |
| defines = select({ |
| "@platforms//os:linux": [ |
| "COMPILER_RT_HAS_ATOMICS=1", |
| "COMPILER_RT_HAS_FCNTL_LCK=1", |
| "COMPILER_RT_HAS_UNAME=1", |
| ], |
| # Will raise error unless supported platforms. |
| }), |
| target_compatible_with = select({ |
| "@platforms//os:linux": [], |
| "//conditions:default": ["@platforms//:incompatible"], |
| }), |
| ) |
| |
| WIN32_ONLY_FILES = [ |
| "lib/profile/WindowsMMap.c", |
| ] |
| |
| cc_library( |
| name = "profile", |
| srcs = glob( |
| [ |
| "lib/profile/*.c", |
| "lib/profile/*.cpp", |
| "lib/profile/*.h", |
| ], |
| exclude = WIN32_ONLY_FILES, |
| ) + select({ |
| "@platforms//os:windows": WIN32_ONLY_FILES, |
| "//conditions:default": [], |
| }), |
| hdrs = glob([ |
| "include/profile/*.h", |
| "include/profile/*.inc", |
| ]), |
| includes = [ |
| "include", |
| ], |
| linkstatic = True, |
| deps = [ |
| ":config", |
| ], |
| ) |
| |
| cc_library( |
| name = "orc_rt_common_headers", |
| hdrs = [ |
| "lib/orc/adt.h", |
| "lib/orc/bitmask_enum.h", |
| "lib/orc/common.h", |
| "lib/orc/compiler.h", |
| "lib/orc/debug.h", |
| "lib/orc/endianness.h", |
| "lib/orc/error.h", |
| "lib/orc/executor_address.h", |
| "lib/orc/executor_symbol_def.h", |
| "lib/orc/interval_map.h", |
| "lib/orc/interval_set.h", |
| "lib/orc/jit_dispatch.h", |
| "lib/orc/record_section_tracker.h", |
| "lib/orc/rtti.h", |
| "lib/orc/simple_packed_serialization.h", |
| "lib/orc/stl_extras.h", |
| "lib/orc/string_pool.h", |
| "lib/orc/unique_function.h", |
| "lib/orc/wrapper_function_utils.h", |
| ], |
| strip_include_prefix = "lib/orc", |
| ) |
| |
| cc_library( |
| name = "orc_rt", |
| srcs = [ |
| "lib/orc/debug.cpp", |
| "lib/orc/dlfcn_wrapper.cpp", |
| "lib/orc/log_error_to_stderr.cpp", |
| "lib/orc/rtti.cpp", |
| "lib/orc/run_program_wrapper.cpp", |
| ] + select({ |
| "@platforms//os:macos": [ |
| "lib/orc/macho_platform.cpp", |
| "lib/orc/macho_platform.h", |
| "lib/orc/macho_tlv.arm64.S", |
| "lib/orc/macho_tlv.x86-64.S", |
| ], |
| "@platforms//os:linux": [ |
| "lib/orc/elfnix_platform.cpp", |
| "lib/orc/elfnix_platform.h", |
| "lib/orc/elfnix_tls.aarch64.S", |
| "lib/orc/elfnix_tls.ppc64.S", |
| "lib/orc/elfnix_tls.x86-64.S", |
| ], |
| }), |
| hdrs = glob(["include/orc_rt/*.h"]), |
| includes = ["include"], |
| linkstatic = True, |
| deps = [ |
| ":orc_rt_common_headers", |
| ], |
| ) |