# 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/extensible_rtti.h",
"lib/orc/interval_map.h",
"lib/orc/interval_set.h",
"lib/orc/jit_dispatch.h",
"lib/orc/record_section_tracker.h",
"lib/orc/simple_packed_serialization.h",
"lib/orc/stl_extras.h",
"lib/orc/string_pool.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/extensible_rtti.cpp",
"lib/orc/log_error_to_stderr.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",
],
)