# 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_math_function", "libc_support_library", ) load(":platforms.bzl", "PLATFORM_CPU_ARM64", "PLATFORM_CPU_X86_64") package( default_visibility = ["//visibility:public"], features = [ "-use_header_modules", "-layering_check", ], ) licenses(["notice"]) # 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", ) ################################## Base Config ################################# libc_support_library( name = "__support_macros_config", hdrs = ["src/__support/macros/config.h"], ) ################################# Include Files ################################ 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"], target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), 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_float_macros"], ) libc_support_library( name = "llvm_libc_types_cfloat16", hdrs = ["include/llvm-libc-types/cfloat16.h"], ) 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_overlay", hdrs = ["hdr/stdlib_overlay.h"], ) libc_support_library( name = "hdr_unistd_overlay", hdrs = ["hdr/unistd_overlay.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_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_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"], ) ############################### 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", ":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_properties_architectures", ":__support_macros_properties_compiler", ":__support_macros_properties_cpu_features", ":__support_macros_properties_os", ":hdr_float_macros", ":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_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", ":__support_macros_sanitizer", ], ) 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", ], ) 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_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", ], ) libc_support_library( name = "__support_cpp_span", hdrs = ["src/__support/CPP/span.h"], deps = [ ":__support_cpp_array", ":__support_cpp_type_traits", ], ) libc_support_library( name = "__support_cpp_string_view", hdrs = ["src/__support/CPP/string_view.h"], deps = [ ":__support_common", ], ) libc_support_library( name = "__support_cpp_stringstream", hdrs = ["src/__support/CPP/stringstream.h"], deps = [ ":__support_cpp_span", ":__support_cpp_string_view", ":__support_cpp_type_traits", ":__support_integer_to_string", ], ) libc_support_library( name = "__support_cpp_string", hdrs = ["src/__support/CPP/string.h"], deps = [ ":__support_common", ":__support_cpp_string_view", ":__support_integer_to_string", ":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_complex_types", ":__support_macros_properties_types", ":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", ], ) libc_support_library( name = "__support_blockstore", hdrs = ["src/__support/blockstore.h"], deps = [ ":__support_cpp_new", ":__support_libc_assert", ], ) libc_support_library( name = "__support_arg_list", hdrs = ["src/__support/arg_list.h"], deps = [ ":__support_common", ], ) libc_support_library( name = "__support_c_string", hdrs = ["src/__support/c_string.h"], deps = [ ":__support_cpp_string", ], ) libc_support_library( name = "__support_fixedvector", hdrs = ["src/__support/fixedvector.h"], deps = [ ":__support_cpp_array", ":__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"], deps = [ ":__support_integer_to_string", ":__support_macros_attributes", ":__support_osutil_exit", ":__support_osutil_io", ], ) 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", ":errno", ], ) libc_support_library( name = "__support_str_to_float", hdrs = [ "src/__support/detailed_powers_of_ten.h", "src/__support/high_precision_decimal.h", "src/__support/str_to_float.h", ], deps = [ ":__support_common", ":__support_cpp_bit", ":__support_cpp_limits", ":__support_cpp_optional", ":__support_cpp_string_view", ":__support_ctype_utils", ":__support_fputil_fp_bits", ":__support_fputil_rounding_mode", ":__support_macros_null_check", ":__support_str_to_integer", ":__support_str_to_num_result", ":__support_uint128", ":errno", ], ) 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_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", ":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_bit", ":__support_cpp_type_traits", ":__support_macros_attributes", ":__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_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_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_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_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", ], }), deps = [ ":__support_common", ":__support_cpp_bit", ":__support_macros_sanitizer", ], ) 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"], }), deps = [ ":__support_common", ":__support_cpp_string_view", ":__support_osutil_syscall", ":string_utils", ], ) 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", ], ) ########################## externally shared targets ########################### libc_support_library( name = "libc_external_common", hdrs = glob(["shared/*.h"]), deps = [ ":__support_common", ":__support_fputil_fp_bits", ":__support_str_to_float", ":__support_str_to_integer", ], ) ############################### errno targets ################################ libc_function( name = "errno", srcs = ["src/errno/libc_errno.cpp"], hdrs = ["src/errno/libc_errno.h"], deps = [ ":__support_common", ":__support_cpp_atomic", ":__support_macros_attributes", ":__support_macros_properties_architectures", ":hdr_errno_macros", ], ) ################################ 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 = "common_constants", srcs = ["src/math/generic/common_constants.cpp"], hdrs = ["src/math/generic/common_constants.h"], deps = [ ":__support_fputil_triple_double", ":__support_number_pair", ], ) libc_support_library( name = "range_reduction", hdrs = [ "src/math/generic/range_reduction.h", "src/math/generic/range_reduction_fma.h", ], deps = [ ":__support_common", ":__support_fputil_fma", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ], ) libc_support_library( name = "range_reduction_double", hdrs = [ "src/math/generic/range_reduction_double_common.h", "src/math/generic/range_reduction_double_fma.h", "src/math/generic/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 = "sincos_eval", hdrs = [ "src/math/generic/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 = "sincosf_utils", hdrs = ["src/math/generic/sincosf_utils.h"], deps = [ ":__support_fputil_fp_bits", ":__support_fputil_polyeval", ":range_reduction", ], ) libc_support_library( name = "sincosf16_utils", hdrs = ["src/math/generic/sincosf16_utils.h"], deps = [ ":__support_common", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ], ) libc_support_library( name = "explogxf", srcs = ["src/math/generic/explogxf.cpp"], hdrs = ["src/math/generic/explogxf.h"], deps = [ ":__support_common", ":__support_fputil_fenv_impl", ":__support_fputil_fma", ":__support_fputil_fp_bits", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":common_constants", ], ) libc_support_library( name = "inv_trigf_utils", srcs = ["src/math/generic/inv_trigf_utils.cpp"], hdrs = ["src/math/generic/inv_trigf_utils.h"], deps = [ ":__support_common", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ], ) libc_support_library( name = "log_range_reduction", hdrs = ["src/math/generic/log_range_reduction.h"], deps = [ ":__support_common", ":__support_fputil_dyadic_float", ":__support_uint128", ":common_constants", ], ) libc_support_library( name = "exp10f_impl", hdrs = ["src/math/generic/exp10f_impl.h"], deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_support_library( name = "exp2f_impl", hdrs = ["src/math/generic/exp2f_impl.h"], deps = [ ":__support_fputil_except_value_utils", ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_support_library( name = "expxf16", hdrs = ["src/math/generic/expxf16.h"], deps = [ ":__support_cpp_array", ":__support_fputil_cast", ":__support_fputil_fp_bits", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ], ) ############################### 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 = "acosf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":inv_trigf_utils", ], ) libc_math_function( name = "acoshf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "asinf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":inv_trigf_utils", ], ) libc_math_function( name = "asinhf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_sqrt", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "atanf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":inv_trigf_utils", ], ) libc_math_function( name = "atan2f", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_nearest_integer", ":inv_trigf_utils", ], ) libc_math_function( name = "atan2", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_nearest_integer", ":inv_trigf_utils", ], ) libc_math_function( name = "atanhf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function(name = "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 = "cbrt", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_polyeval", ":__support_integer_literals", ], ) libc_math_function( name = "cbrtf", additional_deps = [ ":__support_fputil_polyeval", ], ) 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_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":range_reduction_double", ":sincos_eval", ], ) libc_math_function( name = "cosf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":sincosf_utils", ], ) libc_math_function( name = "coshf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "coshf16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "cospif", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":common_constants", ":explogxf", ":sincosf_utils", ], ) libc_math_function( name = "cospif16", additional_deps = [ ":__support_fputil_multiply_add", ":__support_macros_optimization", ":sincosf16_utils", ], ) 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_fputil_sqrt", ], ) 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_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_macros_optimization", ], ) libc_math_function( name = "exp", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_triple_double", ":__support_integer_literals", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "expf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":common_constants", ], ) libc_math_function( name = "expf16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "exp10", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_triple_double", ":__support_integer_literals", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "exp10f", additional_deps = [ ":exp10f_impl", ], ) libc_math_function( name = "exp10f16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "exp10m1f16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "exp10m1f", additional_deps = [ ":explogxf", ], ) libc_math_function( name = "exp2", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_triple_double", ":__support_integer_literals", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "exp2f", additional_deps = [ ":exp2f_impl", ], ) libc_math_function( name = "exp2f16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "exp2m1f", additional_deps = [ ":__support_fputil_polyeval", ":explogxf", ], ) libc_math_function( name = "exp2m1f16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "expm1", additional_deps = [ ":__support_fputil_double_double", ":__support_fputil_dyadic_float", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_fputil_triple_double", ":__support_integer_literals", ":__support_macros_optimization", ":common_constants", ":explogxf", ], ) libc_math_function( name = "expm1f", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":common_constants", ], ) libc_math_function( name = "expm1f16", additional_deps = [ ":expxf16", ], ) 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") # TODO: Add fma, fmaf, fmal, fmaf128 functions. 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 = "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") libc_math_function(name = "frexpl") libc_math_function(name = "frexpf128") libc_math_function(name = "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 = "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") libc_math_function(name = "ldexpl") libc_math_function(name = "ldexpf128") libc_math_function(name = "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", ":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", ":common_constants", ], ) libc_math_function( name = "logf16", additional_deps = [ ":expxf16", ], ) 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", ":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", ":common_constants", ], ) libc_math_function( name = "log10f16", additional_deps = [ ":expxf16", ], ) 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", ":common_constants", ], ) libc_math_function( name = "log1pf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":common_constants", ], ) libc_math_function( name = "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", ":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", ":common_constants", ], ) libc_math_function( name = "log2f16", additional_deps = [ ":expxf16", ], ) 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", ":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_rounding_mode", ":__support_fputil_sqrt", ":__support_fputil_triple_double", ":__support_macros_optimization", ":common_constants", ":explogxf", ":exp2f_impl", ":exp10f_impl", ], ) 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 = "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", ":range_reduction_double", ":sincos_eval", ], ) libc_math_function( name = "sinf", additional_deps = [ ":__support_fputil_fma", ":__support_fputil_multiply_add", ":__support_fputil_polyeval", ":__support_fputil_rounding_mode", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":range_reduction", ":sincosf_utils", ], ) libc_math_function( name = "sincos", additional_deps = [ ":__support_fputil_multiply_add", ":__support_macros_optimization", ":__support_macros_properties_cpu_features", ":range_reduction_double", ":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", ":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", ":common_constants", ":explogxf", ], ) libc_math_function( name = "sinhf16", additional_deps = [ ":expxf16", ], ) libc_math_function( name = "sinpif", additional_deps = [ ":sincosf_utils", ], ) libc_math_function( name = "sinpif16", additional_deps = [ ":__support_fputil_nearest_integer", ":__support_fputil_polyeval", ":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", ":range_reduction_double", ":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", ":range_reduction", ":sincosf_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", ":common_constants", ":explogxf", ], ) libc_math_function( name = "tanhf16", additional_deps = [ ":expxf16", ], ) 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 = "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", ], ) 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 = "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", ":str_from_util", ], ) libc_function( name = "strfromd", srcs = ["src/stdlib/strfromd.cpp"], hdrs = ["src/stdlib/strfromd.h"], deps = [ ":__support_common", ":str_from_util", ], ) libc_function( name = "strfroml", srcs = ["src/stdlib/strfroml.cpp"], hdrs = ["src/stdlib/strfroml.h"], deps = [ ":__support_common", ":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/generic/aligned_access.h", "src/string/memory_utils/generic/byte_per_byte.h", "src/string/memory_utils/inline_bcmp.h", "src/string/memory_utils/inline_bzero.h", "src/string/memory_utils/inline_memcmp.h", "src/string/memory_utils/inline_memcpy.h", "src/string/memory_utils/inline_memmem.h", "src/string/memory_utils/inline_memmove.h", "src/string/memory_utils/inline_memset.h", "src/string/memory_utils/inline_strcmp.h", "src/string/memory_utils/inline_strstr.h", "src/string/memory_utils/riscv/inline_bcmp.h", "src/string/memory_utils/riscv/inline_memcmp.h", "src/string/memory_utils/riscv/inline_memcpy.h", "src/string/memory_utils/riscv/inline_memmove.h", "src/string/memory_utils/riscv/inline_memset.h", "src/string/memory_utils/x86_64/inline_bcmp.h", "src/string/memory_utils/x86_64/inline_memcmp.h", "src/string/memory_utils/x86_64/inline_memcpy.h", "src/string/memory_utils/x86_64/inline_memmove.h", "src/string/memory_utils/x86_64/inline_memset.h", ], deps = [ ":__support_common", ":__support_cpp_array", ":__support_cpp_bit", ":__support_cpp_cstddef", ":__support_cpp_type_traits", ":__support_macros_attributes", ":__support_macros_optimization", ":__support_macros_properties_architectures", ":__support_macros_properties_cpu_features", ], ) libc_support_library( name = "string_utils", hdrs = ["src/string/string_utils.h"], deps = [ ":__support_common", ":__support_cpp_bitset", ":__support_macros_optimization", ":llvm_libc_types_size_t", ":string_memory_utils", ":types_size_t", ], ) libc_function( name = "memchr", srcs = ["src/string/memchr.cpp"], hdrs = ["src/string/memchr.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "memcpy", srcs = ["src/string/memcpy.cpp"], hdrs = ["src/string/memcpy.h"], weak = True, deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "memset", srcs = ["src/string/memset.cpp"], hdrs = ["src/string/memset.h"], weak = True, deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "memmove", srcs = ["src/string/memmove.cpp"], hdrs = ["src/string/memmove.h"], weak = True, deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "mempcpy", srcs = ["src/string/mempcpy.cpp"], hdrs = ["src/string/mempcpy.h"], weak = True, deps = [ ":__support_common", ":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"], weak = True, deps = [ ":__support_common", ":__support_integer_operations", ":string_memory_utils", ], ) libc_function( name = "bcmp", srcs = ["src/strings/bcmp.cpp"], hdrs = ["src/strings/bcmp.h"], weak = True, deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "bzero", srcs = ["src/strings/bzero.cpp"], hdrs = ["src/strings/bzero.h"], weak = True, deps = [ ":__support_common", ":string_memory_utils", ], ) libc_function( name = "memrchr", srcs = ["src/string/memrchr.cpp"], hdrs = ["src/string/memrchr.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strlen", srcs = ["src/string/strlen.cpp"], hdrs = ["src/string/strlen.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strcpy", srcs = ["src/string/strcpy.cpp"], hdrs = ["src/string/strcpy.h"], deps = [ ":__support_common", ":memcpy", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strncpy", srcs = ["src/string/strncpy.cpp"], hdrs = ["src/string/strncpy.h"], deps = [ ":__support_common", ], ) libc_function( name = "strcmp", srcs = ["src/string/strcmp.cpp"], hdrs = ["src/string/strcmp.h"], deps = [ ":__support_common", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strchr", srcs = ["src/string/strchr.cpp"], hdrs = ["src/string/strchr.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strrchr", srcs = ["src/string/strrchr.cpp"], hdrs = ["src/string/strrchr.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strstr", srcs = ["src/string/strstr.cpp"], hdrs = ["src/string/strstr.h"], deps = [ ":__support_common", ":string_memory_utils", ":string_utils", ], ) libc_function( name = "strnlen", srcs = ["src/string/strnlen.cpp"], hdrs = ["src/string/strnlen.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strcspn", srcs = ["src/string/strcspn.cpp"], hdrs = ["src/string/strcspn.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strspn", srcs = ["src/string/strspn.cpp"], hdrs = ["src/string/strspn.h"], deps = [ ":__support_common", ":__support_cpp_bitset", ":string_utils", ], ) libc_function( name = "strpbrk", srcs = ["src/string/strpbrk.cpp"], hdrs = ["src/string/strpbrk.h"], deps = [ ":__support_common", ":string_utils", ], ) libc_function( name = "strtok", srcs = ["src/string/strtok.cpp"], hdrs = ["src/string/strtok.h"], deps = [ ":__support_common", ":string_utils", ], ) ################################ 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_syscall", ":errno", ":hdr_fcntl_macros", ":types_mode_t", ], ) 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_syscall", ":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"], weak = True, 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", ], ) libc_function( name = "write", srcs = ["src/unistd/linux/write.cpp"], hdrs = ["src/unistd/write.h"], weak = True, 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", srcs = ["src/stdio/printf_core/writer.cpp"], 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", srcs = ["src/stdio/printf_core/converter.cpp"], hdrs = [ "src/stdio/printf_core/char_converter.h", "src/stdio/printf_core/converter.h", "src/stdio/printf_core/converter_atlas.h", "src/stdio/printf_core/converter_utils.h", "src/stdio/printf_core/float_dec_converter.h", "src/stdio/printf_core/float_hex_converter.h", "src/stdio/printf_core/float_inf_nan_converter.h", "src/stdio/printf_core/int_converter.h", "src/stdio/printf_core/ptr_converter.h", "src/stdio/printf_core/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_main", srcs = ["src/stdio/printf_core/printf_main.cpp"], hdrs = ["src/stdio/printf_core/printf_main.h"], deps = [ ":__support_arg_list", ":printf_converter", ":printf_core_structs", ":printf_parser", ":printf_writer", ], ) libc_support_library( name = "vfprintf_internal", hdrs = ["src/stdio/printf_core/vfprintf_internal.h"], deps = [ ":__support_arg_list", ":__support_file_file", ":__support_macros_attributes", ":printf_main", ":printf_writer", ":types_FILE", ], ) 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 = "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_converter", srcs = [ "src/stdio/scanf_core/converter.cpp", "src/stdio/scanf_core/converter_utils.h", "src/stdio/scanf_core/current_pos_converter.h", "src/stdio/scanf_core/float_converter.cpp", "src/stdio/scanf_core/float_converter.h", "src/stdio/scanf_core/int_converter.cpp", "src/stdio/scanf_core/int_converter.h", "src/stdio/scanf_core/ptr_converter.cpp", "src/stdio/scanf_core/ptr_converter.h", "src/stdio/scanf_core/string_converter.cpp", "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", srcs = ["src/stdio/scanf_core/scanf_main.cpp"], 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/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/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/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/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_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_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/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"], weak = True, deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "socketpair", srcs = ["src/sys/socket/linux/socketpair.cpp"], hdrs = ["src/sys/socket/socketpair.h"], weak = True, deps = [ ":__support_common", ":__support_osutil_syscall", ":errno", ], ) libc_function( name = "send", srcs = ["src/sys/socket/linux/send.cpp"], hdrs = ["src/sys/socket/send.h"], weak = True, 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"], weak = True, 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"], weak = True, 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"], weak = True, 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"], weak = True, 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"], weak = True, 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"], }), weak = True, 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"], }), weak = True, 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"], }), weak = True, 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"], }), weak = True, 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"], }), weak = True, 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"], }), weak = True, 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", ], )