• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "errno": {
3    "LIBC_CONF_ERRNO_MODE": {
4      "value": "LIBC_ERRNO_MODE_DEFAULT",
5      "doc": "The implementation used for errno, acceptable values are LIBC_ERRNO_MODE_DEFAULT, LIBC_ERRNO_MODE_UNDEFINED, LIBC_ERRNO_MODE_THREAD_LOCAL, LIBC_ERRNO_MODE_SHARED, LIBC_ERRNO_MODE_EXTERNAL, and LIBC_ERRNO_MODE_SYSTEM."
6    }
7  },
8  "printf": {
9    "LIBC_CONF_PRINTF_DISABLE_FLOAT": {
10      "value": false,
11      "doc": "Disable printing floating point values in printf and friends."
12    },
13    "LIBC_CONF_PRINTF_DISABLE_INDEX_MODE": {
14      "value": false,
15      "doc": "Disable index mode in the printf format string."
16    },
17    "LIBC_CONF_PRINTF_DISABLE_WRITE_INT": {
18      "value": false,
19      "doc": "Disable handling of %n in printf format string."
20    },
21    "LIBC_CONF_PRINTF_FLOAT_TO_STR_USE_MEGA_LONG_DOUBLE_TABLE": {
22      "value": false,
23      "doc": "Use large table for better printf long double performance."
24    },
25    "LIBC_CONF_PRINTF_FLOAT_TO_STR_USE_DYADIC_FLOAT": {
26      "value": false,
27      "doc": "Use dyadic float for faster and smaller but less accurate printf doubles."
28    },
29    "LIBC_CONF_PRINTF_FLOAT_TO_STR_NO_SPECIALIZE_LD": {
30      "value": false,
31      "doc": "Use the same mode for double and long double in printf."
32    },
33    "LIBC_CONF_PRINTF_DISABLE_FIXED_POINT": {
34      "value": false,
35      "doc": "Disable printing fixed point values in printf and friends."
36    },
37    "LIBC_CONF_PRINTF_DISABLE_STRERROR": {
38      "value": false,
39      "doc": "Disable handling of %m to print strerror in printf and friends."
40    }
41  },
42  "scanf": {
43    "LIBC_CONF_SCANF_DISABLE_FLOAT": {
44      "value": false,
45      "doc": "Disable parsing floating point values in scanf and friends."
46    },
47    "LIBC_CONF_SCANF_DISABLE_INDEX_MODE": {
48      "value": false,
49      "doc": "Disable index mode in the scanf format string."
50    }
51  },
52  "string": {
53    "LIBC_CONF_STRING_UNSAFE_WIDE_READ": {
54      "value": false,
55      "doc": "Read more than a byte at a time to perform byte-string operations like strlen."
56    },
57    "LIBC_CONF_MEMSET_X86_USE_SOFTWARE_PREFETCHING": {
58      "value": false,
59      "doc": "Inserts prefetch for write instructions (PREFETCHW) for memset on x86 to recover performance when hardware prefetcher is disabled."
60    }
61  },
62  "codegen": {
63    "LIBC_CONF_KEEP_FRAME_POINTER": {
64      "value": true,
65      "doc": "Keep frame pointer in functions for better debugging experience."
66    },
67    "LIBC_CONF_ENABLE_STRONG_STACK_PROTECTOR": {
68      "value": true,
69      "doc": "Enable -fstack-protector-strong to defend against stack smashing attack."
70    }
71  },
72  "pthread": {
73    "LIBC_CONF_TIMEOUT_ENSURE_MONOTONICITY": {
74      "value": true,
75      "doc": "Automatically adjust timeout to CLOCK_MONOTONIC (default to true). POSIX API may require CLOCK_REALTIME, which can be unstable and leading to unexpected behavior. This option will convert the real-time timestamp to monotonic timestamp relative to the time of call."
76    },
77    "LIBC_CONF_RAW_MUTEX_DEFAULT_SPIN_COUNT": {
78      "value": 100,
79      "doc": "Default number of spins before blocking if a mutex is in contention (default to 100)."
80    },
81    "LIBC_CONF_RWLOCK_DEFAULT_SPIN_COUNT": {
82      "value": 100,
83      "doc": "Default number of spins before blocking if a rwlock is in contention (default to 100)."
84    }
85  },
86  "math": {
87    "LIBC_CONF_MATH_OPTIMIZATIONS": {
88      "value": 0,
89      "doc": "Configures optimizations for math functions. Values accepted are LIBC_MATH_SKIP_ACCURATE_PASS, LIBC_MATH_SMALL_TABLES, LIBC_MATH_NO_ERRNO, LIBC_MATH_NO_EXCEPT, and LIBC_MATH_FAST."
90    },
91    "LIBC_CONF_FREXP_INF_NAN_EXPONENT": {
92      "value": "",
93      "doc": "The value written back to the second parameter when calling frexp/frexpf/frexpl` with `+/-Inf`/`NaN` is unspecified.  Configue an explicit exp value for Inf/NaN inputs."
94    }
95  },
96  "qsort": {
97    "LIBC_CONF_QSORT_IMPL": {
98      "value": "LIBC_QSORT_QUICK_SORT",
99      "doc": "Configures sorting algorithm for qsort and qsort_r. Values accepted are LIBC_QSORT_QUICK_SORT, LIBC_QSORT_HEAP_SORT."
100    }
101  },
102  "setjmp": {
103    "LIBC_CONF_SETJMP_AARCH64_RESTORE_PLATFORM_REGISTER": {
104      "value": true,
105      "doc": "Make setjmp save the value of x18, and longjmp restore it. The AArch64 ABI delegates this register to platform ABIs, which can choose whether to make it caller-saved."
106    }
107  },
108  "time": {
109    "LIBC_CONF_TIME_64BIT": {
110      "value": false,
111      "doc": "Force the size of time_t to 64 bits, even on platforms where compatibility considerations would otherwise make it 32-bit."
112    }
113  },
114  "general": {
115    "LIBC_ADD_NULL_CHECKS": {
116      "value": true,
117      "doc": "Add nullptr checks in the library's implementations to some functions for which passing nullptr is undefined behavior."
118    }
119  }
120}
121