2939 lines
70 KiB
Text
2939 lines
70 KiB
Text
|
# 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
|
||
|
|
||
|
# LLVM libc project.
|
||
|
load("@bazel_skylib//lib:selects.bzl", "selects")
|
||
|
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
|
||
|
load(
|
||
|
":libc_build_rules.bzl",
|
||
|
"libc_function",
|
||
|
"libc_math_function",
|
||
|
"libc_support_library",
|
||
|
)
|
||
|
load(":platforms.bzl", "PLATFORM_CPU_ARM64", "PLATFORM_CPU_X86_64")
|
||
|
|
||
|
package(
|
||
|
default_visibility = ["//visibility:public"],
|
||
|
features = [
|
||
|
"-use_header_modules",
|
||
|
"-layering_check",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
licenses(["notice"])
|
||
|
|
||
|
PRINTF_COPTS = [
|
||
|
"LIBC_COPT_STDIO_USE_SYSTEM_FILE",
|
||
|
"LIBC_COPT_PRINTF_DISABLE_INDEX_MODE",
|
||
|
"LIBC_COPT_PRINTF_DISABLE_WRITE_INT",
|
||
|
]
|
||
|
|
||
|
MEMORY_COPTS = [
|
||
|
# "LIBC_COPT_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE=0",
|
||
|
# "LIBC_COPT_MEMCPY_X86_USE_SOFTWARE_PREFETCHING",
|
||
|
# "LIBC_COPT_MEMSET_X86_USE_SOFTWARE_PREFETCHING",
|
||
|
]
|
||
|
|
||
|
# A flag to pick which `mpfr` to use for math tests.
|
||
|
# Usage: `--@llvm-project//libc:mpfr=<disable|external|system>`.
|
||
|
# Flag documentation: https://bazel.build/extending/config
|
||
|
string_flag(
|
||
|
name = "mpfr",
|
||
|
build_setting_default = "external",
|
||
|
values = [
|
||
|
"disable", # Skip tests that need mpfr
|
||
|
"external", # Build mpfr from source
|
||
|
"system", # Use system mpfr (non hermetic)
|
||
|
],
|
||
|
)
|
||
|
|
||
|
config_setting(
|
||
|
name = "mpfr_disable",
|
||
|
flag_values = {":mpfr": "disable"},
|
||
|
)
|
||
|
|
||
|
config_setting(
|
||
|
name = "mpfr_external",
|
||
|
flag_values = {":mpfr": "external"},
|
||
|
)
|
||
|
|
||
|
config_setting(
|
||
|
name = "mpfr_system",
|
||
|
flag_values = {":mpfr": "system"},
|
||
|
)
|
||
|
|
||
|
############################## Support libraries #############################
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_properties_architectures",
|
||
|
hdrs = ["src/__support/macros/properties/architectures.h"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_properties_compiler",
|
||
|
hdrs = ["src/__support/macros/properties/compiler.h"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_properties_os",
|
||
|
hdrs = ["src/__support/macros/properties/os.h"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_properties_float",
|
||
|
hdrs = ["src/__support/macros/properties/float.h"],
|
||
|
deps = [
|
||
|
":__support_macros_properties_architectures",
|
||
|
":__support_macros_properties_compiler",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":__support_macros_properties_os",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_properties_cpu_features",
|
||
|
hdrs = ["src/__support/macros/properties/cpu_features.h"],
|
||
|
deps = [
|
||
|
"__support_macros_properties_architectures",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_config",
|
||
|
hdrs = ["src/__support/macros/config.h"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_attributes",
|
||
|
hdrs = ["src/__support/macros/attributes.h"],
|
||
|
deps = [
|
||
|
":__support_macros_properties_architectures",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_optimization",
|
||
|
hdrs = ["src/__support/macros/optimization.h"],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_config",
|
||
|
":__support_macros_properties_compiler",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_macros_sanitizer",
|
||
|
hdrs = ["src/__support/macros/sanitizer.h"],
|
||
|
deps = [
|
||
|
":__support_macros_config",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_common",
|
||
|
hdrs = [
|
||
|
"src/__support/common.h",
|
||
|
"src/__support/endian.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_properties_architectures",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_algorithm",
|
||
|
hdrs = ["src/__support/CPP/algorithm.h"],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_array",
|
||
|
hdrs = ["src/__support/CPP/array.h"],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_bit",
|
||
|
hdrs = ["src/__support/CPP/bit.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_config",
|
||
|
":__support_macros_sanitizer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_bitset",
|
||
|
hdrs = ["src/__support/CPP/bitset.h"],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_cstddef",
|
||
|
hdrs = ["src/__support/CPP/cstddef.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_expected",
|
||
|
hdrs = ["src/__support/CPP/expected.h"],
|
||
|
deps = [
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_functional",
|
||
|
hdrs = ["src/__support/CPP/functional.h"],
|
||
|
deps = [
|
||
|
"__support_cpp_type_traits",
|
||
|
"__support_cpp_utility",
|
||
|
"__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_limits",
|
||
|
hdrs = ["src/__support/CPP/limits.h"],
|
||
|
deps = [
|
||
|
"__support_cpp_type_traits",
|
||
|
"__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_new",
|
||
|
srcs = ["src/__support/CPP/new.cpp"],
|
||
|
hdrs = ["src/__support/CPP/new.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_optional",
|
||
|
hdrs = ["src/__support/CPP/optional.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_utility",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_span",
|
||
|
hdrs = ["src/__support/CPP/span.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_array",
|
||
|
":__support_cpp_type_traits",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_string_view",
|
||
|
hdrs = ["src/__support/CPP/string_view.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_stringstream",
|
||
|
hdrs = ["src/__support/CPP/stringstream.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_span",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_integer_to_string",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_string",
|
||
|
hdrs = ["src/__support/CPP/string.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_integer_to_string",
|
||
|
":string_memory_utils",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_type_traits",
|
||
|
hdrs = [
|
||
|
"src/__support/CPP/type_traits.h",
|
||
|
"src/__support/CPP/type_traits/add_lvalue_reference.h",
|
||
|
"src/__support/CPP/type_traits/add_pointer.h",
|
||
|
"src/__support/CPP/type_traits/add_rvalue_reference.h",
|
||
|
"src/__support/CPP/type_traits/always_false.h",
|
||
|
"src/__support/CPP/type_traits/bool_constant.h",
|
||
|
"src/__support/CPP/type_traits/conditional.h",
|
||
|
"src/__support/CPP/type_traits/decay.h",
|
||
|
"src/__support/CPP/type_traits/enable_if.h",
|
||
|
"src/__support/CPP/type_traits/false_type.h",
|
||
|
"src/__support/CPP/type_traits/integral_constant.h",
|
||
|
"src/__support/CPP/type_traits/invoke.h",
|
||
|
"src/__support/CPP/type_traits/invoke_result.h",
|
||
|
"src/__support/CPP/type_traits/is_arithmetic.h",
|
||
|
"src/__support/CPP/type_traits/is_array.h",
|
||
|
"src/__support/CPP/type_traits/is_base_of.h",
|
||
|
"src/__support/CPP/type_traits/is_class.h",
|
||
|
"src/__support/CPP/type_traits/is_const.h",
|
||
|
"src/__support/CPP/type_traits/is_convertible.h",
|
||
|
"src/__support/CPP/type_traits/is_destructible.h",
|
||
|
"src/__support/CPP/type_traits/is_enum.h",
|
||
|
"src/__support/CPP/type_traits/is_floating_point.h",
|
||
|
"src/__support/CPP/type_traits/is_function.h",
|
||
|
"src/__support/CPP/type_traits/is_integral.h",
|
||
|
"src/__support/CPP/type_traits/is_lvalue_reference.h",
|
||
|
"src/__support/CPP/type_traits/is_member_pointer.h",
|
||
|
"src/__support/CPP/type_traits/is_null_pointer.h",
|
||
|
"src/__support/CPP/type_traits/is_object.h",
|
||
|
"src/__support/CPP/type_traits/is_pointer.h",
|
||
|
"src/__support/CPP/type_traits/is_reference.h",
|
||
|
"src/__support/CPP/type_traits/is_rvalue_reference.h",
|
||
|
"src/__support/CPP/type_traits/is_same.h",
|
||
|
"src/__support/CPP/type_traits/is_scalar.h",
|
||
|
"src/__support/CPP/type_traits/is_signed.h",
|
||
|
"src/__support/CPP/type_traits/is_trivially_constructible.h",
|
||
|
"src/__support/CPP/type_traits/is_trivially_copyable.h",
|
||
|
"src/__support/CPP/type_traits/is_trivially_destructible.h",
|
||
|
"src/__support/CPP/type_traits/is_union.h",
|
||
|
"src/__support/CPP/type_traits/is_unsigned.h",
|
||
|
"src/__support/CPP/type_traits/is_void.h",
|
||
|
"src/__support/CPP/type_traits/make_signed.h",
|
||
|
"src/__support/CPP/type_traits/make_unsigned.h",
|
||
|
"src/__support/CPP/type_traits/remove_all_extents.h",
|
||
|
"src/__support/CPP/type_traits/remove_cv.h",
|
||
|
"src/__support/CPP/type_traits/remove_cvref.h",
|
||
|
"src/__support/CPP/type_traits/remove_extent.h",
|
||
|
"src/__support/CPP/type_traits/remove_reference.h",
|
||
|
"src/__support/CPP/type_traits/true_type.h",
|
||
|
"src/__support/CPP/type_traits/type_identity.h",
|
||
|
"src/__support/CPP/type_traits/void_t.h",
|
||
|
"src/__support/CPP/utility/declval.h",
|
||
|
"src/__support/CPP/utility/forward.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_config",
|
||
|
":__support_macros_properties_float",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_utility",
|
||
|
hdrs = [
|
||
|
"src/__support/CPP/utility.h",
|
||
|
"src/__support/CPP/utility/declval.h",
|
||
|
"src/__support/CPP/utility/forward.h",
|
||
|
"src/__support/CPP/utility/in_place.h",
|
||
|
"src/__support/CPP/utility/integer_sequence.h",
|
||
|
"src/__support/CPP/utility/move.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_cpp_atomic",
|
||
|
hdrs = ["src/__support/CPP/atomic.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_properties_architectures",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_blockstore",
|
||
|
hdrs = ["src/__support/blockstore.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_new",
|
||
|
":__support_libc_assert",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_arg_list",
|
||
|
hdrs = ["src/__support/arg_list.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_c_string",
|
||
|
hdrs = ["src/__support/c_string.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_string",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fixedvector",
|
||
|
hdrs = ["src/__support/fixedvector.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_array",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_char_vector",
|
||
|
hdrs = ["src/__support/char_vector.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_error_or",
|
||
|
hdrs = ["src/__support/error_or.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_expected",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_float_to_string",
|
||
|
hdrs = [
|
||
|
"src/__support/float_to_string.h",
|
||
|
"src/__support/ryu_constants.h",
|
||
|
"src/__support/ryu_long_double_constants.h",
|
||
|
],
|
||
|
defines = ["LIBC_COPT_FLOAT_TO_STR_USE_MEGA_LONG_DOUBLE_TABLE"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_libc_assert",
|
||
|
":__support_uint",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_number_pair",
|
||
|
hdrs = ["src/__support/number_pair.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_type_traits",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_integer_utils",
|
||
|
hdrs = ["src/__support/integer_utils.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_math_extras",
|
||
|
":__support_number_pair",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_uint",
|
||
|
hdrs = ["src/__support/UInt.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_array",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_optional",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_integer_utils",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_math_extras",
|
||
|
":__support_number_pair",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_uint128",
|
||
|
hdrs = ["src/__support/UInt128.h"],
|
||
|
deps = [
|
||
|
":__support_uint",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_str_to_num_result",
|
||
|
hdrs = ["src/__support/str_to_num_result.h"],
|
||
|
deps = [":__support_macros_attributes"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_integer_operations",
|
||
|
hdrs = ["src/__support/integer_operations.h"],
|
||
|
deps = [":__support_cpp_type_traits"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_integer_to_string",
|
||
|
hdrs = ["src/__support/integer_to_string.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_algorithm",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_optional",
|
||
|
":__support_cpp_span",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_cpp_type_traits",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_libc_assert",
|
||
|
hdrs = ["src/__support/libc_assert.h"],
|
||
|
deps = [
|
||
|
":__support_integer_to_string",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_osutil_io",
|
||
|
":__support_osutil_quick_exit",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_ctype_utils",
|
||
|
hdrs = ["src/__support/ctype_utils.h"],
|
||
|
deps = [":__support_macros_attributes"],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_str_to_integer",
|
||
|
hdrs = ["src/__support/str_to_integer.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_ctype_utils",
|
||
|
":__support_str_to_num_result",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_str_to_float",
|
||
|
hdrs = [
|
||
|
"src/__support/detailed_powers_of_ten.h",
|
||
|
"src/__support/high_precision_decimal.h",
|
||
|
"src/__support/str_to_float.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_optional",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_ctype_utils",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_str_to_integer",
|
||
|
":__support_str_to_num_result",
|
||
|
":__support_uint128",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_basic_operations",
|
||
|
hdrs = ["src/__support/FPUtil/BasicOperations.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fp_bits",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_file_file",
|
||
|
srcs = ["src/__support/File/file.cpp"],
|
||
|
hdrs = ["src/__support/File/file.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_new",
|
||
|
":__support_cpp_span",
|
||
|
":__support_error_or",
|
||
|
":__support_threads_mutex",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_file_linux_lseekimpl",
|
||
|
hdrs = ["src/__support/File/linux/lseekImpl.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_error_or",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_math_extras",
|
||
|
hdrs = ["src/__support/math_extras.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_config",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_generic_fmod",
|
||
|
hdrs = ["src/__support/FPUtil/generic/FMod.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":math_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_division_and_remainder_operations",
|
||
|
hdrs = ["src/__support/FPUtil/DivisionAndRemainderOperations.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_manipulation_functions",
|
||
|
":__support_fputil_normal_float",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_except_value_utils",
|
||
|
hdrs = ["src/__support/FPUtil/except_value_utils.h"],
|
||
|
deps = [
|
||
|
":__support_cpp_optional",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_fenv_impl",
|
||
|
hdrs = ["src/__support/FPUtil/FEnvImpl.h"],
|
||
|
textual_hdrs = [
|
||
|
"src/__support/FPUtil/x86_64/FEnvImpl.h",
|
||
|
"src/__support/FPUtil/aarch64/FEnvImpl.h",
|
||
|
"src/__support/FPUtil/aarch64/fenv_darwin_impl.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_properties_architectures",
|
||
|
":__support_macros_sanitizer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_rounding_mode",
|
||
|
hdrs = ["src/__support/FPUtil/rounding_mode.h"],
|
||
|
deps = [
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_fp_bits",
|
||
|
hdrs = ["src/__support/FPUtil/FPBits.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_properties_float",
|
||
|
":__support_math_extras",
|
||
|
":__support_uint128",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_fpbits_str",
|
||
|
hdrs = ["src/__support/FPUtil/fpbits_str.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_string",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_integer_to_string",
|
||
|
":__support_uint128",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_hypot",
|
||
|
hdrs = ["src/__support/FPUtil/Hypot.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_basic_operations",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_uint128",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_manipulation_functions",
|
||
|
hdrs = ["src/__support/FPUtil/ManipulationFunctions.h"],
|
||
|
textual_hdrs = ["src/__support/FPUtil/x86_64/NextAfterLongDouble.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_nearest_integer_operations",
|
||
|
":__support_fputil_normal_float",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_uint128",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_nearest_integer_operations",
|
||
|
hdrs = ["src/__support/FPUtil/NearestIntegerOperations.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_normal_float",
|
||
|
hdrs = ["src/__support/FPUtil/NormalFloat.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fp_bits",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
sqrt_common_hdrs = [
|
||
|
"src/__support/FPUtil/sqrt.h",
|
||
|
"src/__support/FPUtil/generic/sqrt.h",
|
||
|
"src/__support/FPUtil/generic/sqrt_80_bit_long_double.h",
|
||
|
]
|
||
|
|
||
|
sqrt_hdrs = selects.with_or({
|
||
|
"//conditions:default": sqrt_common_hdrs,
|
||
|
PLATFORM_CPU_X86_64: sqrt_common_hdrs + [
|
||
|
"src/__support/FPUtil/x86_64/sqrt.h",
|
||
|
],
|
||
|
PLATFORM_CPU_ARM64: sqrt_common_hdrs + [
|
||
|
"src/__support/FPUtil/aarch64/sqrt.h",
|
||
|
],
|
||
|
})
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_sqrt",
|
||
|
hdrs = sqrt_hdrs,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_uint128",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
fma_common_hdrs = [
|
||
|
"src/__support/FPUtil/FMA.h",
|
||
|
"src/__support/FPUtil/generic/FMA.h",
|
||
|
]
|
||
|
|
||
|
fma_platform_hdrs = [
|
||
|
"src/__support/FPUtil/x86_64/FMA.h",
|
||
|
"src/__support/FPUtil/aarch64/FMA.h",
|
||
|
]
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_fma",
|
||
|
hdrs = fma_common_hdrs,
|
||
|
# These are conditionally included and will #error out if the platform
|
||
|
# doesn't support FMA, so they can't be compiled on their own.
|
||
|
textual_hdrs = fma_platform_hdrs,
|
||
|
deps = [
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":__support_uint128",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_multiply_add",
|
||
|
hdrs = [
|
||
|
"src/__support/FPUtil/multiply_add.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fma",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_polyeval",
|
||
|
hdrs = [
|
||
|
"src/__support/FPUtil/PolyEval.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_multiply_add",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
nearest_integer_common_hdrs = [
|
||
|
"src/__support/FPUtil/nearest_integer.h",
|
||
|
]
|
||
|
|
||
|
nearest_integer_platform_hdrs = [
|
||
|
"src/__support/FPUtil/x86_64/nearest_integer.h",
|
||
|
"src/__support/FPUtil/aarch64/nearest_integer.h",
|
||
|
]
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_nearest_integer",
|
||
|
hdrs = nearest_integer_common_hdrs,
|
||
|
# These are conditionally included and will #error out if the platform
|
||
|
# doesn't support rounding instructions, so they can't be compiled on their
|
||
|
# own.
|
||
|
textual_hdrs = nearest_integer_platform_hdrs,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_architectures",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_double_double",
|
||
|
hdrs = ["src/__support/FPUtil/double_double.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_number_pair",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_triple_double",
|
||
|
hdrs = ["src/__support/FPUtil/triple_double.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_fputil_dyadic_float",
|
||
|
hdrs = ["src/__support/FPUtil/dyadic_float.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_uint",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_osutil_syscall",
|
||
|
hdrs = ["src/__support/OSUtil/syscall.h"],
|
||
|
textual_hdrs = [
|
||
|
"src/__support/OSUtil/linux/syscall.h",
|
||
|
"src/__support/OSUtil/linux/aarch64/syscall.h",
|
||
|
"src/__support/OSUtil/linux/x86_64/syscall.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_osutil_io",
|
||
|
hdrs = ["src/__support/OSUtil/io.h"],
|
||
|
textual_hdrs = [
|
||
|
"src/__support/OSUtil/linux/io.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_osutil_syscall",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_osutil_quick_exit",
|
||
|
hdrs = ["src/__support/OSUtil/quick_exit.h"],
|
||
|
textual_hdrs = [
|
||
|
"src/__support/OSUtil/linux/quick_exit.h",
|
||
|
#TODO: add support for GPU quick_exit (isn't just in a header.)
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_osutil_syscall",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_stringutil",
|
||
|
srcs = glob(["src/__support/StringUtil/tables/**/*.h"]) + [
|
||
|
"src/__support/StringUtil/error_to_string.cpp",
|
||
|
"src/__support/StringUtil/message_mapper.h",
|
||
|
"src/__support/StringUtil/platform_errors.h",
|
||
|
"src/__support/StringUtil/platform_signals.h",
|
||
|
"src/__support/StringUtil/signal_to_string.cpp",
|
||
|
],
|
||
|
hdrs = [
|
||
|
"src/__support/StringUtil/error_to_string.h",
|
||
|
"src/__support/StringUtil/signal_to_string.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_cpp_array",
|
||
|
":__support_cpp_span",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_cpp_stringstream",
|
||
|
":__support_integer_to_string",
|
||
|
":__support_macros_attributes",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "__support_threads_mutex",
|
||
|
hdrs = [
|
||
|
"src/__support/threads/mutex.h",
|
||
|
"src/__support/threads/mutex_common.h",
|
||
|
],
|
||
|
textual_hdrs = [
|
||
|
"src/__support/threads/linux/mutex.h",
|
||
|
"src/__support/threads/linux/futex_word.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_cpp_atomic",
|
||
|
":__support_osutil_syscall",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
############################### errno targets ################################
|
||
|
|
||
|
libc_function(
|
||
|
name = "errno",
|
||
|
srcs = ["src/errno/libc_errno.cpp"],
|
||
|
hdrs = ["src/errno/libc_errno.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_properties_architectures",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
################################ fenv targets ################################
|
||
|
|
||
|
libc_function(
|
||
|
name = "fetestexcept",
|
||
|
srcs = ["src/fenv/fetestexcept.cpp"],
|
||
|
hdrs = ["src/fenv/fetestexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "feclearexcept",
|
||
|
srcs = ["src/fenv/feclearexcept.cpp"],
|
||
|
hdrs = ["src/fenv/feclearexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "feraiseexcept",
|
||
|
srcs = ["src/fenv/feraiseexcept.cpp"],
|
||
|
hdrs = ["src/fenv/feraiseexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fegetround",
|
||
|
srcs = ["src/fenv/fegetround.cpp"],
|
||
|
hdrs = ["src/fenv/fegetround.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fesetround",
|
||
|
srcs = ["src/fenv/fesetround.cpp"],
|
||
|
hdrs = ["src/fenv/fesetround.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fedisableexcept",
|
||
|
srcs = ["src/fenv/fedisableexcept.cpp"],
|
||
|
hdrs = ["src/fenv/fedisableexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "feenableexcept",
|
||
|
srcs = ["src/fenv/feenableexcept.cpp"],
|
||
|
hdrs = ["src/fenv/feenableexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fegetexcept",
|
||
|
srcs = ["src/fenv/fegetexcept.cpp"],
|
||
|
hdrs = ["src/fenv/fegetexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fegetenv",
|
||
|
srcs = ["src/fenv/fegetenv.cpp"],
|
||
|
hdrs = ["src/fenv/fegetenv.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fesetenv",
|
||
|
srcs = ["src/fenv/fesetenv.cpp"],
|
||
|
hdrs = ["src/fenv/fesetenv.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "feupdateenv",
|
||
|
srcs = ["src/fenv/feupdateenv.cpp"],
|
||
|
hdrs = ["src/fenv/feupdateenv.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fegetexceptflag",
|
||
|
srcs = ["src/fenv/fegetexceptflag.cpp"],
|
||
|
hdrs = ["src/fenv/fegetexceptflag.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fesetexceptflag",
|
||
|
srcs = ["src/fenv/fesetexceptflag.cpp"],
|
||
|
hdrs = ["src/fenv/fesetexceptflag.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "feholdexcept",
|
||
|
srcs = ["src/fenv/feholdexcept.cpp"],
|
||
|
hdrs = ["src/fenv/feholdexcept.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
################################ math targets ################################
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "math_utils",
|
||
|
srcs = ["src/math/generic/math_utils.cpp"],
|
||
|
hdrs = ["src/math/generic/math_utils.h"],
|
||
|
deps = [
|
||
|
"__support_cpp_bit",
|
||
|
"__support_cpp_type_traits",
|
||
|
":__support_common",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "common_constants",
|
||
|
srcs = ["src/math/generic/common_constants.cpp"],
|
||
|
hdrs = ["src/math/generic/common_constants.h"],
|
||
|
deps = [
|
||
|
":__support_fputil_triple_double",
|
||
|
":__support_number_pair",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "range_reduction",
|
||
|
hdrs = [
|
||
|
"src/math/generic/range_reduction.h",
|
||
|
"src/math/generic/range_reduction_fma.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "sincosf_utils",
|
||
|
hdrs = ["src/math/generic/sincosf_utils.h"],
|
||
|
deps = [
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_polyeval",
|
||
|
":range_reduction",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "explogxf",
|
||
|
srcs = ["src/math/generic/explogxf.cpp"],
|
||
|
hdrs = ["src/math/generic/explogxf.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":common_constants",
|
||
|
":math_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "inv_trigf_utils",
|
||
|
srcs = ["src/math/generic/inv_trigf_utils.cpp"],
|
||
|
hdrs = ["src/math/generic/inv_trigf_utils.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":math_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "log_range_reduction",
|
||
|
hdrs = ["src/math/generic/log_range_reduction.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_uint128",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "exp10f_impl",
|
||
|
hdrs = ["src/math/generic/exp10f_impl.h"],
|
||
|
deps = [
|
||
|
":__support_fputil_basic_operations",
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "exp2f_impl",
|
||
|
hdrs = ["src/math/generic/exp2f_impl.h"],
|
||
|
deps = [
|
||
|
":__support_fputil_except_value_utils",
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "erff",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "expm1",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_fputil_triple_double",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "expm1f",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "exp",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_fputil_triple_double",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "expf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "exp10",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_fputil_triple_double",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "exp10f",
|
||
|
additional_deps = [
|
||
|
":exp10f_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "exp2",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_fputil_triple_double",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "exp2f",
|
||
|
additional_deps = [
|
||
|
":exp2f_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "logf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log2f",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log10f",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log1pf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
":log_range_reduction",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log2",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
":log_range_reduction",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log10",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
":log_range_reduction",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "log1p",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_dyadic_float",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "sinhf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "coshf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "tanhf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "asinhf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_sqrt",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "acoshf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_sqrt",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "atanhf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "asinf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_sqrt",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":inv_trigf_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "acosf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_sqrt",
|
||
|
":__support_macros_optimization",
|
||
|
":inv_trigf_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "atanf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":inv_trigf_utils",
|
||
|
":math_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "powf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_double_double",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_fputil_sqrt",
|
||
|
":__support_fputil_triple_double",
|
||
|
":__support_macros_optimization",
|
||
|
":common_constants",
|
||
|
":explogxf",
|
||
|
":exp2f_impl",
|
||
|
":exp10f_impl",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "fabs")
|
||
|
|
||
|
libc_math_function(name = "fabsf")
|
||
|
|
||
|
libc_math_function(name = "fabsl")
|
||
|
|
||
|
libc_math_function(name = "fdim")
|
||
|
|
||
|
libc_math_function(name = "fdimf")
|
||
|
|
||
|
libc_math_function(name = "fdiml")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "ceil",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "ceilf",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "ceill",
|
||
|
specializations = [
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "floor",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "floorf",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "floorl")
|
||
|
|
||
|
libc_math_function(name = "ldexp")
|
||
|
|
||
|
libc_math_function(name = "ldexpf")
|
||
|
|
||
|
libc_math_function(name = "ldexpl")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "trunc",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "truncf",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "truncl")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "round",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "roundf",
|
||
|
specializations = [
|
||
|
"aarch64",
|
||
|
"generic",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "roundl")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "fmod",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_generic_fmod",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "fmodf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_generic_fmod",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "frexp")
|
||
|
|
||
|
libc_math_function(name = "frexpf")
|
||
|
|
||
|
libc_math_function(name = "frexpl")
|
||
|
|
||
|
libc_math_function(name = "hypot")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "hypotf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_sqrt",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "logb")
|
||
|
|
||
|
libc_math_function(name = "logbf")
|
||
|
|
||
|
libc_math_function(name = "logbl")
|
||
|
|
||
|
libc_math_function(name = "modf")
|
||
|
|
||
|
libc_math_function(name = "modff")
|
||
|
|
||
|
libc_math_function(name = "modfl")
|
||
|
|
||
|
libc_math_function(name = "remquo")
|
||
|
|
||
|
libc_math_function(name = "remquof")
|
||
|
|
||
|
libc_math_function(name = "remquol")
|
||
|
|
||
|
libc_math_function(name = "remainder")
|
||
|
|
||
|
libc_math_function(name = "remainderf")
|
||
|
|
||
|
libc_math_function(name = "remainderl")
|
||
|
|
||
|
libc_math_function(name = "fmin")
|
||
|
|
||
|
libc_math_function(name = "fminf")
|
||
|
|
||
|
libc_math_function(name = "fminl")
|
||
|
|
||
|
libc_math_function(name = "fmax")
|
||
|
|
||
|
libc_math_function(name = "fmaxf")
|
||
|
|
||
|
libc_math_function(name = "fmaxl")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "cosf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":sincosf_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "sincosf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":sincosf_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "sinf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":range_reduction",
|
||
|
":sincosf_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "tanf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_fma",
|
||
|
":__support_fputil_multiply_add",
|
||
|
":__support_fputil_nearest_integer",
|
||
|
":__support_fputil_polyeval",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
":range_reduction",
|
||
|
":sincosf_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "sqrt",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_sqrt",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "sqrtf",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_sqrt",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "sqrtl",
|
||
|
additional_deps = [
|
||
|
":__support_fputil_sqrt",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "copysign")
|
||
|
|
||
|
libc_math_function(name = "copysignf")
|
||
|
|
||
|
libc_math_function(name = "copysignl")
|
||
|
|
||
|
libc_math_function(name = "copysignf128")
|
||
|
|
||
|
libc_math_function(name = "ilogb")
|
||
|
|
||
|
libc_math_function(name = "ilogbf")
|
||
|
|
||
|
libc_math_function(name = "ilogbl")
|
||
|
|
||
|
libc_math_function(name = "rint")
|
||
|
|
||
|
libc_math_function(name = "rintf")
|
||
|
|
||
|
libc_math_function(name = "rintl")
|
||
|
|
||
|
libc_math_function(name = "lrint")
|
||
|
|
||
|
libc_math_function(name = "lrintf")
|
||
|
|
||
|
libc_math_function(name = "lrintl")
|
||
|
|
||
|
libc_math_function(name = "llrint")
|
||
|
|
||
|
libc_math_function(name = "llrintf")
|
||
|
|
||
|
libc_math_function(name = "llrintl")
|
||
|
|
||
|
libc_math_function(name = "lround")
|
||
|
|
||
|
libc_math_function(name = "lroundf")
|
||
|
|
||
|
libc_math_function(name = "lroundl")
|
||
|
|
||
|
libc_math_function(name = "llround")
|
||
|
|
||
|
libc_math_function(name = "llroundf")
|
||
|
|
||
|
libc_math_function(name = "llroundl")
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "nan",
|
||
|
additional_deps = [
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "nanf",
|
||
|
additional_deps = [
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(
|
||
|
name = "nanl",
|
||
|
additional_deps = [
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_math_function(name = "nearbyint")
|
||
|
|
||
|
libc_math_function(name = "nearbyintf")
|
||
|
|
||
|
libc_math_function(name = "nearbyintl")
|
||
|
|
||
|
libc_math_function(name = "nextafter")
|
||
|
|
||
|
libc_math_function(name = "nextafterf")
|
||
|
|
||
|
libc_math_function(name = "nextafterl")
|
||
|
|
||
|
libc_math_function(name = "nexttoward")
|
||
|
|
||
|
libc_math_function(name = "nexttowardf")
|
||
|
|
||
|
libc_math_function(name = "nexttowardl")
|
||
|
|
||
|
libc_math_function(name = "scalbn")
|
||
|
|
||
|
libc_math_function(name = "scalbnf")
|
||
|
|
||
|
libc_math_function(name = "scalbnl")
|
||
|
|
||
|
############################## inttypes targets ##############################
|
||
|
|
||
|
libc_function(
|
||
|
name = "imaxabs",
|
||
|
srcs = ["src/inttypes/imaxabs.cpp"],
|
||
|
hdrs = ["src/inttypes/imaxabs.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "imaxdiv",
|
||
|
srcs = ["src/inttypes/imaxdiv.cpp"],
|
||
|
hdrs = ["src/inttypes/imaxdiv.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
############################### stdlib targets ###############################
|
||
|
|
||
|
libc_function(
|
||
|
name = "abs",
|
||
|
srcs = ["src/stdlib/abs.cpp"],
|
||
|
hdrs = ["src/stdlib/abs.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "labs",
|
||
|
srcs = ["src/stdlib/labs.cpp"],
|
||
|
hdrs = ["src/stdlib/labs.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "llabs",
|
||
|
srcs = ["src/stdlib/llabs.cpp"],
|
||
|
hdrs = ["src/stdlib/llabs.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "div",
|
||
|
srcs = ["src/stdlib/div.cpp"],
|
||
|
hdrs = ["src/stdlib/div.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "ldiv",
|
||
|
srcs = ["src/stdlib/ldiv.cpp"],
|
||
|
hdrs = ["src/stdlib/ldiv.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "lldiv",
|
||
|
srcs = ["src/stdlib/lldiv.cpp"],
|
||
|
hdrs = ["src/stdlib/lldiv.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "atoi",
|
||
|
srcs = ["src/stdlib/atoi.cpp"],
|
||
|
hdrs = ["src/stdlib/atoi.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "atol",
|
||
|
srcs = ["src/stdlib/atol.cpp"],
|
||
|
hdrs = ["src/stdlib/atol.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "atoll",
|
||
|
srcs = ["src/stdlib/atoll.cpp"],
|
||
|
hdrs = ["src/stdlib/atoll.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "atof",
|
||
|
srcs = ["src/stdlib/atof.cpp"],
|
||
|
hdrs = ["src/stdlib/atof.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "bsearch",
|
||
|
srcs = ["src/stdlib/bsearch.cpp"],
|
||
|
hdrs = ["src/stdlib/bsearch.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "qsort_util",
|
||
|
hdrs = ["src/stdlib/qsort_util.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_macros_attributes",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "qsort",
|
||
|
srcs = ["src/stdlib/qsort.cpp"],
|
||
|
hdrs = ["src/stdlib/qsort.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":qsort_util",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "qsort_r",
|
||
|
srcs = ["src/stdlib/qsort_r.cpp"],
|
||
|
hdrs = ["src/stdlib/qsort_r.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":qsort_util",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtol",
|
||
|
srcs = ["src/stdlib/strtol.cpp"],
|
||
|
hdrs = ["src/stdlib/strtol.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtoll",
|
||
|
srcs = ["src/stdlib/strtoll.cpp"],
|
||
|
hdrs = ["src/stdlib/strtoll.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtoul",
|
||
|
srcs = ["src/stdlib/strtoul.cpp"],
|
||
|
hdrs = ["src/stdlib/strtoul.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtoull",
|
||
|
srcs = ["src/stdlib/strtoull.cpp"],
|
||
|
hdrs = ["src/stdlib/strtoull.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_integer",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtof",
|
||
|
srcs = ["src/stdlib/strtof.cpp"],
|
||
|
hdrs = ["src/stdlib/strtof.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtod",
|
||
|
srcs = ["src/stdlib/strtod.cpp"],
|
||
|
hdrs = ["src/stdlib/strtod.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtold",
|
||
|
srcs = ["src/stdlib/strtold.cpp"],
|
||
|
hdrs = ["src/stdlib/strtold.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_str_to_float",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
############################### string targets ###############################
|
||
|
|
||
|
no_sanitize_features = [
|
||
|
"-asan",
|
||
|
"-msan",
|
||
|
"-tsan",
|
||
|
"-ubsan",
|
||
|
]
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "string_memory_utils",
|
||
|
hdrs = [
|
||
|
"src/string/memory_utils/op_aarch64.h",
|
||
|
"src/string/memory_utils/op_builtin.h",
|
||
|
"src/string/memory_utils/op_generic.h",
|
||
|
"src/string/memory_utils/op_riscv.h",
|
||
|
"src/string/memory_utils/op_x86.h",
|
||
|
"src/string/memory_utils/utils.h",
|
||
|
],
|
||
|
defines = MEMORY_COPTS,
|
||
|
textual_hdrs = [
|
||
|
"src/string/memory_utils/aarch64/inline_bcmp.h",
|
||
|
"src/string/memory_utils/aarch64/inline_memcmp.h",
|
||
|
"src/string/memory_utils/aarch64/inline_memcpy.h",
|
||
|
"src/string/memory_utils/aarch64/inline_memmove.h",
|
||
|
"src/string/memory_utils/aarch64/inline_memset.h",
|
||
|
"src/string/memory_utils/generic/aligned_access.h",
|
||
|
"src/string/memory_utils/generic/byte_per_byte.h",
|
||
|
"src/string/memory_utils/inline_bcmp.h",
|
||
|
"src/string/memory_utils/inline_bzero.h",
|
||
|
"src/string/memory_utils/inline_memcmp.h",
|
||
|
"src/string/memory_utils/inline_memcpy.h",
|
||
|
"src/string/memory_utils/inline_memmem.h",
|
||
|
"src/string/memory_utils/inline_memmove.h",
|
||
|
"src/string/memory_utils/inline_memset.h",
|
||
|
"src/string/memory_utils/inline_strcmp.h",
|
||
|
"src/string/memory_utils/inline_strstr.h",
|
||
|
"src/string/memory_utils/riscv/inline_bcmp.h",
|
||
|
"src/string/memory_utils/riscv/inline_memcmp.h",
|
||
|
"src/string/memory_utils/riscv/inline_memcpy.h",
|
||
|
"src/string/memory_utils/riscv/inline_memmove.h",
|
||
|
"src/string/memory_utils/riscv/inline_memset.h",
|
||
|
"src/string/memory_utils/x86_64/inline_bcmp.h",
|
||
|
"src/string/memory_utils/x86_64/inline_memcmp.h",
|
||
|
"src/string/memory_utils/x86_64/inline_memcpy.h",
|
||
|
"src/string/memory_utils/x86_64/inline_memmove.h",
|
||
|
"src/string/memory_utils/x86_64/inline_memset.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_array",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_cstddef",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_macros_attributes",
|
||
|
":__support_macros_config",
|
||
|
":__support_macros_optimization",
|
||
|
":__support_macros_properties_architectures",
|
||
|
":__support_macros_properties_cpu_features",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "string_utils",
|
||
|
hdrs = ["src/string/string_utils.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bitset",
|
||
|
":__support_macros_optimization",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "memchr",
|
||
|
srcs = ["src/string/memchr.cpp"],
|
||
|
hdrs = ["src/string/memchr.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "memcpy",
|
||
|
srcs = ["src/string/memcpy.cpp"],
|
||
|
hdrs = ["src/string/memcpy.h"],
|
||
|
copts = ["-mllvm --tail-merge-threshold=0"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "memset",
|
||
|
srcs = ["src/string/memset.cpp"],
|
||
|
hdrs = ["src/string/memset.h"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "memmove",
|
||
|
srcs = ["src/string/memmove.cpp"],
|
||
|
hdrs = ["src/string/memmove.h"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "mempcpy",
|
||
|
srcs = ["src/string/mempcpy.cpp"],
|
||
|
hdrs = ["src/string/mempcpy.h"],
|
||
|
copts = ["-mllvm --tail-merge-threshold=0"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "bcopy",
|
||
|
srcs = ["src/string/bcopy.cpp"],
|
||
|
hdrs = ["src/string/bcopy.h"],
|
||
|
features = no_sanitize_features,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "memcmp",
|
||
|
srcs = ["src/string/memcmp.cpp"],
|
||
|
hdrs = ["src/string/memcmp.h"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_integer_operations",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "bcmp",
|
||
|
srcs = ["src/string/bcmp.cpp"],
|
||
|
hdrs = ["src/string/bcmp.h"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "bzero",
|
||
|
srcs = ["src/string/bzero.cpp"],
|
||
|
hdrs = ["src/string/bzero.h"],
|
||
|
features = no_sanitize_features,
|
||
|
weak = True,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "memrchr",
|
||
|
srcs = ["src/string/memrchr.cpp"],
|
||
|
hdrs = ["src/string/memrchr.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strlen",
|
||
|
srcs = ["src/string/strlen.cpp"],
|
||
|
hdrs = ["src/string/strlen.h"],
|
||
|
features = no_sanitize_features,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strcpy",
|
||
|
srcs = ["src/string/strcpy.cpp"],
|
||
|
hdrs = ["src/string/strcpy.h"],
|
||
|
features = no_sanitize_features,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":memcpy",
|
||
|
":string_memory_utils",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
# A sanitizer instrumented flavor of strcpy to be used with unittests.
|
||
|
libc_function(
|
||
|
name = "strcpy_sanitized",
|
||
|
testonly = 1,
|
||
|
srcs = ["src/string/strcpy.cpp"],
|
||
|
hdrs = ["src/string/strcpy.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":memcpy",
|
||
|
":string_memory_utils",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strncpy",
|
||
|
srcs = ["src/string/strncpy.cpp"],
|
||
|
hdrs = ["src/string/strncpy.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strcmp",
|
||
|
srcs = ["src/string/strcmp.cpp"],
|
||
|
hdrs = ["src/string/strcmp.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strchr",
|
||
|
srcs = ["src/string/strchr.cpp"],
|
||
|
hdrs = ["src/string/strchr.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strrchr",
|
||
|
srcs = ["src/string/strrchr.cpp"],
|
||
|
hdrs = ["src/string/strrchr.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strstr",
|
||
|
srcs = ["src/string/strstr.cpp"],
|
||
|
hdrs = ["src/string/strstr.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_memory_utils",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strnlen",
|
||
|
srcs = ["src/string/strnlen.cpp"],
|
||
|
hdrs = ["src/string/strnlen.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strcspn",
|
||
|
srcs = ["src/string/strcspn.cpp"],
|
||
|
hdrs = ["src/string/strcspn.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strspn",
|
||
|
srcs = ["src/string/strspn.cpp"],
|
||
|
hdrs = ["src/string/strspn.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_bitset",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strpbrk",
|
||
|
srcs = ["src/string/strpbrk.cpp"],
|
||
|
hdrs = ["src/string/strpbrk.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "strtok",
|
||
|
srcs = ["src/string/strtok.cpp"],
|
||
|
hdrs = ["src/string/strtok.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":string_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
############################### unistd targets ###############################
|
||
|
|
||
|
libc_function(
|
||
|
name = "chdir",
|
||
|
srcs = ["src/unistd/linux/chdir.cpp"],
|
||
|
hdrs = ["src/unistd/chdir.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "close",
|
||
|
srcs = ["src/unistd/linux/close.cpp"],
|
||
|
hdrs = ["src/unistd/close.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fchdir",
|
||
|
srcs = ["src/unistd/linux/fchdir.cpp"],
|
||
|
hdrs = ["src/unistd/fchdir.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fsync",
|
||
|
srcs = ["src/unistd/linux/fsync.cpp"],
|
||
|
hdrs = ["src/unistd/fsync.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "ftruncate",
|
||
|
srcs = ["src/unistd/linux/ftruncate.cpp"],
|
||
|
hdrs = ["src/unistd/ftruncate.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "link",
|
||
|
srcs = ["src/unistd/linux/link.cpp"],
|
||
|
hdrs = ["src/unistd/link.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "linkat",
|
||
|
srcs = ["src/unistd/linux/linkat.cpp"],
|
||
|
hdrs = ["src/unistd/linkat.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "lseek",
|
||
|
srcs = ["src/unistd/linux/lseek.cpp"],
|
||
|
hdrs = ["src/unistd/lseek.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_file_linux_lseekimpl",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "read",
|
||
|
srcs = ["src/unistd/linux/read.cpp"],
|
||
|
hdrs = ["src/unistd/read.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "readlink",
|
||
|
srcs = ["src/unistd/linux/readlink.cpp"],
|
||
|
hdrs = ["src/unistd/readlink.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "readlinkat",
|
||
|
srcs = ["src/unistd/linux/readlinkat.cpp"],
|
||
|
hdrs = ["src/unistd/readlinkat.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "rmdir",
|
||
|
srcs = ["src/unistd/linux/rmdir.cpp"],
|
||
|
hdrs = ["src/unistd/rmdir.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "symlink",
|
||
|
srcs = ["src/unistd/linux/symlink.cpp"],
|
||
|
hdrs = ["src/unistd/symlink.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "symlinkat",
|
||
|
srcs = ["src/unistd/linux/symlinkat.cpp"],
|
||
|
hdrs = ["src/unistd/symlinkat.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "truncate",
|
||
|
srcs = ["src/unistd/linux/truncate.cpp"],
|
||
|
hdrs = ["src/unistd/truncate.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "unlink",
|
||
|
srcs = ["src/unistd/linux/unlink.cpp"],
|
||
|
hdrs = ["src/unistd/unlink.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "unlinkat",
|
||
|
srcs = ["src/unistd/linux/unlinkat.cpp"],
|
||
|
hdrs = ["src/unistd/unlinkat.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "write",
|
||
|
srcs = ["src/unistd/linux/write.cpp"],
|
||
|
hdrs = ["src/unistd/write.h"],
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_osutil_syscall",
|
||
|
":errno",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
################################ stdio targets #################################
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "printf_core_structs",
|
||
|
hdrs = ["src/stdio/printf_core/core_structs.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_fputil_fp_bits",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "printf_config",
|
||
|
hdrs = ["src/stdio/printf_core/printf_config.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "printf_parser",
|
||
|
hdrs = ["src/stdio/printf_core/parser.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_optional",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_ctype_utils",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_str_to_integer",
|
||
|
":printf_config",
|
||
|
":printf_core_structs",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
# Only used for testing.
|
||
|
libc_support_library(
|
||
|
name = "printf_mock_parser",
|
||
|
hdrs = ["src/stdio/printf_core/parser.h"],
|
||
|
defines = PRINTF_COPTS + ["LIBC_COPT_MOCK_ARG_LIST"],
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_common",
|
||
|
":__support_cpp_bit",
|
||
|
":__support_cpp_optional",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_cpp_type_traits",
|
||
|
":__support_ctype_utils",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_str_to_integer",
|
||
|
":printf_config",
|
||
|
":printf_core_structs",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "printf_writer",
|
||
|
srcs = ["src/stdio/printf_core/writer.cpp"],
|
||
|
hdrs = ["src/stdio/printf_core/writer.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_macros_optimization",
|
||
|
":printf_core_structs",
|
||
|
":string_memory_utils",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "printf_converter",
|
||
|
srcs = ["src/stdio/printf_core/converter.cpp"],
|
||
|
hdrs = [
|
||
|
"src/stdio/printf_core/char_converter.h",
|
||
|
"src/stdio/printf_core/converter.h",
|
||
|
"src/stdio/printf_core/converter_atlas.h",
|
||
|
"src/stdio/printf_core/converter_utils.h",
|
||
|
"src/stdio/printf_core/float_dec_converter.h",
|
||
|
"src/stdio/printf_core/float_hex_converter.h",
|
||
|
"src/stdio/printf_core/float_inf_nan_converter.h",
|
||
|
"src/stdio/printf_core/int_converter.h",
|
||
|
"src/stdio/printf_core/ptr_converter.h",
|
||
|
"src/stdio/printf_core/string_converter.h",
|
||
|
"src/stdio/printf_core/write_int_converter.h",
|
||
|
],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_common",
|
||
|
":__support_cpp_limits",
|
||
|
":__support_cpp_span",
|
||
|
":__support_cpp_string_view",
|
||
|
":__support_float_to_string",
|
||
|
":__support_fputil_fenv_impl",
|
||
|
":__support_fputil_fp_bits",
|
||
|
":__support_fputil_rounding_mode",
|
||
|
":__support_integer_to_string",
|
||
|
":__support_libc_assert",
|
||
|
":__support_uint",
|
||
|
":__support_uint128",
|
||
|
":printf_core_structs",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "printf_main",
|
||
|
srcs = ["src/stdio/printf_core/printf_main.cpp"],
|
||
|
hdrs = ["src/stdio/printf_core/printf_main.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":printf_converter",
|
||
|
":printf_core_structs",
|
||
|
":printf_parser",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_support_library(
|
||
|
name = "vfprintf_internal",
|
||
|
hdrs = ["src/stdio/printf_core/vfprintf_internal.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_file_file",
|
||
|
":__support_macros_attributes",
|
||
|
":printf_main",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "sprintf",
|
||
|
srcs = ["src/stdio/sprintf.cpp"],
|
||
|
hdrs = ["src/stdio/sprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_cpp_limits",
|
||
|
":errno",
|
||
|
":printf_main",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "snprintf",
|
||
|
srcs = ["src/stdio/snprintf.cpp"],
|
||
|
hdrs = ["src/stdio/snprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":errno",
|
||
|
":printf_main",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "printf",
|
||
|
srcs = ["src/stdio/printf.cpp"],
|
||
|
hdrs = ["src/stdio/printf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_file_file",
|
||
|
":errno",
|
||
|
":vfprintf_internal",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "fprintf",
|
||
|
srcs = ["src/stdio/fprintf.cpp"],
|
||
|
hdrs = ["src/stdio/fprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_file_file",
|
||
|
":errno",
|
||
|
":vfprintf_internal",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "vsprintf",
|
||
|
srcs = ["src/stdio/vsprintf.cpp"],
|
||
|
hdrs = ["src/stdio/vsprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_cpp_limits",
|
||
|
":errno",
|
||
|
":printf_main",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "vsnprintf",
|
||
|
srcs = ["src/stdio/vsnprintf.cpp"],
|
||
|
hdrs = ["src/stdio/vsnprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":errno",
|
||
|
":printf_main",
|
||
|
":printf_writer",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "vprintf",
|
||
|
srcs = ["src/stdio/vprintf.cpp"],
|
||
|
hdrs = ["src/stdio/vprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_file_file",
|
||
|
":errno",
|
||
|
":vfprintf_internal",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
libc_function(
|
||
|
name = "vfprintf",
|
||
|
srcs = ["src/stdio/vfprintf.cpp"],
|
||
|
hdrs = ["src/stdio/vfprintf.h"],
|
||
|
defines = PRINTF_COPTS,
|
||
|
deps = [
|
||
|
":__support_arg_list",
|
||
|
":__support_file_file",
|
||
|
":errno",
|
||
|
":vfprintf_internal",
|
||
|
],
|
||
|
)
|