# 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("@rules_python//python:defs.bzl", "py_binary") load( ":libc_build_rules.bzl", "libc_function", "libc_generated_header", "libc_header_library", "libc_math_function", "libc_support_library", ) load(":platforms.bzl", "PLATFORM_CPU_ARM64", "PLATFORM_CPU_X86_64") package( default_visibility = ["//visibility:public"], features = [ "parse_headers", "-use_header_modules", "-layering_check", ], ) licenses(["notice"]) # A flag to pick which `mpfr` to use for math tests. # Usage: `--@llvm-project//libc:mpfr=`. # 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"}, ) # A flag to pick which `mpc` to use for math tests. # Usage: `--@llvm-project//libc:mpc=`. # Flag documentation: https://bazel.build/extending/config string_flag( name = "mpc", build_setting_default = "external", values = [ "disable", # Skip tests that need mpc "external", # Build mpc from source "system", # Use system mpc (non hermetic) ], ) config_setting( name = "mpc_disable", flag_values = {":mpc": "disable"}, ) config_setting( name = "mpc_external", flag_values = {":mpc": "external"}, ) config_setting( name = "mpc_system", flag_values = {":mpc": "system"}, ) ########################### Header Generation ################################## py_binary( name = "hdrgen", srcs = glob(["utils/hdrgen/hdrgen/**/*.py"]), imports = ["utils/hdrgen"], main = "utils/hdrgen/hdrgen/main.py", deps = ["@pyyaml//:yaml"], ) libc_generated_header( name = "include_stdbit_h", hdr = "staging/include/stdbit.h", other_srcs = ["include/stdbit.h.def"], yaml_template = "include/stdbit.yaml", ) # Library containing all headers that can be transitively included by generated llvm-libc # public headers (or by the unit tests). libc_support_library( name = "public_headers_deps", textual_hdrs = [ "include/__llvm-libc-common.h", ] + glob([ "include/llvm-libc-types/**/*.h", "include/llvm-libc-macros/**/*.h", ]), ) ################################## Base Config ################################# libc_support_library( name = "__support_macros_config", hdrs = ["src/__support/macros/config.h"], deps = [ "__support_macros_properties_architectures", "__support_macros_properties_compiler", ], ) ################################# Include Files ################################ libc_support_library( name = "llvm_libc_macros_complex_macros", hdrs = [ "include/llvm-libc-macros/cfloat128-macros.h", "include/llvm-libc-macros/cfloat16-macros.h", "include/llvm-libc-macros/complex-macros.h", ], deps = [":llvm_libc_macros_float_macros"], ) libc_support_library( name = "llvm_libc_macros_math_macros", hdrs = ["include/llvm-libc-macros/math-macros.h"], deps = [":llvm_libc_macros_limits_macros"], ) libc_support_library( name = "llvm_libc_macros_limits_macros", hdrs = ["include/llvm-libc-macros/limits-macros.h"], ) libc_support_library( name = "llvm_libc_macros_float_macros", hdrs = ["include/llvm-libc-macros/float-macros.h"], ) libc_support_library( name = "llvm_libc_macros_float16_macros", hdrs = ["include/llvm-libc-macros/float16-macros.h"], deps = [":llvm_libc_types_float128"], ) libc_support_library( name = "llvm_libc_macros_stdint_macros", hdrs = ["include/llvm-libc-macros/stdint-macros.h"], ) libc_support_library( name = "llvm_libc_macros_stdfix_macros", hdrs = ["include/llvm-libc-macros/stdfix-macros.h"], deps = [":llvm_libc_macros_float_macros"], ) libc_support_library( name = "llvm_libc_types_float128", hdrs = ["include/llvm-libc-types/float128.h"], deps = [":llvm_libc_macros_float_macros"], ) libc_support_library( name = "llvm_libc_types_cfloat128", hdrs = ["include/llvm-libc-types/cfloat128.h"], deps = [ ":llvm_libc_macros_complex_macros", ":llvm_libc_macros_float_macros", ], ) libc_support_library( name = "llvm_libc_types_cfloat16", hdrs = ["include/llvm-libc-types/cfloat16.h"], deps = [":llvm_libc_macros_complex_macros"], ) libc_support_library( name = "llvm_libc_macros_fcntl_macros", hdrs = ["include/llvm-libc-macros/linux/fcntl-macros.h"], ) libc_support_library( name = "llvm_libc_types_size_t", hdrs = ["include/llvm-libc-types/size_t.h"], ) ########################### Macro Proxy Header Files ########################### libc_support_library( name = "hdr_math_macros", hdrs = ["hdr/math_macros.h"], ) libc_support_library( name = "hdr_fenv_macros", hdrs = ["hdr/fenv_macros.h"], ) libc_support_library( name = "hdr_fcntl_macros", hdrs = ["hdr/fcntl_macros.h"], deps = [":hdr_fcntl_overlay"], ) libc_support_library( name = "hdr_fcntl_overlay", hdrs = ["hdr/fcntl_overlay.h"], ) libc_support_library( name = "hdr_signal_macros", hdrs = ["hdr/signal_macros.h"], ) libc_support_library( name = "hdr_sys_epoll_macros", hdrs = ["hdr/sys_epoll_macros.h"], ) libc_support_library( name = "hdr_errno_macros", hdrs = ["hdr/errno_macros.h"], ) libc_support_library( name = "hdr_time_macros", hdrs = ["hdr/time_macros.h"], ) libc_support_library( name = "hdr_float_macros", hdrs = ["hdr/float_macros.h"], ) libc_support_library( name = "hdr_stdio_macros", hdrs = ["hdr/stdio_macros.h"], deps = [ ":hdr_stdio_overlay", ], ) libc_support_library( name = "hdr_unistd_macros", hdrs = ["hdr/unistd_macros.h"], deps = [ ":hdr_unistd_overlay", ], ) libc_support_library( name = "hdr_limits_macros", hdrs = ["hdr/limits_macros.h"], ) libc_support_library( name = "hdr_stdio_overlay", hdrs = ["hdr/stdio_overlay.h"], ) libc_support_library( name = "hdr_stdlib_macros", hdrs = ["hdr/stdlib_macros.h"], deps = [ ":hdr_stdlib_overlay", ], ) libc_support_library( name = "hdr_stdlib_overlay", hdrs = ["hdr/stdlib_overlay.h"], ) libc_support_library( name = "hdr_unistd_overlay", hdrs = ["hdr/unistd_overlay.h"], ) libc_support_library( name = "hdr_wchar_macros", hdrs = ["hdr/wchar_macros.h"], deps = [ ":hdr_wchar_overlay", ], ) libc_support_library( name = "hdr_wchar_overlay", hdrs = ["hdr/wchar_overlay.h"], ) libc_support_library( name = "hdr_stdint_proxy", hdrs = ["hdr/stdint_proxy.h"], ) ############################ Type Proxy Header Files ########################### libc_support_library( name = "func_aligned_alloc", hdrs = ["hdr/func/aligned_alloc.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "func_free", hdrs = ["hdr/func/free.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "func_malloc", hdrs = ["hdr/func/malloc.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "func_realloc", hdrs = ["hdr/func/realloc.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "types_clockid_t", hdrs = ["hdr/types/clockid_t.h"], ) libc_support_library( name = "types_clock_t", hdrs = ["hdr/types/clock_t.h"], ) libc_support_library( name = "types_div_t", hdrs = ["hdr/types/div_t.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "types_fenv_t", hdrs = ["hdr/types/fenv_t.h"], ) libc_support_library( name = "types_fexcept_t", hdrs = ["hdr/types/fexcept_t.h"], ) libc_support_library( name = "types_ldiv_t", hdrs = ["hdr/types/ldiv_t.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "types_lldiv_t", hdrs = ["hdr/types/lldiv_t.h"], deps = [":hdr_stdlib_overlay"], ) libc_support_library( name = "types_mode_t", hdrs = ["hdr/types/mode_t.h"], deps = [":hdr_fcntl_overlay"], ) libc_support_library( name = "types_sigset_t", hdrs = ["hdr/types/sigset_t.h"], ) libc_support_library( name = "types_size_t", hdrs = ["hdr/types/size_t.h"], ) libc_support_library( name = "types_struct_epoll_event", hdrs = ["hdr/types/struct_epoll_event.h"], ) libc_support_library( name = "types_struct_f_owner_ex", hdrs = ["hdr/types/struct_f_owner_ex.h"], deps = [":hdr_fcntl_overlay"], ) libc_support_library( name = "types_struct_flock", hdrs = ["hdr/types/struct_flock.h"], deps = [":hdr_fcntl_overlay"], ) libc_support_library( name = "types_struct_flock64", hdrs = ["hdr/types/struct_flock64.h"], deps = [":hdr_fcntl_overlay"], ) libc_support_library( name = "types_struct_timespec", hdrs = ["hdr/types/struct_timespec.h"], ) libc_support_library( name = "types_time_t", hdrs = ["hdr/types/time_t.h"], ) libc_support_library( name = "types_struct_timeval", hdrs = ["hdr/types/struct_timeval.h"], ) libc_support_library( name = "types_struct_rlimit", hdrs = ["hdr/types/struct_rlimit.h"], ) libc_support_library( name = "types_pid_t", hdrs = ["hdr/types/pid_t.h"], ) libc_support_library( name = "types_uid_t", hdrs = ["hdr/types/uid_t.h"], ) libc_support_library( name = "types_off_t", hdrs = ["hdr/types/off_t.h"], deps = [ ":hdr_stdio_overlay", ], ) libc_support_library( name = "types_FILE", hdrs = ["hdr/types/FILE.h"], deps = [ ":hdr_stdio_overlay", ], ) libc_support_library( name = "types_ssize_t", hdrs = ["hdr/types/ssize_t.h"], ) libc_support_library( name = "types_socklen_t", hdrs = ["hdr/types/socklen_t.h"], ) libc_support_library( name = "types_struct_sockaddr", hdrs = ["hdr/types/struct_sockaddr.h"], ) libc_support_library( name = "types_struct_msghdr", hdrs = ["hdr/types/struct_msghdr.h"], ) libc_support_library( name = "types_wchar_t", hdrs = ["hdr/types/wchar_t.h"], deps = [ ":hdr_wchar_overlay", ], ) libc_support_library( name = "types_wint_t", hdrs = ["hdr/types/wint_t.h"], deps = [ ":hdr_wchar_overlay", ], ) ############################### 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_complex_types", hdrs = ["src/__support/macros/properties/complex_types.h"], deps = [ ":__support_macros_properties_types", ":hdr_stdint_proxy", ":llvm_libc_types_cfloat128", ":llvm_libc_types_cfloat16", ], ) libc_support_library( name = "__support_macros_properties_types", hdrs = ["src/__support/macros/properties/types.h"], deps = [ ":__support_macros_config", ":__support_macros_properties_architectures", ":__support_macros_properties_compiler", ":__support_macros_properties_cpu_features", ":__support_macros_properties_os", ":hdr_float_macros", ":hdr_stdint_proxy", ":llvm_libc_macros_float16_macros", ":llvm_libc_types_float128", ], ) 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_attributes", hdrs = ["src/__support/macros/attributes.h"], deps = [ ":__support_macros_config", ":__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_macros_null_check", hdrs = ["src/__support/macros/null_check.h"], deps = [ ":__support_macros_config", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_common", hdrs = [ "src/__support/common.h", "src/__support/endian_internal.h", ], deps = [ ":__support_macros_attributes", ":__support_macros_config", ":__support_macros_properties_architectures", ":__support_macros_properties_compiler", ":hdr_stdint_proxy", ], ) libc_support_library( name = "__support_cpp_algorithm", hdrs = ["src/__support/CPP/algorithm.h"], deps = [ ":__support_macros_attributes", ":__support_macros_config", ], ) libc_support_library( name = "__support_cpp_iterator", hdrs = ["src/__support/CPP/iterator.h"], deps = [ ":__support_cpp_type_traits", ":__support_macros_attributes", ], ) libc_support_library( name = "__support_cpp_array", hdrs = ["src/__support/CPP/array.h"], deps = [ ":__support_cpp_iterator", ":__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_sanitizer", ], ) libc_support_library( name = "__support_cpp_bitset", hdrs = ["src/__support/CPP/bitset.h"], deps = [ ":__support_macros_attributes", ":__support_macros_config", ], ) 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 = [ ":__support_macros_attributes", ":__support_macros_config", ], ) 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_tuple", hdrs = ["src/__support/CPP/tuple.h"], deps = [ "__support_cpp_utility", ], ) libc_support_library( name = "__support_cpp_limits", hdrs = ["src/__support/CPP/limits.h"], deps = [ "__support_cpp_type_traits", "__support_macros_attributes", ":__support_macros_properties_types", ":hdr_limits_macros", ], ) libc_support_library( name = "__support_cpp_new", srcs = ["src/__support/CPP/new.cpp"], hdrs = ["src/__support/CPP/new.h"], deps = [ ":__support_common", ":__support_macros_properties_os", ":func_aligned_alloc", ":func_free", ":func_malloc", ], ) libc_support_library( name = "__support_cpp_optional", hdrs = ["src/__support/CPP/optional.h"], deps = [ ":__support_cpp_utility", ":hdr_stdint_proxy", ], ) libc_support_library( name = "__support_cpp_simd", hdrs = ["src/__support/CPP/simd.h"], deps = [ ":__support_cpp_algorithm", ":__support_cpp_bit", ":__support_cpp_tuple", ":__support_cpp_type_traits", ":__support_macros_attributes", ":hdr_stdint_proxy", ], ) libc_support_library( name = "__support_cpp_span", hdrs = ["src/__support/CPP/span.h"], deps = [ ":__support_cpp_array", ":__support_cpp_limits", ":__support_cpp_type_traits", ], ) libc_support_library( name = "__support_cpp_string_view", hdrs = ["src/__support/CPP/string_view.h"], deps = [ ":__support_common", ":__support_cpp_limits", ], ) 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", ":func_free", ":func_malloc", ":func_realloc", ":string_memory_utils", ":string_utils", ], ) libc_support_library( name = "__support_cpp_type_traits", hdrs = glob(["src/__support/CPP/type_traits/*.h"]) + [ "src/__support/CPP/type_traits.h", "src/__support/CPP/utility/declval.h", "src/__support/CPP/utility/forward.h", ], deps = [ ":__support_macros_attributes", ":__support_macros_config", ":__support_macros_properties_compiler", ":__support_macros_properties_complex_types", ":__support_macros_properties_types", ":hdr_stdint_proxy", ":llvm_libc_macros_stdfix_macros", ], ) libc_support_library( name = "__support_cpp_utility", hdrs = glob(["src/__support/CPP/utility/*.h"]) + [ "src/__support/CPP/utility.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", ":hdr_stdint_proxy", ], ) libc_support_library( name = "__support_blockstore", hdrs = ["src/__support/blockstore.h"], deps = [ ":__support_cpp_array", ":__support_cpp_new", ":__support_libc_assert", ], ) libc_support_library( name = "__support_arg_list", hdrs = ["src/__support/arg_list.h"], deps = [ ":__support_common", ":string_memory_utils", ], ) 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", ":__support_cpp_iterator", ":__support_libc_assert", ":string_memory_utils", ], ) libc_support_library( name = "__support_char_vector", hdrs = ["src/__support/char_vector.h"], deps = [ ":__support_common", ":func_free", ":func_malloc", ":func_realloc", ], ) 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", ], deps = [ ":__support_big_int", ":__support_common", ":__support_cpp_type_traits", ":__support_fputil_dyadic_float", ":__support_fputil_fp_bits", ":__support_libc_assert", ], ) libc_support_library( name = "__support_number_pair", hdrs = ["src/__support/number_pair.h"], deps = [ ":__support_cpp_type_traits", ], ) libc_support_library( name = "__support_big_int", hdrs = ["src/__support/big_int.h"], deps = [ ":__support_cpp_array", ":__support_cpp_bit", ":__support_cpp_limits", ":__support_cpp_optional", ":__support_cpp_type_traits", ":__support_macros_attributes", ":__support_macros_optimization", ":__support_macros_properties_types", ":__support_math_extras", ":__support_number_pair", ], ) libc_support_library( name = "__support_sign", hdrs = ["src/__support/sign.h"], deps = [ ":__support_macros_attributes", ], ) libc_support_library( name = "__support_uint128", hdrs = ["src/__support/uint128.h"], deps = [ ":__support_big_int", ":__support_macros_attributes", ":__support_macros_properties_types", ], ) libc_support_library( name = "__support_integer_literals", hdrs = ["src/__support/integer_literals.h"], deps = [ ":__support_cpp_limits", ":__support_ctype_utils", ":__support_uint128", ], ) libc_support_library( name = "__support_str_to_num_result", hdrs = ["src/__support/str_to_num_result.h"], deps = [ ":__support_macros_attributes", ":__support_macros_config", ], ) 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_big_int", ":__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", ":__support_ctype_utils", ], ) libc_support_library( name = "__support_libc_assert", hdrs = ["src/__support/libc_assert.h"], ) libc_support_library( name = "__support_ctype_utils", hdrs = ["src/__support/ctype_utils.h"], deps = [ ":__support_macros_attributes", ":__support_macros_config", ], ) 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", ":__support_uint128", ":__support_wctype_utils", ":hdr_errno_macros", ], ) 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_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_null_check", ":__support_str_to_integer", ":__support_str_to_num_result", ":__support_uint128", ":__support_wctype_utils", ":hdr_errno_macros", ], ) libc_support_library( name = "__support_complex_type", hdrs = ["src/__support/complex_type.h"], deps = [ ":__support_macros_config", ":__support_macros_properties_complex_types", ":__support_macros_properties_types", ], ) libc_support_library( name = "__support_complex_basic_ops", hdrs = ["src/__support/complex_basic_ops.h"], deps = [ ":__support_complex_type", ":__support_cpp_bit", ":__support_fputil_fp_bits", ], ) libc_support_library( name = "__support_fputil_basic_operations", hdrs = [ "src/__support/FPUtil/BasicOperations.h", "src/__support/FPUtil/generic/add_sub.h", "src/__support/FPUtil/generic/div.h", "src/__support/FPUtil/generic/mul.h", ], deps = [ ":__support_common", ":__support_cpp_type_traits", ":__support_fputil_cast", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_uint128", ], ) libc_support_library( name = "__support_fputil_comparison_operations", hdrs = [ "src/__support/FPUtil/comparison_operations.h", ], deps = [ ":__support_cpp_type_traits", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_macros_config", ], ) libc_support_library( name = "__support_file_file", srcs = [ "include/llvm-libc-types/off_t.h", "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", ":func_aligned_alloc", ":func_free", ":func_malloc", ":func_realloc", ":hdr_stdio_macros", ":hdr_stdio_overlay", ":string_memory_utils", ":types_off_t", ], ) 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", ":hdr_stdio_overlay", ":types_off_t", ], ) libc_support_library( name = "__support_math_extras", hdrs = ["src/__support/math_extras.h"], deps = [ ":__support_cpp_bit", ":__support_cpp_limits", ":__support_cpp_type_traits", ":__support_macros_attributes", ], ) libc_support_library( name = "__support_fixed_point", hdrs = [ "src/__support/fixed_point/fx_bits.h", "src/__support/fixed_point/fx_rep.h", ], deps = [ ":__support_cpp_algorithm", ":__support_cpp_bit", ":__support_cpp_type_traits", ":__support_libc_assert", ":__support_macros_attributes", ":__support_macros_null_check", ":__support_macros_optimization", ":__support_math_extras", ":llvm_libc_macros_stdfix_macros", ], ) 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", ], ) libc_support_library( name = "__support_fputil_bfloat16", hdrs = ["src/__support/FPUtil/bfloat16.h"], deps = [ ":__support_cpp_bit", ":__support_cpp_type_traits", ":__support_fputil_basic_operations", ":__support_fputil_cast", ":__support_fputil_comparison_operations", ":__support_fputil_dyadic_float", ":__support_macros_config", ":__support_macros_properties_types", ], ) alias( name = "bfloat16", # Alias for test/src/math:bfloat16_test. actual = ":__support_fputil_bfloat16", ) libc_support_library( name = "__support_fputil_cast", hdrs = ["src/__support/FPUtil/cast.h"], deps = [ ":__support_cpp_algorithm", ":__support_cpp_type_traits", ":__support_fputil_dyadic_float", ":__support_fputil_fp_bits", ":__support_macros_properties_types", ":hdr_fenv_macros", ], ) 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_cast", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_properties_cpu_features", ":__support_macros_properties_types", ], ) 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", ":hdr_fenv_macros", ":hdr_math_macros", ":types_fenv_t", ], ) libc_support_library( name = "__support_fputil_rounding_mode", hdrs = ["src/__support/FPUtil/rounding_mode.h"], deps = [ ":__support_cpp_type_traits", ":__support_macros_attributes", ":__support_macros_config", ":hdr_fenv_macros", ], ) 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_libc_assert", ":__support_macros_attributes", ":__support_macros_properties_types", ":__support_math_extras", ":__support_sign", ":__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_cast", ":__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", "src/__support/FPUtil/x86_64/NextUpDownLongDouble.h", ], deps = [ ":__support_common", ":__support_cpp_bit", ":__support_cpp_limits", ":__support_cpp_type_traits", ":__support_fputil_cast", ":__support_fputil_dyadic_float", ":__support_fputil_fp_bits", ":__support_fputil_nearest_integer_operations", ":__support_fputil_normal_float", ":__support_macros_optimization", ":__support_uint128", ":hdr_math_macros", ], ) 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", ":hdr_math_macros", ], ) 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_cast", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_properties_cpu_features", ":__support_uint128", ], ) fma_common_hdrs = [ "src/__support/FPUtil/FMA.h", "src/__support/FPUtil/generic/FMA.h", ] libc_support_library( name = "__support_fputil_fma", hdrs = fma_common_hdrs, deps = [ ":__support_cpp_bit", ":__support_cpp_type_traits", ":__support_fputil_basic_operations", ":__support_fputil_dyadic_float", ":__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_cpp_type_traits", ], ) 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_big_int", ":__support_common", ":__support_cpp_type_traits", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_osutil_syscall", hdrs = ["src/__support/OSUtil/syscall.h"], textual_hdrs = select({ "@platforms//os:macos": [ "src/__support/OSUtil/darwin/syscall.h", "src/__support/OSUtil/darwin/arm/syscall.h", ], "@platforms//os:linux": [ "src/__support/OSUtil/linux/syscall.h", "src/__support/OSUtil/linux/aarch64/syscall.h", "src/__support/OSUtil/linux/x86_64/syscall.h", ], "@platforms//os:windows": [], }), deps = [ ":__support_common", ":__support_cpp_bit", ":__support_macros_optimization", ":__support_macros_sanitizer", ], ) libc_support_library( name = "__support_osutil_linux_auxv", hdrs = ["src/__support/OSUtil/linux/auxv.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_syscall", ":__support_threads_callonce", ":hdr_fcntl_macros", ], ) libc_support_library( name = "__support_osutil_vdso", hdrs = [ "src/__support/OSUtil/linux/vdso.h", "src/__support/OSUtil/linux/vdso_sym.h", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), textual_hdrs = [ "src/__support/OSUtil/linux/riscv/vdso.h", "src/__support/OSUtil/linux/arm/vdso.h", "src/__support/OSUtil/linux/x86_64/vdso.h", "src/__support/OSUtil/linux/aarch64/vdso.h", ], deps = [ ":__support_cpp_array", ":__support_cpp_optional", ":__support_cpp_string_view", ":__support_threads_callonce", ":types_clock_t", ":types_clockid_t", ":types_struct_timeval", ], ) libc_support_library( name = "__support_osutil_io", hdrs = ["src/__support/OSUtil/io.h"], textual_hdrs = select({ "@platforms//os:macos": ["src/__support/OSUtil/darwin/io.h"], "@platforms//os:linux": ["src/__support/OSUtil/linux/io.h"], "@platforms//os:windows": ["src/__support/OSUtil/windows/io.h"], }), deps = [ ":__support_common", ":__support_cpp_string_view", ":__support_osutil_syscall", ":string_utils", ], ) libc_support_library( name = "__support_osutil_fcntl", srcs = ["src/__support/OSUtil/linux/fcntl.cpp"], hdrs = ["src/__support/OSUtil/fcntl.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_error_or", ":__support_osutil_syscall", ":hdr_errno_macros", ":hdr_fcntl_macros", ":types_mode_t", ":types_off_t", ":types_struct_f_owner_ex", ":types_struct_flock", ":types_struct_flock64", ], ) libc_support_library( name = "__support_osutil_exit", srcs = ["src/__support/OSUtil/linux/exit.cpp"], hdrs = ["src/__support/OSUtil/exit.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), 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", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), 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_linux_futex_word_type", hdrs = [ "src/__support/threads/linux/futex_word.h", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_osutil_syscall", ], ) libc_support_library( name = "__support_threads_linux_futex_utils", hdrs = [ "src/__support/threads/linux/futex_utils.h", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_cpp_atomic", ":__support_cpp_optional", ":__support_osutil_syscall", ":__support_threads_linux_futex_word_type", ":__support_time_linux_abs_timeout", ":types_struct_timespec", ], ) libc_support_library( name = "__support_threads_sleep", hdrs = ["src/__support/threads/sleep.h"], deps = [ ":__support_macros_attributes", ":__support_macros_config", ], ) libc_support_library( name = "__support_threads_raw_mutex", hdrs = [ "src/__support/threads/linux/raw_mutex.h", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_cpp_expected", ":__support_cpp_optional", ":__support_threads_linux_futex_utils", ":__support_threads_sleep", ":__support_time_linux_abs_timeout", ":__support_time_linux_monotonicity", ":types_pid_t", ], ) libc_support_library( name = "__support_threads_mutex", hdrs = [ "src/__support/threads/mutex.h", "src/__support/threads/mutex_common.h", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), textual_hdrs = [ "src/__support/threads/linux/mutex.h", ], deps = [ ":__support_cpp_atomic", ":__support_osutil_syscall", ":__support_threads_linux_futex_utils", ":__support_threads_raw_mutex", ":types_pid_t", ], ) libc_support_library( name = "__support_threads_callonce", hdrs = [ "src/__support/threads/callonce.h", ], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), textual_hdrs = [ "src/__support/threads/linux/callonce.h", ], deps = [ ":__support_macros_config", ":__support_macros_optimization", ":__support_threads_linux_futex_utils", ], ) libc_support_library( name = "__support_time", hdrs = glob(["src/__support/time/*.h"]), deps = [ ":__support_common", ":__support_error_or", ":hdr_time_macros", ":types_clockid_t", ":types_struct_timespec", ":types_time_t", ], ) libc_support_library( name = "__support_time_linux_abs_timeout", hdrs = ["src/__support/time/linux/abs_timeout.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_cpp_expected", ":__support_time", ":hdr_time_macros", ":types_struct_timespec", ], ) libc_support_library( name = "__support_time_linux_clock_conversion", hdrs = ["src/__support/time/linux/clock_conversion.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_time", ":__support_time_clock_gettime", ], ) libc_support_library( name = "__support_time_clock_gettime", hdrs = ["src/__support/time/clock_gettime.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_error_or", ":__support_osutil_vdso", ":types_clockid_t", ":types_struct_timespec", ], ) libc_support_library( name = "__support_time_linux_monotonicity", hdrs = ["src/__support/time/linux/monotonicity.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_libc_assert", ":__support_time_linux_abs_timeout", ":__support_time_linux_clock_conversion", ":hdr_time_macros", ], ) libc_support_library( name = "__support_wctype_utils", hdrs = ["src/__support/wctype_utils.h"], deps = [ ":__support_macros_attributes", ":__support_macros_config", ":types_wchar_t", ], ) ########################## externally shared targets ########################### libc_header_library( name = "libcxx_shared_headers", hdrs = [ "shared/fp_bits.h", "shared/libc_common.h", "shared/str_to_float.h", "shared/str_to_integer.h", ], deps = [ ":__support_common", ":__support_fputil_fp_bits", ":__support_str_to_float", ":__support_str_to_integer", ], ) ############################### errno ######################################## libc_support_library( name = "__support_libc_errno", hdrs = ["src/__support/libc_errno.h"], deps = [ ":__support_macros_config", ":hdr_errno_macros", ], ) libc_support_library( name = "errno", srcs = ["src/errno/libc_errno.cpp"], deps = [ ":__support_common", ":__support_cpp_atomic", ":__support_libc_errno", ":__support_macros_attributes", ":__support_macros_properties_architectures", ":hdr_errno_macros", ], ) ################################# ctype targets ################################ libc_function( name = "isalnum", srcs = ["src/ctype/isalnum.cpp"], hdrs = ["src/ctype/isalnum.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isalpha", srcs = ["src/ctype/isalpha.cpp"], hdrs = ["src/ctype/isalpha.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isascii", srcs = ["src/ctype/isascii.cpp"], hdrs = ["src/ctype/isascii.h"], deps = [ ":__support_common", ":__support_ctype_utils", ], ) libc_function( name = "isblank", srcs = ["src/ctype/isblank.cpp"], hdrs = ["src/ctype/isblank.h"], deps = [ ":__support_common", ":__support_ctype_utils", ], ) libc_function( name = "iscntrl", srcs = ["src/ctype/iscntrl.cpp"], hdrs = ["src/ctype/iscntrl.h"], deps = [ ":__support_common", ":__support_ctype_utils", ], ) libc_function( name = "isdigit", srcs = ["src/ctype/isdigit.cpp"], hdrs = ["src/ctype/isdigit.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isgraph", srcs = ["src/ctype/isgraph.cpp"], hdrs = ["src/ctype/isgraph.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "islower", srcs = ["src/ctype/islower.cpp"], hdrs = ["src/ctype/islower.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isprint", srcs = ["src/ctype/isprint.cpp"], hdrs = ["src/ctype/isprint.h"], deps = [ ":__support_common", ":__support_ctype_utils", ], ) libc_function( name = "ispunct", srcs = ["src/ctype/ispunct.cpp"], hdrs = ["src/ctype/ispunct.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isspace", srcs = ["src/ctype/isspace.cpp"], hdrs = ["src/ctype/isspace.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isupper", srcs = ["src/ctype/isupper.cpp"], hdrs = ["src/ctype/isupper.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "isxdigit", srcs = ["src/ctype/isxdigit.cpp"], hdrs = ["src/ctype/isxdigit.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "toascii", srcs = ["src/ctype/toascii.cpp"], hdrs = ["src/ctype/toascii.h"], deps = [ ":__support_common", ":__support_ctype_utils", ], ) libc_function( name = "tolower", srcs = ["src/ctype/tolower.cpp"], hdrs = ["src/ctype/tolower.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) libc_function( name = "toupper", srcs = ["src/ctype/toupper.cpp"], hdrs = ["src/ctype/toupper.h"], deps = [ ":__support_common", ":__support_cpp_limits", ":__support_ctype_utils", ], ) ################################ 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 = "fetestexceptflag", srcs = ["src/fenv/fetestexceptflag.cpp"], hdrs = ["src/fenv/fetestexceptflag.h"], deps = [ ":__support_common", ":__support_fputil_fenv_impl", ":types_fexcept_t", ], ) 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 = "fesetexcept", srcs = ["src/fenv/fesetexcept.cpp"], hdrs = ["src/fenv/fesetexcept.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", ":types_fexcept_t", ], ) libc_function( name = "fesetexceptflag", srcs = ["src/fenv/fesetexceptflag.cpp"], hdrs = ["src/fenv/fesetexceptflag.h"], deps = [ ":__support_common", ":__support_fputil_fenv_impl", ":types_fexcept_t", ], ) libc_function( name = "feholdexcept", srcs = ["src/fenv/feholdexcept.cpp"], hdrs = ["src/fenv/feholdexcept.h"], deps = [ ":__support_common", ":__support_fputil_fenv_impl", ], ) ########################### math support library ############################### libc_support_library( name = "log_range_reduction", hdrs = ["src/math/generic/log_range_reduction.h"], deps = [ ":__support_common", ":__support_fputil_dyadic_float", ":__support_math_common_constants", ":__support_uint128", ], ) libc_support_library( name = "__support_math_acos", hdrs = ["src/__support/math/acos.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_macros_properties_types", ":__support_math_asin_utils", ], ) libc_support_library( name = "__support_math_acosf", hdrs = ["src/__support/math/acosf.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_math_inv_trigf_utils", ], ) libc_support_library( name = "__support_math_acosf16", hdrs = ["src/__support/math/acosf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_acosh_float_constants", hdrs = ["src/__support/math/acosh_float_constants.h"], deps = [ ":__support_macros_config", ], ) libc_support_library( name = "__support_math_acoshf_utils", hdrs = ["src/__support/math/acoshf_utils.h"], deps = [ ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_math_acosh_float_constants", ], ) libc_support_library( name = "__support_math_acoshf", hdrs = ["src/__support/math/acoshf.h"], deps = [ ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_math_acoshf_utils", ], ) libc_support_library( name = "__support_math_acoshf16", hdrs = ["src/__support/math/acoshf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_math_acoshf_utils", ], ) libc_support_library( name = "__support_math_acospif16", hdrs = ["src/__support/math/acospif16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_macros_properties_types", ], ) libc_support_library( name = "__support_math_rsqrtf", hdrs = ["src/__support/math/rsqrtf.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_sqrt", ":__support_macros_optimization", ":hdr_errno_macros", ":hdr_fenv_macros", ], ) libc_support_library( name = "__support_math_rsqrtf16", hdrs = ["src/__support/math/rsqrtf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_manipulation_functions", ":__support_fputil_sqrt", ":__support_macros_optimization", ":hdr_errno_macros", ":hdr_fenv_macros", ], ) libc_support_library( name = "__support_math_asin_utils", hdrs = ["src/__support/math/asin_utils.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_integer_literals", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_asin", hdrs = ["src/__support/math/asin.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_asin_utils", ], ) libc_support_library( name = "__support_math_asinhf", hdrs = ["src/__support/math/asinhf.h"], deps = [ ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_acoshf_utils", ], ) libc_support_library( name = "__support_math_asinhf16", hdrs = ["src/__support/math/asinhf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_sqrt", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_acoshf_utils", ], ) libc_support_library( name = "__support_math_atan_utils", hdrs = ["src/__support/math/atan_utils.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_integer_literals", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_atan", hdrs = ["src/__support/math/atan.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_nearest_integer", ":__support_macros_optimization", ":__support_math_atan_utils", ], ) libc_support_library( name = "__support_math_atan2", hdrs = ["src/__support/math/atan2.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_nearest_integer", ":__support_math_atan_utils", ], ) libc_support_library( name = "__support_math_atan2f", hdrs = ["src/__support/math/atan2f.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_inv_trigf_utils", ], ) libc_support_library( name = "__support_math_atan2f128", hdrs = ["src/__support/math/atan2f128.h"], deps = [ ":__support_fputil_dyadic_float", ":__support_fputil_fp_bits", ":__support_fputil_nearest_integer", ":__support_integer_literals", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_atan_utils", ":__support_uint128", ], ) libc_support_library( name = "__support_math_atanf", hdrs = ["src/__support/math/atanf.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_math_inv_trigf_utils", ], ) libc_support_library( name = "__support_math_atanf16", hdrs = ["src/__support/math/atanf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_asinf", hdrs = ["src/__support/math/asinf.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_sqrt", ":__support_macros_config", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_inv_trigf_utils", ], ) libc_support_library( name = "__support_math_asinf16", hdrs = ["src/__support/math/asinf16.h"], deps = [ ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_atanhf", hdrs = ["src/__support/math/atanhf.h"], deps = [ ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_acoshf_utils", ], ) libc_support_library( name = "__support_math_atanhf16", hdrs = ["src/__support/math/atanhf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_macros_config", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_cbrt", hdrs = ["src/__support/math/cbrt.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_polyeval", ":__support_integer_literals", ], ) libc_support_library( name = "__support_math_cbrtf", hdrs = ["src/__support/math/cbrtf.h"], deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_polyeval", ":__support_integer_literals", ], ) libc_support_library( name = "__support_math_common_constants", hdrs = ["src/__support/math/common_constants.h"], deps = [ ":__support_math_acosh_float_constants", ":__support_math_exp_constants", ":__support_number_pair", ], ) libc_support_library( name = "__support_math_cos", hdrs = ["src/__support/math/cos.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_range_reduction_double", ":__support_sincos_eval", ], ) libc_support_library( name = "__support_math_cosf", hdrs = ["src/__support/math/cosf.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_sincosf_utils", ":errno", ], ) libc_support_library( name = "__support_math_cosf16", hdrs = ["src/__support/math/cosf16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_math_sincosf16_utils", ":errno", ], ) libc_support_library( name = "__support_math_coshf", hdrs = ["src/__support/math/coshf.h"], deps = [ ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_math_sinhfcoshf_utils", ], ) libc_support_library( name = "__support_math_coshf16", hdrs = ["src/__support/math/coshf16.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_expxf16_utils", ], ) libc_support_library( name = "__support_math_cospif", hdrs = ["src/__support/math/cospif.h"], deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_math_common_constants", ":__support_sincosf_utils", ], ) libc_support_library( name = "__support_math_cospif16", hdrs = ["src/__support/math/cospif16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_fenv_impl", ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_math_sincosf16_utils", ], ) libc_support_library( name = "__support_math_dsqrtl", hdrs = ["src/__support/math/dsqrtl.h"], deps = [ ":__support_fputil_sqrt", ], ) libc_support_library( name = "__support_math_exp10m1f", hdrs = ["src/__support/math/exp10m1f.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_math_exp10f_utils", ":errno", ], ) libc_support_library( name = "__support_math_exp10m1f16", hdrs = ["src/__support/math/exp10m1f16.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_math_exp10f16_utils", ":errno", ], ) libc_support_library( name = "__support_math_erff", hdrs = ["src/__support/math/erff.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_macros_optimization", ], ) libc_support_library( name = "__support_math_exp_float_constants", hdrs = ["src/__support/math/exp_float_constants.h"], deps = [ ":__support_macros_config", ], ) libc_support_library( name = "__support_math_expf", hdrs = ["src/__support/math/expf.h"], deps = [ ":__support_common", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_libc_errno", ":__support_macros_config", ":__support_macros_optimization", ":__support_math_exp_float_constants", ], ) libc_support_library( name = "__support_math_expf16_utils", hdrs = ["src/__support/math/expf16_utils.h"], deps = [ ":__support_cpp_array", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_macros_attributes", ":llvm_libc_macros_float16_macros", ], ) libc_support_library( name = "__support_math_expf16", hdrs = ["src/__support/math/expf16.h"], deps = [ ":__support_common", ":__support_cpp_array", ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_libc_errno", ":__support_macros_optimization", ":__support_math_expf16_utils", ":llvm_libc_macros_float16_macros", ], ) libc_support_library( name = "__support_math_expxf16_utils", hdrs = ["src/__support/math/expxf16_utils.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_fp_bits", ":__support_fputil_nearest_integer", ":__support_math_exp10_float16_constants", ":__support_math_expf16_utils", ], ) libc_support_library( name = "__support_math_frexpf128", hdrs = ["src/__support/math/frexpf128.h"], deps = [ ":__support_fputil_manipulation_functions", ":__support_macros_properties_types", ], ) libc_support_library( name = "__support_math_inv_trigf_utils", hdrs = ["src/__support/math/inv_trigf_utils.h"], deps = [ ":__support_common", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ], ) libc_support_library( name = "__support_math_frexpf16", hdrs = ["src/__support/math/frexpf16.h"], deps = [ ":__support_fputil_manipulation_functions", ":__support_macros_config", ":__support_macros_properties_types", ":llvm_libc_macros_float16_macros", ], ) libc_support_library( name = "__support_math_frexpf", hdrs = ["src/__support/math/frexpf.h"], deps = [ ":__support_fputil_manipulation_functions", ], ) libc_support_library( name = "__support_math_ldexpf128", hdrs = ["src/__support/math/ldexpf128.h"], deps = [ ":__support_fputil_manipulation_functions", ":__support_macros_properties_types", ":llvm_libc_types_float128", ], ) libc_support_library( name = "__support_math_ldexpf16", hdrs = ["src/__support/math/ldexpf16.h"], deps = [ ":__support_fputil_manipulation_functions", ":__support_macros_properties_types", ":llvm_libc_macros_float16_macros", ], ) libc_support_library( name = "__support_math_ldexpf", hdrs = ["src/__support/math/ldexpf.h"], deps = [ ":__support_fputil_manipulation_functions", ], ) libc_support_library( name = "__support_math_exp_constants", hdrs = ["src/__support/math/exp_constants.h"], deps = [ ":__support_fputil_triple_double", ], ) libc_support_library( name = "__support_math_exp_utils", hdrs = ["src/__support/math/exp_utils.h"], deps = [ ":__support_cpp_bit", ":__support_cpp_optional", ":__support_fputil_fp_bits", ], ) libc_support_library( name = "__support_math_exp", hdrs = ["src/__support/math/exp.h"], deps = [ ":__support_cpp_bit", ":__support_cpp_optional", ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_triple_double", ":__support_integer_literals", ":__support_macros_optimization", ":__support_math_exp_constants", ":__support_math_exp_utils", ], ) libc_support_library( name = "__support_math_exp2", hdrs = ["src/__support/math/exp2.h"], 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_integer_literals", ":__support_macros_optimization", ":__support_math_common_constants", ":__support_math_exp_utils", ], ) libc_support_library( name = "__support_math_exp2f", hdrs = ["src/__support/math/exp2f.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", ":__support_math_common_constants", ":__support_math_exp10f_utils", ], ) libc_support_library( name = "__support_math_exp2f16", hdrs = ["src/__support/math/exp2f16.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", ":__support_math_common_constants", ":__support_math_expxf16_utils", ], ) libc_support_library( name = "__support_math_exp2m1f", hdrs = ["src/__support/math/exp2m1f.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", ":__support_math_common_constants", ":__support_math_exp10f_utils", ], ) libc_support_library( name = "__support_math_exp2m1f16", hdrs = ["src/__support/math/exp2m1f16.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", ":__support_math_common_constants", ":__support_math_expxf16_utils", ], ) libc_support_library( name = "__support_math_exp10", hdrs = ["src/__support/math/exp10.h"], 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_integer_literals", ":__support_macros_optimization", ":__support_math_exp_constants", ":__support_math_exp_utils", ], ) libc_support_library( name = "__support_math_exp10f_utils", hdrs = ["src/__support/math/exp10f_utils.h"], deps = [ ":__support_common", ":__support_fputil_basic_operations", ":__support_fputil_fenv_impl", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_math_exp_utils", ], ) libc_support_library( name = "__support_math_exp10f", hdrs = ["src/__support/math/exp10f.h"], deps = [ ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_math_exp10f_utils", ], ) libc_support_library( name = "__support_math_exp10_float16_constants", hdrs = ["src/__support/math/exp10_float16_constants.h"], deps = [ ":__support_cpp_array", ], ) libc_support_library( name = "__support_math_exp10f16_utils", hdrs = ["src/__support/math/exp10f16_utils.h"], deps = [ ":__support_fputil_fp_bits", ":__support_math_exp10_float16_constants", ":__support_math_expf16_utils", ], ) libc_support_library( name = "__support_math_exp10f16", hdrs = ["src/__support/math/exp10f16.h"], deps = [ ":__support_fputil_cast", ":__support_fputil_except_value_utils", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_exp10f16_utils", ], ) libc_support_library( name = "__support_range_reduction_double", hdrs = [ "src/__support/math/range_reduction_double_common.h", "src/__support/math/range_reduction_double_fma.h", "src/__support/math/range_reduction_double_nofma.h", ], deps = [ ":__support_common", ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_rounding_mode", ":__support_integer_literals", ], ) libc_support_library( name = "__support_range_reduction", hdrs = [ "src/__support/math/range_reduction.h", "src/__support/math/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 = "__support_sincos_eval", hdrs = [ "src/__support/math/sincos_eval.h", ], deps = [ ":__support_common", ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_integer_literals", ], ) libc_support_library( name = "__support_sincosf_utils", hdrs = [ "src/__support/math/sincosf_float_eval.h", "src/__support/math/sincosf_utils.h", ], deps = [ ":__support_fputil_double_double", ":__support_fputil_fp_bits", ":__support_fputil_polyeval", ":__support_range_reduction", ], ) libc_support_library( name = "__support_math_sincosf16_utils", hdrs = ["src/__support/math/sincosf16_utils.h"], deps = [ ":__support_common", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ], ) libc_support_library( name = "__support_math_sinhfcoshf_utils", hdrs = ["src/__support/math/sinhfcoshf_utils.h"], deps = [ ":__support_fputil_multiply_add", ":__support_math_exp10f_utils", ], ) ############################### complex targets ################################ libc_function( name = "cimag", srcs = ["src/complex/generic/cimag.cpp"], hdrs = ["src/complex/cimag.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ], ) libc_function( name = "cimagf", srcs = ["src/complex/generic/cimagf.cpp"], hdrs = ["src/complex/cimagf.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ], ) libc_function( name = "cimagf128", srcs = ["src/complex/generic/cimagf128.cpp"], hdrs = ["src/complex/cimagf128.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ":__support_macros_properties_complex_types", ":__support_macros_properties_types", ], ) libc_function( name = "cimagf16", srcs = ["src/complex/generic/cimagf16.cpp"], hdrs = ["src/complex/cimagf16.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ":__support_macros_properties_complex_types", ":__support_macros_properties_types", ], ) libc_function( name = "cimagl", srcs = ["src/complex/generic/cimagl.cpp"], hdrs = ["src/complex/cimagl.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ], ) libc_function( name = "conj", srcs = ["src/complex/generic/conj.cpp"], hdrs = ["src/complex/conj.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ], ) libc_function( name = "conjf", srcs = ["src/complex/generic/conjf.cpp"], hdrs = ["src/complex/conjf.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ], ) libc_function( name = "conjf128", srcs = ["src/complex/generic/conjf128.cpp"], hdrs = ["src/complex/conjf128.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ":__support_macros_properties_complex_types", ], ) libc_function( name = "conjf16", srcs = ["src/complex/generic/conjf16.cpp"], hdrs = ["src/complex/conjf16.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_cpp_bit", ":__support_macros_config", ":__support_macros_properties_complex_types", ], ) libc_function( name = "conjl", srcs = ["src/complex/generic/conjl.cpp"], hdrs = ["src/complex/conjl.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ], ) libc_function( name = "cproj", srcs = ["src/complex/generic/cproj.cpp"], hdrs = ["src/complex/cproj.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ], ) libc_function( name = "cprojf", srcs = ["src/complex/generic/cprojf.cpp"], hdrs = ["src/complex/cprojf.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ], ) libc_function( name = "cprojf128", srcs = ["src/complex/generic/cprojf128.cpp"], hdrs = ["src/complex/cprojf128.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ":__support_macros_properties_complex_types", ], ) libc_function( name = "cprojf16", srcs = ["src/complex/generic/cprojf16.cpp"], hdrs = ["src/complex/cprojf16.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ":__support_macros_properties_complex_types", ], ) libc_function( name = "cprojl", srcs = ["src/complex/generic/cprojl.cpp"], hdrs = ["src/complex/cprojl.h"], deps = [ ":__support_common", ":__support_complex_basic_ops", ":__support_macros_config", ], ) libc_function( name = "creal", srcs = ["src/complex/generic/creal.cpp"], hdrs = ["src/complex/creal.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ], ) libc_function( name = "crealf", srcs = ["src/complex/generic/crealf.cpp"], hdrs = ["src/complex/crealf.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ], ) libc_function( name = "crealf128", srcs = ["src/complex/generic/crealf128.cpp"], hdrs = ["src/complex/crealf128.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ":__support_macros_properties_complex_types", ], ) libc_function( name = "crealf16", srcs = ["src/complex/generic/crealf16.cpp"], hdrs = ["src/complex/crealf16.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ":__support_macros_properties_complex_types", ], ) libc_function( name = "creall", srcs = ["src/complex/generic/creall.cpp"], hdrs = ["src/complex/creall.h"], deps = [ ":__support_common", ":__support_complex_type", ":__support_cpp_bit", ":__support_macros_config", ], ) ################################ math targets ################################## libc_math_function( name = "acos", additional_deps = [ ":__support_math_acos", ], ) libc_math_function( name = "acosf", additional_deps = [ ":__support_math_acosf", ], ) libc_math_function( name = "acosf16", additional_deps = [ ":__support_math_acosf16", ":errno", ], ) libc_math_function( name = "acoshf", additional_deps = [ ":__support_math_acoshf", ], ) libc_math_function( name = "acoshf16", additional_deps = [ ":__support_math_acoshf16", ":errno", ], ) libc_math_function( name = "acospif16", additional_deps = [ ":__support_math_acospif16", ":errno", ], ) libc_math_function( name = "asin", additional_deps = [ ":__support_math_asin", ], ) libc_math_function( name = "asinf", additional_deps = [ ":__support_math_asinf", ], ) libc_math_function( name = "asinf16", additional_deps = [ ":__support_math_asinf16", ], ) libc_math_function( name = "asinhf", additional_deps = [ ":__support_math_asinhf", ], ) libc_math_function( name = "asinhf16", additional_deps = [ ":__support_math_asinhf16", ], ) libc_math_function( name = "atanf", additional_deps = [ ":__support_math_atanf", ], ) libc_math_function( name = "atanf16", additional_deps = [ ":__support_math_atanf16", ], ) libc_math_function( name = "atan", additional_deps = [ ":__support_math_atan", ], ) libc_math_function( name = "atan2f", additional_deps = [ ":__support_math_atan2f", ], ) libc_math_function( name = "atan2f128", additional_deps = [ ":__support_math_atan2f128", ], ) libc_math_function( name = "atan2", additional_deps = [ ":__support_math_atan2", ], ) libc_math_function( name = "atanhf", additional_deps = [ ":__support_math_atanhf", ], ) libc_math_function( name = "atanhf16", additional_deps = [ ":__support_math_atanhf16", ], ) libc_math_function(name = "canonicalize") libc_math_function(name = "canonicalizef") libc_math_function(name = "canonicalizel") libc_math_function(name = "canonicalizef128") libc_math_function(name = "canonicalizef16") libc_math_function(name = "iscanonical") libc_math_function(name = "iscanonicalf") libc_math_function(name = "iscanonicall") libc_math_function(name = "iscanonicalf128") libc_math_function(name = "iscanonicalf16") libc_math_function(name = "issignaling") libc_math_function(name = "issignalingf") libc_math_function(name = "issignalingl") libc_math_function(name = "issignalingf128") libc_math_function(name = "issignalingf16") libc_math_function( name = "cbrt", additional_deps = [ ":__support_math_cbrt", ], ) libc_math_function( name = "cbrtf", additional_deps = [ ":__support_math_cbrtf", ], ) libc_math_function(name = "ceil") libc_math_function(name = "ceilf") libc_math_function(name = "ceill") libc_math_function(name = "ceilf128") libc_math_function(name = "ceilf16") libc_math_function(name = "copysign") libc_math_function(name = "copysignf") libc_math_function(name = "copysignl") libc_math_function(name = "copysignf128") libc_math_function(name = "copysignf16") libc_math_function( name = "cos", additional_deps = [ ":__support_math_cos", ], ) libc_math_function( name = "cosf", additional_deps = [ ":__support_math_cosf", ], ) libc_math_function( name = "cosf16", additional_deps = [ ":__support_math_cosf16", ], ) libc_math_function( name = "coshf", additional_deps = [ ":__support_math_coshf", ], ) libc_math_function( name = "coshf16", additional_deps = [ ":__support_math_coshf16", ], ) libc_math_function( name = "cospif", additional_deps = [ ":__support_math_cospif", ], ) libc_math_function( name = "cospif16", additional_deps = [ ":__support_math_cospif16", ], ) libc_math_function(name = "daddl") libc_math_function(name = "daddf128") libc_math_function(name = "ddivl") libc_math_function(name = "ddivf128") libc_math_function( name = "dfmal", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "dfmaf128", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function(name = "dmull") libc_math_function(name = "dmulf128") libc_math_function( name = "dsqrtl", additional_deps = [ ":__support_math_dsqrtl", ], ) libc_math_function( name = "dsqrtf128", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function(name = "dsubl") libc_math_function(name = "dsubf128") libc_math_function( name = "erff", additional_deps = [ ":__support_math_erff", ], ) libc_math_function( name = "exp", additional_deps = [ ":__support_math_exp", ":errno", ], ) libc_math_function( name = "expf", additional_deps = [ ":__support_math_expf", ":errno", ], ) libc_math_function( name = "expf16", additional_deps = [ ":__support_math_expf16", ":__support_math_expxf16_utils", ], ) libc_math_function( name = "exp10", additional_deps = [ ":__support_math_exp10", ":errno", ], ) libc_math_function( name = "exp10f", additional_deps = [ ":__support_math_exp10f", ":errno", ], ) libc_math_function( name = "exp10f16", additional_deps = [ ":__support_math_exp10f16", ":errno", ], ) libc_math_function( name = "exp10m1f16", additional_deps = [ ":__support_math_exp10m1f16", ], ) libc_math_function( name = "exp10m1f", additional_deps = [ ":__support_math_exp10m1f", ], ) libc_math_function( name = "exp2", additional_deps = [ ":__support_math_exp2", ], ) libc_math_function( name = "exp2f", additional_deps = [ ":__support_math_exp2f", ], ) libc_math_function( name = "exp2f16", additional_deps = [ ":__support_math_exp2f16", ], ) libc_math_function( name = "exp2m1f", additional_deps = [ ":__support_math_exp2m1f", ], ) libc_math_function( name = "exp2m1f16", additional_deps = [ ":__support_math_exp2m1f16", ], ) libc_math_function( name = "expm1", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_triple_double", ":__support_integer_literals", ":__support_macros_optimization", ":__support_math_common_constants", ], ) 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", ":__support_math_common_constants", ], ) libc_math_function( name = "expm1f16", additional_deps = [ ":__support_math_expxf16_utils", ], ) libc_math_function(name = "f16add") libc_math_function(name = "f16addf") libc_math_function(name = "f16addf128") libc_math_function(name = "f16addl") libc_math_function(name = "f16div") libc_math_function(name = "f16divf") libc_math_function(name = "f16divf128") libc_math_function(name = "f16divl") libc_math_function( name = "f16fma", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "f16fmaf", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "f16fmaf128", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "f16fmal", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function(name = "f16mul") libc_math_function(name = "f16mulf") libc_math_function(name = "f16mulf128") libc_math_function(name = "f16mull") libc_math_function( name = "f16sqrt", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "f16sqrtf", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "f16sqrtf128", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "f16sqrtl", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function(name = "f16sub") libc_math_function(name = "f16subf") libc_math_function(name = "f16subf128") libc_math_function(name = "f16subl") libc_math_function(name = "fabs") libc_math_function(name = "fabsf") libc_math_function(name = "fabsl") libc_math_function(name = "fabsf128") libc_math_function(name = "fabsf16") libc_math_function(name = "fadd") libc_math_function(name = "faddl") libc_math_function(name = "faddf128") libc_math_function(name = "fdim") libc_math_function(name = "fdimf") libc_math_function(name = "fdiml") libc_math_function(name = "fdimf128") libc_math_function(name = "fdimf16") libc_math_function(name = "fdiv") libc_math_function(name = "fdivl") libc_math_function(name = "fdivf128") libc_math_function( name = "ffma", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "ffmal", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "ffmaf128", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function(name = "floor") libc_math_function(name = "floorf") libc_math_function(name = "floorl") libc_math_function(name = "floorf128") libc_math_function(name = "floorf16") libc_math_function( name = "fma", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "fmaf", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function( name = "fmaf16", additional_deps = [ ":__support_fputil_fma", ], ) libc_math_function(name = "fmax") libc_math_function(name = "fmaxf") libc_math_function(name = "fmaxl") libc_math_function(name = "fmaxf128") libc_math_function(name = "fmaxf16") libc_math_function(name = "fmaximum") libc_math_function(name = "fmaximumf") libc_math_function(name = "fmaximuml") libc_math_function(name = "fmaximumf128") libc_math_function(name = "fmaximumf16") libc_math_function(name = "fmaximum_mag") libc_math_function(name = "fmaximum_magf") libc_math_function(name = "fmaximum_magl") libc_math_function(name = "fmaximum_magf128") libc_math_function(name = "fmaximum_magf16") libc_math_function(name = "fmaximum_mag_num") libc_math_function(name = "fmaximum_mag_numf") libc_math_function(name = "fmaximum_mag_numl") libc_math_function(name = "fmaximum_mag_numf128") libc_math_function(name = "fmaximum_mag_numf16") libc_math_function(name = "fmaximum_num") libc_math_function(name = "fmaximum_numf") libc_math_function(name = "fmaximum_numl") libc_math_function(name = "fmaximum_numf128") libc_math_function(name = "fmaximum_numf16") libc_math_function(name = "fmin") libc_math_function(name = "fminf") libc_math_function(name = "fminl") libc_math_function(name = "fminf128") libc_math_function(name = "fminf16") libc_math_function(name = "fminimum") libc_math_function(name = "fminimumf") libc_math_function(name = "fminimuml") libc_math_function(name = "fminimumf128") libc_math_function(name = "fminimumf16") libc_math_function(name = "fminimum_mag") libc_math_function(name = "fminimum_magf") libc_math_function(name = "fminimum_magl") libc_math_function(name = "fminimum_magf128") libc_math_function(name = "fminimum_magf16") libc_math_function(name = "fminimum_mag_num") libc_math_function(name = "fminimum_mag_numf") libc_math_function(name = "fminimum_mag_numl") libc_math_function(name = "fminimum_mag_numf128") libc_math_function(name = "fminimum_mag_numf16") libc_math_function(name = "fminimum_num") libc_math_function(name = "fminimum_numf") libc_math_function(name = "fminimum_numl") libc_math_function(name = "fminimum_numf128") libc_math_function(name = "fminimum_numf16") libc_math_function( name = "fmod", additional_deps = [ ":__support_fputil_generic_fmod", ], ) libc_math_function( name = "fmodbf16", additional_deps = [ ":__support_fputil_bfloat16", ":__support_fputil_generic_fmod", ], ) libc_math_function( name = "fmodf", additional_deps = [ ":__support_fputil_generic_fmod", ], ) libc_math_function( name = "fmodl", additional_deps = [ ":__support_fputil_generic_fmod", ], ) libc_math_function( name = "fmodf128", additional_deps = [ ":__support_fputil_generic_fmod", ], ) libc_math_function( name = "fmodf16", additional_deps = [ ":__support_fputil_generic_fmod", ], ) libc_math_function( name = "fmul", additional_deps = [ ":__support_fputil_double_double", ], ) libc_math_function(name = "fmull") libc_math_function(name = "fmulf128") libc_math_function(name = "frexp") libc_math_function( name = "frexpf", additional_deps = [ ":__support_math_frexpf", ], ) libc_math_function(name = "frexpl") libc_math_function( name = "frexpf128", additional_deps = [ ":__support_math_frexpf128", ], ) libc_math_function( name = "frexpf16", additional_deps = [ ":__support_math_frexpf16", ], ) libc_math_function(name = "fromfp") libc_math_function(name = "fromfpf") libc_math_function(name = "fromfpl") libc_math_function(name = "fromfpf128") libc_math_function(name = "fromfpf16") libc_math_function(name = "fromfpx") libc_math_function(name = "fromfpxf") libc_math_function(name = "fromfpxl") libc_math_function(name = "fromfpxf128") libc_math_function(name = "fromfpxf16") libc_math_function( name = "fsqrt", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "fsqrtl", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "fsqrtf128", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function(name = "fsub") libc_math_function(name = "fsubl") libc_math_function(name = "fsubf128") libc_math_function(name = "getpayload") libc_math_function(name = "getpayloadf") libc_math_function(name = "getpayloadl") libc_math_function(name = "getpayloadf128") libc_math_function(name = "getpayloadf16") libc_math_function(name = "hypot") libc_math_function( name = "hypotf", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_sqrt", ], ) libc_math_function( name = "hypotf16", additional_deps = [ ":__support_fputil_multiply_add", ":__support_fputil_sqrt", ], ) libc_math_function(name = "ilogb") libc_math_function(name = "ilogbf") libc_math_function(name = "ilogbl") libc_math_function(name = "ilogbf128") libc_math_function(name = "ilogbf16") libc_math_function(name = "ldexp") libc_math_function( name = "ldexpf", additional_deps = [ ":__support_math_ldexpf", ], ) libc_math_function(name = "ldexpl") libc_math_function( name = "ldexpf128", additional_deps = [ ":__support_math_ldexpf128", ], ) libc_math_function( name = "ldexpf16", additional_deps = [ ":__support_math_ldexpf16", ], ) libc_math_function(name = "llogb") libc_math_function(name = "llogbf") libc_math_function(name = "llogbl") libc_math_function(name = "llogbf128") libc_math_function(name = "llogbf16") libc_math_function(name = "llrint") libc_math_function(name = "llrintf") libc_math_function(name = "llrintl") libc_math_function(name = "llrintf128") libc_math_function(name = "llrintf16") libc_math_function(name = "llround") libc_math_function(name = "llroundf") libc_math_function(name = "llroundl") libc_math_function(name = "llroundf128") libc_math_function(name = "llroundf16") libc_math_function( name = "log", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_integer_literals", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_common_constants", ":log_range_reduction", ], ) 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", ":__support_math_common_constants", ], ) libc_math_function( name = "logf16", additional_deps = [ ":__support_math_expxf16_utils", ], ) libc_math_function( name = "log10", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_integer_literals", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_common_constants", ":log_range_reduction", ], ) 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", ":__support_math_common_constants", ], ) libc_math_function( name = "log10f16", additional_deps = [ ":__support_math_expxf16_utils", ], ) libc_math_function( name = "log1p", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_integer_literals", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_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", ":__support_math_common_constants", ], ) libc_math_function( name = "log2", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_integer_literals", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_math_common_constants", ":log_range_reduction", ], ) libc_math_function( name = "log2f", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_macros_optimization", ":__support_math_common_constants", ], ) libc_math_function( name = "log2f16", additional_deps = [ ":__support_math_expxf16_utils", ], ) libc_math_function(name = "logb") libc_math_function(name = "logbf") libc_math_function(name = "logbl") libc_math_function(name = "logbf128") libc_math_function(name = "logbf16") libc_math_function(name = "lrint") libc_math_function(name = "lrintf") libc_math_function(name = "lrintl") libc_math_function(name = "lrintf128") libc_math_function(name = "lrintf16") libc_math_function(name = "lround") libc_math_function(name = "lroundf") libc_math_function(name = "lroundl") libc_math_function(name = "lroundf128") libc_math_function(name = "lroundf16") libc_math_function(name = "modf") libc_math_function(name = "modff") libc_math_function(name = "modfl") libc_math_function(name = "modff128") libc_math_function(name = "modff16") 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 = "nanf128", additional_deps = [ ":__support_str_to_float", ":errno", ], ) libc_math_function( name = "nanf16", 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 = "nearbyintf128") libc_math_function(name = "nearbyintf16") libc_math_function(name = "nextafter") libc_math_function(name = "nextafterf") libc_math_function(name = "nextafterl") libc_math_function(name = "nextafterf128") libc_math_function(name = "nextafterf16") libc_math_function(name = "nextdown") libc_math_function(name = "nextdownf") libc_math_function(name = "nextdownl") libc_math_function(name = "nextdownf128") libc_math_function(name = "nextdownf16") libc_math_function(name = "nexttoward") libc_math_function(name = "nexttowardf") libc_math_function(name = "nexttowardf16") libc_math_function(name = "nexttowardl") libc_math_function(name = "nextup") libc_math_function(name = "nextupf") libc_math_function(name = "nextupl") libc_math_function(name = "nextupf128") libc_math_function(name = "nextupf16") libc_math_function( name = "pow", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_math_common_constants", ], ) libc_math_function( name = "powf", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_fputil_triple_double", ":__support_macros_optimization", ":__support_math_exp10f", ":__support_math_common_constants", ":__support_math_exp2f", ], ) libc_math_function(name = "remainder") libc_math_function(name = "remainderf") libc_math_function(name = "remainderl") libc_math_function(name = "remainderf128") libc_math_function(name = "remainderf16") libc_math_function(name = "remquo") libc_math_function(name = "remquof") libc_math_function(name = "remquol") libc_math_function(name = "remquof128") libc_math_function(name = "remquof16") libc_math_function(name = "rint") libc_math_function(name = "rintf") libc_math_function(name = "rintl") libc_math_function(name = "rintf128") libc_math_function(name = "rintf16") libc_math_function(name = "round") libc_math_function(name = "roundf") libc_math_function(name = "roundl") libc_math_function(name = "roundf128") libc_math_function(name = "roundf16") libc_math_function(name = "roundeven") libc_math_function(name = "roundevenf") libc_math_function(name = "roundevenl") libc_math_function(name = "roundevenf128") libc_math_function(name = "roundevenf16") libc_math_function( name = "rsqrtf", additional_deps = [ ":__support_math_rsqrtf", ], ) libc_math_function( name = "rsqrtf16", additional_deps = [ ":__support_math_rsqrtf16", ], ) libc_math_function(name = "scalbln") libc_math_function(name = "scalblnf") libc_math_function(name = "scalblnl") libc_math_function(name = "scalblnf128") libc_math_function(name = "scalblnf16") libc_math_function(name = "scalbn") libc_math_function(name = "scalbnf") libc_math_function(name = "scalbnl") libc_math_function(name = "scalbnf128") libc_math_function(name = "scalbnf16") libc_math_function(name = "setpayload") libc_math_function(name = "setpayloadf") libc_math_function(name = "setpayloadl") libc_math_function(name = "setpayloadf128") libc_math_function(name = "setpayloadf16") libc_math_function(name = "setpayloadsig") libc_math_function(name = "setpayloadsigf") libc_math_function(name = "setpayloadsigl") libc_math_function(name = "setpayloadsigf128") libc_math_function(name = "setpayloadsigf16") libc_math_function( name = "sin", additional_deps = [ ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_range_reduction_double", ":__support_sincos_eval", ], ) libc_math_function( name = "sinf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_range_reduction", ":__support_sincosf_utils", ], ) libc_math_function( name = "sinf16", additional_deps = [ ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_math_sincosf16_utils", ], ) libc_math_function( name = "sincos", additional_deps = [ ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_range_reduction_double", ":__support_sincos_eval", ], ) 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", ":__support_sincosf_utils", ], ) 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", ":__support_math_sinhfcoshf_utils", ":__support_math_common_constants", ], ) libc_math_function( name = "sinhf16", additional_deps = [ ":__support_math_expxf16_utils", ], ) libc_math_function( name = "sinpif", additional_deps = [ ":__support_sincosf_utils", ], ) libc_math_function( name = "sinpif16", additional_deps = [ ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_math_sincosf16_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 = "sqrtf128", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "sqrtf16", additional_deps = [ ":__support_fputil_sqrt", ], ) libc_math_function( name = "tan", additional_deps = [ ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":__support_range_reduction_double", ":__support_sincos_eval", ], ) 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", ":__support_range_reduction", ":__support_sincosf_utils", ], ) libc_math_function( name = "tanf16", additional_deps = [ ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_math_sincosf16_utils", ], ) 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", ":__support_math_exp10f_utils", ":__support_math_common_constants", ], ) libc_math_function( name = "tanhf16", additional_deps = [ ":__support_math_expxf16_utils", ], ) libc_math_function( name = "tanpif", additional_deps = [ ":__support_sincosf_utils", ":hdr_fenv_macros", ":__support_macros_config", ":__support_macros_optimization", ":__support_fputil_multiply_add", ], ) libc_math_function( name = "tanpif16", additional_deps = [ ":__support_math_sincosf16_utils", ":hdr_errno_macros", ":hdr_fenv_macros", ":__support_fputil_cast", ":__support_fputil_multiply_add", ], ) libc_math_function(name = "totalorder") libc_math_function(name = "totalorderf") libc_math_function(name = "totalorderl") libc_math_function(name = "totalorderf128") libc_math_function(name = "totalorderf16") libc_math_function(name = "totalordermag") libc_math_function(name = "totalordermagf") libc_math_function(name = "totalordermagl") libc_math_function(name = "totalordermagf128") libc_math_function(name = "totalordermagf16") libc_math_function(name = "trunc") libc_math_function(name = "truncf") libc_math_function(name = "truncl") libc_math_function(name = "truncf128") libc_math_function(name = "truncf16") libc_math_function(name = "ufromfp") libc_math_function(name = "ufromfpf") libc_math_function(name = "ufromfpl") libc_math_function(name = "ufromfpf128") libc_math_function(name = "ufromfpf16") libc_math_function(name = "ufromfpx") libc_math_function(name = "ufromfpxf") libc_math_function(name = "ufromfpxl") libc_math_function(name = "ufromfpxf128") libc_math_function(name = "ufromfpxf16") ############################## inttypes targets ############################## libc_function( name = "strtoimax", srcs = ["src/inttypes/strtoimax.cpp"], hdrs = ["src/inttypes/strtoimax.h"], deps = [ ":__support_common", ":__support_str_to_integer", ":errno", ], ) libc_function( name = "strtoumax", srcs = ["src/inttypes/strtoumax.cpp"], hdrs = ["src/inttypes/strtoumax.h"], deps = [ ":__support_common", ":__support_str_to_integer", ":errno", ], ) 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", ], ) ############################### stdbit targets ############################### bit_suffix_list = [ "uc", "us", "ui", "ul", "ull", ] bit_prefix_list = [ "stdc_leading_zeros_", "stdc_leading_ones_", "stdc_trailing_zeros_", "stdc_trailing_ones_", "stdc_count_ones_", "stdc_has_single_bit_", "stdc_bit_width_", "stdc_bit_floor_", "stdc_bit_ceil_", ] bit_prefix_needs_math_list = [ "stdc_first_leading_zero_", "stdc_first_leading_one_", "stdc_first_trailing_zero_", "stdc_first_trailing_one_", "stdc_count_zeros_", ] [ libc_function( name = bit_prefix + bit_suffix, srcs = ["src/stdbit/" + bit_prefix + bit_suffix + ".cpp"], hdrs = ["src/stdbit/" + bit_prefix + bit_suffix + ".h"], deps = [ ":__support_common", ":__support_cpp_bit", ], ) for bit_prefix in bit_prefix_list for bit_suffix in bit_suffix_list ] [ libc_function( name = bit_prefix + bit_suffix, srcs = ["src/stdbit/" + bit_prefix + bit_suffix + ".cpp"], hdrs = ["src/stdbit/" + bit_prefix + bit_suffix + ".h"], deps = [ ":__support_common", ":__support_math_extras", ], ) for bit_prefix in bit_prefix_needs_math_list for bit_suffix in bit_suffix_list ] ############################### 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", ":types_div_t", ], ) libc_function( name = "ldiv", srcs = ["src/stdlib/ldiv.cpp"], hdrs = ["src/stdlib/ldiv.h"], deps = [ ":__support_common", ":__support_integer_operations", ":types_ldiv_t", ], ) libc_function( name = "lldiv", srcs = ["src/stdlib/lldiv.cpp"], hdrs = ["src/stdlib/lldiv.h"], deps = [ ":__support_common", ":__support_integer_operations", ":types_lldiv_t", ], ) 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/heap_sort.h", "src/stdlib/qsort_data.h", "src/stdlib/qsort_pivot.h", "src/stdlib/qsort_util.h", "src/stdlib/quick_sort.h", ], deps = [ ":__support_common", ":__support_cpp_bit", ":__support_cpp_cstddef", ":__support_macros_attributes", ":string_memory_utils", ], ) libc_function( name = "qsort", srcs = ["src/stdlib/qsort.cpp"], hdrs = ["src/stdlib/qsort.h"], deps = [ ":__support_common", ":qsort_util", ":types_size_t", ], ) libc_function( name = "qsort_r", srcs = ["src/stdlib/qsort_r.cpp"], hdrs = ["src/stdlib/qsort_r.h"], deps = [ ":__support_common", ":qsort_util", ":types_size_t", ], ) libc_support_library( name = "rand_util", srcs = ["src/stdlib/rand_util.cpp"], hdrs = ["src/stdlib/rand_util.h"], deps = [ ":__support_cpp_atomic", ":__support_macros_attributes", ":__support_macros_config", ], ) libc_function( name = "rand", srcs = ["src/stdlib/rand.cpp"], hdrs = ["src/stdlib/rand.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_threads_sleep", ":hdr_stdlib_macros", ":rand_util", ], ) libc_function( name = "srand", srcs = ["src/stdlib/srand.cpp"], hdrs = ["src/stdlib/srand.h"], deps = [ ":__support_common", ":__support_macros_config", ":rand_util", ], ) libc_support_library( name = "str_from_util", hdrs = ["src/stdlib/str_from_util.h"], deps = [ ":__support_common", ":__support_cpp_type_traits", ":__support_str_to_integer", ":printf_converter", ":printf_core_structs", ":printf_writer", ], ) libc_function( name = "strfromf", srcs = ["src/stdlib/strfromf.cpp"], hdrs = ["src/stdlib/strfromf.h"], deps = [ ":__support_common", ":printf_error_mapper", ":str_from_util", ], ) libc_function( name = "strfromd", srcs = ["src/stdlib/strfromd.cpp"], hdrs = ["src/stdlib/strfromd.h"], deps = [ ":__support_common", ":printf_error_mapper", ":str_from_util", ], ) libc_function( name = "strfroml", srcs = ["src/stdlib/strfroml.cpp"], hdrs = ["src/stdlib/strfroml.h"], deps = [ ":__support_common", ":printf_error_mapper", ":str_from_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 ############################### 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", ], 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/aarch64/inline_strlen.h", "src/string/memory_utils/arm/common.h", "src/string/memory_utils/arm/inline_memcpy.h", "src/string/memory_utils/arm/inline_memset.h", "src/string/memory_utils/generic/aligned_access.h", "src/string/memory_utils/generic/byte_per_byte.h", "src/string/memory_utils/generic/inline_strlen.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", "src/string/memory_utils/x86_64/inline_strlen.h", ], deps = [ ":__support_common", ":__support_cpp_array", ":__support_cpp_bit", ":__support_cpp_cstddef", ":__support_cpp_simd", ":__support_cpp_type_traits", ":__support_macros_attributes", ":__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_cpp_type_traits", ":__support_macros_attributes", ":__support_macros_optimization", ":hdr_limits_macros", ":llvm_libc_types_size_t", ":string_memory_utils", ":types_size_t", ], ) libc_function( name = "index", srcs = ["src/strings/index.cpp"], hdrs = ["src/strings/index.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "rindex", srcs = ["src/strings/rindex.cpp"], hdrs = ["src/strings/rindex.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_utils", ], ) libc_function( name = "memchr", srcs = ["src/string/memchr.cpp"], hdrs = ["src/string/memchr.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_utils", ], ) libc_function( name = "memcpy", srcs = ["src/string/memcpy.cpp"], hdrs = ["src/string/memcpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "memccpy", srcs = ["src/string/memccpy.cpp"], hdrs = ["src/string/memccpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ], ) libc_function( name = "memset", srcs = ["src/string/memset.cpp"], hdrs = ["src/string/memset.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "memset_explicit", srcs = ["src/string/memset_explicit.cpp"], hdrs = ["src/string/memset_explicit.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "memmove", srcs = ["src/string/memmove.cpp"], hdrs = ["src/string/memmove.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "memmem", srcs = ["src/string/memmem.cpp"], hdrs = ["src/string/memmem.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "mempcpy", srcs = ["src/string/mempcpy.cpp"], hdrs = ["src/string/mempcpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "bcopy", srcs = ["src/strings/bcopy.cpp"], hdrs = ["src/strings/bcopy.h"], deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "memcmp", srcs = ["src/string/memcmp.cpp"], hdrs = ["src/string/memcmp.h"], deps = [ ":__support_common", ":__support_integer_operations", ":__support_macros_null_check", ":string_memory_utils", ], ) libc_function( name = "bcmp", srcs = ["src/strings/bcmp.cpp"], hdrs = ["src/strings/bcmp.h"], deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "bzero", srcs = ["src/strings/bzero.cpp"], hdrs = ["src/strings/bzero.h"], deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "memrchr", srcs = ["src/string/memrchr.cpp"], hdrs = ["src/string/memrchr.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_utils", ], ) libc_function( name = "stpcpy", srcs = ["src/string/stpcpy.cpp"], hdrs = ["src/string/stpcpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "stpncpy", srcs = ["src/string/stpncpy.cpp"], hdrs = ["src/string/stpncpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strlen", srcs = ["src/string/strlen.cpp"], hdrs = ["src/string/strlen.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_utils", ], ) libc_function( name = "strcpy", srcs = ["src/string/strcpy.cpp"], hdrs = ["src/string/strcpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strlcpy", srcs = ["src/string/strlcpy.cpp"], hdrs = ["src/string/strlcpy.h"], deps = [ ":__support_common", ":llvm_libc_types_size_t", ":string_utils", ], ) libc_function( name = "strncpy", srcs = ["src/string/strncpy.cpp"], hdrs = ["src/string/strncpy.h"], deps = [ ":__support_common", ":__support_macros_null_check", ], ) 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 = "strncmp", srcs = ["src/string/strncmp.cpp"], hdrs = ["src/string/strncmp.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strcasecmp", srcs = ["src/strings/strcasecmp.cpp"], hdrs = ["src/strings/strcasecmp.h"], deps = [ ":__support_common", ":__support_ctype_utils", ":string_memory_utils", ], ) libc_function( name = "strncasecmp", srcs = ["src/strings/strncasecmp.cpp"], hdrs = ["src/strings/strncasecmp.h"], deps = [ ":__support_common", ":__support_ctype_utils", ":string_memory_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 = "strchrnul", srcs = ["src/string/strchrnul.cpp"], hdrs = ["src/string/strchrnul.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strsep", srcs = ["src/string/strsep.cpp"], hdrs = ["src/string/strsep.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":hdr_signal_macros", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strstr", srcs = ["src/string/strstr.cpp"], hdrs = ["src/string/strstr.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strcasestr", srcs = ["src/string/strcasestr.cpp"], hdrs = ["src/string/strcasestr.h"], deps = [ ":__support_common", ":__support_ctype_utils", ":__support_macros_null_check", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strcat", srcs = ["src/string/strcat.cpp"], hdrs = ["src/string/strcat.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":string_utils", ], ) libc_function( name = "strlcat", srcs = ["src/string/strlcat.cpp"], hdrs = ["src/string/strlcat.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strncat", srcs = ["src/string/strncat.cpp"], hdrs = ["src/string/strncat.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":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", ":__support_macros_null_check", ":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", ], ) libc_function( name = "strtok_r", srcs = ["src/string/strtok_r.cpp"], hdrs = ["src/string/strtok_r.h"], deps = [ ":__support_common", ":string_utils", ], ) ################################ fcntl targets ################################# libc_function( name = "open", srcs = ["src/fcntl/linux/open.cpp"], hdrs = ["src/fcntl/open.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_fcntl", ":errno", ":hdr_fcntl_macros", ":types_mode_t", ], ) libc_function( name = "fcntl", srcs = ["src/fcntl/linux/fcntl.cpp"], hdrs = ["src/fcntl/fcntl.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_fcntl", ":errno", ], ) libc_function( name = "openat", srcs = ["src/fcntl/linux/openat.cpp"], hdrs = ["src/fcntl/openat.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":types_mode_t", ], ) libc_function( name = "creat", srcs = ["src/fcntl/linux/creat.cpp"], hdrs = ["src/fcntl/creat.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ], ) ################################ unistd targets ################################ libc_function( name = "access", srcs = ["src/unistd/linux/access.cpp"], hdrs = ["src/unistd/access.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ], ) 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_fcntl", ":errno", ], ) libc_function( name = "dup", srcs = ["src/unistd/linux/dup.cpp"], hdrs = ["src/unistd/dup.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ], ) libc_function( name = "dup2", srcs = ["src/unistd/linux/dup2.cpp"], hdrs = ["src/unistd/dup2.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ], ) libc_function( name = "dup3", srcs = ["src/unistd/linux/dup3.cpp"], hdrs = ["src/unistd/dup3.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ], ) libc_function( name = "environ", srcs = ["src/unistd/environ.cpp"], hdrs = ["src/unistd/environ.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", ":hdr_unistd_macros", ":types_off_t", ], ) # libc_function( # name = "getcwd", # srcs = ["src/unistd/linux/getcwd.cpp"], # hdrs = ["src/unistd/getcwd.h"], # deps = [ # ":__support_common", # ":__support_osutil_syscall", # ":errno", # ":hdr_unistd_macros", # ":types_size_t", # ], # ) libc_function( name = "geteuid", srcs = ["src/unistd/linux/geteuid.cpp"], hdrs = ["src/unistd/geteuid.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_size_t", ":types_uid_t", ], ) libc_function( name = "getppid", srcs = ["src/unistd/linux/getppid.cpp"], hdrs = ["src/unistd/getppid.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_pid_t", ], ) libc_function( name = "getuid", srcs = ["src/unistd/linux/getuid.cpp"], hdrs = ["src/unistd/getuid.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_uid_t", ], ) # libc_function( # name = "getopt", # srcs = ["src/unistd/getopt.cpp"], # hdrs = ["src/unistd/getopt.h"], # deps = [ # ":__support_common", # ":__support_cpp_optional", # ":__support_cpp_string_view", # ":__support_file_file", # ":__support_osutil_syscall", # ":errno", # ":hdr_unistd_macros", # ], # ) libc_function( name = "isatty", srcs = ["src/unistd/linux/isatty.cpp"], hdrs = ["src/unistd/isatty.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ], ) libc_function( name = "link", srcs = ["src/unistd/linux/link.cpp"], hdrs = ["src/unistd/link.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ], ) libc_function( name = "linkat", srcs = ["src/unistd/linux/linkat.cpp"], hdrs = ["src/unistd/linkat.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ], ) libc_function( name = "pipe", srcs = ["src/unistd/linux/pipe.cpp"], hdrs = ["src/unistd/pipe.h"], deps = [ ":__support_common", ":__support_macros_sanitizer", ":__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", ":hdr_unistd_macros", ":types_off_t", ], ) libc_function( name = "pread", srcs = ["src/unistd/linux/pread.cpp"], hdrs = ["src/unistd/pread.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_macros_sanitizer", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_off_t", ":types_size_t", ":types_ssize_t", ], ) libc_function( name = "pwrite", srcs = ["src/unistd/linux/pwrite.cpp"], hdrs = ["src/unistd/pwrite.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_off_t", ":types_size_t", ":types_ssize_t", ], ) libc_function( name = "read", srcs = ["src/unistd/linux/read.cpp"], hdrs = ["src/unistd/read.h"], deps = [ ":__support_common", ":__support_macros_sanitizer", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_size_t", ":types_ssize_t", ], ) libc_function( name = "readlink", srcs = ["src/unistd/linux/readlink.cpp"], hdrs = ["src/unistd/readlink.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ":types_size_t", ":types_ssize_t", ], ) libc_function( name = "readlinkat", srcs = ["src/unistd/linux/readlinkat.cpp"], hdrs = ["src/unistd/readlinkat.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ":types_size_t", ":types_ssize_t", ], ) libc_function( name = "rmdir", srcs = ["src/unistd/linux/rmdir.cpp"], hdrs = ["src/unistd/rmdir.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ], ) libc_function( name = "symlink", srcs = ["src/unistd/linux/symlink.cpp"], hdrs = ["src/unistd/symlink.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ], ) libc_function( name = "symlinkat", srcs = ["src/unistd/linux/symlinkat.cpp"], hdrs = ["src/unistd/symlinkat.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_unistd_macros", ], ) #TODO: Enable once fullbuild is added to bazel, since this depends on a macro # definition in the public header # libc_function( # name = "syscall", # srcs = ["src/unistd/linux/syscall.cpp"], # hdrs = ["src/unistd/syscall.h"], # deps = [ # ":__support_common", # ":__support_osutil_syscall", # ":errno", # ":hdr_unistd_macros", # ], # ) libc_function( name = "swab", srcs = ["src/unistd/swab.cpp"], hdrs = ["src/unistd/swab.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_ssize_t", ], ) libc_function( name = "truncate", srcs = ["src/unistd/linux/truncate.cpp"], hdrs = ["src/unistd/truncate.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_off_t", ], ) libc_function( name = "unlink", srcs = ["src/unistd/linux/unlink.cpp"], hdrs = ["src/unistd/unlink.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ], ) libc_function( name = "unlinkat", srcs = ["src/unistd/linux/unlinkat.cpp"], hdrs = ["src/unistd/unlinkat.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ], ) # WARNING: NOT FULLY IMPLEMENTED, FOR TESTING USE ONLY libc_function( name = "sysconf", srcs = ["src/unistd/linux/sysconf.cpp"], hdrs = ["src/unistd/sysconf.h"], deps = [ ":__support_common", ":__support_osutil_linux_auxv", ":errno", ":hdr_unistd_macros", ], ) libc_function( name = "write", srcs = ["src/unistd/linux/write.cpp"], hdrs = ["src/unistd/write.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_unistd_macros", ":types_size_t", ":types_ssize_t", ], ) ################################ stdio targets ################################# libc_support_library( name = "printf_config", hdrs = ["src/stdio/printf_core/printf_config.h"], deps = [ ], ) libc_support_library( name = "printf_core_structs", hdrs = ["src/stdio/printf_core/core_structs.h"], deps = [ ":__support_cpp_string_view", ":__support_fputil_fp_bits", ":printf_config", ], ) libc_support_library( name = "printf_parser", hdrs = ["src/stdio/printf_core/parser.h"], deps = [ ":__support_arg_list", ":__support_common", ":__support_cpp_algorithm", ":__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", ":errno", ":printf_config", ":printf_core_structs", ], ) libc_support_library( name = "printf_writer", hdrs = ["src/stdio/printf_core/writer.h"], deps = [ ":__support_cpp_string_view", ":__support_macros_optimization", ":printf_core_structs", ":string_memory_utils", ], ) libc_support_library( name = "printf_converter", 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/strerror_converter.h", "src/stdio/printf_core/string_converter.h", "src/stdio/printf_core/write_int_converter.h", ], deps = [ ":__support_big_int", ":__support_common", ":__support_cpp_limits", ":__support_cpp_span", ":__support_cpp_string_view", ":__support_ctype_utils", ":__support_float_to_string", ":__support_fputil_fenv_impl", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_integer_to_string", ":__support_libc_assert", ":__support_stringutil", ":__support_uint128", ":printf_config", ":printf_core_structs", ":printf_writer", ], ) libc_support_library( name = "printf_error_mapper", hdrs = [ "src/stdio/printf_core/error_mapper.h", ] + select({ "@platforms//os:linux": [ "src/stdio/printf_core/linux/error_mapper.h", ], "//conditions:default": [ "src/stdio/printf_core/generic/error_mapper.h", ], }), deps = [ ":__support_cpp_type_traits", ":__support_error_or", ":__support_macros_properties_architectures", ":hdr_errno_macros", ":printf_core_structs", ], ) libc_support_library( name = "printf_main", hdrs = ["src/stdio/printf_core/printf_main.h"], deps = [ ":__support_arg_list", ":printf_converter", ":printf_core_structs", ":printf_error_mapper", ":printf_parser", ":printf_writer", ], ) libc_support_library( name = "vfprintf_internal", hdrs = ["src/stdio/printf_core/vfprintf_internal.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":__support_macros_attributes", ":printf_main", ":printf_writer", ":types_FILE", ], ) libc_support_library( name = "vasprintf_internal", hdrs = ["src/stdio/printf_core/vasprintf_internal.h"], deps = [ ":__support_arg_list", ":__support_macros_attributes", ":func_free", ":func_malloc", ":func_realloc", ":printf_main", ":printf_writer", ":types_FILE", ], ) libc_function( name = "asprintf", srcs = ["src/stdio/asprintf.cpp"], hdrs = ["src/stdio/asprintf.h"], deps = [ ":__support_arg_list", ":vasprintf_internal", ], ) libc_function( name = "sprintf", srcs = ["src/stdio/sprintf.cpp"], hdrs = ["src/stdio/sprintf.h"], 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"], deps = [ ":__support_arg_list", ":errno", ":printf_main", ":printf_writer", ], ) libc_function( name = "printf", srcs = ["src/stdio/generic/printf.cpp"], hdrs = ["src/stdio/printf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":errno", ":types_FILE", ":vfprintf_internal", ], ) libc_function( name = "fprintf", srcs = ["src/stdio/generic/fprintf.cpp"], hdrs = ["src/stdio/fprintf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":errno", ":types_FILE", ":vfprintf_internal", ], ) libc_function( name = "vasprintf", srcs = ["src/stdio/vasprintf.cpp"], hdrs = ["src/stdio/vasprintf.h"], deps = [ ":__support_arg_list", ":vasprintf_internal", ], ) libc_function( name = "vsprintf", srcs = ["src/stdio/vsprintf.cpp"], hdrs = ["src/stdio/vsprintf.h"], 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"], deps = [ ":__support_arg_list", ":errno", ":printf_main", ":printf_writer", ], ) libc_function( name = "vprintf", srcs = ["src/stdio/generic/vprintf.cpp"], hdrs = ["src/stdio/vprintf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":errno", ":types_FILE", ":vfprintf_internal", ], ) libc_function( name = "vfprintf", srcs = ["src/stdio/generic/vfprintf.cpp"], hdrs = ["src/stdio/vfprintf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":errno", ":types_FILE", ":vfprintf_internal", ], ) libc_support_library( name = "scanf_config", hdrs = ["src/stdio/scanf_core/scanf_config.h"], ) libc_support_library( name = "scanf_core_structs", hdrs = ["src/stdio/scanf_core/core_structs.h"], deps = [ ":__support_cpp_bitset", ":__support_cpp_string_view", ":__support_fputil_fp_bits", ":scanf_config", ], ) libc_support_library( name = "scanf_parser", hdrs = ["src/stdio/scanf_core/parser.h"], deps = [ ":__support_arg_list", ":__support_cpp_bitset", ":__support_ctype_utils", ":__support_str_to_integer", ":scanf_config", ":scanf_core_structs", ], ) libc_support_library( name = "scanf_reader", hdrs = ["src/stdio/scanf_core/reader.h"], deps = [ ":__support_cpp_string_view", ":__support_macros_attributes", ":types_FILE", ], ) libc_support_library( name = "scanf_string_reader", hdrs = ["src/stdio/scanf_core/string_reader.h"], deps = [ ":__support_macros_attributes", ":scanf_reader", ], ) libc_support_library( name = "scanf_converter", srcs = [ "src/stdio/scanf_core/converter_utils.h", "src/stdio/scanf_core/current_pos_converter.h", "src/stdio/scanf_core/float_converter.h", "src/stdio/scanf_core/int_converter.h", "src/stdio/scanf_core/ptr_converter.h", "src/stdio/scanf_core/string_converter.h", ], hdrs = [ "src/stdio/scanf_core/converter.h", ], deps = [ ":__support_char_vector", ":__support_cpp_bitset", ":__support_cpp_limits", ":__support_cpp_string_view", ":__support_ctype_utils", ":__support_str_to_float", ":scanf_core_structs", ":scanf_reader", ], ) libc_support_library( name = "scanf_main", hdrs = ["src/stdio/scanf_core/scanf_main.h"], deps = [ ":__support_arg_list", ":scanf_config", ":scanf_converter", ":scanf_core_structs", ":scanf_parser", ":scanf_reader", ], ) libc_support_library( name = "vfscanf_internal", hdrs = ["src/stdio/scanf_core/vfscanf_internal.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":__support_macros_attributes", ":scanf_main", ":scanf_reader", ":types_FILE", ], ) libc_function( name = "scanf", srcs = ["src/stdio/generic/scanf.cpp"], hdrs = ["src/stdio/scanf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":types_FILE", ":vfscanf_internal", ], ) libc_function( name = "vscanf", srcs = ["src/stdio/generic/vscanf.cpp"], hdrs = ["src/stdio/vscanf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":types_FILE", ":vfscanf_internal", ], ) libc_function( name = "fscanf", srcs = ["src/stdio/generic/fscanf.cpp"], hdrs = ["src/stdio/fscanf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":types_FILE", ":vfscanf_internal", ], ) libc_function( name = "vfscanf", srcs = ["src/stdio/generic/vfscanf.cpp"], hdrs = ["src/stdio/vfscanf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":types_FILE", ":vfscanf_internal", ], ) libc_function( name = "sscanf", srcs = ["src/stdio/sscanf.cpp"], hdrs = ["src/stdio/sscanf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":scanf_main", ":scanf_string_reader", ":types_FILE", ], ) libc_function( name = "vsscanf", srcs = ["src/stdio/vsscanf.cpp"], hdrs = ["src/stdio/vsscanf.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":scanf_main", ":scanf_string_reader", ":types_FILE", ], ) libc_function( name = "remove", srcs = ["src/stdio/linux/remove.cpp"], hdrs = ["src/stdio/remove.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":hdr_stdio_overlay", ":types_FILE", ], ) libc_function( name = "rename", srcs = ["src/stdio/linux/rename.cpp"], hdrs = ["src/stdio/rename.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":llvm_libc_macros_fcntl_macros", ], ) ############################### sys/mman targets ############################### libc_function( name = "madvise", srcs = ["src/sys/mman/linux/madvise.cpp"], hdrs = ["src/sys/mman/madvise.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "mincore", srcs = ["src/sys/mman/linux/mincore.cpp"], hdrs = ["src/sys/mman/mincore.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "mlock", srcs = ["src/sys/mman/linux/mlock.cpp"], hdrs = ["src/sys/mman/mlock.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "mlock2", srcs = ["src/sys/mman/linux/mlock2.cpp"], hdrs = ["src/sys/mman/mlock2.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "mlockall", srcs = ["src/sys/mman/linux/mlockall.cpp"], hdrs = ["src/sys/mman/mlockall.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "mmap", srcs = ["src/sys/mman/linux/mmap.cpp"], hdrs = ["src/sys/mman/mmap.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_support_library( name = "mprotect_common", hdrs = ["src/sys/mman/linux/mprotect_common.h"], deps = [ ":__support_common", ":__support_error_or", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "mprotect", srcs = ["src/sys/mman/linux/mprotect.cpp"], hdrs = ["src/sys/mman/mprotect.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":mprotect_common", ], ) libc_function( name = "mremap", srcs = ["src/sys/mman/linux/mremap.cpp"], hdrs = ["src/sys/mman/mremap.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "msync", srcs = ["src/sys/mman/linux/msync.cpp"], hdrs = ["src/sys/mman/msync.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "munlock", srcs = ["src/sys/mman/linux/munlock.cpp"], hdrs = ["src/sys/mman/munlock.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "munlockall", srcs = ["src/sys/mman/linux/munlockall.cpp"], hdrs = ["src/sys/mman/munlockall.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "munmap", srcs = ["src/sys/mman/linux/munmap.cpp"], hdrs = ["src/sys/mman/munmap.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "pkey_alloc", srcs = ["src/sys/mman/linux/pkey_alloc.cpp"], hdrs = ["src/sys/mman/pkey_alloc.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "pkey_free", srcs = ["src/sys/mman/linux/pkey_free.cpp"], hdrs = ["src/sys/mman/pkey_free.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "pkey_get", srcs = ["src/sys/mman/linux/pkey_get.cpp"], hdrs = ["src/sys/mman/pkey_get.h"], deps = [ ":__support_common", ":__support_error_or", ":__support_osutil_syscall", ":errno", ":pkey_common", ], ) libc_function( name = "pkey_mprotect", srcs = ["src/sys/mman/linux/pkey_mprotect.cpp"], hdrs = ["src/sys/mman/pkey_mprotect.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":mprotect", ":mprotect_common", ":types_size_t", ], ) libc_function( name = "pkey_set", srcs = ["src/sys/mman/linux/pkey_set.cpp"], hdrs = ["src/sys/mman/pkey_set.h"], deps = [ ":__support_common", ":__support_error_or", ":__support_osutil_syscall", ":errno", ":pkey_common", ], ) libc_support_library( name = "pkey_common", hdrs = [ "src/sys/mman/linux/pkey_common.h", ] + selects.with_or({ PLATFORM_CPU_X86_64: ["src/sys/mman/linux/x86_64/pkey_common.h"], "//conditions:default": ["src/sys/mman/linux/generic/pkey_common.h"], }), deps = [ ":__support_common", ":__support_error_or", ":__support_macros_properties_architectures", ":hdr_errno_macros", ":hdr_stdint_proxy", ], ) libc_function( name = "posix_madvise", srcs = ["src/sys/mman/linux/posix_madvise.cpp"], hdrs = ["src/sys/mman/posix_madvise.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "remap_file_pages", srcs = ["src/sys/mman/linux/remap_file_pages.cpp"], hdrs = ["src/sys/mman/remap_file_pages.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_support_library( name = "shm_common", hdrs = ["src/sys/mman/linux/shm_common.h"], deps = [ ":__support_common", ":__support_cpp_array", ":__support_cpp_string_view", ":__support_error_or", ":__support_macros_config", ":errno", ":string_memory_utils", ], ) libc_function( name = "shm_open", srcs = ["src/sys/mman/linux/shm_open.cpp"], hdrs = ["src/sys/mman/shm_open.h"], deps = [ ":__support_common", ":__support_osutil_fcntl", ":errno", ":hdr_fcntl_macros", ":shm_common", ":types_mode_t", ], ) libc_function( name = "shm_unlink", srcs = ["src/sys/mman/linux/shm_unlink.cpp"], hdrs = ["src/sys/mman/shm_unlink.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":shm_common", ":types_mode_t", ], ) ############################# sys/resource targets ############################# libc_function( name = "getrlimit", srcs = ["src/sys/resource/linux/getrlimit.cpp"], hdrs = ["src/sys/resource/getrlimit.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_struct_rlimit", ], ) libc_function( name = "setrlimit", srcs = ["src/sys/resource/linux/setrlimit.cpp"], hdrs = ["src/sys/resource/setrlimit.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_struct_rlimit", ], ) ############################### sys/stat targets ############################### libc_function( name = "mkdir", srcs = ["src/sys/stat/linux/mkdir.cpp"], hdrs = ["src/sys/stat/mkdir.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":hdr_fcntl_macros", ":types_mode_t", ], ) libc_function( name = "mkdirat", srcs = ["src/sys/stat/linux/mkdirat.cpp"], hdrs = ["src/sys/stat/mkdirat.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) ############################## sys/socket targets ############################## libc_function( name = "socket", srcs = ["src/sys/socket/linux/socket.cpp"], hdrs = ["src/sys/socket/socket.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "socketpair", srcs = ["src/sys/socket/linux/socketpair.cpp"], hdrs = ["src/sys/socket/socketpair.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "send", srcs = ["src/sys/socket/linux/send.cpp"], hdrs = ["src/sys/socket/send.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_socklen_t", ":types_ssize_t", ":types_struct_sockaddr", ], ) libc_function( name = "sendto", srcs = ["src/sys/socket/linux/sendto.cpp"], hdrs = ["src/sys/socket/sendto.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_socklen_t", ":types_ssize_t", ":types_struct_sockaddr", ], ) libc_function( name = "sendmsg", srcs = ["src/sys/socket/linux/sendmsg.cpp"], hdrs = ["src/sys/socket/sendmsg.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_ssize_t", ":types_struct_msghdr", ], ) libc_function( name = "recv", srcs = ["src/sys/socket/linux/recv.cpp"], hdrs = ["src/sys/socket/recv.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_socklen_t", ":types_ssize_t", ":types_struct_sockaddr", ], ) libc_function( name = "recvfrom", srcs = ["src/sys/socket/linux/recvfrom.cpp"], hdrs = ["src/sys/socket/recvfrom.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_socklen_t", ":types_ssize_t", ":types_struct_sockaddr", ], ) libc_function( name = "recvmsg", srcs = ["src/sys/socket/linux/recvmsg.cpp"], hdrs = ["src/sys/socket/recvmsg.h"], deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ":types_ssize_t", ":types_struct_msghdr", ], ) ############################## sys/epoll targets ############################### libc_function( name = "epoll_create", srcs = ["src/sys/epoll/linux/epoll_create.cpp"], hdrs = ["src/sys/epoll/epoll_create.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "epoll_create1", srcs = ["src/sys/epoll/linux/epoll_create1.cpp"], hdrs = ["src/sys/epoll/epoll_create1.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "epoll_ctl", srcs = ["src/sys/epoll/linux/epoll_ctl.cpp"], hdrs = ["src/sys/epoll/epoll_ctl.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_osutil_syscall", ":errno", ":hdr_sys_epoll_macros", ":types_struct_epoll_event", ], ) libc_function( name = "epoll_wait", srcs = ["src/sys/epoll/linux/epoll_wait.cpp"], hdrs = ["src/sys/epoll/epoll_wait.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_macros_sanitizer", ":__support_osutil_syscall", ":errno", ":hdr_signal_macros", ":hdr_sys_epoll_macros", ":types_sigset_t", ":types_struct_epoll_event", ], ) libc_function( name = "epoll_pwait", srcs = ["src/sys/epoll/linux/epoll_pwait.cpp"], hdrs = ["src/sys/epoll/epoll_pwait.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_macros_sanitizer", ":__support_osutil_syscall", ":errno", ":hdr_signal_macros", ":hdr_sys_epoll_macros", ":types_sigset_t", ":types_struct_epoll_event", ], ) libc_function( name = "epoll_pwait2", srcs = ["src/sys/epoll/linux/epoll_pwait2.cpp"], hdrs = ["src/sys/epoll/epoll_pwait2.h"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":__support_macros_sanitizer", ":__support_osutil_syscall", ":errno", ":hdr_signal_macros", ":hdr_sys_epoll_macros", ":types_sigset_t", ":types_struct_epoll_event", ":types_struct_timespec", ], ) ############################## wchar targets ############################### libc_support_library( name = "wchar_utils", hdrs = ["src/wchar/wchar_utils.h"], deps = [ ":__support_common", ":__support_macros_attributes", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "btowc", srcs = ["src/wchar/btowc.cpp"], hdrs = ["src/wchar/btowc.h"], deps = [ ":__support_common", ":__support_macros_config", ":hdr_wchar_macros", ":types_wint_t", ], ) libc_function( name = "wcpcpy", srcs = ["src/wchar/wcpcpy.cpp"], hdrs = ["src/wchar/wcpcpy.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcpncpy", srcs = ["src/wchar/wcpncpy.cpp"], hdrs = ["src/wchar/wcpncpy.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcscat", srcs = ["src/wchar/wcscat.cpp"], hdrs = ["src/wchar/wcscat.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcschr", srcs = ["src/wchar/wcschr.cpp"], hdrs = ["src/wchar/wcschr.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":types_wchar_t", ":wchar_utils", ], ) libc_function( name = "wcscmp", srcs = ["src/wchar/wcscmp.cpp"], hdrs = ["src/wchar/wcscmp.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcscpy", srcs = ["src/wchar/wcscpy.cpp"], hdrs = ["src/wchar/wcscpy.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcscspn", srcs = ["src/wchar/wcscspn.cpp"], hdrs = ["src/wchar/wcscspn.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ":wchar_utils", ], ) libc_function( name = "wcslcat", srcs = ["src/wchar/wcslcat.cpp"], hdrs = ["src/wchar/wcslcat.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcslcpy", srcs = ["src/wchar/wcslcpy.cpp"], hdrs = ["src/wchar/wcslcpy.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcslen", srcs = ["src/wchar/wcslen.cpp"], hdrs = ["src/wchar/wcslen.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcsncat", srcs = ["src/wchar/wcsncat.cpp"], hdrs = ["src/wchar/wcsncat.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcsncmp", srcs = ["src/wchar/wcsncmp.cpp"], hdrs = ["src/wchar/wcsncmp.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcsncpy", srcs = ["src/wchar/wcsncpy.cpp"], hdrs = ["src/wchar/wcsncpy.h"], deps = [ ":__support_common", ":__support_macros_config", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wcspbrk", srcs = ["src/wchar/wcspbrk.cpp"], hdrs = ["src/wchar/wcspbrk.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":types_wchar_t", ":wchar_utils", ], ) libc_function( name = "wcsrchr", srcs = ["src/wchar/wcsrchr.cpp"], hdrs = ["src/wchar/wcsrchr.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":types_wchar_t", ], ) libc_function( name = "wcsspn", srcs = ["src/wchar/wcsspn.cpp"], hdrs = ["src/wchar/wcsspn.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ":wchar_utils", ], ) libc_function( name = "wcsstr", srcs = ["src/wchar/wcsstr.cpp"], hdrs = ["src/wchar/wcsstr.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wctob", srcs = ["src/wchar/wctob.cpp"], hdrs = ["src/wchar/wctob.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":hdr_stdio_macros", ":types_wint_t", ], ) libc_function( name = "wmemchr", srcs = ["src/wchar/wmemchr.cpp"], hdrs = ["src/wchar/wmemchr.h"], deps = [ ":__support_common", ":__support_macros_config", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wmemcmp", srcs = ["src/wchar/wmemcmp.cpp"], hdrs = ["src/wchar/wmemcmp.h"], deps = [ ":__support_common", ":__support_macros_config", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wmemcpy", srcs = ["src/wchar/wmemcpy.cpp"], hdrs = ["src/wchar/wmemcpy.h"], deps = [ ":__support_common", ":__support_macros_config", ":string_memory_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wmemmove", srcs = ["src/wchar/wmemmove.cpp"], hdrs = ["src/wchar/wmemmove.h"], deps = [ ":__support_common", ":__support_macros_null_check", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wmempcpy", srcs = ["src/wchar/wmempcpy.cpp"], hdrs = ["src/wchar/wmempcpy.h"], deps = [ ":__support_common", ":string_memory_utils", ":types_size_t", ":types_wchar_t", ], ) libc_function( name = "wmemset", srcs = ["src/wchar/wmemset.cpp"], hdrs = ["src/wchar/wmemset.h"], deps = [ ":__support_common", ":types_size_t", ":types_wchar_t", ], )