56 lines · plain
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-exception4 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 preprocessor8definitions. We don't have this logic in Bazel yet but the list of definitions9is discoverable with the following command:10 11> git grep -hoE '\bLIBC_COPT_\\w*' -- '*.h' '*.cpp' | sort -u12"""13 14# This list of definitions is used to customize LLVM libc.15LIBC_CONFIGURE_OPTIONS = [16 # Documentation in libc/docs/dev/printf_behavior.rst17 # "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.rst31 # "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.h48 # "LIBC_COPT_USE_C_ASSERT",49 50 # Documentation in libc/docs/configure.rst51 "LIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM",52 53 # Documentation in libc/src/__support/libc_errno.h54 "LIBC_ERRNO_MODE=LIBC_ERRNO_MODE_SYSTEM_INLINE",55]56