[libc++] Add a CMake option to control whether the debug mode is supported
authorLouis Dionne <ldionne@apple.com>
Tue, 6 Oct 2020 20:46:58 +0000 (16:46 -0400)
committerLouis Dionne <ldionne@apple.com>
Wed, 7 Oct 2020 13:20:59 +0000 (09:20 -0400)
commitce1365f8f7e3d8297d74afafe7cbbda442a25c50
tree32980a62fe20ee7d05c4d64fc16cc843c10c5309
parent602c193e2aeb19f5d2e48075281601a2386e8758
[libc++] Add a CMake option to control whether the debug mode is supported

Some libc++ builds may want to disable support for the debug mode,
for example to reduce code size or because the current implementation
of the debug mode requires a global map. This commit adds the
LIBCXX_ENABLE_DEBUG_MODE CMake option and ties it into the test
suite.

It also adds a CI job to test this configuration going forward.

Differential Revision: https://reviews.llvm.org/D88923
138 files changed:
libcxx/CMakeLists.txt
libcxx/cmake/caches/Apple.cmake
libcxx/cmake/caches/Generic-nodebug.cmake [new file with mode: 0644]
libcxx/src/CMakeLists.txt
libcxx/test/CMakeLists.txt
libcxx/test/configs/legacy.cfg.in
libcxx/test/libcxx/containers/sequences/array/array.zero/db_back.pass.cpp
libcxx/test/libcxx/containers/sequences/array/array.zero/db_front.pass.cpp
libcxx/test/libcxx/containers/sequences/array/array.zero/db_indexing.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/emplace_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_iter_iter_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_rvalue_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_size_value_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_value_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.modifiers/pop_back_db1.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp
libcxx/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp
libcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_bucket.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_const_lvalue.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_rvalue.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/db_move.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
libcxx/test/libcxx/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_const_lvalue.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_rvalue.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/db_move.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/db_insert_hint_const_lvalue.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/db_move.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
libcxx/test/libcxx/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/db_insert_hint_const_lvalue.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/db_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/db_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_7.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_8.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/db_move.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/erase_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
libcxx/test/libcxx/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
libcxx/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp
libcxx/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp
libcxx/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp
libcxx/test/libcxx/debug/containers/db_string.pass.cpp
libcxx/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp
libcxx/test/libcxx/debug/db_string_view.pass.cpp
libcxx/test/libcxx/debug/debug_abort.pass.cpp
libcxx/test/libcxx/debug/debug_helper_test.pass.cpp
libcxx/test/libcxx/debug/debug_register.pass.cpp
libcxx/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp
libcxx/test/libcxx/iterators/advance.debug1.pass.cpp
libcxx/test/libcxx/iterators/next.debug1.pass.cpp
libcxx/test/libcxx/iterators/prev.debug1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/db_back.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/db_cback.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/db_cfront.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/db_cindex.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/db_front.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/db_index.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_iter_iter_db1.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp
libcxx/test/libcxx/thread/futures/futures.promise/set_exception.pass.cpp
libcxx/test/libcxx/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp
libcxx/utils/ci/buildkite-pipeline.yml
libcxx/utils/ci/macos-backdeployment.sh
libcxx/utils/ci/run-buildbot.sh
libcxx/utils/libcxx/test/params.py