Files
esp-idf/components/cxx/test_apps/.build-test-rules.yml
Alexey Lapshin b3ae652f21 feat(build): add CONFIG_COMPILER_CXX_ATOMIC_LOCK_POLICY option
libstdc++ selects between a lock-free and a mutex-based policy for
std::shared_ptr reference counting based on this macro. Enabling this
option forces the lock-free policy, which avoids pulling in the
mutex-based implementation and can reduce code size.

Note: the lock-free policy avoids embedding a mutex in each control
block, saving about 88 bytes per shared_ptr, and improves performance
by using atomic operations instead of mutex locking.

Note: this option changes the ABI of libstdc++ atomic/shared_ptr
helpers. It can be incompatible when linking against prebuilt
libraries that were compiled without it, leading to link errors or
undefined runtime behavior. Only enable it if all C++ objects and
libraries in the build use the same setting.
2026-07-23 18:20:25 +07:00

19 lines
493 B
YAML

# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/cxx/test_apps:
enable:
- if: IDF_TARGET in ["esp32", "esp32c3", "esp32c61", "esp32p4"]
temporary: true
reason: the other targets are not tested yet
depends_components:
- cxx
- pthread
- freertos
components/cxx/test_apps/atomic_lock_policy:
enable:
- if: IDF_TARGET == "esp32c5"
disable:
- if: IDF_TARGET != "esp32c5"
reason: only built on ESP32-C5