esp-rs / esp-mbedtls

mbedtls for ESP32 bare-metal
Apache License 2.0
21 stars 10 forks source link

Bindings generated different from those included. #12

Closed AnthonyGrondin closed 8 months ago

AnthonyGrondin commented 1 year ago

When I try to generate bindings on a clean repo, using the following command:

cargo +stable run --manifest-path ./xtask/Cargo.toml

I get the following bindings diffs:

diff --git a/esp-mbedtls-sys/src/bindings.rs b/esp-mbedtls-sys/src/bindings.rs
index 6fbb936..4f0112b 100644
--- a/esp-mbedtls-sys/src/bindings.rs
+++ b/esp-mbedtls-sys/src/bindings.rs
@@ -206,125 +206,8 @@ pub const PSA_WANT_KEY_TYPE_DERIVE: u32 = 1;
 pub const PSA_WANT_KEY_TYPE_PASSWORD: u32 = 1;
 pub const PSA_WANT_KEY_TYPE_PASSWORD_HASH: u32 = 1;
 pub const PSA_WANT_KEY_TYPE_RAW_DATA: u32 = 1;
-pub const _LIBC_LIMITS_H_: u32 = 1;
-pub const __NEWLIB_H__: u32 = 1;
-pub const _NEWLIB_VERSION_H__: u32 = 1;
-pub const _NEWLIB_VERSION: &[u8; 6usize] = b"3.3.0\0";
-pub const __NEWLIB__: u32 = 3;
-pub const __NEWLIB_MINOR__: u32 = 3;
-pub const __NEWLIB_PATCHLEVEL__: u32 = 0;
-pub const _WANT_IO_C99_FORMATS: u32 = 1;
-pub const _WANT_IO_LONG_LONG: u32 = 1;
-pub const _WANT_IO_POS_ARGS: u32 = 1;
-pub const _WANT_REENT_SMALL: u32 = 1;
-pub const _REENT_CHECK_VERIFY: u32 = 1;
-pub const _MB_LEN_MAX: u32 = 1;
-pub const _ICONV_ENABLED: u32 = 1;
-pub const HAVE_INITFINI_ARRAY: u32 = 1;
-pub const _ATEXIT_DYNAMIC_ALLOC: u32 = 1;
-pub const _HAVE_LONG_DOUBLE: u32 = 1;
-pub const _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL: u32 = 1;
-pub const _FVWRITE_IN_STREAMIO: u32 = 1;
-pub const _FSEEK_OPTIMIZATION: u32 = 1;
-pub const _UNBUF_STREAM_OPT: u32 = 1;
-pub const _RETARGETABLE_LOCKING: u32 = 1;
-pub const _WANT_USE_LONG_TIME_T: u32 = 1;
-pub const _DEFAULT_SOURCE: u32 = 1;
-pub const _POSIX_SOURCE: u32 = 1;
-pub const _POSIX_C_SOURCE: u32 = 200809;
-pub const _ATFILE_SOURCE: u32 = 1;
-pub const __ATFILE_VISIBLE: u32 = 1;
-pub const __BSD_VISIBLE: u32 = 1;
-pub const __GNU_VISIBLE: u32 = 0;
-pub const __ISO_C_VISIBLE: u32 = 2011;
-pub const __LARGEFILE_VISIBLE: u32 = 0;
-pub const __MISC_VISIBLE: u32 = 1;
-pub const __POSIX_VISIBLE: u32 = 200809;
-pub const __SVID_VISIBLE: u32 = 1;
-pub const __XSI_VISIBLE: u32 = 0;
-pub const __SSP_FORTIFY_LEVEL: u32 = 0;
-pub const _POSIX_THREADS: u32 = 1;
-pub const _POSIX_TIMEOUTS: u32 = 1;
-pub const _POSIX_TIMERS: u32 = 1;
-pub const _POSIX_MONOTONIC_CLOCK: u32 = 200112;
-pub const _POSIX_CLOCK_SELECTION: u32 = 200112;
-pub const _UNIX98_THREAD_MUTEX_ATTRIBUTES: u32 = 1;
-pub const __have_longlong64: u32 = 1;
-pub const __have_long32: u32 = 1;
-pub const ___int8_t_defined: u32 = 1;
-pub const ___int16_t_defined: u32 = 1;
-pub const ___int32_t_defined: u32 = 1;
-pub const ___int64_t_defined: u32 = 1;
-pub const ___int_least8_t_defined: u32 = 1;
-pub const ___int_least16_t_defined: u32 = 1;
-pub const ___int_least32_t_defined: u32 = 1;
-pub const ___int_least64_t_defined: u32 = 1;
-pub const __GNUCLIKE_ASM: u32 = 3;
-pub const __GNUCLIKE___TYPEOF: u32 = 1;
-pub const __GNUCLIKE___OFFSETOF: u32 = 1;
-pub const __GNUCLIKE___SECTION: u32 = 1;
-pub const __GNUCLIKE_CTOR_SECTION_HANDLING: u32 = 1;
-pub const __GNUCLIKE_BUILTIN_CONSTANT_P: u32 = 1;
-pub const __GNUCLIKE_BUILTIN_VARARGS: u32 = 1;
-pub const __GNUCLIKE_BUILTIN_STDARG: u32 = 1;
-pub const __GNUCLIKE_BUILTIN_VAALIST: u32 = 1;
-pub const __GNUC_VA_LIST_COMPATIBILITY: u32 = 1;
-pub const __GNUCLIKE_BUILTIN_NEXT_ARG: u32 = 1;
-pub const __GNUCLIKE_BUILTIN_MEMCPY: u32 = 1;
-pub const __CC_SUPPORTS_INLINE: u32 = 1;
-pub const __CC_SUPPORTS___INLINE: u32 = 1;
-pub const __CC_SUPPORTS___INLINE__: u32 = 1;
-pub const __CC_SUPPORTS___FUNC__: u32 = 1;
-pub const __CC_SUPPORTS_WARNING: u32 = 1;
-pub const __CC_SUPPORTS_VARADIC_XXX: u32 = 1;
-pub const __CC_SUPPORTS_DYNAMIC_ARRAY_INIT: u32 = 1;
-pub const ARG_MAX: u32 = 4096;
-pub const CHILD_MAX: u32 = 40;
-pub const LINK_MAX: u32 = 32767;
-pub const MAX_CANON: u32 = 255;
-pub const MAX_INPUT: u32 = 255;
-pub const NAME_MAX: u32 = 255;
-pub const NGROUPS_MAX: u32 = 16;
-pub const OPEN_MAX: u32 = 64;
-pub const PATH_MAX: u32 = 1024;
-pub const PIPE_BUF: u32 = 512;
-pub const IOV_MAX: u32 = 1024;
-pub const BC_BASE_MAX: u32 = 99;
-pub const BC_DIM_MAX: u32 = 2048;
-pub const BC_SCALE_MAX: u32 = 99;
-pub const BC_STRING_MAX: u32 = 1000;
-pub const COLL_WEIGHTS_MAX: u32 = 0;
-pub const EXPR_NEST_MAX: u32 = 32;
-pub const LINE_MAX: u32 = 2048;
-pub const RE_DUP_MAX: u32 = 255;
 pub const MB_LEN_MAX: u32 = 1;
-pub const NL_ARGMAX: u32 = 32;
 pub const CHAR_MIN: u32 = 0;
-pub const _POSIX2_RE_DUP_MAX: u32 = 255;
-pub const __int20: u32 = 2;
-pub const __int20__: u32 = 2;
-pub const __INT8: &[u8; 3usize] = b"hh\0";
-pub const __INT16: &[u8; 2usize] = b"h\0";
-pub const __INT64: &[u8; 3usize] = b"ll\0";
-pub const __FAST8: &[u8; 3usize] = b"hh\0";
-pub const __FAST16: &[u8; 2usize] = b"h\0";
-pub const __FAST64: &[u8; 3usize] = b"ll\0";
-pub const __LEAST8: &[u8; 3usize] = b"hh\0";
-pub const __LEAST16: &[u8; 2usize] = b"h\0";
-pub const __LEAST64: &[u8; 3usize] = b"ll\0";
-pub const __int8_t_defined: u32 = 1;
-pub const __int16_t_defined: u32 = 1;
-pub const __int32_t_defined: u32 = 1;
-pub const __int64_t_defined: u32 = 1;
-pub const __int_least8_t_defined: u32 = 1;
-pub const __int_least16_t_defined: u32 = 1;
-pub const __int_least32_t_defined: u32 = 1;
-pub const __int_least64_t_defined: u32 = 1;
-pub const __int_fast8_t_defined: u32 = 1;
-pub const __int_fast16_t_defined: u32 = 1;
-pub const __int_fast32_t_defined: u32 = 1;
-pub const __int_fast64_t_defined: u32 = 1;
-pub const WINT_MIN: u32 = 0;
 pub const MBEDTLS_ERR_MPI_FILE_IO_ERROR: i32 = -2;
 pub const MBEDTLS_ERR_MPI_BAD_INPUT_DATA: i32 = -4;
 pub const MBEDTLS_ERR_MPI_INVALID_CHARACTER: i32 = -6;
@@ -1067,26 +950,25 @@ pub const MBEDTLS_CTR_DRBG_MAX_SEED_INPUT: u32 = 384;
 pub const MBEDTLS_CTR_DRBG_PR_OFF: u32 = 0;
 pub const MBEDTLS_CTR_DRBG_PR_ON: u32 = 1;
 pub const MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN: u32 = 0;
-pub type __int8_t = crate::c_types::c_schar;
-pub type __uint8_t = crate::c_types::c_uchar;
-pub type __int16_t = crate::c_types::c_short;
-pub type __uint16_t = crate::c_types::c_ushort;
-pub type __int32_t = crate::c_types::c_int;
-pub type __uint32_t = crate::c_types::c_uint;
-pub type __int64_t = crate::c_types::c_longlong;
-pub type __uint64_t = crate::c_types::c_ulonglong;
-pub type __int_least8_t = crate::c_types::c_schar;
-pub type __uint_least8_t = crate::c_types::c_uchar;
-pub type __int_least16_t = crate::c_types::c_short;
-pub type __uint_least16_t = crate::c_types::c_ushort;
-pub type __int_least32_t = crate::c_types::c_int;
-pub type __uint_least32_t = crate::c_types::c_uint;
-pub type __int_least64_t = crate::c_types::c_longlong;
-pub type __uint_least64_t = crate::c_types::c_ulonglong;
-pub type __intmax_t = crate::c_types::c_longlong;
-pub type __uintmax_t = crate::c_types::c_ulonglong;
-pub type __intptr_t = crate::c_types::c_int;
-pub type __uintptr_t = crate::c_types::c_uint;
+pub type int_least64_t = i64;
+pub type uint_least64_t = u64;
+pub type int_fast64_t = i64;
+pub type uint_fast64_t = u64;
+pub type int_least32_t = i32;
+pub type uint_least32_t = u32;
+pub type int_fast32_t = i32;
+pub type uint_fast32_t = u32;
+pub type int_least16_t = i16;
+pub type uint_least16_t = u16;
+pub type int_fast16_t = i16;
+pub type uint_fast16_t = u16;
+pub type int_least8_t = i8;
+pub type uint_least8_t = u8;
+pub type int_fast8_t = i8;
+pub type uint_fast8_t = u8;
+pub type intmax_t = crate::c_types::c_longlong;
+pub type uintmax_t = crate::c_types::c_ulonglong;
+pub type mbedtls_iso_c_forbids_empty_translation_units = crate::c_types::c_int;
 pub type size_t = crate::c_types::c_uint;
 pub type wchar_t = crate::c_types::c_int;
 #[repr(C)]
@@ -1097,25 +979,6 @@ pub struct max_align_t {
     pub __bindgen_padding_0: u64,
     pub __clang_max_align_nonce2: u128,
 }
-pub type intmax_t = __intmax_t;
-pub type uintmax_t = __uintmax_t;
-pub type int_least8_t = __int_least8_t;
-pub type uint_least8_t = __uint_least8_t;
-pub type int_least16_t = __int_least16_t;
-pub type uint_least16_t = __uint_least16_t;
-pub type int_least32_t = __int_least32_t;
-pub type uint_least32_t = __uint_least32_t;
-pub type int_least64_t = __int_least64_t;
-pub type uint_least64_t = __uint_least64_t;
-pub type int_fast8_t = crate::c_types::c_schar;
-pub type uint_fast8_t = crate::c_types::c_uchar;
-pub type int_fast16_t = crate::c_types::c_short;
-pub type uint_fast16_t = crate::c_types::c_ushort;
-pub type int_fast32_t = crate::c_types::c_int;
-pub type uint_fast32_t = crate::c_types::c_uint;
-pub type int_fast64_t = crate::c_types::c_longlong;
-pub type uint_fast64_t = crate::c_types::c_ulonglong;
-pub type mbedtls_iso_c_forbids_empty_translation_units = crate::c_types::c_int;
 extern "C" {
     #[doc = " \\brief       Securely zeroize a buffer"]
     #[doc = ""]

Additional information

clang

clang version 15.0.7
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

mbedtls

HEAD detached at 1873d3bfc
nothing to commit, working tree clean

Toolchains

Stable:

active toolchain
----------------

nightly-x86_64-unknown-linux-gnu (default)
rustc 1.74.0-nightly (59a829484 2023-08-30)

esp:

active toolchain
----------------

esp (overridden by +toolchain on the command line)
rustc 1.70.0-nightly (14ca5f7f5 2023-05-30) (1.70.0.0)
bjoernQ commented 1 year ago

99% sure it's picking up your hosts sysroot instead of the ESP32's one because it removes all symbols like __NEWLIB__

bjoernQ commented 1 year ago

I tried to re-generate the binding in WSL. It wasn't smooth since I had to bump bindgen to 0.66.1 (because of some libclang problems in the WSL installation - i.e. my libclang was "too new"). Then I had to adapt a few things in the code since bindgen now uses usize where it used u32 before. Nothing too dramatic - just annoying.

In the end it was all fine! There are definitely difference because of the different bindgen version but more like usize vs u32 and docs.

Given your diff it definitely picks up headers from your host's sysroot as it seems. Missing things like __NEWLIB__ indicate that.

Do you have env-vars like C_INCLUDE_PATH set? I think if you have, it will get picked up by bindgen

I think we should at some point bump the bindgen version but apparently, it's not causing your problems - so maybe one step after another

AnthonyGrondin commented 1 year ago

99% sure it's picking up your hosts sysroot instead of the ESP32's one because it removes all symbols like __NEWLIB__

The format macro for the sysroot argument returns the following: "--sysroot=/home/anthony/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/" It seems to be picking the right path.

C_INCLUDE_PATH is also not set on my machine.

The type ones seem to be some upgrade / optimization, but yeah, some header ones are clearly missing when they shouldn't.

bjoernQ commented 1 year ago

Really weird. Maybe it helps to set the clang target to riscv32imc like here: https://github.com/rust-lang/rust-bindgen/issues/1229#issuecomment-378494555 ?

AnthonyGrondin commented 1 year ago

I've opened https://github.com/esp-rs/esp-mbedtls/pull/15, sorry it's a bit noisy, but it attempts to bring most of the bindings and compilation into the Rust xtask.

This doesn't solve the original issue, but I think the fix could be implemented in this PR, if we end up finding what the bug is.

Really weird. Maybe it helps to set the clang target to riscv32imc like here: rust-lang/rust-bindgen#1229 (comment) ?

This doesn't seem to fix the issue on my side.

bjoernQ commented 1 year ago

After thinking about it I think my testing on WSL in https://github.com/esp-rs/esp-mbedtls/issues/12#issuecomment-1702453610 wasn't really a good test since I had to update the bindgen dependency. Maybe you could try bindgen 0.66.1? The bindings will be different because of the different version but if in the generated bindings there are symbols like __NEWLIB__ then it would be a success and we just need to adapt the code.

Other than that, I think there are ways on Linux to monitor which files get opened by a process - maybe that would at least help to see which header files it picks up on your system

AnthonyGrondin commented 1 year ago

Updating bingen only seem to change the types due to it being a different version. The symbols like __NEWLIB__ seem to not change, so the bug is most likely in the build chain.

Using #15, my clang args are:

-I/home/anthony/programming/personal/esp-mbedtls/xtask/include/esp32c3/
-I/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/
-I/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/include
-I/home/anthony/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/riscv32-esp-elf/include/
--sysroot=/home/anthony/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/
--target=riscv32

Looking at strace during the binding generation, the only .h related to mbedtls that is called is esp-mbedtls-sys/include/include.h:

statx(AT_FDCWD, "/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/include/include.h", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=229, ...}) = 0
openat(AT_FDCWD, "/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/src/bindings.rs", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3

Which clang should it be using, actually?

EDIT: I've added the bindgens preprocessed input dump (.dump_preprocessed_input() instead of .generate()) from a generation that produces the same result as originally described in the issue.

It is very noisy, but I believe if you generate a bindgen input dump on your side, and then diff on it, that could possibly highlight where the issue is at. __bindgen.c.log __bindgen.i.log

bjoernQ commented 1 year ago

Ah I already see it, I guess. It's picking up headers from "/usr/lib/clang/15.0.7/include/" - like stdint.h and others

Maybe you have some of these env variables set?

Do you have LIBCLANG_PATH set? I have it set to /home/bjoern/.rustup/toolchains/esp/xtensa-esp32-elf-clang/esp-16.0.0-20230516/esp-clang/lib in WSL and unset in Windows. (I guess it doesn't make a difference then)

AnthonyGrondin commented 1 year ago

When I set LIBCLANG_PATH to use esp clang, it always gives me those errors:

[2023-09-07T06:35:19Z INFO  xtask] Generating bindings
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/bignum.h:176:10: error: unknown type name 'int32_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/bignum.h:177:9: error: unknown type name 'uint32_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/bignum.h:179:9: error: unknown type name 'uint64_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ecp.h:162:5: error: unknown type name 'uint16_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ecp.h:163:5: error: unknown type name 'uint16_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ecp.h:583:66: error: unknown type name 'uint16_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:385:5: error: unknown type name 'uint8_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:386:5: error: unknown type name 'uint8_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:387:5: error: unknown type name 'uint8_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:388:5: error: unknown type name 'uint8_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:390:5: error: unknown type name 'uint16_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:391:5: error: unknown type name 'uint16_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_platform.h:99:5: error: unknown type name 'uintptr_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:64:9: error: unknown type name 'int32_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:83:9: error: unknown type name 'uint16_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:102:9: error: unknown type name 'uint8_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:121:9: error: unknown type name 'uint8_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:139:9: error: unknown type name 'uint32_t'
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:188:9: error: unknown type name 'uint32_t'
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/bignum.h:176:10: error: unknown type name 'int32_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/bignum.h:177:9: error: unknown type name 'uint32_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/bignum.h:179:9: error: unknown type name 'uint64_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ecp.h:162:5: error: unknown type name 'uint16_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ecp.h:163:5: error: unknown type name 'uint16_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ecp.h:583:66: error: unknown type name 'uint16_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:385:5: error: unknown type name 'uint8_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:386:5: error: unknown type name 'uint8_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:387:5: error: unknown type name 'uint8_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:388:5: error: unknown type name 'uint8_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:390:5: error: unknown type name 'uint16_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/mbedtls/ssl_ciphersuites.h:391:5: error: unknown type name 'uint16_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_platform.h:99:5: error: unknown type name 'uintptr_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:64:9: error: unknown type name 'int32_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:83:9: error: unknown type name 'uint16_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:102:9: error: unknown type name 'uint8_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:121:9: error: unknown type name 'uint8_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:139:9: error: unknown type name 'uint32_t', err: true
/home/anthony/programming/personal/esp-mbedtls/esp-mbedtls-sys/../mbedtls/include/psa/crypto_types.h:188:9: error: unknown type name 'uint32_t', err: true
fatal error: too many errors emitted, stopping now [-ferror-limit=], err: true
Error: Failed to generate bindings

Updated version of bindgen will produce the same error.

bjoernQ commented 1 year ago

Really strange.

I also lied about LIBCLANG on Windows. While the variable is not set, it's on my PATH:

C:\Users\Bjoern>where libclang.dll
C:\Users\Bjoern\.espressif\tools\xtensa-esp32-elf-clang\esp-12.0.1-20210914-x86_64-pc-windows-msvc\bin\libclang.dll

But it doesn't change anything since I just tested on WSL with LIBCLANG_PATH unset and it generates correctly. Also .dump_preprocessed_input() shows it's picking up stdint.h from /home/bjoern/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/riscv32-esp-elf/include/stdint.h (the given sysroot)

AnthonyGrondin commented 1 year ago

It's weird, it's not picking up my sysroot in my case. Even when I set it in clang.

Tree of my sysroot. It looks like we have different content.:

/home/anthony/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/
└── lib
    ├── gcc
    │   └── riscv32-esp-elf
    │       └── 8.4.0
    │           └── plugin
    │               ├── gtype.state
    │               ├── include
    │               │   ├── ada
    │               │   │   └── gcc-interface
    │               │   │       └── ada-tree.def
    │               │   ├── alias.h
    │               │   ├── alloc-pool.h
    │               │   ├── all-tree.def
    │               │   ├── ansidecl.h
    │               │   ├── attribs.h
    │               │   ├── auto-host.h
    │               │   ├── auto-profile.h
    │               │   ├── backend.h
    │               │   ├── basic-block.h
    │               │   ├── bb-reorder.h
    │               │   ├── b-header-vars
    │               │   ├── bitmap.h
    │               │   ├── brig-builtins.def
    │               │   ├── builtin-attrs.def
    │               │   ├── builtins.def
    │               │   ├── builtins.h
    │               │   ├── builtin-types.def
    │               │   ├── bversion.h
    │               │   ├── calls.h
    │               │   ├── c-family
    │               │   │   ├── c-common.def
    │               │   │   ├── c-common.h
    │               │   │   ├── c-objc.h
    │               │   │   ├── c-pragma.h
    │               │   │   └── c-pretty-print.h
    │               │   ├── cfganal.h
    │               │   ├── cfgbuild.h
    │               │   ├── cfgcleanup.h
    │               │   ├── cfg-flags.def
    │               │   ├── cfg.h
    │               │   ├── cfghooks.h
    │               │   ├── cfgloop.h
    │               │   ├── cfgloopmanip.h
    │               │   ├── cfgrtl.h
    │               │   ├── chkp-builtins.def
    │               │   ├── cif-code.def
    │               │   ├── collect2-aix.h
    │               │   ├── collect2.h
    │               │   ├── collect-utils.h
    │               │   ├── config
    │               │   │   ├── elfos.h
    │               │   │   ├── initfini-array.h
    │               │   │   ├── newlib-stdint.h
    │               │   │   └── riscv
    │               │   │       ├── elf.h
    │               │   │       ├── riscv.h
    │               │   │       ├── riscv-opts.h
    │               │   │       └── riscv-protos.h
    │               │   ├── configargs.h
    │               │   ├── config.h
    │               │   ├── context.h
    │               │   ├── convert.h
    │               │   ├── coretypes.h
    │               │   ├── cppdefault.h
    │               │   ├── cpplib.h
    │               │   ├── cselib.h
    │               │   ├── c-tree.h
    │               │   ├── data-streamer.h
    │               │   ├── dbgcnt.def
    │               │   ├── dbgcnt.h
    │               │   ├── dce.h
    │               │   ├── ddg.h
    │               │   ├── debug.h
    │               │   ├── defaults.h
    │               │   ├── df.h
    │               │   ├── dfp.h
    │               │   ├── diagnostic-color.h
    │               │   ├── diagnostic.def
    │               │   ├── dojump.h
    │               │   ├── dominance.h
    │               │   ├── domwalk.h
    │               │   ├── dumpfile.h
    │               │   ├── dwarf2out.h
    │               │   ├── edit-context.h
    │               │   ├── emit-rtl.h
    │               │   ├── et-forest.h
    │               │   ├── except.h
    │               │   ├── explow.h
    │               │   ├── expmed.h
    │               │   ├── expr.h
    │               │   ├── fibonacci_heap.h
    │               │   ├── file-find.h
    │               │   ├── filenames.h
    │               │   ├── file-prefix-map.h
    │               │   ├── fixed-value.h
    │               │   ├── flags.h
    │               │   ├── flag-types.h
    │               │   ├── fold-const-call.h
    │               │   ├── function.h
    │               │   ├── gcc-rich-location.h
    │               │   ├── gcc-symtab.h
    │               │   ├── gcov-counter.def
    │               │   ├── gcse-common.h
    │               │   ├── gcse.h
    │               │   ├── generic-match.h
    │               │   ├── gengtype.h
    │               │   ├── genrtl.h
    │               │   ├── gimple-builder.h
    │               │   ├── gimple.def
    │               │   ├── gimple-expr.h
    │               │   ├── gimple-fold.h
    │               │   ├── gimple-low.h
    │               │   ├── gimple-pretty-print.h
    │               │   ├── gimple-ssa-evrp-analyze.h
    │               │   ├── gimple-walk.h
    │               │   ├── gimplify.h
    │               │   ├── gimplify-me.h
    │               │   ├── glimits.h
    │               │   ├── graphds.h
    │               │   ├── graph.h
    │               │   ├── gsstruct.def
    │               │   ├── gsyms.h
    │               │   ├── gtm-builtins.def
    │               │   ├── gtype-desc.h
    │               │   ├── hard-reg-set.h
    │               │   ├── hash-map.h
    │               │   ├── hash-map-traits.h
    │               │   ├── hash-set.h
    │               │   ├── hashtab.h
    │               │   ├── hash-table.h
    │               │   ├── hash-traits.h
    │               │   ├── highlev-plugin-common.h
    │               │   ├── hooks.h
    │               │   ├── hosthooks-def.h
    │               │   ├── hosthooks.h
    │               │   ├── hsa-builtins.def
    │               │   ├── hsa-common.h
    │               │   ├── hw-doloop.h
    │               │   ├── hwint.h
    │               │   ├── ifcvt.h
    │               │   ├── inchash.h
    │               │   ├── incpath.h
    │               │   ├── input.h
    │               │   ├── insn-addr.h
    │               │   ├── insn-codes.h
    │               │   ├── insn-constants.h
    │               │   ├── insn-flags.h
    │               │   ├── insn-modes.h
    │               │   ├── insn-modes-inline.h
    │               │   ├── insn-notes.def
    │               │   ├── internal-fn.def
    │               │   ├── internal-fn.h
    │               │   ├── int-vector-builder.h
    │               │   ├── ipa-chkp.h
    │               │   ├── ipa-icf-gimple.h
    │               │   ├── ipa-inline.h
    │               │   ├── ipa-predicate.h
    │               │   ├── ipa-ref.h
    │               │   ├── ipa-utils.h
    │               │   ├── ira.h
    │               │   ├── ira-int.h
    │               │   ├── is-a.h
    │               │   ├── langhooks.h
    │               │   ├── lcm.h
    │               │   ├── libfuncs.h
    │               │   ├── limity.h
    │               │   ├── line-map.h
    │               │   ├── loop-unroll.h
    │               │   ├── lower-subreg.h
    │               │   ├── lra.h
    │               │   ├── lra-int.h
    │               │   ├── lto-section-names.h
    │               │   ├── lto-streamer.h
    │               │   ├── machmode.h
    │               │   ├── md5.h
    │               │   ├── memmodel.h
    │               │   ├── memory-block.h
    │               │   ├── mem-stats-traits.h
    │               │   ├── mode-classes.def
    │               │   ├── objc
    │               │   │   └── objc-tree.def
    │               │   ├── obstack.h
    │               │   ├── omp-builtins.def
    │               │   ├── omp-expand.h
    │               │   ├── omp-general.h
    │               │   ├── omp-grid.h
    │               │   ├── omp-low.h
    │               │   ├── omp-simd-clone.h
    │               │   ├── optabs.def
    │               │   ├── optabs.h
    │               │   ├── optabs-libfuncs.h
    │               │   ├── optabs-tree.h
    │               │   ├── options.h
    │               │   ├── opts.h
    │               │   ├── output.h
    │               │   ├── params.def
    │               │   ├── params.h
    │               │   ├── params.list
    │               │   ├── params-options.h
    │               │   ├── passes.def
    │               │   ├── pass-instances.def
    │               │   ├── pass_manager.h
    │               │   ├── plugin.def
    │               │   ├── plugin.h
    │               │   ├── plugin-version.h
    │               │   ├── poly-int-types.h
    │               │   ├── prefix.h
    │               │   ├── pretty-print.h
    │               │   ├── print-rtl.h
    │               │   ├── print-tree.h
    │               │   ├── profile-count.h
    │               │   ├── read-md.h
    │               │   ├── real.h
    │               │   ├── realmpfr.h
    │               │   ├── recog.h
    │               │   ├── reg-notes.def
    │               │   ├── regrename.h
    │               │   ├── regs.h
    │               │   ├── reload.h
    │               │   ├── rtl-chkp.h
    │               │   ├── rtl.def
    │               │   ├── rtl-error.h
    │               │   ├── rtl.h
    │               │   ├── rtlhooks-def.h
    │               │   ├── rtl-iter.h
    │               │   ├── run-rtl-passes.h
    │               │   ├── safe-ctype.h
    │               │   ├── sanitizer.def
    │               │   ├── sbitmap.h
    │               │   ├── sched-int.h
    │               │   ├── selftest-diagnostic.h
    │               │   ├── selftest-rtl.h
    │               │   ├── sel-sched-dump.h
    │               │   ├── sel-sched.h
    │               │   ├── sel-sched-ir.h
    │               │   ├── sese.h
    │               │   ├── shrink-wrap.h
    │               │   ├── signop.h
    │               │   ├── sparseset.h
    │               │   ├── spellcheck.h
    │               │   ├── spellcheck-tree.h
    │               │   ├── splay-tree.h
    │               │   ├── sreal.h
    │               │   ├── ssa.h
    │               │   ├── stab.def
    │               │   ├── statistics.h
    │               │   ├── stmt.h
    │               │   ├── stor-layout.h
    │               │   ├── streamer-hooks.h
    │               │   ├── substring-locations.h
    │               │   ├── symbol-summary.h
    │               │   ├── sync-builtins.def
    │               │   ├── system.h
    │               │   ├── target.def
    │               │   ├── target-def.h
    │               │   ├── target-globals.h
    │               │   ├── target.h
    │               │   ├── target-hooks-macros.h
    │               │   ├── target-insns.def
    │               │   ├── targhooks.h
    │               │   ├── timevar.def
    │               │   ├── timevar.h
    │               │   ├── tm_p.h
    │               │   ├── tm-preds.h
    │               │   ├── toplev.h
    │               │   ├── tracer.h
    │               │   ├── tree-affine.h
    │               │   ├── tree-cfgcleanup.h
    │               │   ├── tree-cfg.h
    │               │   ├── tree-check.h
    │               │   ├── tree-chkp.h
    │               │   ├── tree-chrec.h
    │               │   ├── tree-data-ref.h
    │               │   ├── tree.def
    │               │   ├── tree-diagnostic.h
    │               │   ├── tree-eh.h
    │               │   ├── tree.h
    │               │   ├── tree-hasher.h
    │               │   ├── tree-if-conv.h
    │               │   ├── tree-iterator.h
    │               │   ├── tree-nested.h
    │               │   ├── tree-object-size.h
    │               │   ├── tree-outof-ssa.h
    │               │   ├── tree-parloops.h
    │               │   ├── tree-pass.h
    │               │   ├── tree-phinodes.h
    │               │   ├── tree-pretty-print.h
    │               │   ├── tree-scalar-evolution.h
    │               │   ├── tree-ssa-coalesce.h
    │               │   ├── tree-ssa-dce.h
    │               │   ├── tree-ssa-dom.h
    │               │   ├── tree-ssa.h
    │               │   ├── tree-ssa-live.h
    │               │   ├── tree-ssa-loop-ivopts.h
    │               │   ├── tree-ssa-loop-manip.h
    │               │   ├── tree-ssa-loop-niter.h
    │               │   ├── tree-ssanames.h
    │               │   ├── tree-ssa-operands.h
    │               │   ├── tree-ssa-propagate.h
    │               │   ├── tree-ssa-sccvn.h
    │               │   ├── tree-ssa-scopedtables.h
    │               │   ├── tree-ssa-strlen.h
    │               │   ├── tree-ssa-ter.h
    │               │   ├── tree-ssa-threadedge.h
    │               │   ├── tree-ssa-threadupdate.h
    │               │   ├── tree-stdarg.h
    │               │   ├── tree-streamer.h
    │               │   ├── tree-vector-builder.h
    │               │   ├── tree-vectorizer.h
    │               │   ├── tree-vrp.h
    │               │   ├── tsan.h
    │               │   ├── typeclass.h
    │               │   ├── typed-splay-tree.h
    │               │   ├── ubsan.h
    │               │   ├── valtrack.h
    │               │   ├── value-prof.h
    │               │   ├── varasm.h
    │               │   ├── vec.h
    │               │   ├── vec-perm-indices.h
    │               │   ├── version.h
    │               │   ├── vmsdbg.h
    │               │   ├── vr-values.h
    │               │   ├── vtable-verify.h
    │               │   ├── wide-int-bitmask.h
    │               │   ├── wide-int.h
    │               │   ├── wide-int-print.h
    │               │   ├── xcoff.h
    │               │   └── xcoffout.h
    │               ├── libcc1plugin.so -> libcc1plugin.so.0.0.0
    │               ├── libcc1plugin.so.0 -> libcc1plugin.so.0.0.0
    │               ├── libcc1plugin.so.0.0.0
    │               ├── libcp1plugin.so -> libcp1plugin.so.0.0.0
    │               ├── libcp1plugin.so.0 -> libcp1plugin.so.0.0.0
    │               └── libcp1plugin.so.0.0.0
    ├── ldscripts
    │   ├── elf32lriscv.x
    │   ├── elf32lriscv.xbn
    │   ├── elf32lriscv.xc
    │   ├── elf32lriscv.xce
    │   ├── elf32lriscv.xd
    │   ├── elf32lriscv.xdc
    │   ├── elf32lriscv.xdce
    │   ├── elf32lriscv.xde
    │   ├── elf32lriscv.xdw
    │   ├── elf32lriscv.xdwe
    │   ├── elf32lriscv.xe
    │   ├── elf32lriscv.xn
    │   ├── elf32lriscv.xr
    │   ├── elf32lriscv.xs
    │   ├── elf32lriscv.xsc
    │   ├── elf32lriscv.xsce
    │   ├── elf32lriscv.xse
    │   ├── elf32lriscv.xsw
    │   ├── elf32lriscv.xswe
    │   ├── elf32lriscv.xu
    │   ├── elf32lriscv.xw
    │   ├── elf32lriscv.xwe
    │   ├── elf64lriscv.x
    │   ├── elf64lriscv.xbn
    │   ├── elf64lriscv.xc
    │   ├── elf64lriscv.xce
    │   ├── elf64lriscv.xd
    │   ├── elf64lriscv.xdc
    │   ├── elf64lriscv.xdce
    │   ├── elf64lriscv.xde
    │   ├── elf64lriscv.xdw
    │   ├── elf64lriscv.xdwe
    │   ├── elf64lriscv.xe
    │   ├── elf64lriscv.xn
    │   ├── elf64lriscv.xr
    │   ├── elf64lriscv.xs
    │   ├── elf64lriscv.xsc
    │   ├── elf64lriscv.xsce
    │   ├── elf64lriscv.xse
    │   ├── elf64lriscv.xsw
    │   ├── elf64lriscv.xswe
    │   ├── elf64lriscv.xu
    │   ├── elf64lriscv.xw
    │   └── elf64lriscv.xwe
    ├── libcc1.so -> libcc1.so.0.0.0
    ├── libcc1.so.0 -> libcc1.so.0.0.0
    └── libcc1.so.0.0.0

14 directories, 369 files
bjoernQ commented 1 year ago

Oh, that's the solution! Seems clang doesn't see the expected directory structure and instead of giving an error it uses a different sysroot.

For me it looks like this

/home/bjoern/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/riscv32-esp-elf/
├── bin
│   ├── ar
│   ├── as
│   ├── ld
│   ├── ld.bfd
│   ├── nm
│   ├── objcopy
│   ├── objdump
│   ├── ranlib
│   ├── readelf
│   └── strip
├── include
│   ├── _ansi.h
│   ├── _newlib_version.h
│   ├── _syslist.h
│   ├── alloca.h
│   ├── ar.h
│   ├── argz.h
│   ├── assert.h
│   ├── bits
│   ├── c++
│   │   └── 8.4.0
│   │       ├── algorithm
│   │       ├── any
│   │       ├── array
│   │       ├── atomic
│   │       ├── backward
│   │       │   ├── auto_ptr.h
│   │       │   ├── backward_warning.h
│   │       │   ├── binders.h
│   │       │   ├── hash_fun.h
│   │       │   ├── hash_map
│   │       │   ├── hash_set
│   │       │   ├── hashtable.h
│   │       │   └── strstream
│   │       ├── bits
│   │       │   ├── algorithmfwd.h
│   │       │   ├── alloc_traits.h
│   │       │   ├── allocated_ptr.h
│   │       │   ├── allocator.h
│   │       │   ├── atomic_base.h
│   │       │   ├── atomic_futex.h
│   │       │   ├── atomic_lockfree_defines.h
│   │       │   ├── basic_ios.h
│   │       │   ├── basic_ios.tcc
│   │       │   ├── basic_string.h
│   │       │   ├── basic_string.tcc
│   │       │   ├── boost_concept_check.h
│   │       │   ├── c++0x_warning.h
│   │       │   ├── char_traits.h
│   │       │   ├── codecvt.h
│   │       │   ├── concept_check.h
│   │       │   ├── cpp_type_traits.h
│   │       │   ├── cxxabi_forced.h
│   │       │   ├── cxxabi_init_exception.h
│   │       │   ├── deque.tcc
│   │       │   ├── enable_special_members.h
│   │       │   ├── exception.h
│   │       │   ├── exception_defines.h
│   │       │   ├── exception_ptr.h
│   │       │   ├── forward_list.h
│   │       │   ├── forward_list.tcc
│   │       │   ├── fs_dir.h
│   │       │   ├── fs_fwd.h
│   │       │   ├── fs_ops.h
│   │       │   ├── fs_path.h
│   │       │   ├── fstream.tcc
│   │       │   ├── functexcept.h
│   │       │   ├── functional_hash.h
│   │       │   ├── gslice.h
│   │       │   ├── gslice_array.h
│   │       │   ├── hash_bytes.h
│   │       │   ├── hashtable.h
│   │       │   ├── hashtable_policy.h
│   │       │   ├── indirect_array.h
│   │       │   ├── invoke.h
│   │       │   ├── ios_base.h
│   │       │   ├── istream.tcc
│   │       │   ├── list.tcc
│   │       │   ├── locale_classes.h
│   │       │   ├── locale_classes.tcc
│   │       │   ├── locale_conv.h
│   │       │   ├── locale_facets.h
│   │       │   ├── locale_facets.tcc
│   │       │   ├── locale_facets_nonio.h
│   │       │   ├── locale_facets_nonio.tcc
│   │       │   ├── localefwd.h
│   │       │   ├── mask_array.h
│   │       │   ├── memoryfwd.h
│   │       │   ├── move.h
│   │       │   ├── nested_exception.h
│   │       │   ├── node_handle.h
│   │       │   ├── ostream.tcc
│   │       │   ├── ostream_insert.h
│   │       │   ├── parse_numbers.h
│   │       │   ├── postypes.h
│   │       │   ├── predefined_ops.h
│   │       │   ├── ptr_traits.h
│   │       │   ├── quoted_string.h
│   │       │   ├── random.h
│   │       │   ├── random.tcc
│   │       │   ├── range_access.h
│   │       │   ├── refwrap.h
│   │       │   ├── regex.h
│   │       │   ├── regex.tcc
│   │       │   ├── regex_automaton.h
│   │       │   ├── regex_automaton.tcc
│   │       │   ├── regex_compiler.h
│   │       │   ├── regex_compiler.tcc
│   │       │   ├── regex_constants.h
│   │       │   ├── regex_error.h
│   │       │   ├── regex_executor.h
│   │       │   ├── regex_executor.tcc
│   │       │   ├── regex_scanner.h
│   │       │   ├── regex_scanner.tcc
│   │       │   ├── shared_ptr.h
│   │       │   ├── shared_ptr_atomic.h
│   │       │   ├── shared_ptr_base.h
│   │       │   ├── slice_array.h
│   │       │   ├── specfun.h
│   │       │   ├── sstream.tcc
│   │       │   ├── std_abs.h
│   │       │   ├── std_function.h
│   │       │   ├── std_mutex.h
│   │       │   ├── stl_algo.h
│   │       │   ├── stl_algobase.h
│   │       │   ├── stl_bvector.h
│   │       │   ├── stl_construct.h
│   │       │   ├── stl_deque.h
│   │       │   ├── stl_function.h
│   │       │   ├── stl_heap.h
│   │       │   ├── stl_iterator.h
│   │       │   ├── stl_iterator_base_funcs.h
│   │       │   ├── stl_iterator_base_types.h
│   │       │   ├── stl_list.h
│   │       │   ├── stl_map.h
│   │       │   ├── stl_multimap.h
│   │       │   ├── stl_multiset.h
│   │       │   ├── stl_numeric.h
│   │       │   ├── stl_pair.h
│   │       │   ├── stl_queue.h
│   │       │   ├── stl_raw_storage_iter.h
│   │       │   ├── stl_relops.h
│   │       │   ├── stl_set.h
│   │       │   ├── stl_stack.h
│   │       │   ├── stl_tempbuf.h
│   │       │   ├── stl_tree.h
│   │       │   ├── stl_uninitialized.h
│   │       │   ├── stl_vector.h
│   │       │   ├── stream_iterator.h
│   │       │   ├── streambuf.tcc
│   │       │   ├── streambuf_iterator.h
│   │       │   ├── string_view.tcc
│   │       │   ├── stringfwd.h
│   │       │   ├── uniform_int_dist.h
│   │       │   ├── unique_ptr.h
│   │       │   ├── unordered_map.h
│   │       │   ├── unordered_set.h
│   │       │   ├── uses_allocator.h
│   │       │   ├── valarray_after.h
│   │       │   ├── valarray_array.h
│   │       │   ├── valarray_array.tcc
│   │       │   ├── valarray_before.h
│   │       │   └── vector.tcc
│   │       ├── bitset
│   │       ├── cassert
│   │       ├── ccomplex
│   │       ├── cctype
│   │       ├── cerrno
│   │       ├── cfenv
│   │       ├── cfloat
│   │       ├── charconv
│   │       ├── chrono
│   │       ├── cinttypes
│   │       ├── ciso646
│   │       ├── climits
│   │       ├── clocale
│   │       ├── cmath
│   │       ├── codecvt
│   │       ├── complex
│   │       ├── complex.h
│   │       ├── condition_variable
│   │       ├── csetjmp
│   │       ├── csignal
│   │       ├── cstdalign
│   │       ├── cstdarg
│   │       ├── cstdbool
│   │       ├── cstddef
│   │       ├── cstdint
│   │       ├── cstdio
│   │       ├── cstdlib
│   │       ├── cstring
│   │       ├── ctgmath
│   │       ├── ctime
│   │       ├── cuchar
│   │       ├── cwchar
│   │       ├── cwctype
│   │       ├── cxxabi.h
│   │       ├── debug
│   │       │   ├── array
│   │       │   ├── assertions.h
│   │       │   ├── bitset
│   │       │   ├── debug.h
│   │       │   ├── deque
│   │       │   ├── formatter.h
│   │       │   ├── forward_list
│   │       │   ├── functions.h
│   │       │   ├── helper_functions.h
│   │       │   ├── list
│   │       │   ├── macros.h
│   │       │   ├── map
│   │       │   ├── map.h
│   │       │   ├── multimap.h
│   │       │   ├── multiset.h
│   │       │   ├── safe_base.h
│   │       │   ├── safe_container.h
│   │       │   ├── safe_iterator.h
│   │       │   ├── safe_iterator.tcc
│   │       │   ├── safe_local_iterator.h
│   │       │   ├── safe_local_iterator.tcc
│   │       │   ├── safe_sequence.h
│   │       │   ├── safe_sequence.tcc
│   │       │   ├── safe_unordered_base.h
│   │       │   ├── safe_unordered_container.h
│   │       │   ├── safe_unordered_container.tcc
│   │       │   ├── set
│   │       │   ├── set.h
│   │       │   ├── stl_iterator.h
│   │       │   ├── string
│   │       │   ├── unordered_map
│   │       │   ├── unordered_set
│   │       │   └── vector
│   │       ├── decimal
│   │       │   ├── decimal
│   │       │   └── decimal.h
│   │       ├── deque
│   │       ├── exception
│   │       ├── experimental
│   │       │   ├── algorithm
│   │       │   ├── any
│   │       │   ├── array
│   │       │   ├── bits
│   │       │   │   ├── erase_if.h
│   │       │   │   ├── lfts_config.h
│   │       │   │   ├── shared_ptr.h
│   │       │   │   └── string_view.tcc
│   │       │   ├── chrono
│   │       │   ├── deque
│   │       │   ├── forward_list
│   │       │   ├── functional
│   │       │   ├── iterator
│   │       │   ├── list
│   │       │   ├── map
│   │       │   ├── memory
│   │       │   ├── memory_resource
│   │       │   ├── numeric
│   │       │   ├── optional
│   │       │   ├── propagate_const
│   │       │   ├── random
│   │       │   ├── ratio
│   │       │   ├── regex
│   │       │   ├── set
│   │       │   ├── source_location
│   │       │   ├── string
│   │       │   ├── string_view
│   │       │   ├── system_error
│   │       │   ├── tuple
│   │       │   ├── type_traits
│   │       │   ├── unordered_map
│   │       │   ├── unordered_set
│   │       │   ├── utility
│   │       │   └── vector
│   │       ├── ext
│   │       │   ├── algorithm
│   │       │   ├── aligned_buffer.h
│   │       │   ├── alloc_traits.h
│   │       │   ├── array_allocator.h
│   │       │   ├── atomicity.h
│   │       │   ├── bitmap_allocator.h
│   │       │   ├── cast.h
│   │       │   ├── cmath
│   │       │   ├── codecvt_specializations.h
│   │       │   ├── concurrence.h
│   │       │   ├── debug_allocator.h
│   │       │   ├── enc_filebuf.h
│   │       │   ├── extptr_allocator.h
│   │       │   ├── functional
│   │       │   ├── hash_map
│   │       │   ├── hash_set
│   │       │   ├── iterator
│   │       │   ├── malloc_allocator.h
│   │       │   ├── memory
│   │       │   ├── mt_allocator.h
│   │       │   ├── new_allocator.h
│   │       │   ├── numeric
│   │       │   ├── numeric_traits.h
│   │       │   ├── pb_ds
│   │       │   │   ├── assoc_container.hpp
│   │       │   │   ├── detail
│   │       │   │   │   ├── bin_search_tree_
│   │       │   │   │   │   ├── bin_search_tree_.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── node_iterators.hpp
│   │       │   │   │   │   ├── point_iterators.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── r_erase_fn_imps.hpp
│   │       │   │   │   │   ├── rotate_fn_imps.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── binary_heap_
│   │       │   │   │   │   ├── binary_heap_.hpp
│   │       │   │   │   │   ├── const_iterator.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── entry_cmp.hpp
│   │       │   │   │   │   ├── entry_pred.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── point_const_iterator.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── resize_policy.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── binomial_heap_
│   │       │   │   │   │   ├── binomial_heap_.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   └── debug_fn_imps.hpp
│   │       │   │   │   ├── binomial_heap_base_
│   │       │   │   │   │   ├── binomial_heap_base_.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   └── split_join_fn_imps.hpp
│   │       │   │   │   ├── branch_policy
│   │       │   │   │   │   ├── branch_policy.hpp
│   │       │   │   │   │   ├── null_node_metadata.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── cc_hash_table_map_
│   │       │   │   │   │   ├── cc_ht_map_.hpp
│   │       │   │   │   │   ├── cmp_fn_imps.hpp
│   │       │   │   │   │   ├── cond_key_dtor_entry_dealtor.hpp
│   │       │   │   │   │   ├── constructor_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── debug_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── entry_list_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── erase_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── erase_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── find_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── insert_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── insert_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── resize_fn_imps.hpp
│   │       │   │   │   │   ├── resize_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── resize_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── size_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── cond_dealtor.hpp
│   │       │   │   │   ├── container_base_dispatch.hpp
│   │       │   │   │   ├── debug_map_base.hpp
│   │       │   │   │   ├── eq_fn
│   │       │   │   │   │   ├── eq_by_less.hpp
│   │       │   │   │   │   └── hash_eq_fn.hpp
│   │       │   │   │   ├── gp_hash_table_map_
│   │       │   │   │   │   ├── constructor_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── debug_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── erase_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── erase_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── find_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── find_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── gp_ht_map_.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── insert_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── insert_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── iterator_fn_imps.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── resize_fn_imps.hpp
│   │       │   │   │   │   ├── resize_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── resize_store_hash_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── hash_fn
│   │       │   │   │   │   ├── direct_mask_range_hashing_imp.hpp
│   │       │   │   │   │   ├── direct_mod_range_hashing_imp.hpp
│   │       │   │   │   │   ├── linear_probe_fn_imp.hpp
│   │       │   │   │   │   ├── mask_based_range_hashing.hpp
│   │       │   │   │   │   ├── mod_based_range_hashing.hpp
│   │       │   │   │   │   ├── probe_fn_base.hpp
│   │       │   │   │   │   ├── quadratic_probe_fn_imp.hpp
│   │       │   │   │   │   ├── ranged_hash_fn.hpp
│   │       │   │   │   │   ├── ranged_probe_fn.hpp
│   │       │   │   │   │   ├── sample_probe_fn.hpp
│   │       │   │   │   │   ├── sample_range_hashing.hpp
│   │       │   │   │   │   ├── sample_ranged_hash_fn.hpp
│   │       │   │   │   │   └── sample_ranged_probe_fn.hpp
│   │       │   │   │   ├── left_child_next_sibling_heap_
│   │       │   │   │   │   ├── const_iterator.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── left_child_next_sibling_heap_.hpp
│   │       │   │   │   │   ├── node.hpp
│   │       │   │   │   │   ├── point_const_iterator.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── list_update_map_
│   │       │   │   │   │   ├── constructor_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── entry_metadata_base.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── lu_map_.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── list_update_policy
│   │       │   │   │   │   ├── lu_counter_metadata.hpp
│   │       │   │   │   │   └── sample_update_policy.hpp
│   │       │   │   │   ├── ov_tree_map_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── node_iterators.hpp
│   │       │   │   │   │   ├── ov_tree_map_.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── pairing_heap_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── pairing_heap_.hpp
│   │       │   │   │   │   └── split_join_fn_imps.hpp
│   │       │   │   │   ├── pat_trie_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_join_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── pat_trie_.hpp
│   │       │   │   │   │   ├── pat_trie_base.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── r_erase_fn_imps.hpp
│   │       │   │   │   │   ├── rotate_fn_imps.hpp
│   │       │   │   │   │   ├── split_fn_imps.hpp
│   │       │   │   │   │   ├── synth_access_traits.hpp
│   │       │   │   │   │   ├── trace_fn_imps.hpp
│   │       │   │   │   │   ├── traits.hpp
│   │       │   │   │   │   └── update_fn_imps.hpp
│   │       │   │   │   ├── priority_queue_base_dispatch.hpp
│   │       │   │   │   ├── rb_tree_map_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── node.hpp
│   │       │   │   │   │   ├── rb_tree_.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── rc_binomial_heap_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── rc.hpp
│   │       │   │   │   │   ├── rc_binomial_heap_.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── resize_policy
│   │       │   │   │   │   ├── cc_hash_max_collision_check_resize_trigger_imp.hpp
│   │       │   │   │   │   ├── hash_exponential_size_policy_imp.hpp
│   │       │   │   │   │   ├── hash_load_check_resize_trigger_imp.hpp
│   │       │   │   │   │   ├── hash_load_check_resize_trigger_size_base.hpp
│   │       │   │   │   │   ├── hash_prime_size_policy_imp.hpp
│   │       │   │   │   │   ├── hash_standard_resize_policy_imp.hpp
│   │       │   │   │   │   ├── sample_resize_policy.hpp
│   │       │   │   │   │   ├── sample_resize_trigger.hpp
│   │       │   │   │   │   └── sample_size_policy.hpp
│   │       │   │   │   ├── splay_tree_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── node.hpp
│   │       │   │   │   │   ├── splay_fn_imps.hpp
│   │       │   │   │   │   ├── splay_tree_.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── standard_policies.hpp
│   │       │   │   │   ├── thin_heap_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   ├── thin_heap_.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── tree_policy
│   │       │   │   │   │   ├── node_metadata_selector.hpp
│   │       │   │   │   │   ├── order_statistics_imp.hpp
│   │       │   │   │   │   └── sample_tree_node_update.hpp
│   │       │   │   │   ├── tree_trace_base.hpp
│   │       │   │   │   ├── trie_policy
│   │       │   │   │   │   ├── node_metadata_selector.hpp
│   │       │   │   │   │   ├── order_statistics_imp.hpp
│   │       │   │   │   │   ├── prefix_search_node_update_imp.hpp
│   │       │   │   │   │   ├── sample_trie_access_traits.hpp
│   │       │   │   │   │   ├── sample_trie_node_update.hpp
│   │       │   │   │   │   ├── trie_policy_base.hpp
│   │       │   │   │   │   └── trie_string_access_traits_imp.hpp
│   │       │   │   │   ├── type_utils.hpp
│   │       │   │   │   ├── types_traits.hpp
│   │       │   │   │   └── unordered_iterator
│   │       │   │   │       ├── const_iterator.hpp
│   │       │   │   │       ├── iterator.hpp
│   │       │   │   │       ├── point_const_iterator.hpp
│   │       │   │   │       └── point_iterator.hpp
│   │       │   │   ├── exception.hpp
│   │       │   │   ├── hash_policy.hpp
│   │       │   │   ├── list_update_policy.hpp
│   │       │   │   ├── priority_queue.hpp
│   │       │   │   ├── tag_and_trait.hpp
│   │       │   │   ├── tree_policy.hpp
│   │       │   │   └── trie_policy.hpp
│   │       │   ├── pod_char_traits.h
│   │       │   ├── pointer.h
│   │       │   ├── pool_allocator.h
│   │       │   ├── random
│   │       │   ├── random.tcc
│   │       │   ├── rb_tree
│   │       │   ├── rc_string_base.h
│   │       │   ├── rope
│   │       │   ├── ropeimpl.h
│   │       │   ├── slist
│   │       │   ├── sso_string_base.h
│   │       │   ├── stdio_filebuf.h
│   │       │   ├── stdio_sync_filebuf.h
│   │       │   ├── string_conversions.h
│   │       │   ├── throw_allocator.h
│   │       │   ├── type_traits.h
│   │       │   ├── typelist.h
│   │       │   ├── vstring.h
│   │       │   ├── vstring.tcc
│   │       │   ├── vstring_fwd.h
│   │       │   └── vstring_util.h
│   │       ├── fenv.h
│   │       ├── filesystem
│   │       ├── forward_list
│   │       ├── fstream
│   │       ├── functional
│   │       ├── future
│   │       ├── initializer_list
│   │       ├── iomanip
│   │       ├── ios
│   │       ├── iosfwd
│   │       ├── iostream
│   │       ├── istream
│   │       ├── iterator
│   │       ├── limits
│   │       ├── list
│   │       ├── locale
│   │       ├── map
│   │       ├── math.h
│   │       ├── memory
│   │       ├── mutex
│   │       ├── new
│   │       ├── numeric
│   │       ├── optional
│   │       ├── ostream
│   │       ├── parallel
│   │       │   ├── algo.h
│   │       │   ├── algobase.h
│   │       │   ├── algorithm
│   │       │   ├── algorithmfwd.h
│   │       │   ├── balanced_quicksort.h
│   │       │   ├── base.h
│   │       │   ├── basic_iterator.h
│   │       │   ├── checkers.h
│   │       │   ├── compatibility.h
│   │       │   ├── compiletime_settings.h
│   │       │   ├── equally_split.h
│   │       │   ├── features.h
│   │       │   ├── find.h
│   │       │   ├── find_selectors.h
│   │       │   ├── for_each.h
│   │       │   ├── for_each_selectors.h
│   │       │   ├── iterator.h
│   │       │   ├── list_partition.h
│   │       │   ├── losertree.h
│   │       │   ├── merge.h
│   │       │   ├── multiseq_selection.h
│   │       │   ├── multiway_merge.h
│   │       │   ├── multiway_mergesort.h
│   │       │   ├── numeric
│   │       │   ├── numericfwd.h
│   │       │   ├── omp_loop.h
│   │       │   ├── omp_loop_static.h
│   │       │   ├── par_loop.h
│   │       │   ├── parallel.h
│   │       │   ├── partial_sum.h
│   │       │   ├── partition.h
│   │       │   ├── queue.h
│   │       │   ├── quicksort.h
│   │       │   ├── random_number.h
│   │       │   ├── random_shuffle.h
│   │       │   ├── search.h
│   │       │   ├── set_operations.h
│   │       │   ├── settings.h
│   │       │   ├── sort.h
│   │       │   ├── tags.h
│   │       │   ├── types.h
│   │       │   ├── unique_copy.h
│   │       │   └── workstealing.h
│   │       ├── profile
│   │       │   ├── array
│   │       │   ├── base.h
│   │       │   ├── bitset
│   │       │   ├── deque
│   │       │   ├── forward_list
│   │       │   ├── impl
│   │       │   │   ├── profiler.h
│   │       │   │   ├── profiler_algos.h
│   │       │   │   ├── profiler_container_size.h
│   │       │   │   ├── profiler_hash_func.h
│   │       │   │   ├── profiler_hashtable_size.h
│   │       │   │   ├── profiler_list_to_slist.h
│   │       │   │   ├── profiler_list_to_vector.h
│   │       │   │   ├── profiler_map_to_unordered_map.h
│   │       │   │   ├── profiler_node.h
│   │       │   │   ├── profiler_state.h
│   │       │   │   ├── profiler_trace.h
│   │       │   │   ├── profiler_vector_size.h
│   │       │   │   └── profiler_vector_to_list.h
│   │       │   ├── iterator_tracker.h
│   │       │   ├── list
│   │       │   ├── map
│   │       │   ├── map.h
│   │       │   ├── multimap.h
│   │       │   ├── multiset.h
│   │       │   ├── ordered_base.h
│   │       │   ├── set
│   │       │   ├── set.h
│   │       │   ├── unordered_base.h
│   │       │   ├── unordered_map
│   │       │   ├── unordered_set
│   │       │   └── vector
│   │       ├── queue
│   │       ├── random
│   │       ├── ratio
│   │       ├── regex
│   │       ├── riscv32-esp-elf
│   │       │   ├── bits
│   │       │   │   ├── atomic_word.h
│   │       │   │   ├── basic_file.h
│   │       │   │   ├── c++allocator.h
│   │       │   │   ├── c++config.h
│   │       │   │   ├── c++io.h
│   │       │   │   ├── c++locale.h
│   │       │   │   ├── cpu_defines.h
│   │       │   │   ├── ctype_base.h
│   │       │   │   ├── ctype_inline.h
│   │       │   │   ├── cxxabi_tweaks.h
│   │       │   │   ├── error_constants.h
│   │       │   │   ├── extc++.h
│   │       │   │   ├── gthr-default.h
│   │       │   │   ├── gthr-posix.h
│   │       │   │   ├── gthr-single.h
│   │       │   │   ├── gthr.h
│   │       │   │   ├── messages_members.h
│   │       │   │   ├── opt_random.h
│   │       │   │   ├── os_defines.h
│   │       │   │   ├── stdc++.h
│   │       │   │   ├── stdtr1c++.h
│   │       │   │   └── time_members.h
│   │       │   ├── ext
│   │       │   │   └── opt_random.h
│   │       │   ├── no-rtti
│   │       │   │   ├── bits
│   │       │   │   │   ├── atomic_word.h
│   │       │   │   │   ├── basic_file.h
│   │       │   │   │   ├── c++allocator.h
│   │       │   │   │   ├── c++config.h
│   │       │   │   │   ├── c++io.h
│   │       │   │   │   ├── c++locale.h
│   │       │   │   │   ├── cpu_defines.h
│   │       │   │   │   ├── ctype_base.h
│   │       │   │   │   ├── ctype_inline.h
│   │       │   │   │   ├── cxxabi_tweaks.h
│   │       │   │   │   ├── error_constants.h
│   │       │   │   │   ├── extc++.h
│   │       │   │   │   ├── gthr-default.h
│   │       │   │   │   ├── gthr-posix.h
│   │       │   │   │   ├── gthr-single.h
│   │       │   │   │   ├── gthr.h
│   │       │   │   │   ├── messages_members.h
│   │       │   │   │   ├── opt_random.h
│   │       │   │   │   ├── os_defines.h
│   │       │   │   │   ├── stdc++.h
│   │       │   │   │   ├── stdtr1c++.h
│   │       │   │   │   └── time_members.h
│   │       │   │   └── ext
│   │       │   │       └── opt_random.h
│   │       │   ├── rv32i
│   │       │   │   └── ilp32
│   │       │   │       ├── bits
│   │       │   │       │   ├── atomic_word.h
│   │       │   │       │   ├── basic_file.h
│   │       │   │       │   ├── c++allocator.h
│   │       │   │       │   ├── c++config.h
│   │       │   │       │   ├── c++io.h
│   │       │   │       │   ├── c++locale.h
│   │       │   │       │   ├── cpu_defines.h
│   │       │   │       │   ├── ctype_base.h
│   │       │   │       │   ├── ctype_inline.h
│   │       │   │       │   ├── cxxabi_tweaks.h
│   │       │   │       │   ├── error_constants.h
│   │       │   │       │   ├── extc++.h
│   │       │   │       │   ├── gthr-default.h
│   │       │   │       │   ├── gthr-posix.h
│   │       │   │       │   ├── gthr-single.h
│   │       │   │       │   ├── gthr.h
│   │       │   │       │   ├── messages_members.h
│   │       │   │       │   ├── opt_random.h
│   │       │   │       │   ├── os_defines.h
│   │       │   │       │   ├── stdc++.h
│   │       │   │       │   ├── stdtr1c++.h
│   │       │   │       │   └── time_members.h
│   │       │   │       ├── ext
│   │       │   │       │   └── opt_random.h
│   │       │   │       └── no-rtti
│   │       │   │           ├── bits
│   │       │   │           │   ├── atomic_word.h
│   │       │   │           │   ├── basic_file.h
│   │       │   │           │   ├── c++allocator.h
│   │       │   │           │   ├── c++config.h
│   │       │   │           │   ├── c++io.h
│   │       │   │           │   ├── c++locale.h
│   │       │   │           │   ├── cpu_defines.h
│   │       │   │           │   ├── ctype_base.h
│   │       │   │           │   ├── ctype_inline.h
│   │       │   │           │   ├── cxxabi_tweaks.h
│   │       │   │           │   ├── error_constants.h
│   │       │   │           │   ├── extc++.h
│   │       │   │           │   ├── gthr-default.h
│   │       │   │           │   ├── gthr-posix.h
│   │       │   │           │   ├── gthr-single.h
│   │       │   │           │   ├── gthr.h
│   │       │   │           │   ├── messages_members.h
│   │       │   │           │   ├── opt_random.h
│   │       │   │           │   ├── os_defines.h
│   │       │   │           │   ├── stdc++.h
│   │       │   │           │   ├── stdtr1c++.h
│   │       │   │           │   └── time_members.h
│   │       │   │           └── ext
│   │       │   │               └── opt_random.h
│   │       │   ├── rv32imafc
│   │       │   │   └── ilp32f
│   │       │   │       ├── bits
│   │       │   │       │   ├── atomic_word.h
│   │       │   │       │   ├── basic_file.h
│   │       │   │       │   ├── c++allocator.h
│   │       │   │       │   ├── c++config.h
│   │       │   │       │   ├── c++io.h
│   │       │   │       │   ├── c++locale.h
│   │       │   │       │   ├── cpu_defines.h
│   │       │   │       │   ├── ctype_base.h
│   │       │   │       │   ├── ctype_inline.h
│   │       │   │       │   ├── cxxabi_tweaks.h
│   │       │   │       │   ├── error_constants.h
│   │       │   │       │   ├── extc++.h
│   │       │   │       │   ├── gthr-default.h
│   │       │   │       │   ├── gthr-posix.h
│   │       │   │       │   ├── gthr-single.h
│   │       │   │       │   ├── gthr.h
│   │       │   │       │   ├── messages_members.h
│   │       │   │       │   ├── opt_random.h
│   │       │   │       │   ├── os_defines.h
│   │       │   │       │   ├── stdc++.h
│   │       │   │       │   ├── stdtr1c++.h
│   │       │   │       │   └── time_members.h
│   │       │   │       ├── ext
│   │       │   │       │   └── opt_random.h
│   │       │   │       └── no-rtti
│   │       │   │           ├── bits
│   │       │   │           │   ├── atomic_word.h
│   │       │   │           │   ├── basic_file.h
│   │       │   │           │   ├── c++allocator.h
│   │       │   │           │   ├── c++config.h
│   │       │   │           │   ├── c++io.h
│   │       │   │           │   ├── c++locale.h
│   │       │   │           │   ├── cpu_defines.h
│   │       │   │           │   ├── ctype_base.h
│   │       │   │           │   ├── ctype_inline.h
│   │       │   │           │   ├── cxxabi_tweaks.h
│   │       │   │           │   ├── error_constants.h
│   │       │   │           │   ├── extc++.h
│   │       │   │           │   ├── gthr-default.h
│   │       │   │           │   ├── gthr-posix.h
│   │       │   │           │   ├── gthr-single.h
│   │       │   │           │   ├── gthr.h
│   │       │   │           │   ├── messages_members.h
│   │       │   │           │   ├── opt_random.h
│   │       │   │           │   ├── os_defines.h
│   │       │   │           │   ├── stdc++.h
│   │       │   │           │   ├── stdtr1c++.h
│   │       │   │           │   └── time_members.h
│   │       │   │           └── ext
│   │       │   │               └── opt_random.h
│   │       │   └── rv32imc
│   │       │       └── ilp32
│   │       │           ├── bits
│   │       │           │   ├── atomic_word.h
│   │       │           │   ├── basic_file.h
│   │       │           │   ├── c++allocator.h
│   │       │           │   ├── c++config.h
│   │       │           │   ├── c++io.h
│   │       │           │   ├── c++locale.h
│   │       │           │   ├── cpu_defines.h
│   │       │           │   ├── ctype_base.h
│   │       │           │   ├── ctype_inline.h
│   │       │           │   ├── cxxabi_tweaks.h
│   │       │           │   ├── error_constants.h
│   │       │           │   ├── extc++.h
│   │       │           │   ├── gthr-default.h
│   │       │           │   ├── gthr-posix.h
│   │       │           │   ├── gthr-single.h
│   │       │           │   ├── gthr.h
│   │       │           │   ├── messages_members.h
│   │       │           │   ├── opt_random.h
│   │       │           │   ├── os_defines.h
│   │       │           │   ├── stdc++.h
│   │       │           │   ├── stdtr1c++.h
│   │       │           │   └── time_members.h
│   │       │           ├── ext
│   │       │           │   └── opt_random.h
│   │       │           └── no-rtti
│   │       │               ├── bits
│   │       │               │   ├── atomic_word.h
│   │       │               │   ├── basic_file.h
│   │       │               │   ├── c++allocator.h
│   │       │               │   ├── c++config.h
│   │       │               │   ├── c++io.h
│   │       │               │   ├── c++locale.h
│   │       │               │   ├── cpu_defines.h
│   │       │               │   ├── ctype_base.h
│   │       │               │   ├── ctype_inline.h
│   │       │               │   ├── cxxabi_tweaks.h
│   │       │               │   ├── error_constants.h
│   │       │               │   ├── extc++.h
│   │       │               │   ├── gthr-default.h
│   │       │               │   ├── gthr-posix.h
│   │       │               │   ├── gthr-single.h
│   │       │               │   ├── gthr.h
│   │       │               │   ├── messages_members.h
│   │       │               │   ├── opt_random.h
│   │       │               │   ├── os_defines.h
│   │       │               │   ├── stdc++.h
│   │       │               │   ├── stdtr1c++.h
│   │       │               │   └── time_members.h
│   │       │               └── ext
│   │       │                   └── opt_random.h
│   │       ├── scoped_allocator
│   │       ├── set
│   │       ├── shared_mutex
│   │       ├── sstream
│   │       ├── stack
│   │       ├── stdexcept
│   │       ├── stdlib.h
│   │       ├── streambuf
│   │       ├── string
│   │       ├── string_view
│   │       ├── system_error
│   │       ├── tgmath.h
│   │       ├── thread
│   │       ├── tr1
│   │       │   ├── array
│   │       │   ├── bessel_function.tcc
│   │       │   ├── beta_function.tcc
│   │       │   ├── ccomplex
│   │       │   ├── cctype
│   │       │   ├── cfenv
│   │       │   ├── cfloat
│   │       │   ├── cinttypes
│   │       │   ├── climits
│   │       │   ├── cmath
│   │       │   ├── complex
│   │       │   ├── complex.h
│   │       │   ├── cstdarg
│   │       │   ├── cstdbool
│   │       │   ├── cstdint
│   │       │   ├── cstdio
│   │       │   ├── cstdlib
│   │       │   ├── ctgmath
│   │       │   ├── ctime
│   │       │   ├── ctype.h
│   │       │   ├── cwchar
│   │       │   ├── cwctype
│   │       │   ├── ell_integral.tcc
│   │       │   ├── exp_integral.tcc
│   │       │   ├── fenv.h
│   │       │   ├── float.h
│   │       │   ├── functional
│   │       │   ├── functional_hash.h
│   │       │   ├── gamma.tcc
│   │       │   ├── hashtable.h
│   │       │   ├── hashtable_policy.h
│   │       │   ├── hypergeometric.tcc
│   │       │   ├── inttypes.h
│   │       │   ├── legendre_function.tcc
│   │       │   ├── limits.h
│   │       │   ├── math.h
│   │       │   ├── memory
│   │       │   ├── modified_bessel_func.tcc
│   │       │   ├── poly_hermite.tcc
│   │       │   ├── poly_laguerre.tcc
│   │       │   ├── random
│   │       │   ├── random.h
│   │       │   ├── random.tcc
│   │       │   ├── regex
│   │       │   ├── riemann_zeta.tcc
│   │       │   ├── shared_ptr.h
│   │       │   ├── special_function_util.h
│   │       │   ├── stdarg.h
│   │       │   ├── stdbool.h
│   │       │   ├── stdint.h
│   │       │   ├── stdio.h
│   │       │   ├── stdlib.h
│   │       │   ├── tgmath.h
│   │       │   ├── tuple
│   │       │   ├── type_traits
│   │       │   ├── unordered_map
│   │       │   ├── unordered_map.h
│   │       │   ├── unordered_set
│   │       │   ├── unordered_set.h
│   │       │   ├── utility
│   │       │   ├── wchar.h
│   │       │   └── wctype.h
│   │       ├── tr2
│   │       │   ├── bool_set
│   │       │   ├── bool_set.tcc
│   │       │   ├── dynamic_bitset
│   │       │   ├── dynamic_bitset.tcc
│   │       │   ├── ratio
│   │       │   └── type_traits
│   │       ├── tuple
│   │       ├── type_traits
│   │       ├── typeindex
│   │       ├── typeinfo
│   │       ├── unordered_map
│   │       ├── unordered_set
│   │       ├── utility
│   │       ├── valarray
│   │       ├── variant
│   │       └── vector
│   ├── complex.h
│   ├── cpio.h
│   ├── ctype.h
│   ├── devctl.h
│   ├── dirent.h
│   ├── elf.h
│   ├── envlock.h
│   ├── envz.h
│   ├── errno.h
│   ├── fastmath.h
│   ├── fcntl.h
│   ├── fenv.h
│   ├── fnmatch.h
│   ├── gdb
│   │   └── jit-reader.h
│   ├── getopt.h
│   ├── glob.h
│   ├── grp.h
│   ├── iconv.h
│   ├── ieeefp.h
│   ├── inttypes.h
│   ├── langinfo.h
│   ├── libgen.h
│   ├── limits.h
│   ├── locale.h
│   ├── machine
│   │   ├── _arc4random.h
│   │   ├── _default_types.h
│   │   ├── _endian.h
│   │   ├── _time.h
│   │   ├── _types.h
│   │   ├── ansi.h
│   │   ├── endian.h
│   │   ├── fastmath.h
│   │   ├── ieeefp.h
│   │   ├── malloc.h
│   │   ├── param.h
│   │   ├── setjmp-dj.h
│   │   ├── setjmp.h
│   │   ├── stdlib.h
│   │   ├── syscall.h
│   │   ├── termios.h
│   │   ├── time.h
│   │   └── types.h
│   ├── malloc.h
│   ├── math.h
│   ├── memory.h
│   ├── ndbm.h
│   ├── newlib.h
│   ├── paths.h
│   ├── pthread.h
│   ├── pwd.h
│   ├── reent.h
│   ├── regdef.h
│   ├── regex.h
│   ├── rpc
│   ├── sched.h
│   ├── search.h
│   ├── setjmp.h
│   ├── signal.h
│   ├── spawn.h
│   ├── ssp
│   │   ├── ssp.h
│   │   ├── stdio.h
│   │   ├── stdlib.h
│   │   ├── string.h
│   │   ├── strings.h
│   │   ├── unistd.h
│   │   └── wchar.h
│   ├── stdatomic.h
│   ├── stdint.h
│   ├── stdio.h
│   ├── stdio_ext.h
│   ├── stdlib.h
│   ├── string.h
│   ├── strings.h
│   ├── sys
│   │   ├── _default_fcntl.h
│   │   ├── _intsup.h
│   │   ├── _locale.h
│   │   ├── _pthreadtypes.h
│   │   ├── _sigset.h
│   │   ├── _stdint.h
│   │   ├── _timespec.h
│   │   ├── _timeval.h
│   │   ├── _types.h
│   │   ├── asm.h
│   │   ├── cdefs.h
│   │   ├── config.h
│   │   ├── custom_file.h
│   │   ├── dir.h
│   │   ├── dirent.h
│   │   ├── errno.h
│   │   ├── fcntl.h
│   │   ├── features.h
│   │   ├── fenv.h
│   │   ├── file.h
│   │   ├── iconvnls.h
│   │   ├── lock.h
│   │   ├── param.h
│   │   ├── queue.h
│   │   ├── reent.h
│   │   ├── resource.h
│   │   ├── sched.h
│   │   ├── select.h
│   │   ├── signal.h
│   │   ├── stat.h
│   │   ├── stdio.h
│   │   ├── string.h
│   │   ├── syslimits.h
│   │   ├── time.h
│   │   ├── timeb.h
│   │   ├── times.h
│   │   ├── timespec.h
│   │   ├── tree.h
│   │   ├── types.h
│   │   ├── unistd.h
│   │   ├── utime.h
│   │   └── wait.h
│   ├── tar.h
│   ├── termios.h
│   ├── tgmath.h
│   ├── threads.h
│   ├── time.h
│   ├── unctrl.h
│   ├── unistd.h
│   ├── utime.h
│   ├── utmp.h
│   ├── wchar.h
│   ├── wctype.h
│   └── wordexp.h
├── lib
│   ├── crt0.o
│   ├── default.specs
│   ├── libc.a
│   ├── libc_nano.a
│   ├── libg.a
│   ├── libg_nano.a
│   ├── libgloss.a
│   ├── libm.a
│   ├── libm_nano.a
│   ├── libnosys.a
│   ├── libsim.a
│   ├── libstdc++.a
│   ├── libstdc++.a-gdb.py
│   ├── libsupc++.a
│   ├── nano.specs
│   ├── no-rtti
│   │   ├── crt0.o
│   │   ├── default.specs
│   │   ├── libc.a
│   │   ├── libc_nano.a
│   │   ├── libg.a
│   │   ├── libg_nano.a
│   │   ├── libgloss.a
│   │   ├── libm.a
│   │   ├── libm_nano.a
│   │   ├── libnosys.a
│   │   ├── libsim.a
│   │   ├── nano.specs
│   │   ├── nosys.specs
│   │   └── sim.specs
│   ├── nosys.specs
│   ├── rv32i
│   │   └── ilp32
│   │       ├── crt0.o
│   │       ├── default.specs
│   │       ├── libc.a
│   │       ├── libc_nano.a
│   │       ├── libg.a
│   │       ├── libg_nano.a
│   │       ├── libgloss.a
│   │       ├── libm.a
│   │       ├── libm_nano.a
│   │       ├── libnosys.a
│   │       ├── libsim.a
│   │       ├── libstdc++.a
│   │       ├── libstdc++.a-gdb.py
│   │       ├── libsupc++.a
│   │       ├── nano.specs
│   │       ├── no-rtti
│   │       │   ├── crt0.o
│   │       │   ├── default.specs
│   │       │   ├── libc.a
│   │       │   ├── libc_nano.a
│   │       │   ├── libg.a
│   │       │   ├── libg_nano.a
│   │       │   ├── libgloss.a
│   │       │   ├── libm.a
│   │       │   ├── libm_nano.a
│   │       │   ├── libnosys.a
│   │       │   ├── libsim.a
│   │       │   ├── libstdc++.a
│   │       │   ├── libstdc++.a-gdb.py
│   │       │   ├── libsupc++.a
│   │       │   ├── nano.specs
│   │       │   ├── nosys.specs
│   │       │   └── sim.specs
│   │       ├── nosys.specs
│   │       └── sim.specs
│   ├── rv32imafc
│   │   └── ilp32f
│   │       ├── crt0.o
│   │       ├── default.specs
│   │       ├── libc.a
│   │       ├── libc_nano.a
│   │       ├── libg.a
│   │       ├── libg_nano.a
│   │       ├── libgloss.a
│   │       ├── libm.a
│   │       ├── libm_nano.a
│   │       ├── libnosys.a
│   │       ├── libsim.a
│   │       ├── libstdc++.a
│   │       ├── libstdc++.a-gdb.py
│   │       ├── libsupc++.a
│   │       ├── nano.specs
│   │       ├── no-rtti
│   │       │   ├── crt0.o
│   │       │   ├── default.specs
│   │       │   ├── libc.a
│   │       │   ├── libc_nano.a
│   │       │   ├── libg.a
│   │       │   ├── libg_nano.a
│   │       │   ├── libgloss.a
│   │       │   ├── libm.a
│   │       │   ├── libm_nano.a
│   │       │   ├── libnosys.a
│   │       │   ├── libsim.a
│   │       │   ├── libstdc++.a
│   │       │   ├── libstdc++.a-gdb.py
│   │       │   ├── libsupc++.a
│   │       │   ├── nano.specs
│   │       │   ├── nosys.specs
│   │       │   └── sim.specs
│   │       ├── nosys.specs
│   │       └── sim.specs
│   ├── rv32imc
│   │   └── ilp32
│   │       ├── crt0.o
│   │       ├── default.specs
│   │       ├── libc.a
│   │       ├── libc_nano.a
│   │       ├── libg.a
│   │       ├── libg_nano.a
│   │       ├── libgloss.a
│   │       ├── libm.a
│   │       ├── libm_nano.a
│   │       ├── libnosys.a
│   │       ├── libsim.a
│   │       ├── libstdc++.a
│   │       ├── libstdc++.a-gdb.py
│   │       ├── libsupc++.a
│   │       ├── nano.specs
│   │       ├── no-rtti
│   │       │   ├── crt0.o
│   │       │   ├── default.specs
│   │       │   ├── libc.a
│   │       │   ├── libc_nano.a
│   │       │   ├── libg.a
│   │       │   ├── libg_nano.a
│   │       │   ├── libgloss.a
│   │       │   ├── libm.a
│   │       │   ├── libm_nano.a
│   │       │   ├── libnosys.a
│   │       │   ├── libsim.a
│   │       │   ├── libstdc++.a
│   │       │   ├── libstdc++.a-gdb.py
│   │       │   ├── libsupc++.a
│   │       │   ├── nano.specs
│   │       │   ├── nosys.specs
│   │       │   └── sim.specs
│   │       ├── nosys.specs
│   │       └── sim.specs
│   └── sim.specs
├── sys-include
│   ├── COPIED
│   ├── _ansi.h
│   ├── _newlib_version.h
│   ├── _syslist.h
│   ├── alloca.h
│   ├── ar.h
│   ├── argz.h
│   ├── assert.h
│   ├── bits
│   ├── complex.h
│   ├── cpio.h
│   ├── ctype.h
│   ├── devctl.h
│   ├── dirent.h
│   ├── elf.h
│   ├── envlock.h
│   ├── envz.h
│   ├── errno.h
│   ├── fastmath.h
│   ├── fcntl.h
│   ├── fenv.h
│   ├── fnmatch.h
│   ├── getopt.h
│   ├── glob.h
│   ├── grp.h
│   ├── iconv.h
│   ├── ieeefp.h
│   ├── inttypes.h
│   ├── langinfo.h
│   ├── libgen.h
│   ├── limits.h
│   ├── locale.h
│   ├── machine
│   │   ├── _arc4random.h
│   │   ├── _default_types.h
│   │   ├── _endian.h
│   │   ├── _time.h
│   │   ├── _types.h
│   │   ├── ansi.h
│   │   ├── endian.h
│   │   ├── fastmath.h
│   │   ├── ieeefp.h
│   │   ├── malloc.h
│   │   ├── param.h
│   │   ├── setjmp-dj.h
│   │   ├── setjmp.h
│   │   ├── stdlib.h
│   │   ├── syscall.h
│   │   ├── termios.h
│   │   ├── time.h
│   │   └── types.h
│   ├── malloc.h
│   ├── math.h
│   ├── memory.h
│   ├── ndbm.h
│   ├── newlib.h
│   ├── paths.h
│   ├── pthread.h
│   ├── pwd.h
│   ├── reent.h
│   ├── regdef.h
│   ├── regex.h
│   ├── rpc
│   ├── sched.h
│   ├── search.h
│   ├── setjmp.h
│   ├── signal.h
│   ├── spawn.h
│   ├── ssp
│   │   ├── ssp.h
│   │   ├── stdio.h
│   │   ├── stdlib.h
│   │   ├── string.h
│   │   ├── strings.h
│   │   ├── unistd.h
│   │   └── wchar.h
│   ├── stdatomic.h
│   ├── stdint.h
│   ├── stdio.h
│   ├── stdio_ext.h
│   ├── stdlib.h
│   ├── string.h
│   ├── strings.h
│   ├── sys
│   │   ├── _default_fcntl.h
│   │   ├── _intsup.h
│   │   ├── _locale.h
│   │   ├── _pthreadtypes.h
│   │   ├── _sigset.h
│   │   ├── _stdint.h
│   │   ├── _timespec.h
│   │   ├── _timeval.h
│   │   ├── _types.h
│   │   ├── asm.h
│   │   ├── cdefs.h
│   │   ├── config.h
│   │   ├── custom_file.h
│   │   ├── dir.h
│   │   ├── dirent.h
│   │   ├── errno.h
│   │   ├── fcntl.h
│   │   ├── features.h
│   │   ├── fenv.h
│   │   ├── file.h
│   │   ├── iconvnls.h
│   │   ├── lock.h
│   │   ├── param.h
│   │   ├── queue.h
│   │   ├── reent.h
│   │   ├── resource.h
│   │   ├── sched.h
│   │   ├── select.h
│   │   ├── signal.h
│   │   ├── stat.h
│   │   ├── stdio.h
│   │   ├── string.h
│   │   ├── syslimits.h
│   │   ├── time.h
│   │   ├── timeb.h
│   │   ├── times.h
│   │   ├── timespec.h
│   │   ├── tree.h
│   │   ├── types.h
│   │   ├── unistd.h
│   │   ├── utime.h
│   │   └── wait.h
│   ├── tar.h
│   ├── termios.h
│   ├── tgmath.h
│   ├── threads.h
│   ├── time.h
│   ├── unctrl.h
│   ├── unistd.h
│   ├── utime.h
│   ├── utmp.h
│   ├── wchar.h
│   ├── wctype.h
│   └── wordexp.h
└── usr
    └── lib
/home/bjoern/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8_4_0/riscv32-esp-elf/riscv32-esp-elf/
├── bin
│   ├── ar
│   ├── as
│   ├── ld
│   ├── ld.bfd
│   ├── nm
│   ├── objcopy
│   ├── objdump
│   ├── ranlib
│   ├── readelf
│   └── strip
├── include
│   ├── _ansi.h
│   ├── _newlib_version.h
│   ├── _syslist.h
│   ├── alloca.h
│   ├── ar.h
│   ├── argz.h
│   ├── assert.h
│   ├── bits
│   ├── c++
│   │   └── 8.4.0
│   │       ├── algorithm
│   │       ├── any
│   │       ├── array
│   │       ├── atomic
│   │       ├── backward
│   │       │   ├── auto_ptr.h
│   │       │   ├── backward_warning.h
│   │       │   ├── binders.h
│   │       │   ├── hash_fun.h
│   │       │   ├── hash_map
│   │       │   ├── hash_set
│   │       │   ├── hashtable.h
│   │       │   └── strstream
│   │       ├── bits
│   │       │   ├── algorithmfwd.h
│   │       │   ├── alloc_traits.h
│   │       │   ├── allocated_ptr.h
│   │       │   ├── allocator.h
│   │       │   ├── atomic_base.h
│   │       │   ├── atomic_futex.h
│   │       │   ├── atomic_lockfree_defines.h
│   │       │   ├── basic_ios.h
│   │       │   ├── basic_ios.tcc
│   │       │   ├── basic_string.h
│   │       │   ├── basic_string.tcc
│   │       │   ├── boost_concept_check.h
│   │       │   ├── c++0x_warning.h
│   │       │   ├── char_traits.h
│   │       │   ├── codecvt.h
│   │       │   ├── concept_check.h
│   │       │   ├── cpp_type_traits.h
│   │       │   ├── cxxabi_forced.h
│   │       │   ├── cxxabi_init_exception.h
│   │       │   ├── deque.tcc
│   │       │   ├── enable_special_members.h
│   │       │   ├── exception.h
│   │       │   ├── exception_defines.h
│   │       │   ├── exception_ptr.h
│   │       │   ├── forward_list.h
│   │       │   ├── forward_list.tcc
│   │       │   ├── fs_dir.h
│   │       │   ├── fs_fwd.h
│   │       │   ├── fs_ops.h
│   │       │   ├── fs_path.h
│   │       │   ├── fstream.tcc
│   │       │   ├── functexcept.h
│   │       │   ├── functional_hash.h
│   │       │   ├── gslice.h
│   │       │   ├── gslice_array.h
│   │       │   ├── hash_bytes.h
│   │       │   ├── hashtable.h
│   │       │   ├── hashtable_policy.h
│   │       │   ├── indirect_array.h
│   │       │   ├── invoke.h
│   │       │   ├── ios_base.h
│   │       │   ├── istream.tcc
│   │       │   ├── list.tcc
│   │       │   ├── locale_classes.h
│   │       │   ├── locale_classes.tcc
│   │       │   ├── locale_conv.h
│   │       │   ├── locale_facets.h
│   │       │   ├── locale_facets.tcc
│   │       │   ├── locale_facets_nonio.h
│   │       │   ├── locale_facets_nonio.tcc
│   │       │   ├── localefwd.h
│   │       │   ├── mask_array.h
│   │       │   ├── memoryfwd.h
│   │       │   ├── move.h
│   │       │   ├── nested_exception.h
│   │       │   ├── node_handle.h
│   │       │   ├── ostream.tcc
│   │       │   ├── ostream_insert.h
│   │       │   ├── parse_numbers.h
│   │       │   ├── postypes.h
│   │       │   ├── predefined_ops.h
│   │       │   ├── ptr_traits.h
│   │       │   ├── quoted_string.h
│   │       │   ├── random.h
│   │       │   ├── random.tcc
│   │       │   ├── range_access.h
│   │       │   ├── refwrap.h
│   │       │   ├── regex.h
│   │       │   ├── regex.tcc
│   │       │   ├── regex_automaton.h
│   │       │   ├── regex_automaton.tcc
│   │       │   ├── regex_compiler.h
│   │       │   ├── regex_compiler.tcc
│   │       │   ├── regex_constants.h
│   │       │   ├── regex_error.h
│   │       │   ├── regex_executor.h
│   │       │   ├── regex_executor.tcc
│   │       │   ├── regex_scanner.h
│   │       │   ├── regex_scanner.tcc
│   │       │   ├── shared_ptr.h
│   │       │   ├── shared_ptr_atomic.h
│   │       │   ├── shared_ptr_base.h
│   │       │   ├── slice_array.h
│   │       │   ├── specfun.h
│   │       │   ├── sstream.tcc
│   │       │   ├── std_abs.h
│   │       │   ├── std_function.h
│   │       │   ├── std_mutex.h
│   │       │   ├── stl_algo.h
│   │       │   ├── stl_algobase.h
│   │       │   ├── stl_bvector.h
│   │       │   ├── stl_construct.h
│   │       │   ├── stl_deque.h
│   │       │   ├── stl_function.h
│   │       │   ├── stl_heap.h
│   │       │   ├── stl_iterator.h
│   │       │   ├── stl_iterator_base_funcs.h
│   │       │   ├── stl_iterator_base_types.h
│   │       │   ├── stl_list.h
│   │       │   ├── stl_map.h
│   │       │   ├── stl_multimap.h
│   │       │   ├── stl_multiset.h
│   │       │   ├── stl_numeric.h
│   │       │   ├── stl_pair.h
│   │       │   ├── stl_queue.h
│   │       │   ├── stl_raw_storage_iter.h
│   │       │   ├── stl_relops.h
│   │       │   ├── stl_set.h
│   │       │   ├── stl_stack.h
│   │       │   ├── stl_tempbuf.h
│   │       │   ├── stl_tree.h
│   │       │   ├── stl_uninitialized.h
│   │       │   ├── stl_vector.h
│   │       │   ├── stream_iterator.h
│   │       │   ├── streambuf.tcc
│   │       │   ├── streambuf_iterator.h
│   │       │   ├── string_view.tcc
│   │       │   ├── stringfwd.h
│   │       │   ├── uniform_int_dist.h
│   │       │   ├── unique_ptr.h
│   │       │   ├── unordered_map.h
│   │       │   ├── unordered_set.h
│   │       │   ├── uses_allocator.h
│   │       │   ├── valarray_after.h
│   │       │   ├── valarray_array.h
│   │       │   ├── valarray_array.tcc
│   │       │   ├── valarray_before.h
│   │       │   └── vector.tcc
│   │       ├── bitset
│   │       ├── cassert
│   │       ├── ccomplex
│   │       ├── cctype
│   │       ├── cerrno
│   │       ├── cfenv
│   │       ├── cfloat
│   │       ├── charconv
│   │       ├── chrono
│   │       ├── cinttypes
│   │       ├── ciso646
│   │       ├── climits
│   │       ├── clocale
│   │       ├── cmath
│   │       ├── codecvt
│   │       ├── complex
│   │       ├── complex.h
│   │       ├── condition_variable
│   │       ├── csetjmp
│   │       ├── csignal
│   │       ├── cstdalign
│   │       ├── cstdarg
│   │       ├── cstdbool
│   │       ├── cstddef
│   │       ├── cstdint
│   │       ├── cstdio
│   │       ├── cstdlib
│   │       ├── cstring
│   │       ├── ctgmath
│   │       ├── ctime
│   │       ├── cuchar
│   │       ├── cwchar
│   │       ├── cwctype
│   │       ├── cxxabi.h
│   │       ├── debug
│   │       │   ├── array
│   │       │   ├── assertions.h
│   │       │   ├── bitset
│   │       │   ├── debug.h
│   │       │   ├── deque
│   │       │   ├── formatter.h
│   │       │   ├── forward_list
│   │       │   ├── functions.h
│   │       │   ├── helper_functions.h
│   │       │   ├── list
│   │       │   ├── macros.h
│   │       │   ├── map
│   │       │   ├── map.h
│   │       │   ├── multimap.h
│   │       │   ├── multiset.h
│   │       │   ├── safe_base.h
│   │       │   ├── safe_container.h
│   │       │   ├── safe_iterator.h
│   │       │   ├── safe_iterator.tcc
│   │       │   ├── safe_local_iterator.h
│   │       │   ├── safe_local_iterator.tcc
│   │       │   ├── safe_sequence.h
│   │       │   ├── safe_sequence.tcc
│   │       │   ├── safe_unordered_base.h
│   │       │   ├── safe_unordered_container.h
│   │       │   ├── safe_unordered_container.tcc
│   │       │   ├── set
│   │       │   ├── set.h
│   │       │   ├── stl_iterator.h
│   │       │   ├── string
│   │       │   ├── unordered_map
│   │       │   ├── unordered_set
│   │       │   └── vector
│   │       ├── decimal
│   │       │   ├── decimal
│   │       │   └── decimal.h
│   │       ├── deque
│   │       ├── exception
│   │       ├── experimental
│   │       │   ├── algorithm
│   │       │   ├── any
│   │       │   ├── array
│   │       │   ├── bits
│   │       │   │   ├── erase_if.h
│   │       │   │   ├── lfts_config.h
│   │       │   │   ├── shared_ptr.h
│   │       │   │   └── string_view.tcc
│   │       │   ├── chrono
│   │       │   ├── deque
│   │       │   ├── forward_list
│   │       │   ├── functional
│   │       │   ├── iterator
│   │       │   ├── list
│   │       │   ├── map
│   │       │   ├── memory
│   │       │   ├── memory_resource
│   │       │   ├── numeric
│   │       │   ├── optional
│   │       │   ├── propagate_const
│   │       │   ├── random
│   │       │   ├── ratio
│   │       │   ├── regex
│   │       │   ├── set
│   │       │   ├── source_location
│   │       │   ├── string
│   │       │   ├── string_view
│   │       │   ├── system_error
│   │       │   ├── tuple
│   │       │   ├── type_traits
│   │       │   ├── unordered_map
│   │       │   ├── unordered_set
│   │       │   ├── utility
│   │       │   └── vector
│   │       ├── ext
│   │       │   ├── algorithm
│   │       │   ├── aligned_buffer.h
│   │       │   ├── alloc_traits.h
│   │       │   ├── array_allocator.h
│   │       │   ├── atomicity.h
│   │       │   ├── bitmap_allocator.h
│   │       │   ├── cast.h
│   │       │   ├── cmath
│   │       │   ├── codecvt_specializations.h
│   │       │   ├── concurrence.h
│   │       │   ├── debug_allocator.h
│   │       │   ├── enc_filebuf.h
│   │       │   ├── extptr_allocator.h
│   │       │   ├── functional
│   │       │   ├── hash_map
│   │       │   ├── hash_set
│   │       │   ├── iterator
│   │       │   ├── malloc_allocator.h
│   │       │   ├── memory
│   │       │   ├── mt_allocator.h
│   │       │   ├── new_allocator.h
│   │       │   ├── numeric
│   │       │   ├── numeric_traits.h
│   │       │   ├── pb_ds
│   │       │   │   ├── assoc_container.hpp
│   │       │   │   ├── detail
│   │       │   │   │   ├── bin_search_tree_
│   │       │   │   │   │   ├── bin_search_tree_.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── node_iterators.hpp
│   │       │   │   │   │   ├── point_iterators.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── r_erase_fn_imps.hpp
│   │       │   │   │   │   ├── rotate_fn_imps.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── binary_heap_
│   │       │   │   │   │   ├── binary_heap_.hpp
│   │       │   │   │   │   ├── const_iterator.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── entry_cmp.hpp
│   │       │   │   │   │   ├── entry_pred.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── point_const_iterator.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── resize_policy.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── binomial_heap_
│   │       │   │   │   │   ├── binomial_heap_.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   └── debug_fn_imps.hpp
│   │       │   │   │   ├── binomial_heap_base_
│   │       │   │   │   │   ├── binomial_heap_base_.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   └── split_join_fn_imps.hpp
│   │       │   │   │   ├── branch_policy
│   │       │   │   │   │   ├── branch_policy.hpp
│   │       │   │   │   │   ├── null_node_metadata.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── cc_hash_table_map_
│   │       │   │   │   │   ├── cc_ht_map_.hpp
│   │       │   │   │   │   ├── cmp_fn_imps.hpp
│   │       │   │   │   │   ├── cond_key_dtor_entry_dealtor.hpp
│   │       │   │   │   │   ├── constructor_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── debug_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── entry_list_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── erase_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── erase_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── find_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── insert_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── insert_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── resize_fn_imps.hpp
│   │       │   │   │   │   ├── resize_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── resize_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── size_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── cond_dealtor.hpp
│   │       │   │   │   ├── container_base_dispatch.hpp
│   │       │   │   │   ├── debug_map_base.hpp
│   │       │   │   │   ├── eq_fn
│   │       │   │   │   │   ├── eq_by_less.hpp
│   │       │   │   │   │   └── hash_eq_fn.hpp
│   │       │   │   │   ├── gp_hash_table_map_
│   │       │   │   │   │   ├── constructor_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── constructor_destructor_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── debug_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── debug_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── erase_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── erase_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── find_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── find_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── gp_ht_map_.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── insert_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── insert_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── iterator_fn_imps.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── resize_fn_imps.hpp
│   │       │   │   │   │   ├── resize_no_store_hash_fn_imps.hpp
│   │       │   │   │   │   ├── resize_store_hash_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── hash_fn
│   │       │   │   │   │   ├── direct_mask_range_hashing_imp.hpp
│   │       │   │   │   │   ├── direct_mod_range_hashing_imp.hpp
│   │       │   │   │   │   ├── linear_probe_fn_imp.hpp
│   │       │   │   │   │   ├── mask_based_range_hashing.hpp
│   │       │   │   │   │   ├── mod_based_range_hashing.hpp
│   │       │   │   │   │   ├── probe_fn_base.hpp
│   │       │   │   │   │   ├── quadratic_probe_fn_imp.hpp
│   │       │   │   │   │   ├── ranged_hash_fn.hpp
│   │       │   │   │   │   ├── ranged_probe_fn.hpp
│   │       │   │   │   │   ├── sample_probe_fn.hpp
│   │       │   │   │   │   ├── sample_range_hashing.hpp
│   │       │   │   │   │   ├── sample_ranged_hash_fn.hpp
│   │       │   │   │   │   └── sample_ranged_probe_fn.hpp
│   │       │   │   │   ├── left_child_next_sibling_heap_
│   │       │   │   │   │   ├── const_iterator.hpp
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── left_child_next_sibling_heap_.hpp
│   │       │   │   │   │   ├── node.hpp
│   │       │   │   │   │   ├── point_const_iterator.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── list_update_map_
│   │       │   │   │   │   ├── constructor_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── entry_metadata_base.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── lu_map_.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── list_update_policy
│   │       │   │   │   │   ├── lu_counter_metadata.hpp
│   │       │   │   │   │   └── sample_update_policy.hpp
│   │       │   │   │   ├── ov_tree_map_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── node_iterators.hpp
│   │       │   │   │   │   ├── ov_tree_map_.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── pairing_heap_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── pairing_heap_.hpp
│   │       │   │   │   │   └── split_join_fn_imps.hpp
│   │       │   │   │   ├── pat_trie_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_join_fn_imps.hpp
│   │       │   │   │   │   ├── iterators_fn_imps.hpp
│   │       │   │   │   │   ├── pat_trie_.hpp
│   │       │   │   │   │   ├── pat_trie_base.hpp
│   │       │   │   │   │   ├── policy_access_fn_imps.hpp
│   │       │   │   │   │   ├── r_erase_fn_imps.hpp
│   │       │   │   │   │   ├── rotate_fn_imps.hpp
│   │       │   │   │   │   ├── split_fn_imps.hpp
│   │       │   │   │   │   ├── synth_access_traits.hpp
│   │       │   │   │   │   ├── trace_fn_imps.hpp
│   │       │   │   │   │   ├── traits.hpp
│   │       │   │   │   │   └── update_fn_imps.hpp
│   │       │   │   │   ├── priority_queue_base_dispatch.hpp
│   │       │   │   │   ├── rb_tree_map_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── node.hpp
│   │       │   │   │   │   ├── rb_tree_.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── rc_binomial_heap_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── rc.hpp
│   │       │   │   │   │   ├── rc_binomial_heap_.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── resize_policy
│   │       │   │   │   │   ├── cc_hash_max_collision_check_resize_trigger_imp.hpp
│   │       │   │   │   │   ├── hash_exponential_size_policy_imp.hpp
│   │       │   │   │   │   ├── hash_load_check_resize_trigger_imp.hpp
│   │       │   │   │   │   ├── hash_load_check_resize_trigger_size_base.hpp
│   │       │   │   │   │   ├── hash_prime_size_policy_imp.hpp
│   │       │   │   │   │   ├── hash_standard_resize_policy_imp.hpp
│   │       │   │   │   │   ├── sample_resize_policy.hpp
│   │       │   │   │   │   ├── sample_resize_trigger.hpp
│   │       │   │   │   │   └── sample_size_policy.hpp
│   │       │   │   │   ├── splay_tree_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── info_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── node.hpp
│   │       │   │   │   │   ├── splay_fn_imps.hpp
│   │       │   │   │   │   ├── splay_tree_.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   └── traits.hpp
│   │       │   │   │   ├── standard_policies.hpp
│   │       │   │   │   ├── thin_heap_
│   │       │   │   │   │   ├── constructors_destructor_fn_imps.hpp
│   │       │   │   │   │   ├── debug_fn_imps.hpp
│   │       │   │   │   │   ├── erase_fn_imps.hpp
│   │       │   │   │   │   ├── find_fn_imps.hpp
│   │       │   │   │   │   ├── insert_fn_imps.hpp
│   │       │   │   │   │   ├── split_join_fn_imps.hpp
│   │       │   │   │   │   ├── thin_heap_.hpp
│   │       │   │   │   │   └── trace_fn_imps.hpp
│   │       │   │   │   ├── tree_policy
│   │       │   │   │   │   ├── node_metadata_selector.hpp
│   │       │   │   │   │   ├── order_statistics_imp.hpp
│   │       │   │   │   │   └── sample_tree_node_update.hpp
│   │       │   │   │   ├── tree_trace_base.hpp
│   │       │   │   │   ├── trie_policy
│   │       │   │   │   │   ├── node_metadata_selector.hpp
│   │       │   │   │   │   ├── order_statistics_imp.hpp
│   │       │   │   │   │   ├── prefix_search_node_update_imp.hpp
│   │       │   │   │   │   ├── sample_trie_access_traits.hpp
│   │       │   │   │   │   ├── sample_trie_node_update.hpp
│   │       │   │   │   │   ├── trie_policy_base.hpp
│   │       │   │   │   │   └── trie_string_access_traits_imp.hpp
│   │       │   │   │   ├── type_utils.hpp
│   │       │   │   │   ├── types_traits.hpp
│   │       │   │   │   └── unordered_iterator
│   │       │   │   │       ├── const_iterator.hpp
│   │       │   │   │       ├── iterator.hpp
│   │       │   │   │       ├── point_const_iterator.hpp
│   │       │   │   │       └── point_iterator.hpp
│   │       │   │   ├── exception.hpp
│   │       │   │   ├── hash_policy.hpp
│   │       │   │   ├── list_update_policy.hpp
│   │       │   │   ├── priority_queue.hpp
│   │       │   │   ├── tag_and_trait.hpp
│   │       │   │   ├── tree_policy.hpp
│   │       │   │   └── trie_policy.hpp
│   │       │   ├── pod_char_traits.h
│   │       │   ├── pointer.h
│   │       │   ├── pool_allocator.h
│   │       │   ├── random
│   │       │   ├── random.tcc
│   │       │   ├── rb_tree
│   │       │   ├── rc_string_base.h
│   │       │   ├── rope
│   │       │   ├── ropeimpl.h
│   │       │   ├── slist
│   │       │   ├── sso_string_base.h
│   │       │   ├── stdio_filebuf.h
│   │       │   ├── stdio_sync_filebuf.h
│   │       │   ├── string_conversions.h
│   │       │   ├── throw_allocator.h
│   │       │   ├── type_traits.h
│   │       │   ├── typelist.h
│   │       │   ├── vstring.h
│   │       │   ├── vstring.tcc
│   │       │   ├── vstring_fwd.h
│   │       │   └── vstring_util.h
│   │       ├── fenv.h
│   │       ├── filesystem
│   │       ├── forward_list
│   │       ├── fstream
│   │       ├── functional
│   │       ├── future
│   │       ├── initializer_list
│   │       ├── iomanip
│   │       ├── ios
│   │       ├── iosfwd
│   │       ├── iostream
│   │       ├── istream
│   │       ├── iterator
│   │       ├── limits
│   │       ├── list
│   │       ├── locale
│   │       ├── map
│   │       ├── math.h
│   │       ├── memory
│   │       ├── mutex
│   │       ├── new
│   │       ├── numeric
│   │       ├── optional
│   │       ├── ostream
│   │       ├── parallel
│   │       │   ├── algo.h
│   │       │   ├── algobase.h
│   │       │   ├── algorithm
│   │       │   ├── algorithmfwd.h
│   │       │   ├── balanced_quicksort.h
│   │       │   ├── base.h
│   │       │   ├── basic_iterator.h
│   │       │   ├── checkers.h
│   │       │   ├── compatibility.h
│   │       │   ├── compiletime_settings.h
│   │       │   ├── equally_split.h
│   │       │   ├── features.h
│   │       │   ├── find.h
│   │       │   ├── find_selectors.h
│   │       │   ├── for_each.h
│   │       │   ├── for_each_selectors.h
│   │       │   ├── iterator.h
│   │       │   ├── list_partition.h
│   │       │   ├── losertree.h
│   │       │   ├── merge.h
│   │       │   ├── multiseq_selection.h
│   │       │   ├── multiway_merge.h
│   │       │   ├── multiway_mergesort.h
│   │       │   ├── numeric
│   │       │   ├── numericfwd.h
│   │       │   ├── omp_loop.h
│   │       │   ├── omp_loop_static.h
│   │       │   ├── par_loop.h
│   │       │   ├── parallel.h
│   │       │   ├── partial_sum.h
│   │       │   ├── partition.h
│   │       │   ├── queue.h
│   │       │   ├── quicksort.h
│   │       │   ├── random_number.h
│   │       │   ├── random_shuffle.h
│   │       │   ├── search.h
│   │       │   ├── set_operations.h
│   │       │   ├── settings.h
│   │       │   ├── sort.h
│   │       │   ├── tags.h
│   │       │   ├── types.h
│   │       │   ├── unique_copy.h
│   │       │   └── workstealing.h
│   │       ├── profile
│   │       │   ├── array
│   │       │   ├── base.h
│   │       │   ├── bitset
│   │       │   ├── deque
│   │       │   ├── forward_list
│   │       │   ├── impl
│   │       │   │   ├── profiler.h
│   │       │   │   ├── profiler_algos.h
│   │       │   │   ├── profiler_container_size.h
│   │       │   │   ├── profiler_hash_func.h
│   │       │   │   ├── profiler_hashtable_size.h
│   │       │   │   ├── profiler_list_to_slist.h
│   │       │   │   ├── profiler_list_to_vector.h
│   │       │   │   ├── profiler_map_to_unordered_map.h
│   │       │   │   ├── profiler_node.h
│   │       │   │   ├── profiler_state.h
│   │       │   │   ├── profiler_trace.h
│   │       │   │   ├── profiler_vector_size.h
│   │       │   │   └── profiler_vector_to_list.h
│   │       │   ├── iterator_tracker.h
│   │       │   ├── list
│   │       │   ├── map
│   │       │   ├── map.h
│   │       │   ├── multimap.h
│   │       │   ├── multiset.h
│   │       │   ├── ordered_base.h
│   │       │   ├── set
│   │       │   ├── set.h
│   │       │   ├── unordered_base.h
│   │       │   ├── unordered_map
│   │       │   ├── unordered_set
│   │       │   └── vector
│   │       ├── queue
│   │       ├── random
│   │       ├── ratio
│   │       ├── regex
│   │       ├── riscv32-esp-elf
│   │       │   ├── bits
│   │       │   │   ├── atomic_word.h
│   │       │   │   ├── basic_file.h
│   │       │   │   ├── c++allocator.h
│   │       │   │   ├── c++config.h
│   │       │   │   ├── c++io.h
│   │       │   │   ├── c++locale.h
│   │       │   │   ├── cpu_defines.h
│   │       │   │   ├── ctype_base.h
│   │       │   │   ├── ctype_inline.h
│   │       │   │   ├── cxxabi_tweaks.h
│   │       │   │   ├── error_constants.h
│   │       │   │   ├── extc++.h
│   │       │   │   ├── gthr-default.h
│   │       │   │   ├── gthr-posix.h
│   │       │   │   ├── gthr-single.h
│   │       │   │   ├── gthr.h
│   │       │   │   ├── messages_members.h
│   │       │   │   ├── opt_random.h
│   │       │   │   ├── os_defines.h
│   │       │   │   ├── stdc++.h
│   │       │   │   ├── stdtr1c++.h
│   │       │   │   └── time_members.h
│   │       │   ├── ext
│   │       │   │   └── opt_random.h
│   │       │   ├── no-rtti
│   │       │   │   ├── bits
│   │       │   │   │   ├── atomic_word.h
│   │       │   │   │   ├── basic_file.h
│   │       │   │   │   ├── c++allocator.h
│   │       │   │   │   ├── c++config.h
│   │       │   │   │   ├── c++io.h
│   │       │   │   │   ├── c++locale.h
│   │       │   │   │   ├── cpu_defines.h
│   │       │   │   │   ├── ctype_base.h
│   │       │   │   │   ├── ctype_inline.h
│   │       │   │   │   ├── cxxabi_tweaks.h
│   │       │   │   │   ├── error_constants.h
│   │       │   │   │   ├── extc++.h
│   │       │   │   │   ├── gthr-default.h
│   │       │   │   │   ├── gthr-posix.h
│   │       │   │   │   ├── gthr-single.h
│   │       │   │   │   ├── gthr.h
│   │       │   │   │   ├── messages_members.h
│   │       │   │   │   ├── opt_random.h
│   │       │   │   │   ├── os_defines.h
│   │       │   │   │   ├── stdc++.h
│   │       │   │   │   ├── stdtr1c++.h
│   │       │   │   │   └── time_members.h
│   │       │   │   └── ext
│   │       │   │       └── opt_random.h
│   │       │   ├── rv32i
│   │       │   │   └── ilp32
│   │       │   │       ├── bits
│   │       │   │       │   ├── atomic_word.h
│   │       │   │       │   ├── basic_file.h
│   │       │   │       │   ├── c++allocator.h
│   │       │   │       │   ├── c++config.h
│   │       │   │       │   ├── c++io.h
│   │       │   │       │   ├── c++locale.h
│   │       │   │       │   ├── cpu_defines.h
│   │       │   │       │   ├── ctype_base.h
│   │       │   │       │   ├── ctype_inline.h
│   │       │   │       │   ├── cxxabi_tweaks.h
│   │       │   │       │   ├── error_constants.h
│   │       │   │       │   ├── extc++.h
│   │       │   │       │   ├── gthr-default.h
│   │       │   │       │   ├── gthr-posix.h
│   │       │   │       │   ├── gthr-single.h
│   │       │   │       │   ├── gthr.h
│   │       │   │       │   ├── messages_members.h
│   │       │   │       │   ├── opt_random.h
│   │       │   │       │   ├── os_defines.h
│   │       │   │       │   ├── stdc++.h
│   │       │   │       │   ├── stdtr1c++.h
│   │       │   │       │   └── time_members.h
│   │       │   │       ├── ext
│   │       │   │       │   └── opt_random.h
│   │       │   │       └── no-rtti
│   │       │   │           ├── bits
│   │       │   │           │   ├── atomic_word.h
│   │       │   │           │   ├── basic_file.h
│   │       │   │           │   ├── c++allocator.h
│   │       │   │           │   ├── c++config.h
│   │       │   │           │   ├── c++io.h
│   │       │   │           │   ├── c++locale.h
│   │       │   │           │   ├── cpu_defines.h
│   │       │   │           │   ├── ctype_base.h
│   │       │   │           │   ├── ctype_inline.h
│   │       │   │           │   ├── cxxabi_tweaks.h
│   │       │   │           │   ├── error_constants.h
│   │       │   │           │   ├── extc++.h
│   │       │   │           │   ├── gthr-default.h
│   │       │   │           │   ├── gthr-posix.h
│   │       │   │           │   ├── gthr-single.h
│   │       │   │           │   ├── gthr.h
│   │       │   │           │   ├── messages_members.h
│   │       │   │           │   ├── opt_random.h
│   │       │   │           │   ├── os_defines.h
│   │       │   │           │   ├── stdc++.h
│   │       │   │           │   ├── stdtr1c++.h
│   │       │   │           │   └── time_members.h
│   │       │   │           └── ext
│   │       │   │               └── opt_random.h
│   │       │   ├── rv32imafc
│   │       │   │   └── ilp32f
│   │       │   │       ├── bits
│   │       │   │       │   ├── atomic_word.h
│   │       │   │       │   ├── basic_file.h
│   │       │   │       │   ├── c++allocator.h
│   │       │   │       │   ├── c++config.h
│   │       │   │       │   ├── c++io.h
│   │       │   │       │   ├── c++locale.h
│   │       │   │       │   ├── cpu_defines.h
│   │       │   │       │   ├── ctype_base.h
│   │       │   │       │   ├── ctype_inline.h
│   │       │   │       │   ├── cxxabi_tweaks.h
│   │       │   │       │   ├── error_constants.h
│   │       │   │       │   ├── extc++.h
│   │       │   │       │   ├── gthr-default.h
│   │       │   │       │   ├── gthr-posix.h
│   │       │   │       │   ├── gthr-single.h
│   │       │   │       │   ├── gthr.h
│   │       │   │       │   ├── messages_members.h
│   │       │   │       │   ├── opt_random.h
│   │       │   │       │   ├── os_defines.h
│   │       │   │       │   ├── stdc++.h
│   │       │   │       │   ├── stdtr1c++.h
│   │       │   │       │   └── time_members.h
│   │       │   │       ├── ext
│   │       │   │       │   └── opt_random.h
│   │       │   │       └── no-rtti
│   │       │   │           ├── bits
│   │       │   │           │   ├── atomic_word.h
│   │       │   │           │   ├── basic_file.h
│   │       │   │           │   ├── c++allocator.h
│   │       │   │           │   ├── c++config.h
│   │       │   │           │   ├── c++io.h
│   │       │   │           │   ├── c++locale.h
│   │       │   │           │   ├── cpu_defines.h
│   │       │   │           │   ├── ctype_base.h
│   │       │   │           │   ├── ctype_inline.h
│   │       │   │           │   ├── cxxabi_tweaks.h
│   │       │   │           │   ├── error_constants.h
│   │       │   │           │   ├── extc++.h
│   │       │   │           │   ├── gthr-default.h
│   │       │   │           │   ├── gthr-posix.h
│   │       │   │           │   ├── gthr-single.h
│   │       │   │           │   ├── gthr.h
│   │       │   │           │   ├── messages_members.h
│   │       │   │           │   ├── opt_random.h
│   │       │   │           │   ├── os_defines.h
│   │       │   │           │   ├── stdc++.h
│   │       │   │           │   ├── stdtr1c++.h
│   │       │   │           │   └── time_members.h
│   │       │   │           └── ext
│   │       │   │               └── opt_random.h
│   │       │   └── rv32imc
│   │       │       └── ilp32
│   │       │           ├── bits
│   │       │           │   ├── atomic_word.h
│   │       │           │   ├── basic_file.h
│   │       │           │   ├── c++allocator.h
│   │       │           │   ├── c++config.h
│   │       │           │   ├── c++io.h
│   │       │           │   ├── c++locale.h
│   │       │           │   ├── cpu_defines.h
│   │       │           │   ├── ctype_base.h
│   │       │           │   ├── ctype_inline.h
│   │       │           │   ├── cxxabi_tweaks.h
│   │       │           │   ├── error_constants.h
│   │       │           │   ├── extc++.h
│   │       │           │   ├── gthr-default.h
│   │       │           │   ├── gthr-posix.h
│   │       │           │   ├── gthr-single.h
│   │       │           │   ├── gthr.h
│   │       │           │   ├── messages_members.h
│   │       │           │   ├── opt_random.h
│   │       │           │   ├── os_defines.h
│   │       │           │   ├── stdc++.h
│   │       │           │   ├── stdtr1c++.h
│   │       │           │   └── time_members.h
│   │       │           ├── ext
│   │       │           │   └── opt_random.h
│   │       │           └── no-rtti
│   │       │               ├── bits
│   │       │               │   ├── atomic_word.h
│   │       │               │   ├── basic_file.h
│   │       │               │   ├── c++allocator.h
│   │       │               │   ├── c++config.h
│   │       │               │   ├── c++io.h
│   │       │               │   ├── c++locale.h
│   │       │               │   ├── cpu_defines.h
│   │       │               │   ├── ctype_base.h
│   │       │               │   ├── ctype_inline.h
│   │       │               │   ├── cxxabi_tweaks.h
│   │       │               │   ├── error_constants.h
│   │       │               │   ├── extc++.h
│   │       │               │   ├── gthr-default.h
│   │       │               │   ├── gthr-posix.h
│   │       │               │   ├── gthr-single.h
│   │       │               │   ├── gthr.h
│   │       │               │   ├── messages_members.h
│   │       │               │   ├── opt_random.h
│   │       │               │   ├── os_defines.h
│   │       │               │   ├── stdc++.h
│   │       │               │   ├── stdtr1c++.h
│   │       │               │   └── time_members.h
│   │       │               └── ext
│   │       │                   └── opt_random.h
│   │       ├── scoped_allocator
│   │       ├── set
│   │       ├── shared_mutex
│   │       ├── sstream
│   │       ├── stack
│   │       ├── stdexcept
│   │       ├── stdlib.h
│   │       ├── streambuf
│   │       ├── string
│   │       ├── string_view
│   │       ├── system_error
│   │       ├── tgmath.h
│   │       ├── thread
│   │       ├── tr1
│   │       │   ├── array
│   │       │   ├── bessel_function.tcc
│   │       │   ├── beta_function.tcc
│   │       │   ├── ccomplex
│   │       │   ├── cctype
│   │       │   ├── cfenv
│   │       │   ├── cfloat
│   │       │   ├── cinttypes
│   │       │   ├── climits
│   │       │   ├── cmath
│   │       │   ├── complex
│   │       │   ├── complex.h
│   │       │   ├── cstdarg
│   │       │   ├── cstdbool
│   │       │   ├── cstdint
│   │       │   ├── cstdio
│   │       │   ├── cstdlib
│   │       │   ├── ctgmath
│   │       │   ├── ctime
│   │       │   ├── ctype.h
│   │       │   ├── cwchar
│   │       │   ├── cwctype
│   │       │   ├── ell_integral.tcc
│   │       │   ├── exp_integral.tcc
│   │       │   ├── fenv.h
│   │       │   ├── float.h
│   │       │   ├── functional
│   │       │   ├── functional_hash.h
│   │       │   ├── gamma.tcc
│   │       │   ├── hashtable.h
│   │       │   ├── hashtable_policy.h
│   │       │   ├── hypergeometric.tcc
│   │       │   ├── inttypes.h
│   │       │   ├── legendre_function.tcc
│   │       │   ├── limits.h
│   │       │   ├── math.h
│   │       │   ├── memory
│   │       │   ├── modified_bessel_func.tcc
│   │       │   ├── poly_hermite.tcc
│   │       │   ├── poly_laguerre.tcc
│   │       │   ├── random
│   │       │   ├── random.h
│   │       │   ├── random.tcc
│   │       │   ├── regex
│   │       │   ├── riemann_zeta.tcc
│   │       │   ├── shared_ptr.h
│   │       │   ├── special_function_util.h
│   │       │   ├── stdarg.h
│   │       │   ├── stdbool.h
│   │       │   ├── stdint.h
│   │       │   ├── stdio.h
│   │       │   ├── stdlib.h
│   │       │   ├── tgmath.h
│   │       │   ├── tuple
│   │       │   ├── type_traits
│   │       │   ├── unordered_map
│   │       │   ├── unordered_map.h
│   │       │   ├── unordered_set
│   │       │   ├── unordered_set.h
│   │       │   ├── utility
│   │       │   ├── wchar.h
│   │       │   └── wctype.h
│   │       ├── tr2
│   │       │   ├── bool_set
│   │       │   ├── bool_set.tcc
│   │       │   ├── dynamic_bitset
│   │       │   ├── dynamic_bitset.tcc
│   │       │   ├── ratio
│   │       │   └── type_traits
│   │       ├── tuple
│   │       ├── type_traits
│   │       ├── typeindex
│   │       ├── typeinfo
│   │       ├── unordered_map
│   │       ├── unordered_set
│   │       ├── utility
│   │       ├── valarray
│   │       ├── variant
│   │       └── vector
│   ├── complex.h
│   ├── cpio.h
│   ├── ctype.h
│   ├── devctl.h
│   ├── dirent.h
│   ├── elf.h
│   ├── envlock.h
│   ├── envz.h
│   ├── errno.h
│   ├── fastmath.h
│   ├── fcntl.h
│   ├── fenv.h
│   ├── fnmatch.h
│   ├── gdb
│   │   └── jit-reader.h
│   ├── getopt.h
│   ├── glob.h
│   ├── grp.h
│   ├── iconv.h
│   ├── ieeefp.h
│   ├── inttypes.h
│   ├── langinfo.h
│   ├── libgen.h
│   ├── limits.h
│   ├── locale.h
│   ├── machine
│   │   ├── _arc4random.h
│   │   ├── _default_types.h
│   │   ├── _endian.h
│   │   ├── _time.h
│   │   ├── _types.h
│   │   ├── ansi.h
│   │   ├── endian.h
│   │   ├── fastmath.h
│   │   ├── ieeefp.h
│   │   ├── malloc.h
│   │   ├── param.h
│   │   ├── setjmp-dj.h
│   │   ├── setjmp.h
│   │   ├── stdlib.h
│   │   ├── syscall.h
│   │   ├── termios.h
│   │   ├── time.h
│   │   └── types.h
│   ├── malloc.h
│   ├── math.h
│   ├── memory.h
│   ├── ndbm.h
│   ├── newlib.h
│   ├── paths.h
│   ├── pthread.h
│   ├── pwd.h
│   ├── reent.h
│   ├── regdef.h
│   ├── regex.h
│   ├── rpc
│   ├── sched.h
│   ├── search.h
│   ├── setjmp.h
│   ├── signal.h
│   ├── spawn.h
│   ├── ssp
│   │   ├── ssp.h
│   │   ├── stdio.h
│   │   ├── stdlib.h
│   │   ├── string.h
│   │   ├── strings.h
│   │   ├── unistd.h
│   │   └── wchar.h
│   ├── stdatomic.h
│   ├── stdint.h
│   ├── stdio.h
│   ├── stdio_ext.h
│   ├── stdlib.h
│   ├── string.h
│   ├── strings.h
│   ├── sys
│   │   ├── _default_fcntl.h
│   │   ├── _intsup.h
│   │   ├── _locale.h
│   │   ├── _pthreadtypes.h
│   │   ├── _sigset.h
│   │   ├── _stdint.h
│   │   ├── _timespec.h
│   │   ├── _timeval.h
│   │   ├── _types.h
│   │   ├── asm.h
│   │   ├── cdefs.h
│   │   ├── config.h
│   │   ├── custom_file.h
│   │   ├── dir.h
│   │   ├── dirent.h
│   │   ├── errno.h
│   │   ├── fcntl.h
│   │   ├── features.h
│   │   ├── fenv.h
│   │   ├── file.h
│   │   ├── iconvnls.h
│   │   ├── lock.h
│   │   ├── param.h
│   │   ├── queue.h
│   │   ├── reent.h
│   │   ├── resource.h
│   │   ├── sched.h
│   │   ├── select.h
│   │   ├── signal.h
│   │   ├── stat.h
│   │   ├── stdio.h
│   │   ├── string.h
│   │   ├── syslimits.h
│   │   ├── time.h
│   │   ├── timeb.h
│   │   ├── times.h
│   │   ├── timespec.h
│   │   ├── tree.h
│   │   ├── types.h
│   │   ├── unistd.h
│   │   ├── utime.h
│   │   └── wait.h
│   ├── tar.h
│   ├── termios.h
│   ├── tgmath.h
│   ├── threads.h
│   ├── time.h
│   ├── unctrl.h
│   ├── unistd.h
│   ├── utime.h
│   ├── utmp.h
│   ├── wchar.h
│   ├── wctype.h
│   └── wordexp.h
├── lib
│   ├── crt0.o
│   ├── default.specs
│   ├── libc.a
│   ├── libc_nano.a
│   ├── libg.a
│   ├── libg_nano.a
│   ├── libgloss.a
│   ├── libm.a
│   ├── libm_nano.a
│   ├── libnosys.a
│   ├── libsim.a
│   ├── libstdc++.a
│   ├── libstdc++.a-gdb.py
│   ├── libsupc++.a
│   ├── nano.specs
│   ├── no-rtti
│   │   ├── crt0.o
│   │   ├── default.specs
│   │   ├── libc.a
│   │   ├── libc_nano.a
│   │   ├── libg.a
│   │   ├── libg_nano.a
│   │   ├── libgloss.a
│   │   ├── libm.a
│   │   ├── libm_nano.a
│   │   ├── libnosys.a
│   │   ├── libsim.a
│   │   ├── nano.specs
│   │   ├── nosys.specs
│   │   └── sim.specs
│   ├── nosys.specs
│   ├── rv32i
│   │   └── ilp32
│   │       ├── crt0.o
│   │       ├── default.specs
│   │       ├── libc.a
│   │       ├── libc_nano.a
│   │       ├── libg.a
│   │       ├── libg_nano.a
│   │       ├── libgloss.a
│   │       ├── libm.a
│   │       ├── libm_nano.a
│   │       ├── libnosys.a
│   │       ├── libsim.a
│   │       ├── libstdc++.a
│   │       ├── libstdc++.a-gdb.py
│   │       ├── libsupc++.a
│   │       ├── nano.specs
│   │       ├── no-rtti
│   │       │   ├── crt0.o
│   │       │   ├── default.specs
│   │       │   ├── libc.a
│   │       │   ├── libc_nano.a
│   │       │   ├── libg.a
│   │       │   ├── libg_nano.a
│   │       │   ├── libgloss.a
│   │       │   ├── libm.a
│   │       │   ├── libm_nano.a
│   │       │   ├── libnosys.a
│   │       │   ├── libsim.a
│   │       │   ├── libstdc++.a
│   │       │   ├── libstdc++.a-gdb.py
│   │       │   ├── libsupc++.a
│   │       │   ├── nano.specs
│   │       │   ├── nosys.specs
│   │       │   └── sim.specs
│   │       ├── nosys.specs
│   │       └── sim.specs
│   ├── rv32imafc
│   │   └── ilp32f
│   │       ├── crt0.o
│   │       ├── default.specs
│   │       ├── libc.a
│   │       ├── libc_nano.a
│   │       ├── libg.a
│   │       ├── libg_nano.a
│   │       ├── libgloss.a
│   │       ├── libm.a
│   │       ├── libm_nano.a
│   │       ├── libnosys.a
│   │       ├── libsim.a
│   │       ├── libstdc++.a
│   │       ├── libstdc++.a-gdb.py
│   │       ├── libsupc++.a
│   │       ├── nano.specs
│   │       ├── no-rtti
│   │       │   ├── crt0.o
│   │       │   ├── default.specs
│   │       │   ├── libc.a
│   │       │   ├── libc_nano.a
│   │       │   ├── libg.a
│   │       │   ├── libg_nano.a
│   │       │   ├── libgloss.a
│   │       │   ├── libm.a
│   │       │   ├── libm_nano.a
│   │       │   ├── libnosys.a
│   │       │   ├── libsim.a
│   │       │   ├── libstdc++.a
│   │       │   ├── libstdc++.a-gdb.py
│   │       │   ├── libsupc++.a
│   │       │   ├── nano.specs
│   │       │   ├── nosys.specs
│   │       │   └── sim.specs
│   │       ├── nosys.specs
│   │       └── sim.specs
│   ├── rv32imc
│   │   └── ilp32
│   │       ├── crt0.o
│   │       ├── default.specs
│   │       ├── libc.a
│   │       ├── libc_nano.a
│   │       ├── libg.a
│   │       ├── libg_nano.a
│   │       ├── libgloss.a
│   │       ├── libm.a
│   │       ├── libm_nano.a
│   │       ├── libnosys.a
│   │       ├── libsim.a
│   │       ├── libstdc++.a
│   │       ├── libstdc++.a-gdb.py
│   │       ├── libsupc++.a
│   │       ├── nano.specs
│   │       ├── no-rtti
│   │       │   ├── crt0.o
│   │       │   ├── default.specs
│   │       │   ├── libc.a
│   │       │   ├── libc_nano.a
│   │       │   ├── libg.a
│   │       │   ├── libg_nano.a
│   │       │   ├── libgloss.a
│   │       │   ├── libm.a
│   │       │   ├── libm_nano.a
│   │       │   ├── libnosys.a
│   │       │   ├── libsim.a
│   │       │   ├── libstdc++.a
│   │       │   ├── libstdc++.a-gdb.py
│   │       │   ├── libsupc++.a
│   │       │   ├── nano.specs
│   │       │   ├── nosys.specs
│   │       │   └── sim.specs
│   │       ├── nosys.specs
│   │       └── sim.specs
│   └── sim.specs
├── sys-include
│   ├── COPIED
│   ├── _ansi.h
│   ├── _newlib_version.h
│   ├── _syslist.h
│   ├── alloca.h
│   ├── ar.h
│   ├── argz.h
│   ├── assert.h
│   ├── bits
│   ├── complex.h
│   ├── cpio.h
│   ├── ctype.h
│   ├── devctl.h
│   ├── dirent.h
│   ├── elf.h
│   ├── envlock.h
│   ├── envz.h
│   ├── errno.h
│   ├── fastmath.h
│   ├── fcntl.h
│   ├── fenv.h
│   ├── fnmatch.h
│   ├── getopt.h
│   ├── glob.h
│   ├── grp.h
│   ├── iconv.h
│   ├── ieeefp.h
│   ├── inttypes.h
│   ├── langinfo.h
│   ├── libgen.h
│   ├── limits.h
│   ├── locale.h
│   ├── machine
│   │   ├── _arc4random.h
│   │   ├── _default_types.h
│   │   ├── _endian.h
│   │   ├── _time.h
│   │   ├── _types.h
│   │   ├── ansi.h
│   │   ├── endian.h
│   │   ├── fastmath.h
│   │   ├── ieeefp.h
│   │   ├── malloc.h
│   │   ├── param.h
│   │   ├── setjmp-dj.h
│   │   ├── setjmp.h
│   │   ├── stdlib.h
│   │   ├── syscall.h
│   │   ├── termios.h
│   │   ├── time.h
│   │   └── types.h
│   ├── malloc.h
│   ├── math.h
│   ├── memory.h
│   ├── ndbm.h
│   ├── newlib.h
│   ├── paths.h
│   ├── pthread.h
│   ├── pwd.h
│   ├── reent.h
│   ├── regdef.h
│   ├── regex.h
│   ├── rpc
│   ├── sched.h
│   ├── search.h
│   ├── setjmp.h
│   ├── signal.h
│   ├── spawn.h
│   ├── ssp
│   │   ├── ssp.h
│   │   ├── stdio.h
│   │   ├── stdlib.h
│   │   ├── string.h
│   │   ├── strings.h
│   │   ├── unistd.h
│   │   └── wchar.h
│   ├── stdatomic.h
│   ├── stdint.h
│   ├── stdio.h
│   ├── stdio_ext.h
│   ├── stdlib.h
│   ├── string.h
│   ├── strings.h
│   ├── sys
│   │   ├── _default_fcntl.h
│   │   ├── _intsup.h
│   │   ├── _locale.h
│   │   ├── _pthreadtypes.h
│   │   ├── _sigset.h
│   │   ├── _stdint.h
│   │   ├── _timespec.h
│   │   ├── _timeval.h
│   │   ├── _types.h
│   │   ├── asm.h
│   │   ├── cdefs.h
│   │   ├── config.h
│   │   ├── custom_file.h
│   │   ├── dir.h
│   │   ├── dirent.h
│   │   ├── errno.h
│   │   ├── fcntl.h
│   │   ├── features.h
│   │   ├── fenv.h
│   │   ├── file.h
│   │   ├── iconvnls.h
│   │   ├── lock.h
│   │   ├── param.h
│   │   ├── queue.h
│   │   ├── reent.h
│   │   ├── resource.h
│   │   ├── sched.h
│   │   ├── select.h
│   │   ├── signal.h
│   │   ├── stat.h
│   │   ├── stdio.h
│   │   ├── string.h
│   │   ├── syslimits.h
│   │   ├── time.h
│   │   ├── timeb.h
│   │   ├── times.h
│   │   ├── timespec.h
│   │   ├── tree.h
│   │   ├── types.h
│   │   ├── unistd.h
│   │   ├── utime.h
│   │   └── wait.h
│   ├── tar.h
│   ├── termios.h
│   ├── tgmath.h
│   ├── threads.h
│   ├── time.h
│   ├── unctrl.h
│   ├── unistd.h
│   ├── utime.h
│   ├── utmp.h
│   ├── wchar.h
│   ├── wctype.h
│   └── wordexp.h
└── usr
    └── lib

93 directories, 1317 files
AnthonyGrondin commented 1 year ago

So this ended up being the sysroot, that wasn't the right directory. I've found the following paths on my system that when used as the sysroot with provide the same bindings as upstream:

I believe I should be taking the one from the toolchain for best compatibility.

AnthonyGrondin commented 8 months ago

Not sure if this is still an issue or not, but the compilation and headers changed when adding hardware accelerated modular exponentiation and switching over to clang in #24, so I will close this.