xref: /llvm-project/utils/bazel/llvm-project-overlay/libc/libc_configure_options.bzl (revision b1ede8fcb45d91092f5afe6c88d7a548f14ed848)
1# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
2# See https://llvm.org/LICENSE.txt for license information.
3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4
5"""LLVM libc configuration options.
6The canonical list of user options is in 'libc/config/config.json'.
7These options are then processed by CMake and turned into preprocessor
8definitions. We don't have this logic in Bazel yet but the list of definitions
9is discoverable with the following command:
10
11> git grep -hoE '\bLIBC_COPT_\\w*'  -- '*.h' '*.cpp' | sort -u
12"""
13
14# This list of definitions is used to customize LLVM libc.
15LIBC_CONFIGURE_OPTIONS = [
16    # Documentation in libc/docs/dev/printf_behavior.rst
17    # "LIBC_COPT_FLOAT_TO_STR_NO_SPECIALIZE_LD",
18    # "LIBC_COPT_FLOAT_TO_STR_NO_TABLE",
19    # "LIBC_COPT_FLOAT_TO_STR_USE_DYADIC_FLOAT",
20    # "LIBC_COPT_FLOAT_TO_STR_USE_DYADIC_FLOAT_LD",
21    # "LIBC_COPT_FLOAT_TO_STR_USE_INT_CALC",
22    # "LIBC_COPT_FLOAT_TO_STR_USE_MEGA_LONG_DOUBLE_TABLE",
23
24    # Documentation in libc/src/string/memory_utils/...
25    # "LIBC_COPT_MEMCPY_USE_EMBEDDED_TINY",
26    # "LIBC_COPT_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE",
27    "LIBC_COPT_MEMCPY_X86_USE_SOFTWARE_PREFETCHING",
28    "LIBC_COPT_MEMSET_X86_USE_SOFTWARE_PREFETCHING",
29
30    # Documentation in libc/docs/dev/printf_behavior.rst
31    # "LIBC_COPT_PRINTF_CONV_ATLAS",
32    # "LIBC_COPT_PRINTF_DISABLE_FIXED_POINT",
33    # "LIBC_COPT_PRINTF_DISABLE_FLOAT",
34    # "LIBC_COPT_PRINTF_DISABLE_INDEX_MODE",
35    "LIBC_COPT_PRINTF_DISABLE_WRITE_INT",
36    # "LIBC_COPT_PRINTF_HEX_LONG_DOUBLE",
37    # "LIBC_COPT_PRINTF_INDEX_ARR_LEN",
38    # "LIBC_COPT_PRINTF_NO_NULLPTR_CHECKS",
39    # "LIBC_COPT_SCANF_DISABLE_FLOAT",
40    # "LIBC_COPT_SCANF_DISABLE_INDEX_MODE",
41    "LIBC_COPT_STDIO_USE_SYSTEM_FILE",
42    # "LIBC_COPT_STRING_UNSAFE_WIDE_READ",
43    # "LIBC_COPT_STRTOFLOAT_DISABLE_CLINGER_FAST_PATH",
44    # "LIBC_COPT_STRTOFLOAT_DISABLE_EISEL_LEMIRE",
45    # "LIBC_COPT_STRTOFLOAT_DISABLE_SIMPLE_DECIMAL_CONVERSION",
46
47    # Documentation in libc/src/__support/libc_assert.h
48    # "LIBC_COPT_USE_C_ASSERT",
49]
50