[libc-commits] [libc] [libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (PR #98597)

Petr Hosek via libc-commits libc-commits at lists.llvm.org
Fri Jul 12 01:09:17 PDT 2024


https://github.com/petrhosek updated https://github.com/llvm/llvm-project/pull/98597

>From 75e6d5b652acab2fd9211cb70030d9dd0c8bfa74 Mon Sep 17 00:00:00 2001
From: Petr Hosek <phosek at google.com>
Date: Thu, 11 Jul 2024 12:35:22 -0700
Subject: [PATCH] [libc] Migrate to using LIBC_NAMESPACE_DECL for namespace
 declaration

This is a part of #97655.
---
 libc/benchmarks/LibcDefaultImplementations.cpp   |  5 +++--
 libc/benchmarks/LibcMemoryBenchmarkMain.cpp      |  5 +++--
 libc/benchmarks/automemcpy/lib/CodeGen.cpp       |  5 +++--
 .../automemcpy/unittests/CodeGenTest.cpp         |  5 +++--
 libc/benchmarks/gpu/BenchmarkLogger.cpp          |  5 +++--
 libc/benchmarks/gpu/BenchmarkLogger.h            |  6 ++++--
 libc/benchmarks/gpu/LibcGpuBenchmark.cpp         |  5 +++--
 libc/benchmarks/gpu/LibcGpuBenchmark.h           |  5 +++--
 libc/benchmarks/gpu/timing/amdgpu/timing.h       |  4 ++--
 libc/benchmarks/gpu/timing/nvptx/timing.h        |  4 ++--
 libc/cmake/modules/LLVMLibCObjectRules.cmake     | 10 +++++-----
 libc/config/linux/app.h                          |  5 +++--
 libc/docs/dev/clang_tidy_checks.rst              | 14 +++++++-------
 libc/fuzzing/__support/hashtable_fuzz.cpp        |  5 +++--
 libc/src/__support/CPP/algorithm.h               |  5 +++--
 libc/src/__support/CPP/array.h                   |  5 +++--
 libc/src/__support/CPP/atomic.h                  |  5 +++--
 libc/src/__support/CPP/bit.h                     |  7 +++++--
 libc/src/__support/CPP/bitset.h                  |  7 +++++--
 libc/src/__support/CPP/cstddef.h                 |  7 +++++--
 libc/src/__support/CPP/expected.h                |  7 +++++--
 libc/src/__support/CPP/functional.h              |  5 +++--
 libc/src/__support/CPP/iterator.h                |  5 +++--
 libc/src/__support/CPP/limits.h                  |  5 +++--
 libc/src/__support/CPP/mutex.h                   |  6 ++++--
 libc/src/__support/CPP/new.h                     |  5 +++--
 libc/src/__support/CPP/optional.h                |  5 +++--
 libc/src/__support/CPP/span.h                    |  7 +++++--
 libc/src/__support/CPP/string.h                  |  5 +++--
 libc/src/__support/CPP/string_view.h             |  5 +++--
 libc/src/__support/CPP/stringstream.h            |  5 +++--
 .../CPP/type_traits/add_lvalue_reference.h       |  7 +++++--
 libc/src/__support/CPP/type_traits/add_pointer.h |  7 +++++--
 .../CPP/type_traits/add_rvalue_reference.h       |  7 +++++--
 .../__support/CPP/type_traits/aligned_storage.h  |  7 +++++--
 .../src/__support/CPP/type_traits/always_false.h |  7 +++++--
 .../__support/CPP/type_traits/bool_constant.h    |  7 +++++--
 libc/src/__support/CPP/type_traits/conditional.h |  7 +++++--
 libc/src/__support/CPP/type_traits/decay.h       |  7 +++++--
 libc/src/__support/CPP/type_traits/enable_if.h   |  7 +++++--
 libc/src/__support/CPP/type_traits/false_type.h  |  7 +++++--
 .../CPP/type_traits/integral_constant.h          |  7 +++++--
 libc/src/__support/CPP/type_traits/invoke.h      |  7 +++++--
 .../__support/CPP/type_traits/invoke_result.h    |  7 +++++--
 .../__support/CPP/type_traits/is_arithmetic.h    |  7 +++++--
 libc/src/__support/CPP/type_traits/is_array.h    |  7 +++++--
 libc/src/__support/CPP/type_traits/is_base_of.h  |  7 +++++--
 libc/src/__support/CPP/type_traits/is_class.h    |  7 +++++--
 libc/src/__support/CPP/type_traits/is_const.h    |  7 +++++--
 .../CPP/type_traits/is_constant_evaluated.h      |  7 +++++--
 .../__support/CPP/type_traits/is_convertible.h   |  7 +++++--
 .../__support/CPP/type_traits/is_destructible.h  |  7 +++++--
 libc/src/__support/CPP/type_traits/is_enum.h     |  7 +++++--
 .../__support/CPP/type_traits/is_fixed_point.h   |  7 +++++--
 .../CPP/type_traits/is_floating_point.h          |  7 +++++--
 libc/src/__support/CPP/type_traits/is_function.h |  7 +++++--
 libc/src/__support/CPP/type_traits/is_integral.h |  7 +++++--
 .../CPP/type_traits/is_lvalue_reference.h        |  7 +++++--
 .../CPP/type_traits/is_member_pointer.h          |  7 +++++--
 .../__support/CPP/type_traits/is_null_pointer.h  |  7 +++++--
 libc/src/__support/CPP/type_traits/is_object.h   |  7 +++++--
 libc/src/__support/CPP/type_traits/is_pointer.h  |  7 +++++--
 .../src/__support/CPP/type_traits/is_reference.h |  7 +++++--
 .../CPP/type_traits/is_rvalue_reference.h        |  7 +++++--
 libc/src/__support/CPP/type_traits/is_same.h     |  7 +++++--
 libc/src/__support/CPP/type_traits/is_scalar.h   |  7 +++++--
 libc/src/__support/CPP/type_traits/is_signed.h   |  7 +++++--
 .../CPP/type_traits/is_trivially_constructible.h |  7 +++++--
 .../CPP/type_traits/is_trivially_copyable.h      |  7 +++++--
 .../CPP/type_traits/is_trivially_destructible.h  |  7 +++++--
 libc/src/__support/CPP/type_traits/is_union.h    |  7 +++++--
 libc/src/__support/CPP/type_traits/is_unsigned.h |  7 +++++--
 libc/src/__support/CPP/type_traits/is_void.h     |  7 +++++--
 libc/src/__support/CPP/type_traits/make_signed.h |  7 +++++--
 .../__support/CPP/type_traits/make_unsigned.h    |  7 +++++--
 .../CPP/type_traits/remove_all_extents.h         |  7 +++++--
 libc/src/__support/CPP/type_traits/remove_cv.h   |  7 +++++--
 .../src/__support/CPP/type_traits/remove_cvref.h |  7 +++++--
 .../__support/CPP/type_traits/remove_extent.h    |  7 +++++--
 .../__support/CPP/type_traits/remove_reference.h |  7 +++++--
 libc/src/__support/CPP/type_traits/true_type.h   |  7 +++++--
 .../__support/CPP/type_traits/type_identity.h    |  8 ++++++--
 libc/src/__support/CPP/type_traits/void_t.h      |  7 +++++--
 libc/src/__support/CPP/utility/declval.h         |  7 +++++--
 libc/src/__support/CPP/utility/forward.h         |  7 +++++--
 libc/src/__support/CPP/utility/in_place.h        |  7 +++++--
 .../src/__support/CPP/utility/integer_sequence.h |  7 +++++--
 libc/src/__support/CPP/utility/move.h            |  7 +++++--
 libc/src/__support/FPUtil/BasicOperations.h      |  5 +++--
 .../FPUtil/DivisionAndRemainderOperations.h      |  5 +++--
 libc/src/__support/FPUtil/FEnvImpl.h             | 13 +++++++++----
 libc/src/__support/FPUtil/FMA.h                  |  5 +++--
 libc/src/__support/FPUtil/FPBits.h               |  5 +++--
 libc/src/__support/FPUtil/Hypot.h                |  5 +++--
 .../src/__support/FPUtil/ManipulationFunctions.h |  5 +++--
 .../__support/FPUtil/NearestIntegerOperations.h  |  5 +++--
 libc/src/__support/FPUtil/NormalFloat.h          |  5 +++--
 libc/src/__support/FPUtil/PolyEval.h             |  5 +++--
 libc/src/__support/FPUtil/aarch64/FEnvImpl.h     |  5 +++--
 .../__support/FPUtil/aarch64/fenv_darwin_impl.h  |  5 +++--
 .../__support/FPUtil/aarch64/nearest_integer.h   |  5 +++--
 libc/src/__support/FPUtil/aarch64/sqrt.h         |  5 +++--
 libc/src/__support/FPUtil/arm/FEnvImpl.h         |  5 +++--
 libc/src/__support/FPUtil/double_double.h        |  7 +++++--
 libc/src/__support/FPUtil/dyadic_float.h         |  7 +++++--
 libc/src/__support/FPUtil/except_value_utils.h   |  5 +++--
 libc/src/__support/FPUtil/fpbits_str.h           |  5 +++--
 libc/src/__support/FPUtil/generic/FMA.h          |  5 +++--
 libc/src/__support/FPUtil/generic/FMod.h         |  5 +++--
 libc/src/__support/FPUtil/generic/README.md      |  4 ++--
 libc/src/__support/FPUtil/generic/add_sub.h      |  7 +++++--
 libc/src/__support/FPUtil/generic/div.h          |  7 +++++--
 libc/src/__support/FPUtil/generic/sqrt.h         |  5 +++--
 .../FPUtil/generic/sqrt_80_bit_long_double.h     |  5 +++--
 libc/src/__support/FPUtil/multiply_add.h         |  9 +++++----
 libc/src/__support/FPUtil/nearest_integer.h      |  9 +++++----
 libc/src/__support/FPUtil/riscv/FEnvImpl.h       |  4 ++--
 libc/src/__support/FPUtil/riscv/sqrt.h           |  5 +++--
 libc/src/__support/FPUtil/rounding_mode.h        |  7 +++++--
 libc/src/__support/FPUtil/triple_double.h        |  8 ++++++--
 libc/src/__support/FPUtil/x86_64/FEnvImpl.h      |  5 +++--
 .../FPUtil/x86_64/NextAfterLongDouble.h          |  5 +++--
 .../FPUtil/x86_64/NextUpDownLongDouble.h         |  7 +++++--
 .../__support/FPUtil/x86_64/nearest_integer.h    |  5 +++--
 libc/src/__support/FPUtil/x86_64/sqrt.h          |  5 +++--
 libc/src/__support/File/dir.cpp                  |  5 +++--
 libc/src/__support/File/dir.h                    |  5 +++--
 libc/src/__support/File/file.cpp                 |  5 +++--
 libc/src/__support/File/file.h                   |  5 +++--
 libc/src/__support/File/linux/dir.cpp            |  5 +++--
 libc/src/__support/File/linux/file.cpp           |  7 ++++---
 libc/src/__support/File/linux/file.h             |  5 +++--
 libc/src/__support/File/linux/lseekImpl.h        |  5 +++--
 libc/src/__support/File/linux/stderr.cpp         |  5 +++--
 libc/src/__support/File/linux/stdin.cpp          |  5 +++--
 libc/src/__support/File/linux/stdout.cpp         |  5 +++--
 libc/src/__support/GPU/allocator.cpp             |  5 +++--
 libc/src/__support/GPU/allocator.h               |  5 +++--
 libc/src/__support/GPU/amdgpu/utils.h            |  4 ++--
 libc/src/__support/GPU/generic/utils.h           |  5 +++--
 libc/src/__support/GPU/nvptx/utils.h             |  5 +++--
 libc/src/__support/GPU/utils.h                   |  5 +++--
 libc/src/__support/HashTable/bitmask.h           |  5 +++--
 .../__support/HashTable/generic/bitmask_impl.inc |  5 +++--
 libc/src/__support/HashTable/randomness.h        |  5 +++--
 .../__support/HashTable/sse2/bitmask_impl.inc    |  7 +++++--
 libc/src/__support/HashTable/table.h             |  5 +++--
 libc/src/__support/OSUtil/baremetal/exit.cpp     |  7 +++++--
 libc/src/__support/OSUtil/baremetal/io.cpp       |  5 +++--
 libc/src/__support/OSUtil/baremetal/io.h         |  5 +++--
 libc/src/__support/OSUtil/darwin/arm/syscall.h   |  5 +++--
 libc/src/__support/OSUtil/darwin/io.h            |  5 +++--
 libc/src/__support/OSUtil/darwin/syscall.h       |  5 +++--
 libc/src/__support/OSUtil/exit.h                 |  8 ++++++--
 libc/src/__support/OSUtil/fcntl.h                |  8 ++++++--
 libc/src/__support/OSUtil/fuchsia/io.h           |  5 +++--
 libc/src/__support/OSUtil/gpu/exit.cpp           |  7 +++++--
 libc/src/__support/OSUtil/gpu/io.cpp             |  5 +++--
 libc/src/__support/OSUtil/gpu/io.h               |  5 +++--
 .../src/__support/OSUtil/linux/aarch64/syscall.h |  5 +++--
 libc/src/__support/OSUtil/linux/arm/syscall.h    |  5 +++--
 libc/src/__support/OSUtil/linux/exit.cpp         |  7 +++++--
 libc/src/__support/OSUtil/linux/fcntl.cpp        |  7 +++++--
 libc/src/__support/OSUtil/linux/io.h             |  5 +++--
 libc/src/__support/OSUtil/linux/riscv/syscall.h  |  5 +++--
 libc/src/__support/OSUtil/linux/syscall.h        |  5 +++--
 libc/src/__support/OSUtil/linux/x86_64/syscall.h |  5 +++--
 libc/src/__support/RPC/rpc.h                     |  5 +++--
 libc/src/__support/RPC/rpc_client.cpp            |  5 +++--
 libc/src/__support/RPC/rpc_client.h              |  5 +++--
 libc/src/__support/RPC/rpc_util.h                |  5 +++--
 .../src/__support/StringUtil/error_to_string.cpp |  5 +++--
 libc/src/__support/StringUtil/error_to_string.h  |  5 +++--
 libc/src/__support/StringUtil/message_mapper.h   |  5 +++--
 .../__support/StringUtil/signal_to_string.cpp    |  5 +++--
 libc/src/__support/StringUtil/signal_to_string.h |  5 +++--
 .../StringUtil/tables/linux_extension_errors.h   |  5 +++--
 .../StringUtil/tables/linux_extension_signals.h  |  5 +++--
 .../StringUtil/tables/linux_platform_errors.h    |  5 +++--
 .../StringUtil/tables/linux_platform_signals.h   |  5 +++--
 .../StringUtil/tables/minimal_platform_errors.h  |  5 +++--
 .../StringUtil/tables/minimal_platform_signals.h |  5 +++--
 .../__support/StringUtil/tables/posix_errors.h   |  5 +++--
 .../__support/StringUtil/tables/posix_signals.h  |  5 +++--
 .../__support/StringUtil/tables/signal_table.h   |  7 +++++--
 .../__support/StringUtil/tables/stdc_errors.h    |  5 +++--
 .../__support/StringUtil/tables/stdc_signals.h   |  5 +++--
 libc/src/__support/arg_list.h                    |  5 +++--
 libc/src/__support/big_int.h                     |  5 +++--
 libc/src/__support/block.h                       |  5 +++--
 libc/src/__support/blockstore.h                  |  5 +++--
 libc/src/__support/c_string.h                    |  5 +++--
 libc/src/__support/char_vector.h                 |  5 +++--
 libc/src/__support/common.h                      |  5 +++--
 libc/src/__support/ctype_utils.h                 |  5 +++--
 libc/src/__support/detailed_powers_of_ten.h      |  5 +++--
 libc/src/__support/endian.h                      |  5 +++--
 libc/src/__support/error_or.h                    |  5 +++--
 libc/src/__support/fixed_point/fx_bits.h         |  7 +++++--
 libc/src/__support/fixed_point/fx_rep.h          |  7 +++++--
 libc/src/__support/fixed_point/sqrt.h            |  7 +++++--
 libc/src/__support/fixedvector.h                 |  5 +++--
 libc/src/__support/float_to_string.h             |  5 +++--
 libc/src/__support/freelist.h                    |  5 +++--
 libc/src/__support/freelist_heap.h               |  5 +++--
 libc/src/__support/hash.h                        |  5 +++--
 libc/src/__support/high_precision_decimal.h      |  5 +++--
 libc/src/__support/integer_literals.h            |  5 +++--
 libc/src/__support/integer_operations.h          |  5 +++--
 libc/src/__support/integer_to_string.h           |  5 +++--
 libc/src/__support/intrusive_list.h              |  5 +++--
 libc/src/__support/libc_assert.h                 |  5 +++--
 libc/src/__support/macros/config.h               |  1 +
 libc/src/__support/macros/optimization.h         |  7 +++++--
 libc/src/__support/math_extras.h                 |  5 +++--
 libc/src/__support/memory_size.h                 |  5 +++--
 libc/src/__support/number_pair.h                 |  5 +++--
 libc/src/__support/str_to_float.h                |  5 +++--
 libc/src/__support/str_to_integer.h              |  5 +++--
 libc/src/__support/str_to_num_result.h           |  5 +++--
 libc/src/__support/threads/CndVar.h              |  5 +++--
 libc/src/__support/threads/callonce.h            |  5 +++--
 libc/src/__support/threads/fork_callbacks.cpp    |  5 +++--
 libc/src/__support/threads/fork_callbacks.h      |  6 ++++--
 libc/src/__support/threads/gpu/mutex.h           |  5 +++--
 libc/src/__support/threads/linux/CndVar.cpp      |  5 +++--
 libc/src/__support/threads/linux/callonce.cpp    |  5 +++--
 libc/src/__support/threads/linux/callonce.h      |  5 +++--
 libc/src/__support/threads/linux/futex_utils.h   |  5 +++--
 libc/src/__support/threads/linux/futex_word.h    |  5 +++--
 libc/src/__support/threads/linux/mutex.h         |  5 +++--
 libc/src/__support/threads/linux/raw_mutex.h     |  5 +++--
 libc/src/__support/threads/linux/rwlock.h        |  5 +++--
 libc/src/__support/threads/linux/thread.cpp      |  5 +++--
 libc/src/__support/threads/mutex_common.h        |  6 ++++--
 libc/src/__support/threads/sleep.h               |  5 +++--
 libc/src/__support/threads/thread.cpp            |  5 +++--
 libc/src/__support/threads/thread.h              |  5 +++--
 libc/src/__support/time/linux/abs_timeout.h      |  5 +++--
 libc/src/__support/time/linux/clock_conversion.h |  5 +++--
 libc/src/__support/time/linux/clock_gettime.h    |  5 +++--
 libc/src/__support/time/linux/monotonicity.h     |  5 +++--
 libc/src/__support/time/units.h                  |  5 +++--
 libc/src/__support/wctype_utils.h                |  5 +++--
 libc/src/assert/__assert_fail.h                  |  5 +++--
 libc/src/assert/generic/__assert_fail.cpp        |  5 +++--
 libc/src/assert/gpu/__assert_fail.cpp            |  5 +++--
 libc/src/ctype/isalnum.cpp                       |  5 +++--
 libc/src/ctype/isalnum.h                         |  6 ++++--
 libc/src/ctype/isalpha.cpp                       |  5 +++--
 libc/src/ctype/isalpha.h                         |  6 ++++--
 libc/src/ctype/isascii.cpp                       |  5 +++--
 libc/src/ctype/isascii.h                         |  5 +++--
 libc/src/ctype/isblank.cpp                       |  5 +++--
 libc/src/ctype/isblank.h                         |  6 ++++--
 libc/src/ctype/iscntrl.cpp                       |  5 +++--
 libc/src/ctype/iscntrl.h                         |  6 ++++--
 libc/src/ctype/isdigit.cpp                       |  5 +++--
 libc/src/ctype/isdigit.h                         |  6 ++++--
 libc/src/ctype/isgraph.cpp                       |  5 +++--
 libc/src/ctype/isgraph.h                         |  6 ++++--
 libc/src/ctype/islower.cpp                       |  5 +++--
 libc/src/ctype/islower.h                         |  6 ++++--
 libc/src/ctype/isprint.cpp                       |  5 +++--
 libc/src/ctype/isprint.h                         |  6 ++++--
 libc/src/ctype/ispunct.cpp                       |  5 +++--
 libc/src/ctype/ispunct.h                         |  6 ++++--
 libc/src/ctype/isspace.cpp                       |  5 +++--
 libc/src/ctype/isspace.h                         |  6 ++++--
 libc/src/ctype/isupper.cpp                       |  5 +++--
 libc/src/ctype/isupper.h                         |  6 ++++--
 libc/src/ctype/isxdigit.cpp                      |  5 +++--
 libc/src/ctype/isxdigit.h                        |  6 ++++--
 libc/src/ctype/toascii.cpp                       |  5 +++--
 libc/src/ctype/toascii.h                         |  6 ++++--
 libc/src/ctype/tolower.cpp                       |  5 +++--
 libc/src/ctype/tolower.h                         |  6 ++++--
 libc/src/ctype/toupper.cpp                       |  5 +++--
 libc/src/ctype/toupper.h                         |  6 ++++--
 libc/src/dirent/closedir.cpp                     |  5 +++--
 libc/src/dirent/closedir.h                       |  5 +++--
 libc/src/dirent/dirfd.cpp                        |  5 +++--
 libc/src/dirent/dirfd.h                          |  5 +++--
 libc/src/dirent/opendir.cpp                      |  5 +++--
 libc/src/dirent/opendir.h                        |  5 +++--
 libc/src/dirent/readdir.cpp                      |  5 +++--
 libc/src/dirent/readdir.h                        |  5 +++--
 libc/src/dlfcn/dlclose.cpp                       |  5 +++--
 libc/src/dlfcn/dlclose.h                         |  6 ++++--
 libc/src/dlfcn/dlerror.cpp                       |  5 +++--
 libc/src/dlfcn/dlerror.h                         |  6 ++++--
 libc/src/dlfcn/dlopen.cpp                        |  5 +++--
 libc/src/dlfcn/dlopen.h                          |  6 ++++--
 libc/src/dlfcn/dlsym.cpp                         |  5 +++--
 libc/src/dlfcn/dlsym.h                           |  6 ++++--
 libc/src/errno/libc_errno.cpp                    |  5 +++--
 libc/src/errno/libc_errno.h                      |  5 +++--
 libc/src/fcntl/creat.h                           |  5 +++--
 libc/src/fcntl/fcntl.h                           |  6 ++++--
 libc/src/fcntl/linux/creat.cpp                   |  5 +++--
 libc/src/fcntl/linux/fcntl.cpp                   |  5 +++--
 libc/src/fcntl/linux/open.cpp                    |  5 +++--
 libc/src/fcntl/linux/openat.cpp                  |  5 +++--
 libc/src/fcntl/open.h                            |  5 +++--
 libc/src/fcntl/openat.h                          |  5 +++--
 libc/src/fenv/feclearexcept.cpp                  |  5 +++--
 libc/src/fenv/feclearexcept.h                    |  6 ++++--
 libc/src/fenv/fedisableexcept.cpp                |  5 +++--
 libc/src/fenv/fedisableexcept.h                  |  6 ++++--
 libc/src/fenv/feenableexcept.cpp                 |  5 +++--
 libc/src/fenv/feenableexcept.h                   |  6 ++++--
 libc/src/fenv/fegetenv.cpp                       |  5 +++--
 libc/src/fenv/fegetenv.h                         |  5 +++--
 libc/src/fenv/fegetexcept.cpp                    |  5 +++--
 libc/src/fenv/fegetexcept.h                      |  6 ++++--
 libc/src/fenv/fegetexceptflag.cpp                |  5 +++--
 libc/src/fenv/fegetexceptflag.h                  |  5 +++--
 libc/src/fenv/fegetround.cpp                     |  5 +++--
 libc/src/fenv/fegetround.h                       |  6 ++++--
 libc/src/fenv/feholdexcept.cpp                   |  5 +++--
 libc/src/fenv/feholdexcept.h                     |  5 +++--
 libc/src/fenv/feraiseexcept.cpp                  |  5 +++--
 libc/src/fenv/feraiseexcept.h                    |  6 ++++--
 libc/src/fenv/fesetenv.cpp                       |  5 +++--
 libc/src/fenv/fesetenv.h                         |  5 +++--
 libc/src/fenv/fesetexcept.cpp                    |  5 +++--
 libc/src/fenv/fesetexcept.h                      |  6 ++++--
 libc/src/fenv/fesetexceptflag.cpp                |  5 +++--
 libc/src/fenv/fesetexceptflag.h                  |  5 +++--
 libc/src/fenv/fesetround.cpp                     |  5 +++--
 libc/src/fenv/fesetround.h                       |  6 ++++--
 libc/src/fenv/fetestexcept.cpp                   |  5 +++--
 libc/src/fenv/fetestexcept.h                     |  6 ++++--
 libc/src/fenv/fetestexceptflag.cpp               |  5 +++--
 libc/src/fenv/fetestexceptflag.h                 |  5 +++--
 libc/src/fenv/feupdateenv.cpp                    |  5 +++--
 libc/src/fenv/feupdateenv.h                      |  5 +++--
 libc/src/gpu/rpc_fprintf.cpp                     |  5 +++--
 libc/src/gpu/rpc_fprintf.h                       |  5 +++--
 libc/src/gpu/rpc_host_call.cpp                   |  5 +++--
 libc/src/gpu/rpc_host_call.h                     |  5 +++--
 libc/src/inttypes/imaxabs.cpp                    |  5 +++--
 libc/src/inttypes/imaxabs.h                      |  5 +++--
 libc/src/inttypes/imaxdiv.cpp                    |  5 +++--
 libc/src/inttypes/imaxdiv.h                      |  5 +++--
 libc/src/inttypes/strtoimax.cpp                  |  5 +++--
 libc/src/inttypes/strtoimax.h                    |  5 +++--
 libc/src/inttypes/strtoumax.cpp                  |  5 +++--
 libc/src/inttypes/strtoumax.h                    |  5 +++--
 libc/src/math/aarch64/ceil.cpp                   |  5 +++--
 libc/src/math/aarch64/ceilf.cpp                  |  5 +++--
 libc/src/math/aarch64/floor.cpp                  |  5 +++--
 libc/src/math/aarch64/floorf.cpp                 |  5 +++--
 libc/src/math/aarch64/round.cpp                  |  5 +++--
 libc/src/math/aarch64/roundf.cpp                 |  5 +++--
 libc/src/math/aarch64/trunc.cpp                  |  5 +++--
 libc/src/math/aarch64/truncf.cpp                 |  5 +++--
 libc/src/math/acos.h                             |  6 ++++--
 libc/src/math/acosf.h                            |  6 ++++--
 libc/src/math/acosh.h                            |  6 ++++--
 libc/src/math/acoshf.h                           |  6 ++++--
 libc/src/math/amdgpu/acos.cpp                    |  5 +++--
 libc/src/math/amdgpu/acosf.cpp                   |  5 +++--
 libc/src/math/amdgpu/acosh.cpp                   |  5 +++--
 libc/src/math/amdgpu/acoshf.cpp                  |  5 +++--
 libc/src/math/amdgpu/asin.cpp                    |  5 +++--
 libc/src/math/amdgpu/asinf.cpp                   |  5 +++--
 libc/src/math/amdgpu/asinh.cpp                   |  5 +++--
 libc/src/math/amdgpu/asinhf.cpp                  |  5 +++--
 libc/src/math/amdgpu/atan.cpp                    |  5 +++--
 libc/src/math/amdgpu/atan2.cpp                   |  5 +++--
 libc/src/math/amdgpu/atan2f.cpp                  |  5 +++--
 libc/src/math/amdgpu/atanf.cpp                   |  5 +++--
 libc/src/math/amdgpu/atanh.cpp                   |  5 +++--
 libc/src/math/amdgpu/atanhf.cpp                  |  5 +++--
 libc/src/math/amdgpu/ceil.cpp                    |  5 +++--
 libc/src/math/amdgpu/ceilf.cpp                   |  5 +++--
 libc/src/math/amdgpu/copysign.cpp                |  5 +++--
 libc/src/math/amdgpu/copysignf.cpp               |  5 +++--
 libc/src/math/amdgpu/cos.cpp                     |  5 +++--
 libc/src/math/amdgpu/cosf.cpp                    |  5 +++--
 libc/src/math/amdgpu/cosh.cpp                    |  5 +++--
 libc/src/math/amdgpu/coshf.cpp                   |  5 +++--
 libc/src/math/amdgpu/declarations.h              |  5 +++--
 libc/src/math/amdgpu/erf.cpp                     |  5 +++--
 libc/src/math/amdgpu/erff.cpp                    |  5 +++--
 libc/src/math/amdgpu/exp.cpp                     |  5 +++--
 libc/src/math/amdgpu/exp10.cpp                   |  5 +++--
 libc/src/math/amdgpu/exp10f.cpp                  |  5 +++--
 libc/src/math/amdgpu/exp2.cpp                    |  5 +++--
 libc/src/math/amdgpu/exp2f.cpp                   |  5 +++--
 libc/src/math/amdgpu/expf.cpp                    |  5 +++--
 libc/src/math/amdgpu/expm1.cpp                   |  5 +++--
 libc/src/math/amdgpu/expm1f.cpp                  |  5 +++--
 libc/src/math/amdgpu/fabs.cpp                    |  5 +++--
 libc/src/math/amdgpu/fabsf.cpp                   |  5 +++--
 libc/src/math/amdgpu/fdim.cpp                    |  5 +++--
 libc/src/math/amdgpu/fdimf.cpp                   |  5 +++--
 libc/src/math/amdgpu/floor.cpp                   |  5 +++--
 libc/src/math/amdgpu/floorf.cpp                  |  5 +++--
 libc/src/math/amdgpu/fma.cpp                     |  5 +++--
 libc/src/math/amdgpu/fmaf.cpp                    |  5 +++--
 libc/src/math/amdgpu/fmax.cpp                    |  5 +++--
 libc/src/math/amdgpu/fmaxf.cpp                   |  5 +++--
 libc/src/math/amdgpu/fmin.cpp                    |  5 +++--
 libc/src/math/amdgpu/fminf.cpp                   |  5 +++--
 libc/src/math/amdgpu/fmod.cpp                    |  5 +++--
 libc/src/math/amdgpu/fmodf.cpp                   |  5 +++--
 libc/src/math/amdgpu/frexp.cpp                   |  5 +++--
 libc/src/math/amdgpu/frexpf.cpp                  |  5 +++--
 libc/src/math/amdgpu/hypot.cpp                   |  5 +++--
 libc/src/math/amdgpu/hypotf.cpp                  |  5 +++--
 libc/src/math/amdgpu/ilogb.cpp                   |  5 +++--
 libc/src/math/amdgpu/ilogbf.cpp                  |  5 +++--
 libc/src/math/amdgpu/ldexp.cpp                   |  5 +++--
 libc/src/math/amdgpu/ldexpf.cpp                  |  5 +++--
 libc/src/math/amdgpu/llrint.cpp                  |  5 +++--
 libc/src/math/amdgpu/llrintf.cpp                 |  5 +++--
 libc/src/math/amdgpu/log.cpp                     |  5 +++--
 libc/src/math/amdgpu/log10.cpp                   |  5 +++--
 libc/src/math/amdgpu/log10f.cpp                  |  5 +++--
 libc/src/math/amdgpu/log1p.cpp                   |  5 +++--
 libc/src/math/amdgpu/log1pf.cpp                  |  5 +++--
 libc/src/math/amdgpu/log2.cpp                    |  5 +++--
 libc/src/math/amdgpu/log2f.cpp                   |  5 +++--
 libc/src/math/amdgpu/logb.cpp                    |  5 +++--
 libc/src/math/amdgpu/logbf.cpp                   |  5 +++--
 libc/src/math/amdgpu/logf.cpp                    |  5 +++--
 libc/src/math/amdgpu/lrint.cpp                   |  5 +++--
 libc/src/math/amdgpu/lrintf.cpp                  |  5 +++--
 libc/src/math/amdgpu/nearbyint.cpp               |  5 +++--
 libc/src/math/amdgpu/nearbyintf.cpp              |  5 +++--
 libc/src/math/amdgpu/nextafter.cpp               |  5 +++--
 libc/src/math/amdgpu/nextafterf.cpp              |  5 +++--
 libc/src/math/amdgpu/platform.h                  |  5 +++--
 libc/src/math/amdgpu/pow.cpp                     |  5 +++--
 libc/src/math/amdgpu/powf.cpp                    |  5 +++--
 libc/src/math/amdgpu/powi.cpp                    |  5 +++--
 libc/src/math/amdgpu/powif.cpp                   |  5 +++--
 libc/src/math/amdgpu/remainder.cpp               |  5 +++--
 libc/src/math/amdgpu/remainderf.cpp              |  5 +++--
 libc/src/math/amdgpu/remquo.cpp                  |  5 +++--
 libc/src/math/amdgpu/remquof.cpp                 |  5 +++--
 libc/src/math/amdgpu/rint.cpp                    |  5 +++--
 libc/src/math/amdgpu/rintf.cpp                   |  5 +++--
 libc/src/math/amdgpu/round.cpp                   |  5 +++--
 libc/src/math/amdgpu/roundf.cpp                  |  5 +++--
 libc/src/math/amdgpu/scalbn.cpp                  |  5 +++--
 libc/src/math/amdgpu/scalbnf.cpp                 |  5 +++--
 libc/src/math/amdgpu/sin.cpp                     |  5 +++--
 libc/src/math/amdgpu/sincos.cpp                  |  5 +++--
 libc/src/math/amdgpu/sincosf.cpp                 |  5 +++--
 libc/src/math/amdgpu/sinf.cpp                    |  5 +++--
 libc/src/math/amdgpu/sinh.cpp                    |  5 +++--
 libc/src/math/amdgpu/sinhf.cpp                   |  5 +++--
 libc/src/math/amdgpu/sqrt.cpp                    |  5 +++--
 libc/src/math/amdgpu/sqrtf.cpp                   |  5 +++--
 libc/src/math/amdgpu/tan.cpp                     |  5 +++--
 libc/src/math/amdgpu/tanf.cpp                    |  5 +++--
 libc/src/math/amdgpu/tanh.cpp                    |  5 +++--
 libc/src/math/amdgpu/tanhf.cpp                   |  5 +++--
 libc/src/math/amdgpu/tgamma.cpp                  |  5 +++--
 libc/src/math/amdgpu/tgammaf.cpp                 |  5 +++--
 libc/src/math/amdgpu/trunc.cpp                   |  5 +++--
 libc/src/math/amdgpu/truncf.cpp                  |  5 +++--
 libc/src/math/asin.h                             |  6 ++++--
 libc/src/math/asinf.h                            |  6 ++++--
 libc/src/math/asinh.h                            |  6 ++++--
 libc/src/math/asinhf.h                           |  6 ++++--
 libc/src/math/atan.h                             |  6 ++++--
 libc/src/math/atan2.h                            |  6 ++++--
 libc/src/math/atan2f.h                           |  6 ++++--
 libc/src/math/atanf.h                            |  6 ++++--
 libc/src/math/atanh.h                            |  6 ++++--
 libc/src/math/atanhf.h                           |  6 ++++--
 libc/src/math/canonicalize.h                     |  6 ++++--
 libc/src/math/canonicalizef.h                    |  6 ++++--
 libc/src/math/canonicalizef128.h                 |  5 +++--
 libc/src/math/canonicalizef16.h                  |  5 +++--
 libc/src/math/canonicalizel.h                    |  6 ++++--
 libc/src/math/cbrtf.h                            |  6 ++++--
 libc/src/math/ceil.h                             |  6 ++++--
 libc/src/math/ceilf.h                            |  6 ++++--
 libc/src/math/ceilf128.h                         |  5 +++--
 libc/src/math/ceilf16.h                          |  5 +++--
 libc/src/math/ceill.h                            |  6 ++++--
 libc/src/math/copysign.h                         |  6 ++++--
 libc/src/math/copysignf.h                        |  6 ++++--
 libc/src/math/copysignf128.h                     |  5 +++--
 libc/src/math/copysignf16.h                      |  5 +++--
 libc/src/math/copysignl.h                        |  6 ++++--
 libc/src/math/cos.h                              |  6 ++++--
 libc/src/math/cosf.h                             |  6 ++++--
 libc/src/math/cosh.h                             |  6 ++++--
 libc/src/math/coshf.h                            |  6 ++++--
 libc/src/math/cospif.h                           |  6 ++++--
 libc/src/math/erf.h                              |  6 ++++--
 libc/src/math/erff.h                             |  6 ++++--
 libc/src/math/exp.h                              |  6 ++++--
 libc/src/math/exp10.h                            |  6 ++++--
 libc/src/math/exp10f.h                           |  6 ++++--
 libc/src/math/exp2.h                             |  6 ++++--
 libc/src/math/exp2f.h                            |  6 ++++--
 libc/src/math/exp2m1f.h                          |  6 ++++--
 libc/src/math/expf.h                             |  6 ++++--
 libc/src/math/expm1.h                            |  6 ++++--
 libc/src/math/expm1f.h                           |  6 ++++--
 libc/src/math/f16add.h                           |  5 +++--
 libc/src/math/f16addf.h                          |  5 +++--
 libc/src/math/f16addf128.h                       |  5 +++--
 libc/src/math/f16addl.h                          |  5 +++--
 libc/src/math/f16div.h                           |  5 +++--
 libc/src/math/f16divf.h                          |  5 +++--
 libc/src/math/f16divf128.h                       |  5 +++--
 libc/src/math/f16divl.h                          |  5 +++--
 libc/src/math/f16fma.h                           |  5 +++--
 libc/src/math/f16fmaf.h                          |  5 +++--
 libc/src/math/f16fmaf128.h                       |  5 +++--
 libc/src/math/f16fmal.h                          |  5 +++--
 libc/src/math/f16sqrt.h                          |  5 +++--
 libc/src/math/f16sqrtf.h                         |  5 +++--
 libc/src/math/f16sqrtf128.h                      |  5 +++--
 libc/src/math/f16sqrtl.h                         |  5 +++--
 libc/src/math/f16sub.h                           |  5 +++--
 libc/src/math/f16subf.h                          |  5 +++--
 libc/src/math/f16subf128.h                       |  5 +++--
 libc/src/math/f16subl.h                          |  5 +++--
 libc/src/math/fabs.h                             |  6 ++++--
 libc/src/math/fabsf.h                            |  6 ++++--
 libc/src/math/fabsf128.h                         |  5 +++--
 libc/src/math/fabsf16.h                          |  5 +++--
 libc/src/math/fabsl.h                            |  6 ++++--
 libc/src/math/fdim.h                             |  6 ++++--
 libc/src/math/fdimf.h                            |  6 ++++--
 libc/src/math/fdimf128.h                         |  5 +++--
 libc/src/math/fdimf16.h                          |  5 +++--
 libc/src/math/fdiml.h                            |  6 ++++--
 libc/src/math/floor.h                            |  6 ++++--
 libc/src/math/floorf.h                           |  6 ++++--
 libc/src/math/floorf128.h                        |  5 +++--
 libc/src/math/floorf16.h                         |  5 +++--
 libc/src/math/floorl.h                           |  6 ++++--
 libc/src/math/fma.h                              |  6 ++++--
 libc/src/math/fmaf.h                             |  6 ++++--
 libc/src/math/fmax.h                             |  6 ++++--
 libc/src/math/fmaxf.h                            |  6 ++++--
 libc/src/math/fmaxf128.h                         |  5 +++--
 libc/src/math/fmaxf16.h                          |  5 +++--
 libc/src/math/fmaximum.h                         |  6 ++++--
 libc/src/math/fmaximum_mag.h                     |  6 ++++--
 libc/src/math/fmaximum_mag_num.h                 |  6 ++++--
 libc/src/math/fmaximum_mag_numf.h                |  6 ++++--
 libc/src/math/fmaximum_mag_numf128.h             |  5 +++--
 libc/src/math/fmaximum_mag_numf16.h              |  5 +++--
 libc/src/math/fmaximum_mag_numl.h                |  6 ++++--
 libc/src/math/fmaximum_magf.h                    |  6 ++++--
 libc/src/math/fmaximum_magf128.h                 |  5 +++--
 libc/src/math/fmaximum_magf16.h                  |  5 +++--
 libc/src/math/fmaximum_magl.h                    |  6 ++++--
 libc/src/math/fmaximum_num.h                     |  6 ++++--
 libc/src/math/fmaximum_numf.h                    |  6 ++++--
 libc/src/math/fmaximum_numf128.h                 |  5 +++--
 libc/src/math/fmaximum_numf16.h                  |  5 +++--
 libc/src/math/fmaximum_numl.h                    |  6 ++++--
 libc/src/math/fmaximumf.h                        |  6 ++++--
 libc/src/math/fmaximumf128.h                     |  5 +++--
 libc/src/math/fmaximumf16.h                      |  5 +++--
 libc/src/math/fmaximuml.h                        |  6 ++++--
 libc/src/math/fmaxl.h                            |  6 ++++--
 libc/src/math/fmin.h                             |  6 ++++--
 libc/src/math/fminf.h                            |  6 ++++--
 libc/src/math/fminf128.h                         |  5 +++--
 libc/src/math/fminf16.h                          |  5 +++--
 libc/src/math/fminimum.h                         |  6 ++++--
 libc/src/math/fminimum_mag.h                     |  6 ++++--
 libc/src/math/fminimum_mag_num.h                 |  6 ++++--
 libc/src/math/fminimum_mag_numf.h                |  6 ++++--
 libc/src/math/fminimum_mag_numf128.h             |  5 +++--
 libc/src/math/fminimum_mag_numf16.h              |  5 +++--
 libc/src/math/fminimum_mag_numl.h                |  6 ++++--
 libc/src/math/fminimum_magf.h                    |  6 ++++--
 libc/src/math/fminimum_magf128.h                 |  5 +++--
 libc/src/math/fminimum_magf16.h                  |  5 +++--
 libc/src/math/fminimum_magl.h                    |  6 ++++--
 libc/src/math/fminimum_num.h                     |  6 ++++--
 libc/src/math/fminimum_numf.h                    |  6 ++++--
 libc/src/math/fminimum_numf128.h                 |  5 +++--
 libc/src/math/fminimum_numf16.h                  |  5 +++--
 libc/src/math/fminimum_numl.h                    |  6 ++++--
 libc/src/math/fminimumf.h                        |  6 ++++--
 libc/src/math/fminimumf128.h                     |  5 +++--
 libc/src/math/fminimumf16.h                      |  5 +++--
 libc/src/math/fminimuml.h                        |  6 ++++--
 libc/src/math/fminl.h                            |  6 ++++--
 libc/src/math/fmod.h                             |  6 ++++--
 libc/src/math/fmodf.h                            |  6 ++++--
 libc/src/math/fmodf128.h                         |  5 +++--
 libc/src/math/fmodf16.h                          |  5 +++--
 libc/src/math/fmodl.h                            |  6 ++++--
 libc/src/math/fmul.h                             |  6 ++++--
 libc/src/math/frexp.h                            |  6 ++++--
 libc/src/math/frexpf.h                           |  6 ++++--
 libc/src/math/frexpf128.h                        |  5 +++--
 libc/src/math/frexpf16.h                         |  5 +++--
 libc/src/math/frexpl.h                           |  6 ++++--
 libc/src/math/fromfp.h                           |  6 ++++--
 libc/src/math/fromfpf.h                          |  6 ++++--
 libc/src/math/fromfpf128.h                       |  5 +++--
 libc/src/math/fromfpf16.h                        |  5 +++--
 libc/src/math/fromfpl.h                          |  6 ++++--
 libc/src/math/fromfpx.h                          |  6 ++++--
 libc/src/math/fromfpxf.h                         |  6 ++++--
 libc/src/math/fromfpxf128.h                      |  5 +++--
 libc/src/math/fromfpxf16.h                       |  5 +++--
 libc/src/math/fromfpxl.h                         |  6 ++++--
 libc/src/math/generic/acosf.cpp                  |  5 +++--
 libc/src/math/generic/acoshf.cpp                 |  5 +++--
 libc/src/math/generic/asinf.cpp                  |  5 +++--
 libc/src/math/generic/asinhf.cpp                 |  5 +++--
 libc/src/math/generic/atan2f.cpp                 |  5 +++--
 libc/src/math/generic/atanf.cpp                  |  5 +++--
 libc/src/math/generic/atanhf.cpp                 |  5 +++--
 libc/src/math/generic/canonicalize.cpp           |  5 +++--
 libc/src/math/generic/canonicalizef.cpp          |  5 +++--
 libc/src/math/generic/canonicalizef128.cpp       |  5 +++--
 libc/src/math/generic/canonicalizef16.cpp        |  5 +++--
 libc/src/math/generic/canonicalizel.cpp          |  5 +++--
 libc/src/math/generic/cbrtf.cpp                  |  5 +++--
 libc/src/math/generic/ceil.cpp                   |  5 +++--
 libc/src/math/generic/ceilf.cpp                  |  5 +++--
 libc/src/math/generic/ceilf128.cpp               |  5 +++--
 libc/src/math/generic/ceilf16.cpp                |  5 +++--
 libc/src/math/generic/ceill.cpp                  |  5 +++--
 libc/src/math/generic/common_constants.cpp       |  5 +++--
 libc/src/math/generic/common_constants.h         |  5 +++--
 libc/src/math/generic/copysign.cpp               |  5 +++--
 libc/src/math/generic/copysignf.cpp              |  5 +++--
 libc/src/math/generic/copysignf128.cpp           |  5 +++--
 libc/src/math/generic/copysignf16.cpp            |  5 +++--
 libc/src/math/generic/copysignl.cpp              |  5 +++--
 libc/src/math/generic/cos.cpp                    |  5 +++--
 libc/src/math/generic/cosf.cpp                   |  5 +++--
 libc/src/math/generic/coshf.cpp                  |  5 +++--
 libc/src/math/generic/cospif.cpp                 |  5 +++--
 libc/src/math/generic/erff.cpp                   |  5 +++--
 libc/src/math/generic/exp.cpp                    |  5 +++--
 libc/src/math/generic/exp10.cpp                  |  5 +++--
 libc/src/math/generic/exp10f.cpp                 |  5 +++--
 libc/src/math/generic/exp10f_impl.h              |  7 +++++--
 libc/src/math/generic/exp2.cpp                   |  5 +++--
 libc/src/math/generic/exp2f.cpp                  |  5 +++--
 libc/src/math/generic/exp2f_impl.h               |  7 +++++--
 libc/src/math/generic/exp2m1f.cpp                |  5 +++--
 libc/src/math/generic/exp_utils.cpp              |  5 +++--
 libc/src/math/generic/exp_utils.h                |  5 +++--
 libc/src/math/generic/expf.cpp                   |  5 +++--
 libc/src/math/generic/explogxf.cpp               |  5 +++--
 libc/src/math/generic/explogxf.h                 |  5 +++--
 libc/src/math/generic/expm1.cpp                  |  5 +++--
 libc/src/math/generic/expm1f.cpp                 |  5 +++--
 libc/src/math/generic/f16add.cpp                 |  5 +++--
 libc/src/math/generic/f16addf.cpp                |  5 +++--
 libc/src/math/generic/f16addf128.cpp             |  5 +++--
 libc/src/math/generic/f16addl.cpp                |  5 +++--
 libc/src/math/generic/f16div.cpp                 |  5 +++--
 libc/src/math/generic/f16divf.cpp                |  5 +++--
 libc/src/math/generic/f16divf128.cpp             |  5 +++--
 libc/src/math/generic/f16divl.cpp                |  5 +++--
 libc/src/math/generic/f16fma.cpp                 |  5 +++--
 libc/src/math/generic/f16fmaf.cpp                |  5 +++--
 libc/src/math/generic/f16fmaf128.cpp             |  5 +++--
 libc/src/math/generic/f16fmal.cpp                |  5 +++--
 libc/src/math/generic/f16sqrt.cpp                |  5 +++--
 libc/src/math/generic/f16sqrtf.cpp               |  5 +++--
 libc/src/math/generic/f16sqrtf128.cpp            |  5 +++--
 libc/src/math/generic/f16sqrtl.cpp               |  5 +++--
 libc/src/math/generic/f16sub.cpp                 |  5 +++--
 libc/src/math/generic/f16subf.cpp                |  5 +++--
 libc/src/math/generic/f16subf128.cpp             |  5 +++--
 libc/src/math/generic/f16subl.cpp                |  5 +++--
 libc/src/math/generic/fabs.cpp                   |  5 +++--
 libc/src/math/generic/fabsf.cpp                  |  5 +++--
 libc/src/math/generic/fabsf128.cpp               |  5 +++--
 libc/src/math/generic/fabsf16.cpp                |  5 +++--
 libc/src/math/generic/fabsl.cpp                  |  5 +++--
 libc/src/math/generic/fdim.cpp                   |  5 +++--
 libc/src/math/generic/fdimf.cpp                  |  5 +++--
 libc/src/math/generic/fdimf128.cpp               |  5 +++--
 libc/src/math/generic/fdimf16.cpp                |  5 +++--
 libc/src/math/generic/fdiml.cpp                  |  5 +++--
 libc/src/math/generic/floor.cpp                  |  5 +++--
 libc/src/math/generic/floorf.cpp                 |  5 +++--
 libc/src/math/generic/floorf128.cpp              |  5 +++--
 libc/src/math/generic/floorf16.cpp               |  5 +++--
 libc/src/math/generic/floorl.cpp                 |  5 +++--
 libc/src/math/generic/fma.cpp                    |  5 +++--
 libc/src/math/generic/fmaf.cpp                   |  5 +++--
 libc/src/math/generic/fmax.cpp                   |  5 +++--
 libc/src/math/generic/fmaxf.cpp                  |  5 +++--
 libc/src/math/generic/fmaxf128.cpp               |  5 +++--
 libc/src/math/generic/fmaxf16.cpp                |  5 +++--
 libc/src/math/generic/fmaximum.cpp               |  5 +++--
 libc/src/math/generic/fmaximum_mag.cpp           |  5 +++--
 libc/src/math/generic/fmaximum_mag_num.cpp       |  5 +++--
 libc/src/math/generic/fmaximum_mag_numf.cpp      |  5 +++--
 libc/src/math/generic/fmaximum_mag_numf128.cpp   |  5 +++--
 libc/src/math/generic/fmaximum_mag_numf16.cpp    |  5 +++--
 libc/src/math/generic/fmaximum_mag_numl.cpp      |  5 +++--
 libc/src/math/generic/fmaximum_magf.cpp          |  5 +++--
 libc/src/math/generic/fmaximum_magf128.cpp       |  5 +++--
 libc/src/math/generic/fmaximum_magf16.cpp        |  5 +++--
 libc/src/math/generic/fmaximum_magl.cpp          |  5 +++--
 libc/src/math/generic/fmaximum_num.cpp           |  5 +++--
 libc/src/math/generic/fmaximum_numf.cpp          |  5 +++--
 libc/src/math/generic/fmaximum_numf128.cpp       |  5 +++--
 libc/src/math/generic/fmaximum_numf16.cpp        |  5 +++--
 libc/src/math/generic/fmaximum_numl.cpp          |  5 +++--
 libc/src/math/generic/fmaximumf.cpp              |  5 +++--
 libc/src/math/generic/fmaximumf128.cpp           |  5 +++--
 libc/src/math/generic/fmaximumf16.cpp            |  5 +++--
 libc/src/math/generic/fmaximuml.cpp              |  5 +++--
 libc/src/math/generic/fmaxl.cpp                  |  5 +++--
 libc/src/math/generic/fmin.cpp                   |  5 +++--
 libc/src/math/generic/fminf.cpp                  |  5 +++--
 libc/src/math/generic/fminf128.cpp               |  5 +++--
 libc/src/math/generic/fminf16.cpp                |  5 +++--
 libc/src/math/generic/fminimum.cpp               |  5 +++--
 libc/src/math/generic/fminimum_mag.cpp           |  5 +++--
 libc/src/math/generic/fminimum_mag_num.cpp       |  5 +++--
 libc/src/math/generic/fminimum_mag_numf.cpp      |  5 +++--
 libc/src/math/generic/fminimum_mag_numf128.cpp   |  5 +++--
 libc/src/math/generic/fminimum_mag_numf16.cpp    |  5 +++--
 libc/src/math/generic/fminimum_mag_numl.cpp      |  5 +++--
 libc/src/math/generic/fminimum_magf.cpp          |  5 +++--
 libc/src/math/generic/fminimum_magf128.cpp       |  5 +++--
 libc/src/math/generic/fminimum_magf16.cpp        |  5 +++--
 libc/src/math/generic/fminimum_magl.cpp          |  5 +++--
 libc/src/math/generic/fminimum_num.cpp           |  5 +++--
 libc/src/math/generic/fminimum_numf.cpp          |  5 +++--
 libc/src/math/generic/fminimum_numf128.cpp       |  5 +++--
 libc/src/math/generic/fminimum_numf16.cpp        |  5 +++--
 libc/src/math/generic/fminimum_numl.cpp          |  5 +++--
 libc/src/math/generic/fminimumf.cpp              |  5 +++--
 libc/src/math/generic/fminimumf128.cpp           |  5 +++--
 libc/src/math/generic/fminimumf16.cpp            |  5 +++--
 libc/src/math/generic/fminimuml.cpp              |  5 +++--
 libc/src/math/generic/fminl.cpp                  |  5 +++--
 libc/src/math/generic/fmod.cpp                   |  5 +++--
 libc/src/math/generic/fmodf.cpp                  |  5 +++--
 libc/src/math/generic/fmodf128.cpp               |  5 +++--
 libc/src/math/generic/fmodf16.cpp                |  5 +++--
 libc/src/math/generic/fmodl.cpp                  |  5 +++--
 libc/src/math/generic/fmul.cpp                   |  5 +++--
 libc/src/math/generic/frexp.cpp                  |  5 +++--
 libc/src/math/generic/frexpf.cpp                 |  5 +++--
 libc/src/math/generic/frexpf128.cpp              |  5 +++--
 libc/src/math/generic/frexpf16.cpp               |  5 +++--
 libc/src/math/generic/frexpl.cpp                 |  5 +++--
 libc/src/math/generic/fromfp.cpp                 |  5 +++--
 libc/src/math/generic/fromfpf.cpp                |  5 +++--
 libc/src/math/generic/fromfpf128.cpp             |  5 +++--
 libc/src/math/generic/fromfpf16.cpp              |  5 +++--
 libc/src/math/generic/fromfpl.cpp                |  5 +++--
 libc/src/math/generic/fromfpx.cpp                |  5 +++--
 libc/src/math/generic/fromfpxf.cpp               |  5 +++--
 libc/src/math/generic/fromfpxf128.cpp            |  5 +++--
 libc/src/math/generic/fromfpxf16.cpp             |  5 +++--
 libc/src/math/generic/fromfpxl.cpp               |  5 +++--
 libc/src/math/generic/getpayloadf16.cpp          |  5 +++--
 libc/src/math/generic/hypot.cpp                  |  5 +++--
 libc/src/math/generic/hypotf.cpp                 |  5 +++--
 libc/src/math/generic/ilogb.cpp                  |  5 +++--
 libc/src/math/generic/ilogbf.cpp                 |  5 +++--
 libc/src/math/generic/ilogbf128.cpp              |  5 +++--
 libc/src/math/generic/ilogbf16.cpp               |  5 +++--
 libc/src/math/generic/ilogbl.cpp                 |  5 +++--
 libc/src/math/generic/inv_trigf_utils.cpp        |  5 +++--
 libc/src/math/generic/inv_trigf_utils.h          |  5 +++--
 libc/src/math/generic/isnan.cpp                  |  5 +++--
 libc/src/math/generic/isnanf.cpp                 |  5 +++--
 libc/src/math/generic/isnanl.cpp                 |  5 +++--
 libc/src/math/generic/ldexp.cpp                  |  5 +++--
 libc/src/math/generic/ldexpf.cpp                 |  5 +++--
 libc/src/math/generic/ldexpf128.cpp              |  5 +++--
 libc/src/math/generic/ldexpf16.cpp               |  5 +++--
 libc/src/math/generic/ldexpl.cpp                 |  5 +++--
 libc/src/math/generic/llogb.cpp                  |  5 +++--
 libc/src/math/generic/llogbf.cpp                 |  5 +++--
 libc/src/math/generic/llogbf128.cpp              |  5 +++--
 libc/src/math/generic/llogbf16.cpp               |  5 +++--
 libc/src/math/generic/llogbl.cpp                 |  5 +++--
 libc/src/math/generic/llrint.cpp                 |  5 +++--
 libc/src/math/generic/llrintf.cpp                |  5 +++--
 libc/src/math/generic/llrintf128.cpp             |  5 +++--
 libc/src/math/generic/llrintf16.cpp              |  5 +++--
 libc/src/math/generic/llrintl.cpp                |  5 +++--
 libc/src/math/generic/llround.cpp                |  5 +++--
 libc/src/math/generic/llroundf.cpp               |  5 +++--
 libc/src/math/generic/llroundf128.cpp            |  5 +++--
 libc/src/math/generic/llroundf16.cpp             |  5 +++--
 libc/src/math/generic/llroundl.cpp               |  5 +++--
 libc/src/math/generic/log.cpp                    |  5 +++--
 libc/src/math/generic/log10.cpp                  |  5 +++--
 libc/src/math/generic/log10f.cpp                 |  5 +++--
 libc/src/math/generic/log1p.cpp                  |  5 +++--
 libc/src/math/generic/log1pf.cpp                 |  5 +++--
 libc/src/math/generic/log2.cpp                   |  5 +++--
 libc/src/math/generic/log2f.cpp                  |  5 +++--
 libc/src/math/generic/log_range_reduction.h      |  5 +++--
 libc/src/math/generic/logb.cpp                   |  5 +++--
 libc/src/math/generic/logbf.cpp                  |  5 +++--
 libc/src/math/generic/logbf128.cpp               |  5 +++--
 libc/src/math/generic/logbf16.cpp                |  5 +++--
 libc/src/math/generic/logbl.cpp                  |  5 +++--
 libc/src/math/generic/logf.cpp                   |  5 +++--
 libc/src/math/generic/lrint.cpp                  |  5 +++--
 libc/src/math/generic/lrintf.cpp                 |  5 +++--
 libc/src/math/generic/lrintf128.cpp              |  5 +++--
 libc/src/math/generic/lrintf16.cpp               |  5 +++--
 libc/src/math/generic/lrintl.cpp                 |  5 +++--
 libc/src/math/generic/lround.cpp                 |  5 +++--
 libc/src/math/generic/lroundf.cpp                |  5 +++--
 libc/src/math/generic/lroundf128.cpp             |  5 +++--
 libc/src/math/generic/lroundf16.cpp              |  5 +++--
 libc/src/math/generic/lroundl.cpp                |  5 +++--
 libc/src/math/generic/modf.cpp                   |  5 +++--
 libc/src/math/generic/modff.cpp                  |  5 +++--
 libc/src/math/generic/modff128.cpp               |  5 +++--
 libc/src/math/generic/modff16.cpp                |  5 +++--
 libc/src/math/generic/modfl.cpp                  |  5 +++--
 libc/src/math/generic/nan.cpp                    |  5 +++--
 libc/src/math/generic/nanf.cpp                   |  5 +++--
 libc/src/math/generic/nanf128.cpp                |  5 +++--
 libc/src/math/generic/nanf16.cpp                 |  5 +++--
 libc/src/math/generic/nanl.cpp                   |  5 +++--
 libc/src/math/generic/nearbyint.cpp              |  5 +++--
 libc/src/math/generic/nearbyintf.cpp             |  5 +++--
 libc/src/math/generic/nearbyintf128.cpp          |  5 +++--
 libc/src/math/generic/nearbyintf16.cpp           |  5 +++--
 libc/src/math/generic/nearbyintl.cpp             |  5 +++--
 libc/src/math/generic/nextafter.cpp              |  5 +++--
 libc/src/math/generic/nextafterf.cpp             |  5 +++--
 libc/src/math/generic/nextafterf128.cpp          |  5 +++--
 libc/src/math/generic/nextafterf16.cpp           |  5 +++--
 libc/src/math/generic/nextafterl.cpp             |  5 +++--
 libc/src/math/generic/nextdown.cpp               |  5 +++--
 libc/src/math/generic/nextdownf.cpp              |  5 +++--
 libc/src/math/generic/nextdownf128.cpp           |  5 +++--
 libc/src/math/generic/nextdownf16.cpp            |  5 +++--
 libc/src/math/generic/nextdownl.cpp              |  5 +++--
 libc/src/math/generic/nexttoward.cpp             |  5 +++--
 libc/src/math/generic/nexttowardf.cpp            |  5 +++--
 libc/src/math/generic/nexttowardf16.cpp          |  5 +++--
 libc/src/math/generic/nexttowardl.cpp            |  5 +++--
 libc/src/math/generic/nextup.cpp                 |  5 +++--
 libc/src/math/generic/nextupf.cpp                |  5 +++--
 libc/src/math/generic/nextupf128.cpp             |  5 +++--
 libc/src/math/generic/nextupf16.cpp              |  5 +++--
 libc/src/math/generic/nextupl.cpp                |  5 +++--
 libc/src/math/generic/powf.cpp                   |  5 +++--
 libc/src/math/generic/range_reduction.h          |  5 +++--
 .../math/generic/range_reduction_double_common.h |  5 +++--
 .../math/generic/range_reduction_double_fma.h    |  5 +++--
 .../math/generic/range_reduction_double_nofma.h  |  5 +++--
 libc/src/math/generic/range_reduction_fma.h      |  5 +++--
 libc/src/math/generic/remainder.cpp              |  5 +++--
 libc/src/math/generic/remainderf.cpp             |  5 +++--
 libc/src/math/generic/remainderf16.cpp           |  5 +++--
 libc/src/math/generic/remainderl.cpp             |  5 +++--
 libc/src/math/generic/remquo.cpp                 |  5 +++--
 libc/src/math/generic/remquof.cpp                |  5 +++--
 libc/src/math/generic/remquof128.cpp             |  5 +++--
 libc/src/math/generic/remquof16.cpp              |  5 +++--
 libc/src/math/generic/remquol.cpp                |  5 +++--
 libc/src/math/generic/rint.cpp                   |  5 +++--
 libc/src/math/generic/rintf.cpp                  |  5 +++--
 libc/src/math/generic/rintf128.cpp               |  5 +++--
 libc/src/math/generic/rintf16.cpp                |  5 +++--
 libc/src/math/generic/rintl.cpp                  |  5 +++--
 libc/src/math/generic/round.cpp                  |  5 +++--
 libc/src/math/generic/roundeven.cpp              |  5 +++--
 libc/src/math/generic/roundevenf.cpp             |  5 +++--
 libc/src/math/generic/roundevenf128.cpp          |  5 +++--
 libc/src/math/generic/roundevenf16.cpp           |  5 +++--
 libc/src/math/generic/roundevenl.cpp             |  5 +++--
 libc/src/math/generic/roundf.cpp                 |  5 +++--
 libc/src/math/generic/roundf128.cpp              |  5 +++--
 libc/src/math/generic/roundf16.cpp               |  5 +++--
 libc/src/math/generic/roundl.cpp                 |  5 +++--
 libc/src/math/generic/scalblnf16.cpp             |  5 +++--
 libc/src/math/generic/scalbn.cpp                 |  5 +++--
 libc/src/math/generic/scalbnf.cpp                |  5 +++--
 libc/src/math/generic/scalbnf128.cpp             |  5 +++--
 libc/src/math/generic/scalbnf16.cpp              |  5 +++--
 libc/src/math/generic/scalbnl.cpp                |  5 +++--
 libc/src/math/generic/setpayloadf16.cpp          |  5 +++--
 libc/src/math/generic/setpayloadsigf16.cpp       |  5 +++--
 libc/src/math/generic/sin.cpp                    |  5 +++--
 libc/src/math/generic/sincos.cpp                 |  5 +++--
 libc/src/math/generic/sincos_eval.h              |  5 +++--
 libc/src/math/generic/sincosf.cpp                |  5 +++--
 libc/src/math/generic/sincosf_utils.h            |  5 +++--
 libc/src/math/generic/sinf.cpp                   |  5 +++--
 libc/src/math/generic/sinhf.cpp                  |  5 +++--
 libc/src/math/generic/sinpif.cpp                 |  5 +++--
 libc/src/math/generic/sqrt.cpp                   |  5 +++--
 libc/src/math/generic/sqrtf.cpp                  |  5 +++--
 libc/src/math/generic/sqrtf128.cpp               |  5 +++--
 libc/src/math/generic/sqrtl.cpp                  |  5 +++--
 libc/src/math/generic/tan.cpp                    |  5 +++--
 libc/src/math/generic/tanf.cpp                   |  5 +++--
 libc/src/math/generic/tanhf.cpp                  |  5 +++--
 libc/src/math/generic/totalorderf16.cpp          |  5 +++--
 libc/src/math/generic/totalordermagf16.cpp       |  5 +++--
 libc/src/math/generic/trunc.cpp                  |  5 +++--
 libc/src/math/generic/truncf.cpp                 |  5 +++--
 libc/src/math/generic/truncf128.cpp              |  5 +++--
 libc/src/math/generic/truncf16.cpp               |  5 +++--
 libc/src/math/generic/truncl.cpp                 |  5 +++--
 libc/src/math/generic/ufromfp.cpp                |  5 +++--
 libc/src/math/generic/ufromfpf.cpp               |  5 +++--
 libc/src/math/generic/ufromfpf128.cpp            |  5 +++--
 libc/src/math/generic/ufromfpf16.cpp             |  5 +++--
 libc/src/math/generic/ufromfpl.cpp               |  5 +++--
 libc/src/math/generic/ufromfpx.cpp               |  5 +++--
 libc/src/math/generic/ufromfpxf.cpp              |  5 +++--
 libc/src/math/generic/ufromfpxf128.cpp           |  5 +++--
 libc/src/math/generic/ufromfpxf16.cpp            |  5 +++--
 libc/src/math/generic/ufromfpxl.cpp              |  5 +++--
 libc/src/math/getpayloadf16.h                    |  5 +++--
 libc/src/math/hypot.h                            |  6 ++++--
 libc/src/math/hypotf.h                           |  6 ++++--
 libc/src/math/ilogb.h                            |  6 ++++--
 libc/src/math/ilogbf.h                           |  6 ++++--
 libc/src/math/ilogbf128.h                        |  5 +++--
 libc/src/math/ilogbf16.h                         |  5 +++--
 libc/src/math/ilogbl.h                           |  6 ++++--
 libc/src/math/isnan.h                            |  6 ++++--
 libc/src/math/isnanf.h                           |  6 ++++--
 libc/src/math/isnanl.h                           |  6 ++++--
 libc/src/math/ldexp.h                            |  6 ++++--
 libc/src/math/ldexpf.h                           |  6 ++++--
 libc/src/math/ldexpf128.h                        |  5 +++--
 libc/src/math/ldexpf16.h                         |  5 +++--
 libc/src/math/ldexpl.h                           |  6 ++++--
 libc/src/math/llogb.h                            |  5 +++--
 libc/src/math/llogbf.h                           |  5 +++--
 libc/src/math/llogbf128.h                        |  5 +++--
 libc/src/math/llogbf16.h                         |  5 +++--
 libc/src/math/llogbl.h                           |  5 +++--
 libc/src/math/llrint.h                           |  6 ++++--
 libc/src/math/llrintf.h                          |  6 ++++--
 libc/src/math/llrintf128.h                       |  5 +++--
 libc/src/math/llrintf16.h                        |  5 +++--
 libc/src/math/llrintl.h                          |  6 ++++--
 libc/src/math/llround.h                          |  6 ++++--
 libc/src/math/llroundf.h                         |  6 ++++--
 libc/src/math/llroundf128.h                      |  5 +++--
 libc/src/math/llroundf16.h                       |  5 +++--
 libc/src/math/llroundl.h                         |  6 ++++--
 libc/src/math/log.h                              |  6 ++++--
 libc/src/math/log10.h                            |  6 ++++--
 libc/src/math/log10f.h                           |  6 ++++--
 libc/src/math/log1p.h                            |  6 ++++--
 libc/src/math/log1pf.h                           |  6 ++++--
 libc/src/math/log2.h                             |  6 ++++--
 libc/src/math/log2f.h                            |  6 ++++--
 libc/src/math/logb.h                             |  6 ++++--
 libc/src/math/logbf.h                            |  6 ++++--
 libc/src/math/logbf128.h                         |  5 +++--
 libc/src/math/logbf16.h                          |  5 +++--
 libc/src/math/logbl.h                            |  6 ++++--
 libc/src/math/logf.h                             |  6 ++++--
 libc/src/math/lrint.h                            |  6 ++++--
 libc/src/math/lrintf.h                           |  6 ++++--
 libc/src/math/lrintf128.h                        |  5 +++--
 libc/src/math/lrintf16.h                         |  5 +++--
 libc/src/math/lrintl.h                           |  6 ++++--
 libc/src/math/lround.h                           |  6 ++++--
 libc/src/math/lroundf.h                          |  6 ++++--
 libc/src/math/lroundf128.h                       |  5 +++--
 libc/src/math/lroundf16.h                        |  5 +++--
 libc/src/math/lroundl.h                          |  6 ++++--
 libc/src/math/modf.h                             |  6 ++++--
 libc/src/math/modff.h                            |  6 ++++--
 libc/src/math/modff128.h                         |  5 +++--
 libc/src/math/modff16.h                          |  5 +++--
 libc/src/math/modfl.h                            |  6 ++++--
 libc/src/math/nan.h                              |  6 ++++--
 libc/src/math/nanf.h                             |  6 ++++--
 libc/src/math/nanf128.h                          |  5 +++--
 libc/src/math/nanf16.h                           |  5 +++--
 libc/src/math/nanl.h                             |  6 ++++--
 libc/src/math/nearbyint.h                        |  6 ++++--
 libc/src/math/nearbyintf.h                       |  6 ++++--
 libc/src/math/nearbyintf128.h                    |  5 +++--
 libc/src/math/nearbyintf16.h                     |  5 +++--
 libc/src/math/nearbyintl.h                       |  6 ++++--
 libc/src/math/nextafter.h                        |  6 ++++--
 libc/src/math/nextafterf.h                       |  6 ++++--
 libc/src/math/nextafterf128.h                    |  5 +++--
 libc/src/math/nextafterf16.h                     |  5 +++--
 libc/src/math/nextafterl.h                       |  6 ++++--
 libc/src/math/nextdown.h                         |  6 ++++--
 libc/src/math/nextdownf.h                        |  6 ++++--
 libc/src/math/nextdownf128.h                     |  5 +++--
 libc/src/math/nextdownf16.h                      |  5 +++--
 libc/src/math/nextdownl.h                        |  6 ++++--
 libc/src/math/nexttoward.h                       |  6 ++++--
 libc/src/math/nexttowardf.h                      |  6 ++++--
 libc/src/math/nexttowardf16.h                    |  5 +++--
 libc/src/math/nexttowardl.h                      |  6 ++++--
 libc/src/math/nextup.h                           |  6 ++++--
 libc/src/math/nextupf.h                          |  6 ++++--
 libc/src/math/nextupf128.h                       |  5 +++--
 libc/src/math/nextupf16.h                        |  5 +++--
 libc/src/math/nextupl.h                          |  6 ++++--
 libc/src/math/nvptx/acos.cpp                     |  5 +++--
 libc/src/math/nvptx/acosf.cpp                    |  5 +++--
 libc/src/math/nvptx/acosh.cpp                    |  5 +++--
 libc/src/math/nvptx/acoshf.cpp                   |  5 +++--
 libc/src/math/nvptx/asin.cpp                     |  5 +++--
 libc/src/math/nvptx/asinf.cpp                    |  5 +++--
 libc/src/math/nvptx/asinh.cpp                    |  5 +++--
 libc/src/math/nvptx/asinhf.cpp                   |  5 +++--
 libc/src/math/nvptx/atan.cpp                     |  5 +++--
 libc/src/math/nvptx/atan2.cpp                    |  5 +++--
 libc/src/math/nvptx/atan2f.cpp                   |  5 +++--
 libc/src/math/nvptx/atanf.cpp                    |  5 +++--
 libc/src/math/nvptx/atanh.cpp                    |  5 +++--
 libc/src/math/nvptx/atanhf.cpp                   |  5 +++--
 libc/src/math/nvptx/ceil.cpp                     |  5 +++--
 libc/src/math/nvptx/ceilf.cpp                    |  5 +++--
 libc/src/math/nvptx/copysign.cpp                 |  5 +++--
 libc/src/math/nvptx/copysignf.cpp                |  5 +++--
 libc/src/math/nvptx/cos.cpp                      |  5 +++--
 libc/src/math/nvptx/cosf.cpp                     |  5 +++--
 libc/src/math/nvptx/cosh.cpp                     |  5 +++--
 libc/src/math/nvptx/coshf.cpp                    |  5 +++--
 libc/src/math/nvptx/declarations.h               |  6 ++++--
 libc/src/math/nvptx/erf.cpp                      |  5 +++--
 libc/src/math/nvptx/erff.cpp                     |  5 +++--
 libc/src/math/nvptx/exp.cpp                      |  5 +++--
 libc/src/math/nvptx/exp10.cpp                    |  5 +++--
 libc/src/math/nvptx/exp10f.cpp                   |  5 +++--
 libc/src/math/nvptx/exp2.cpp                     |  5 +++--
 libc/src/math/nvptx/exp2f.cpp                    |  5 +++--
 libc/src/math/nvptx/expf.cpp                     |  5 +++--
 libc/src/math/nvptx/expm1.cpp                    |  5 +++--
 libc/src/math/nvptx/expm1f.cpp                   |  5 +++--
 libc/src/math/nvptx/fabs.cpp                     |  5 +++--
 libc/src/math/nvptx/fabsf.cpp                    |  5 +++--
 libc/src/math/nvptx/fdim.cpp                     |  5 +++--
 libc/src/math/nvptx/fdimf.cpp                    |  5 +++--
 libc/src/math/nvptx/floor.cpp                    |  5 +++--
 libc/src/math/nvptx/floorf.cpp                   |  5 +++--
 libc/src/math/nvptx/fma.cpp                      |  5 +++--
 libc/src/math/nvptx/fmaf.cpp                     |  5 +++--
 libc/src/math/nvptx/fmax.cpp                     |  5 +++--
 libc/src/math/nvptx/fmaxf.cpp                    |  5 +++--
 libc/src/math/nvptx/fmin.cpp                     |  5 +++--
 libc/src/math/nvptx/fminf.cpp                    |  5 +++--
 libc/src/math/nvptx/fmod.cpp                     |  5 +++--
 libc/src/math/nvptx/fmodf.cpp                    |  5 +++--
 libc/src/math/nvptx/frexp.cpp                    |  5 +++--
 libc/src/math/nvptx/frexpf.cpp                   |  5 +++--
 libc/src/math/nvptx/hypot.cpp                    |  5 +++--
 libc/src/math/nvptx/hypotf.cpp                   |  5 +++--
 libc/src/math/nvptx/ilogb.cpp                    |  5 +++--
 libc/src/math/nvptx/ilogbf.cpp                   |  5 +++--
 libc/src/math/nvptx/ldexp.cpp                    |  5 +++--
 libc/src/math/nvptx/ldexpf.cpp                   |  5 +++--
 libc/src/math/nvptx/llrint.cpp                   |  5 +++--
 libc/src/math/nvptx/llrintf.cpp                  |  5 +++--
 libc/src/math/nvptx/log.cpp                      |  5 +++--
 libc/src/math/nvptx/log10.cpp                    |  5 +++--
 libc/src/math/nvptx/log10f.cpp                   |  5 +++--
 libc/src/math/nvptx/log1p.cpp                    |  5 +++--
 libc/src/math/nvptx/log1pf.cpp                   |  5 +++--
 libc/src/math/nvptx/log2.cpp                     |  5 +++--
 libc/src/math/nvptx/log2f.cpp                    |  5 +++--
 libc/src/math/nvptx/logb.cpp                     |  5 +++--
 libc/src/math/nvptx/logbf.cpp                    |  5 +++--
 libc/src/math/nvptx/logf.cpp                     |  5 +++--
 libc/src/math/nvptx/lrint.cpp                    |  5 +++--
 libc/src/math/nvptx/lrintf.cpp                   |  5 +++--
 libc/src/math/nvptx/nearbyint.cpp                |  5 +++--
 libc/src/math/nvptx/nearbyintf.cpp               |  5 +++--
 libc/src/math/nvptx/nextafter.cpp                |  5 +++--
 libc/src/math/nvptx/nextafterf.cpp               |  5 +++--
 libc/src/math/nvptx/nvptx.h                      |  5 +++--
 libc/src/math/nvptx/pow.cpp                      |  5 +++--
 libc/src/math/nvptx/powf.cpp                     |  5 +++--
 libc/src/math/nvptx/powi.cpp                     |  5 +++--
 libc/src/math/nvptx/powif.cpp                    |  5 +++--
 libc/src/math/nvptx/remainder.cpp                |  5 +++--
 libc/src/math/nvptx/remainderf.cpp               |  5 +++--
 libc/src/math/nvptx/remquo.cpp                   |  5 +++--
 libc/src/math/nvptx/remquof.cpp                  |  5 +++--
 libc/src/math/nvptx/rint.cpp                     |  5 +++--
 libc/src/math/nvptx/rintf.cpp                    |  5 +++--
 libc/src/math/nvptx/round.cpp                    |  5 +++--
 libc/src/math/nvptx/roundf.cpp                   |  5 +++--
 libc/src/math/nvptx/scalbn.cpp                   |  5 +++--
 libc/src/math/nvptx/scalbnf.cpp                  |  5 +++--
 libc/src/math/nvptx/sin.cpp                      |  5 +++--
 libc/src/math/nvptx/sincos.cpp                   |  5 +++--
 libc/src/math/nvptx/sincosf.cpp                  |  5 +++--
 libc/src/math/nvptx/sinf.cpp                     |  5 +++--
 libc/src/math/nvptx/sinh.cpp                     |  5 +++--
 libc/src/math/nvptx/sinhf.cpp                    |  5 +++--
 libc/src/math/nvptx/sqrt.cpp                     |  5 +++--
 libc/src/math/nvptx/sqrtf.cpp                    |  5 +++--
 libc/src/math/nvptx/tan.cpp                      |  5 +++--
 libc/src/math/nvptx/tanf.cpp                     |  5 +++--
 libc/src/math/nvptx/tanh.cpp                     |  5 +++--
 libc/src/math/nvptx/tanhf.cpp                    |  5 +++--
 libc/src/math/nvptx/tgamma.cpp                   |  5 +++--
 libc/src/math/nvptx/tgammaf.cpp                  |  5 +++--
 libc/src/math/nvptx/trunc.cpp                    |  5 +++--
 libc/src/math/nvptx/truncf.cpp                   |  5 +++--
 libc/src/math/pow.h                              |  6 ++++--
 libc/src/math/powf.h                             |  6 ++++--
 libc/src/math/powi.h                             |  6 ++++--
 libc/src/math/powif.h                            |  6 ++++--
 libc/src/math/remainder.h                        |  6 ++++--
 libc/src/math/remainderf.h                       |  6 ++++--
 libc/src/math/remainderf16.h                     |  5 +++--
 libc/src/math/remainderl.h                       |  6 ++++--
 libc/src/math/remquo.h                           |  6 ++++--
 libc/src/math/remquof.h                          |  6 ++++--
 libc/src/math/remquof128.h                       |  5 +++--
 libc/src/math/remquof16.h                        |  5 +++--
 libc/src/math/remquol.h                          |  6 ++++--
 libc/src/math/rint.h                             |  6 ++++--
 libc/src/math/rintf.h                            |  6 ++++--
 libc/src/math/rintf128.h                         |  5 +++--
 libc/src/math/rintf16.h                          |  5 +++--
 libc/src/math/rintl.h                            |  6 ++++--
 libc/src/math/round.h                            |  6 ++++--
 libc/src/math/roundeven.h                        |  6 ++++--
 libc/src/math/roundevenf.h                       |  6 ++++--
 libc/src/math/roundevenf128.h                    |  5 +++--
 libc/src/math/roundevenf16.h                     |  5 +++--
 libc/src/math/roundevenl.h                       |  6 ++++--
 libc/src/math/roundf.h                           |  6 ++++--
 libc/src/math/roundf128.h                        |  5 +++--
 libc/src/math/roundf16.h                         |  5 +++--
 libc/src/math/roundl.h                           |  6 ++++--
 libc/src/math/scalblnf16.h                       |  5 +++--
 libc/src/math/scalbn.h                           |  6 ++++--
 libc/src/math/scalbnf.h                          |  6 ++++--
 libc/src/math/scalbnf128.h                       |  5 +++--
 libc/src/math/scalbnf16.h                        |  5 +++--
 libc/src/math/scalbnl.h                          |  6 ++++--
 libc/src/math/setpayloadf16.h                    |  5 +++--
 libc/src/math/setpayloadsigf16.h                 |  5 +++--
 libc/src/math/sin.h                              |  6 ++++--
 libc/src/math/sincos.h                           |  6 ++++--
 libc/src/math/sincosf.h                          |  6 ++++--
 libc/src/math/sinf.h                             |  6 ++++--
 libc/src/math/sinh.h                             |  6 ++++--
 libc/src/math/sinhf.h                            |  6 ++++--
 libc/src/math/sinpif.h                           |  6 ++++--
 libc/src/math/sqrt.h                             |  6 ++++--
 libc/src/math/sqrtf.h                            |  6 ++++--
 libc/src/math/sqrtf128.h                         |  5 +++--
 libc/src/math/sqrtl.h                            |  6 ++++--
 libc/src/math/tan.h                              |  6 ++++--
 libc/src/math/tanf.h                             |  6 ++++--
 libc/src/math/tanh.h                             |  6 ++++--
 libc/src/math/tanhf.h                            |  6 ++++--
 libc/src/math/tgamma.h                           |  6 ++++--
 libc/src/math/tgammaf.h                          |  6 ++++--
 libc/src/math/totalorderf16.h                    |  5 +++--
 libc/src/math/totalordermagf16.h                 |  5 +++--
 libc/src/math/trunc.h                            |  6 ++++--
 libc/src/math/truncf.h                           |  6 ++++--
 libc/src/math/truncf128.h                        |  5 +++--
 libc/src/math/truncf16.h                         |  5 +++--
 libc/src/math/truncl.h                           |  6 ++++--
 libc/src/math/ufromfp.h                          |  6 ++++--
 libc/src/math/ufromfpf.h                         |  6 ++++--
 libc/src/math/ufromfpf128.h                      |  5 +++--
 libc/src/math/ufromfpf16.h                       |  5 +++--
 libc/src/math/ufromfpl.h                         |  6 ++++--
 libc/src/math/ufromfpx.h                         |  6 ++++--
 libc/src/math/ufromfpxf.h                        |  6 ++++--
 libc/src/math/ufromfpxf128.h                     |  5 +++--
 libc/src/math/ufromfpxf16.h                      |  5 +++--
 libc/src/math/ufromfpxl.h                        |  6 ++++--
 libc/src/network/htonl.cpp                       |  5 +++--
 libc/src/network/htonl.h                         |  5 +++--
 libc/src/network/htons.cpp                       |  5 +++--
 libc/src/network/htons.h                         |  5 +++--
 libc/src/network/ntohl.cpp                       |  5 +++--
 libc/src/network/ntohl.h                         |  5 +++--
 libc/src/network/ntohs.cpp                       |  5 +++--
 libc/src/network/ntohs.h                         |  5 +++--
 libc/src/pthread/pthread_atfork.cpp              |  5 +++--
 libc/src/pthread/pthread_atfork.h                |  5 +++--
 libc/src/pthread/pthread_attr_destroy.cpp        |  5 +++--
 libc/src/pthread/pthread_attr_destroy.h          |  5 +++--
 libc/src/pthread/pthread_attr_getdetachstate.cpp |  5 +++--
 libc/src/pthread/pthread_attr_getdetachstate.h   |  5 +++--
 libc/src/pthread/pthread_attr_getguardsize.cpp   |  5 +++--
 libc/src/pthread/pthread_attr_getguardsize.h     |  5 +++--
 libc/src/pthread/pthread_attr_getstack.cpp       |  5 +++--
 libc/src/pthread/pthread_attr_getstack.h         |  5 +++--
 libc/src/pthread/pthread_attr_getstacksize.cpp   |  5 +++--
 libc/src/pthread/pthread_attr_getstacksize.h     |  5 +++--
 libc/src/pthread/pthread_attr_init.cpp           |  5 +++--
 libc/src/pthread/pthread_attr_init.h             |  5 +++--
 libc/src/pthread/pthread_attr_setdetachstate.cpp |  5 +++--
 libc/src/pthread/pthread_attr_setdetachstate.h   |  5 +++--
 libc/src/pthread/pthread_attr_setguardsize.cpp   |  5 +++--
 libc/src/pthread/pthread_attr_setguardsize.h     |  5 +++--
 libc/src/pthread/pthread_attr_setstack.cpp       |  5 +++--
 libc/src/pthread/pthread_attr_setstack.h         |  5 +++--
 libc/src/pthread/pthread_attr_setstacksize.cpp   |  5 +++--
 libc/src/pthread/pthread_attr_setstacksize.h     |  5 +++--
 libc/src/pthread/pthread_condattr_destroy.cpp    |  5 +++--
 libc/src/pthread/pthread_condattr_destroy.h      |  5 +++--
 libc/src/pthread/pthread_condattr_getclock.cpp   |  5 +++--
 libc/src/pthread/pthread_condattr_getclock.h     |  5 +++--
 libc/src/pthread/pthread_condattr_getpshared.cpp |  5 +++--
 libc/src/pthread/pthread_condattr_getpshared.h   |  5 +++--
 libc/src/pthread/pthread_condattr_init.cpp       |  5 +++--
 libc/src/pthread/pthread_condattr_init.h         |  5 +++--
 libc/src/pthread/pthread_condattr_setclock.cpp   |  5 +++--
 libc/src/pthread/pthread_condattr_setclock.h     |  5 +++--
 libc/src/pthread/pthread_condattr_setpshared.cpp |  5 +++--
 libc/src/pthread/pthread_condattr_setpshared.h   |  5 +++--
 libc/src/pthread/pthread_create.cpp              |  5 +++--
 libc/src/pthread/pthread_create.h                |  5 +++--
 libc/src/pthread/pthread_detach.cpp              |  5 +++--
 libc/src/pthread/pthread_detach.h                |  5 +++--
 libc/src/pthread/pthread_equal.cpp               |  5 +++--
 libc/src/pthread/pthread_equal.h                 |  5 +++--
 libc/src/pthread/pthread_exit.cpp                |  5 +++--
 libc/src/pthread/pthread_exit.h                  |  5 +++--
 libc/src/pthread/pthread_getname_np.cpp          |  5 +++--
 libc/src/pthread/pthread_getname_np.h            |  5 +++--
 libc/src/pthread/pthread_getspecific.cpp         |  5 +++--
 libc/src/pthread/pthread_getspecific.h           |  5 +++--
 libc/src/pthread/pthread_join.cpp                |  5 +++--
 libc/src/pthread/pthread_join.h                  |  5 +++--
 libc/src/pthread/pthread_key_create.cpp          |  5 +++--
 libc/src/pthread/pthread_key_create.h            |  5 +++--
 libc/src/pthread/pthread_key_delete.cpp          |  5 +++--
 libc/src/pthread/pthread_key_delete.h            |  5 +++--
 libc/src/pthread/pthread_mutex_destroy.cpp       |  5 +++--
 libc/src/pthread/pthread_mutex_destroy.h         |  5 +++--
 libc/src/pthread/pthread_mutex_init.cpp          |  5 +++--
 libc/src/pthread/pthread_mutex_init.h            |  5 +++--
 libc/src/pthread/pthread_mutex_lock.cpp          |  5 +++--
 libc/src/pthread/pthread_mutex_lock.h            |  5 +++--
 libc/src/pthread/pthread_mutex_unlock.cpp        |  5 +++--
 libc/src/pthread/pthread_mutex_unlock.h          |  5 +++--
 libc/src/pthread/pthread_mutexattr.h             |  5 +++--
 libc/src/pthread/pthread_mutexattr_destroy.cpp   |  5 +++--
 libc/src/pthread/pthread_mutexattr_destroy.h     |  5 +++--
 .../src/pthread/pthread_mutexattr_getpshared.cpp |  5 +++--
 libc/src/pthread/pthread_mutexattr_getpshared.h  |  5 +++--
 libc/src/pthread/pthread_mutexattr_getrobust.cpp |  5 +++--
 libc/src/pthread/pthread_mutexattr_getrobust.h   |  5 +++--
 libc/src/pthread/pthread_mutexattr_gettype.cpp   |  5 +++--
 libc/src/pthread/pthread_mutexattr_gettype.h     |  5 +++--
 libc/src/pthread/pthread_mutexattr_init.cpp      |  5 +++--
 libc/src/pthread/pthread_mutexattr_init.h        |  5 +++--
 .../src/pthread/pthread_mutexattr_setpshared.cpp |  5 +++--
 libc/src/pthread/pthread_mutexattr_setpshared.h  |  5 +++--
 libc/src/pthread/pthread_mutexattr_setrobust.cpp |  5 +++--
 libc/src/pthread/pthread_mutexattr_setrobust.h   |  5 +++--
 libc/src/pthread/pthread_mutexattr_settype.cpp   |  5 +++--
 libc/src/pthread/pthread_mutexattr_settype.h     |  5 +++--
 libc/src/pthread/pthread_once.cpp                |  5 +++--
 libc/src/pthread/pthread_once.h                  |  5 +++--
 libc/src/pthread/pthread_rwlock_destroy.cpp      |  5 +++--
 libc/src/pthread/pthread_rwlock_destroy.h        |  5 +++--
 libc/src/pthread/pthread_rwlock_init.cpp         |  5 +++--
 libc/src/pthread/pthread_rwlock_init.h           |  5 +++--
 libc/src/pthread/pthread_rwlock_rdlock.cpp       |  5 +++--
 libc/src/pthread/pthread_rwlock_rdlock.h         |  5 +++--
 libc/src/pthread/pthread_rwlock_timedrdlock.cpp  |  5 +++--
 libc/src/pthread/pthread_rwlock_timedrdlock.h    |  5 +++--
 libc/src/pthread/pthread_rwlock_timedwrlock.cpp  |  5 +++--
 libc/src/pthread/pthread_rwlock_timedwrlock.h    |  5 +++--
 libc/src/pthread/pthread_rwlock_tryrdlock.cpp    |  5 +++--
 libc/src/pthread/pthread_rwlock_tryrdlock.h      |  5 +++--
 libc/src/pthread/pthread_rwlock_trywrlock.cpp    |  5 +++--
 libc/src/pthread/pthread_rwlock_trywrlock.h      |  5 +++--
 libc/src/pthread/pthread_rwlock_unlock.cpp       |  5 +++--
 libc/src/pthread/pthread_rwlock_unlock.h         |  5 +++--
 libc/src/pthread/pthread_rwlock_wrlock.cpp       |  5 +++--
 libc/src/pthread/pthread_rwlock_wrlock.h         |  5 +++--
 libc/src/pthread/pthread_rwlockattr_destroy.cpp  |  5 +++--
 libc/src/pthread/pthread_rwlockattr_destroy.h    |  5 +++--
 .../pthread/pthread_rwlockattr_getkind_np.cpp    |  5 +++--
 libc/src/pthread/pthread_rwlockattr_getkind_np.h |  5 +++--
 .../pthread/pthread_rwlockattr_getpshared.cpp    |  5 +++--
 libc/src/pthread/pthread_rwlockattr_getpshared.h |  5 +++--
 libc/src/pthread/pthread_rwlockattr_init.cpp     |  5 +++--
 libc/src/pthread/pthread_rwlockattr_init.h       |  5 +++--
 .../pthread/pthread_rwlockattr_setkind_np.cpp    |  5 +++--
 libc/src/pthread/pthread_rwlockattr_setkind_np.h |  5 +++--
 .../pthread/pthread_rwlockattr_setpshared.cpp    |  5 +++--
 libc/src/pthread/pthread_rwlockattr_setpshared.h |  5 +++--
 libc/src/pthread/pthread_self.cpp                |  5 +++--
 libc/src/pthread/pthread_self.h                  |  5 +++--
 libc/src/pthread/pthread_setname_np.cpp          |  5 +++--
 libc/src/pthread/pthread_setname_np.h            |  5 +++--
 libc/src/pthread/pthread_setspecific.cpp         |  5 +++--
 libc/src/pthread/pthread_setspecific.h           |  5 +++--
 libc/src/sched/linux/sched_get_priority_max.cpp  |  5 +++--
 libc/src/sched/linux/sched_get_priority_min.cpp  |  5 +++--
 libc/src/sched/linux/sched_getaffinity.cpp       |  5 +++--
 libc/src/sched/linux/sched_getcpucount.cpp       |  5 +++--
 libc/src/sched/linux/sched_getparam.cpp          |  5 +++--
 libc/src/sched/linux/sched_getscheduler.cpp      |  5 +++--
 libc/src/sched/linux/sched_rr_get_interval.cpp   |  5 +++--
 libc/src/sched/linux/sched_setaffinity.cpp       |  5 +++--
 libc/src/sched/linux/sched_setparam.cpp          |  5 +++--
 libc/src/sched/linux/sched_setscheduler.cpp      |  5 +++--
 libc/src/sched/linux/sched_yield.cpp             |  5 +++--
 libc/src/sched/sched_get_priority_max.h          |  6 ++++--
 libc/src/sched/sched_get_priority_min.h          |  6 ++++--
 libc/src/sched/sched_getaffinity.h               |  5 +++--
 libc/src/sched/sched_getcpucount.h               |  5 +++--
 libc/src/sched/sched_getparam.h                  |  5 +++--
 libc/src/sched/sched_getscheduler.h              |  5 +++--
 libc/src/sched/sched_rr_get_interval.h           |  5 +++--
 libc/src/sched/sched_setaffinity.h               |  5 +++--
 libc/src/sched/sched_setparam.h                  |  5 +++--
 libc/src/sched/sched_setscheduler.h              |  5 +++--
 libc/src/sched/sched_yield.h                     |  6 ++++--
 libc/src/search/hcreate.cpp                      |  5 +++--
 libc/src/search/hcreate.h                        |  5 +++--
 libc/src/search/hcreate_r.cpp                    |  5 +++--
 libc/src/search/hcreate_r.h                      |  5 +++--
 libc/src/search/hdestroy.cpp                     |  5 +++--
 libc/src/search/hdestroy.h                       |  5 +++--
 libc/src/search/hdestroy_r.cpp                   |  5 +++--
 libc/src/search/hdestroy_r.h                     |  5 +++--
 libc/src/search/hsearch.cpp                      |  5 +++--
 libc/src/search/hsearch.h                        |  5 +++--
 libc/src/search/hsearch/global.cpp               |  6 ++++--
 libc/src/search/hsearch/global.h                 |  6 ++++--
 libc/src/search/hsearch_r.cpp                    |  5 +++--
 libc/src/search/hsearch_r.h                      |  5 +++--
 libc/src/search/insque.cpp                       |  5 +++--
 libc/src/search/insque.h                         |  5 +++--
 libc/src/search/remque.cpp                       |  5 +++--
 libc/src/search/remque.h                         |  5 +++--
 libc/src/setjmp/arm/longjmp.cpp                  |  5 +++--
 libc/src/setjmp/arm/setjmp.cpp                   |  5 +++--
 libc/src/setjmp/longjmp.h                        |  5 +++--
 libc/src/setjmp/riscv/longjmp.cpp                |  5 +++--
 libc/src/setjmp/riscv/setjmp.cpp                 |  5 +++--
 libc/src/setjmp/setjmp_impl.h                    |  5 +++--
 libc/src/setjmp/x86_64/longjmp.cpp               |  5 +++--
 libc/src/setjmp/x86_64/setjmp.cpp                |  5 +++--
 libc/src/signal/kill.h                           |  5 +++--
 libc/src/signal/linux/__restore.cpp              |  5 +++--
 libc/src/signal/linux/kill.cpp                   |  5 +++--
 libc/src/signal/linux/raise.cpp                  |  5 +++--
 libc/src/signal/linux/sigaction.cpp              |  5 +++--
 libc/src/signal/linux/sigaddset.cpp              |  5 +++--
 libc/src/signal/linux/sigaltstack.cpp            |  5 +++--
 libc/src/signal/linux/sigdelset.cpp              |  5 +++--
 libc/src/signal/linux/sigemptyset.cpp            |  5 +++--
 libc/src/signal/linux/sigfillset.cpp             |  5 +++--
 libc/src/signal/linux/signal.cpp                 |  5 +++--
 libc/src/signal/linux/signal_utils.h             |  5 +++--
 libc/src/signal/linux/sigprocmask.cpp            |  5 +++--
 libc/src/signal/raise.h                          |  5 +++--
 libc/src/signal/sigaction.h                      |  5 +++--
 libc/src/signal/sigaddset.h                      |  5 +++--
 libc/src/signal/sigaltstack.h                    |  5 +++--
 libc/src/signal/sigdelset.h                      |  5 +++--
 libc/src/signal/sigemptyset.h                    |  5 +++--
 libc/src/signal/sigfillset.h                     |  5 +++--
 libc/src/signal/signal.h                         |  5 +++--
 libc/src/signal/sigprocmask.h                    |  5 +++--
 libc/src/spawn/file_actions.h                    |  5 +++--
 libc/src/spawn/linux/posix_spawn.cpp             |  5 +++--
 libc/src/spawn/posix_spawn.h                     |  5 +++--
 .../spawn/posix_spawn_file_actions_addclose.cpp  |  5 +++--
 .../spawn/posix_spawn_file_actions_addclose.h    |  5 +++--
 .../spawn/posix_spawn_file_actions_adddup2.cpp   |  5 +++--
 .../src/spawn/posix_spawn_file_actions_adddup2.h |  5 +++--
 .../spawn/posix_spawn_file_actions_addopen.cpp   |  5 +++--
 .../src/spawn/posix_spawn_file_actions_addopen.h |  5 +++--
 .../spawn/posix_spawn_file_actions_destroy.cpp   |  5 +++--
 .../src/spawn/posix_spawn_file_actions_destroy.h |  5 +++--
 libc/src/spawn/posix_spawn_file_actions_init.cpp |  5 +++--
 libc/src/spawn/posix_spawn_file_actions_init.h   |  5 +++--
 libc/src/stdbit/stdc_bit_ceil_uc.cpp             |  5 +++--
 libc/src/stdbit/stdc_bit_ceil_uc.h               |  6 ++++--
 libc/src/stdbit/stdc_bit_ceil_ui.cpp             |  5 +++--
 libc/src/stdbit/stdc_bit_ceil_ui.h               |  6 ++++--
 libc/src/stdbit/stdc_bit_ceil_ul.cpp             |  5 +++--
 libc/src/stdbit/stdc_bit_ceil_ul.h               |  6 ++++--
 libc/src/stdbit/stdc_bit_ceil_ull.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_ceil_ull.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_ceil_us.cpp             |  5 +++--
 libc/src/stdbit/stdc_bit_ceil_us.h               |  6 ++++--
 libc/src/stdbit/stdc_bit_floor_uc.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_floor_uc.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_floor_ui.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_floor_ui.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_floor_ul.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_floor_ul.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_floor_ull.cpp           |  5 +++--
 libc/src/stdbit/stdc_bit_floor_ull.h             |  6 ++++--
 libc/src/stdbit/stdc_bit_floor_us.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_floor_us.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_width_uc.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_width_uc.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_width_ui.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_width_ui.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_width_ul.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_width_ul.h              |  6 ++++--
 libc/src/stdbit/stdc_bit_width_ull.cpp           |  5 +++--
 libc/src/stdbit/stdc_bit_width_ull.h             |  6 ++++--
 libc/src/stdbit/stdc_bit_width_us.cpp            |  5 +++--
 libc/src/stdbit/stdc_bit_width_us.h              |  6 ++++--
 libc/src/stdbit/stdc_count_ones_uc.cpp           |  5 +++--
 libc/src/stdbit/stdc_count_ones_uc.h             |  6 ++++--
 libc/src/stdbit/stdc_count_ones_ui.cpp           |  5 +++--
 libc/src/stdbit/stdc_count_ones_ui.h             |  6 ++++--
 libc/src/stdbit/stdc_count_ones_ul.cpp           |  5 +++--
 libc/src/stdbit/stdc_count_ones_ul.h             |  6 ++++--
 libc/src/stdbit/stdc_count_ones_ull.cpp          |  5 +++--
 libc/src/stdbit/stdc_count_ones_ull.h            |  6 ++++--
 libc/src/stdbit/stdc_count_ones_us.cpp           |  5 +++--
 libc/src/stdbit/stdc_count_ones_us.h             |  6 ++++--
 libc/src/stdbit/stdc_count_zeros_uc.cpp          |  5 +++--
 libc/src/stdbit/stdc_count_zeros_uc.h            |  6 ++++--
 libc/src/stdbit/stdc_count_zeros_ui.cpp          |  5 +++--
 libc/src/stdbit/stdc_count_zeros_ui.h            |  6 ++++--
 libc/src/stdbit/stdc_count_zeros_ul.cpp          |  5 +++--
 libc/src/stdbit/stdc_count_zeros_ul.h            |  6 ++++--
 libc/src/stdbit/stdc_count_zeros_ull.cpp         |  5 +++--
 libc/src/stdbit/stdc_count_zeros_ull.h           |  6 ++++--
 libc/src/stdbit/stdc_count_zeros_us.cpp          |  5 +++--
 libc/src/stdbit/stdc_count_zeros_us.h            |  6 ++++--
 libc/src/stdbit/stdc_first_leading_one_uc.cpp    |  5 +++--
 libc/src/stdbit/stdc_first_leading_one_uc.h      |  6 ++++--
 libc/src/stdbit/stdc_first_leading_one_ui.cpp    |  5 +++--
 libc/src/stdbit/stdc_first_leading_one_ui.h      |  6 ++++--
 libc/src/stdbit/stdc_first_leading_one_ul.cpp    |  5 +++--
 libc/src/stdbit/stdc_first_leading_one_ul.h      |  6 ++++--
 libc/src/stdbit/stdc_first_leading_one_ull.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_leading_one_ull.h     |  6 ++++--
 libc/src/stdbit/stdc_first_leading_one_us.cpp    |  5 +++--
 libc/src/stdbit/stdc_first_leading_one_us.h      |  6 ++++--
 libc/src/stdbit/stdc_first_leading_zero_uc.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_leading_zero_uc.h     |  6 ++++--
 libc/src/stdbit/stdc_first_leading_zero_ui.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_leading_zero_ui.h     |  6 ++++--
 libc/src/stdbit/stdc_first_leading_zero_ul.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_leading_zero_ul.h     |  6 ++++--
 libc/src/stdbit/stdc_first_leading_zero_ull.cpp  |  5 +++--
 libc/src/stdbit/stdc_first_leading_zero_ull.h    |  6 ++++--
 libc/src/stdbit/stdc_first_leading_zero_us.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_leading_zero_us.h     |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_one_uc.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_trailing_one_uc.h     |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_one_ui.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_trailing_one_ui.h     |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_one_ul.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_trailing_one_ul.h     |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_one_ull.cpp  |  5 +++--
 libc/src/stdbit/stdc_first_trailing_one_ull.h    |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_one_us.cpp   |  5 +++--
 libc/src/stdbit/stdc_first_trailing_one_us.h     |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_zero_uc.cpp  |  5 +++--
 libc/src/stdbit/stdc_first_trailing_zero_uc.h    |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_zero_ui.cpp  |  5 +++--
 libc/src/stdbit/stdc_first_trailing_zero_ui.h    |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_zero_ul.cpp  |  5 +++--
 libc/src/stdbit/stdc_first_trailing_zero_ul.h    |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_zero_ull.cpp |  5 +++--
 libc/src/stdbit/stdc_first_trailing_zero_ull.h   |  6 ++++--
 libc/src/stdbit/stdc_first_trailing_zero_us.cpp  |  5 +++--
 libc/src/stdbit/stdc_first_trailing_zero_us.h    |  6 ++++--
 libc/src/stdbit/stdc_has_single_bit_uc.cpp       |  5 +++--
 libc/src/stdbit/stdc_has_single_bit_uc.h         |  6 ++++--
 libc/src/stdbit/stdc_has_single_bit_ui.cpp       |  5 +++--
 libc/src/stdbit/stdc_has_single_bit_ui.h         |  6 ++++--
 libc/src/stdbit/stdc_has_single_bit_ul.cpp       |  5 +++--
 libc/src/stdbit/stdc_has_single_bit_ul.h         |  6 ++++--
 libc/src/stdbit/stdc_has_single_bit_ull.cpp      |  5 +++--
 libc/src/stdbit/stdc_has_single_bit_ull.h        |  6 ++++--
 libc/src/stdbit/stdc_has_single_bit_us.cpp       |  5 +++--
 libc/src/stdbit/stdc_has_single_bit_us.h         |  6 ++++--
 libc/src/stdbit/stdc_leading_ones_uc.cpp         |  5 +++--
 libc/src/stdbit/stdc_leading_ones_uc.h           |  6 ++++--
 libc/src/stdbit/stdc_leading_ones_ui.cpp         |  5 +++--
 libc/src/stdbit/stdc_leading_ones_ui.h           |  6 ++++--
 libc/src/stdbit/stdc_leading_ones_ul.cpp         |  5 +++--
 libc/src/stdbit/stdc_leading_ones_ul.h           |  6 ++++--
 libc/src/stdbit/stdc_leading_ones_ull.cpp        |  5 +++--
 libc/src/stdbit/stdc_leading_ones_ull.h          |  6 ++++--
 libc/src/stdbit/stdc_leading_ones_us.cpp         |  5 +++--
 libc/src/stdbit/stdc_leading_ones_us.h           |  6 ++++--
 libc/src/stdbit/stdc_leading_zeros_uc.cpp        |  5 +++--
 libc/src/stdbit/stdc_leading_zeros_uc.h          |  6 ++++--
 libc/src/stdbit/stdc_leading_zeros_ui.cpp        |  5 +++--
 libc/src/stdbit/stdc_leading_zeros_ui.h          |  6 ++++--
 libc/src/stdbit/stdc_leading_zeros_ul.cpp        |  5 +++--
 libc/src/stdbit/stdc_leading_zeros_ul.h          |  6 ++++--
 libc/src/stdbit/stdc_leading_zeros_ull.cpp       |  5 +++--
 libc/src/stdbit/stdc_leading_zeros_ull.h         |  6 ++++--
 libc/src/stdbit/stdc_leading_zeros_us.cpp        |  5 +++--
 libc/src/stdbit/stdc_leading_zeros_us.h          |  6 ++++--
 libc/src/stdbit/stdc_trailing_ones_uc.cpp        |  5 +++--
 libc/src/stdbit/stdc_trailing_ones_uc.h          |  6 ++++--
 libc/src/stdbit/stdc_trailing_ones_ui.cpp        |  5 +++--
 libc/src/stdbit/stdc_trailing_ones_ui.h          |  6 ++++--
 libc/src/stdbit/stdc_trailing_ones_ul.cpp        |  5 +++--
 libc/src/stdbit/stdc_trailing_ones_ul.h          |  6 ++++--
 libc/src/stdbit/stdc_trailing_ones_ull.cpp       |  5 +++--
 libc/src/stdbit/stdc_trailing_ones_ull.h         |  6 ++++--
 libc/src/stdbit/stdc_trailing_ones_us.cpp        |  5 +++--
 libc/src/stdbit/stdc_trailing_ones_us.h          |  6 ++++--
 libc/src/stdbit/stdc_trailing_zeros_uc.cpp       |  5 +++--
 libc/src/stdbit/stdc_trailing_zeros_uc.h         |  6 ++++--
 libc/src/stdbit/stdc_trailing_zeros_ui.cpp       |  5 +++--
 libc/src/stdbit/stdc_trailing_zeros_ui.h         |  6 ++++--
 libc/src/stdbit/stdc_trailing_zeros_ul.cpp       |  5 +++--
 libc/src/stdbit/stdc_trailing_zeros_ul.h         |  6 ++++--
 libc/src/stdbit/stdc_trailing_zeros_ull.cpp      |  5 +++--
 libc/src/stdbit/stdc_trailing_zeros_ull.h        |  6 ++++--
 libc/src/stdbit/stdc_trailing_zeros_us.cpp       |  5 +++--
 libc/src/stdbit/stdc_trailing_zeros_us.h         |  6 ++++--
 libc/src/stdfix/abshk.cpp                        |  5 +++--
 libc/src/stdfix/abshk.h                          |  5 +++--
 libc/src/stdfix/abshr.cpp                        |  5 +++--
 libc/src/stdfix/abshr.h                          |  5 +++--
 libc/src/stdfix/absk.cpp                         |  5 +++--
 libc/src/stdfix/absk.h                           |  5 +++--
 libc/src/stdfix/abslk.cpp                        |  5 +++--
 libc/src/stdfix/abslk.h                          |  5 +++--
 libc/src/stdfix/abslr.cpp                        |  5 +++--
 libc/src/stdfix/abslr.h                          |  5 +++--
 libc/src/stdfix/absr.cpp                         |  5 +++--
 libc/src/stdfix/absr.h                           |  5 +++--
 libc/src/stdfix/exphk.cpp                        |  5 +++--
 libc/src/stdfix/exphk.h                          |  5 +++--
 libc/src/stdfix/expk.cpp                         |  5 +++--
 libc/src/stdfix/expk.h                           |  5 +++--
 libc/src/stdfix/roundhk.cpp                      |  5 +++--
 libc/src/stdfix/roundhk.h                        |  5 +++--
 libc/src/stdfix/roundhr.cpp                      |  5 +++--
 libc/src/stdfix/roundhr.h                        |  5 +++--
 libc/src/stdfix/roundk.cpp                       |  5 +++--
 libc/src/stdfix/roundk.h                         |  5 +++--
 libc/src/stdfix/roundlk.cpp                      |  5 +++--
 libc/src/stdfix/roundlk.h                        |  5 +++--
 libc/src/stdfix/roundlr.cpp                      |  5 +++--
 libc/src/stdfix/roundlr.h                        |  5 +++--
 libc/src/stdfix/roundr.cpp                       |  5 +++--
 libc/src/stdfix/roundr.h                         |  5 +++--
 libc/src/stdfix/rounduhk.cpp                     |  5 +++--
 libc/src/stdfix/rounduhk.h                       |  5 +++--
 libc/src/stdfix/rounduhr.cpp                     |  5 +++--
 libc/src/stdfix/rounduhr.h                       |  5 +++--
 libc/src/stdfix/rounduk.cpp                      |  5 +++--
 libc/src/stdfix/rounduk.h                        |  5 +++--
 libc/src/stdfix/roundulk.cpp                     |  5 +++--
 libc/src/stdfix/roundulk.h                       |  5 +++--
 libc/src/stdfix/roundulr.cpp                     |  5 +++--
 libc/src/stdfix/roundulr.h                       |  5 +++--
 libc/src/stdfix/roundur.cpp                      |  5 +++--
 libc/src/stdfix/roundur.h                        |  5 +++--
 libc/src/stdfix/sqrtuhk.cpp                      |  5 +++--
 libc/src/stdfix/sqrtuhk.h                        |  5 +++--
 libc/src/stdfix/sqrtuhr.cpp                      |  5 +++--
 libc/src/stdfix/sqrtuhr.h                        |  5 +++--
 libc/src/stdfix/sqrtuk.cpp                       |  5 +++--
 libc/src/stdfix/sqrtuk.h                         |  5 +++--
 libc/src/stdfix/sqrtulr.cpp                      |  5 +++--
 libc/src/stdfix/sqrtulr.h                        |  5 +++--
 libc/src/stdfix/sqrtur.cpp                       |  5 +++--
 libc/src/stdfix/sqrtur.h                         |  5 +++--
 libc/src/stdfix/uhksqrtus.cpp                    |  5 +++--
 libc/src/stdfix/uhksqrtus.h                      |  5 +++--
 libc/src/stdfix/uksqrtui.cpp                     |  5 +++--
 libc/src/stdfix/uksqrtui.h                       |  5 +++--
 libc/src/stdio/CMakeLists.txt                    |  1 -
 libc/src/stdio/baremetal/getchar.cpp             |  5 +++--
 libc/src/stdio/baremetal/printf.cpp              |  5 +++--
 libc/src/stdio/baremetal/putchar.cpp             |  5 +++--
 libc/src/stdio/baremetal/puts.cpp                |  5 +++--
 libc/src/stdio/baremetal/remove.cpp              |  5 +++--
 libc/src/stdio/baremetal/vprintf.cpp             |  5 +++--
 libc/src/stdio/clearerr.h                        |  5 +++--
 libc/src/stdio/clearerr_unlocked.h               |  5 +++--
 libc/src/stdio/fclose.h                          |  5 +++--
 libc/src/stdio/fdopen.h                          |  5 +++--
 libc/src/stdio/feof.h                            |  5 +++--
 libc/src/stdio/feof_unlocked.h                   |  5 +++--
 libc/src/stdio/ferror.h                          |  5 +++--
 libc/src/stdio/ferror_unlocked.h                 |  5 +++--
 libc/src/stdio/fflush.h                          |  5 +++--
 libc/src/stdio/fgetc.h                           |  5 +++--
 libc/src/stdio/fgetc_unlocked.h                  |  5 +++--
 libc/src/stdio/fgets.h                           |  5 +++--
 libc/src/stdio/fileno.h                          |  5 +++--
 libc/src/stdio/flockfile.cpp                     |  5 +++--
 libc/src/stdio/flockfile.h                       |  5 +++--
 libc/src/stdio/fopen.h                           |  5 +++--
 libc/src/stdio/fopencookie.cpp                   |  5 +++--
 libc/src/stdio/fopencookie.h                     |  5 +++--
 libc/src/stdio/fprintf.cpp                       |  5 +++--
 libc/src/stdio/fprintf.h                         |  5 +++--
 libc/src/stdio/fputc.h                           |  5 +++--
 libc/src/stdio/fputs.h                           |  5 +++--
 libc/src/stdio/fread.h                           |  5 +++--
 libc/src/stdio/fread_unlocked.h                  |  5 +++--
 libc/src/stdio/fscanf.cpp                        |  5 +++--
 libc/src/stdio/fscanf.h                          |  5 +++--
 libc/src/stdio/fseek.h                           |  5 +++--
 libc/src/stdio/fseeko.h                          |  5 +++--
 libc/src/stdio/ftell.h                           |  5 +++--
 libc/src/stdio/ftello.h                          |  5 +++--
 libc/src/stdio/funlockfile.cpp                   |  5 +++--
 libc/src/stdio/funlockfile.h                     |  5 +++--
 libc/src/stdio/fwrite.h                          |  5 +++--
 libc/src/stdio/fwrite_unlocked.h                 |  5 +++--
 libc/src/stdio/generic/clearerr.cpp              |  5 +++--
 libc/src/stdio/generic/clearerr_unlocked.cpp     |  5 +++--
 libc/src/stdio/generic/fclose.cpp                |  5 +++--
 libc/src/stdio/generic/feof.cpp                  |  5 +++--
 libc/src/stdio/generic/feof_unlocked.cpp         |  5 +++--
 libc/src/stdio/generic/ferror.cpp                |  5 +++--
 libc/src/stdio/generic/ferror_unlocked.cpp       |  5 +++--
 libc/src/stdio/generic/fflush.cpp                |  5 +++--
 libc/src/stdio/generic/fgetc.cpp                 |  5 +++--
 libc/src/stdio/generic/fgetc_unlocked.cpp        |  5 +++--
 libc/src/stdio/generic/fgets.cpp                 |  5 +++--
 libc/src/stdio/generic/fileno.cpp                |  5 +++--
 libc/src/stdio/generic/fopen.cpp                 |  5 +++--
 libc/src/stdio/generic/fputc.cpp                 |  5 +++--
 libc/src/stdio/generic/fputs.cpp                 |  5 +++--
 libc/src/stdio/generic/fread.cpp                 |  5 +++--
 libc/src/stdio/generic/fread_unlocked.cpp        |  5 +++--
 libc/src/stdio/generic/fseek.cpp                 |  5 +++--
 libc/src/stdio/generic/fseeko.cpp                |  5 +++--
 libc/src/stdio/generic/ftell.cpp                 |  5 +++--
 libc/src/stdio/generic/ftello.cpp                |  5 +++--
 libc/src/stdio/generic/fwrite.cpp                |  5 +++--
 libc/src/stdio/generic/fwrite_unlocked.cpp       |  5 +++--
 libc/src/stdio/generic/getc.cpp                  |  5 +++--
 libc/src/stdio/generic/getc_unlocked.cpp         |  5 +++--
 libc/src/stdio/generic/getchar.cpp               |  5 +++--
 libc/src/stdio/generic/getchar_unlocked.cpp      |  5 +++--
 libc/src/stdio/generic/printf.cpp                |  5 +++--
 libc/src/stdio/generic/putc.cpp                  |  5 +++--
 libc/src/stdio/generic/putchar.cpp               |  5 +++--
 libc/src/stdio/generic/puts.cpp                  |  5 +++--
 libc/src/stdio/generic/ungetc.cpp                |  5 +++--
 libc/src/stdio/generic/vprintf.cpp               |  5 +++--
 libc/src/stdio/getc.h                            |  5 +++--
 libc/src/stdio/getc_unlocked.h                   |  5 +++--
 libc/src/stdio/getchar.h                         |  6 ++++--
 libc/src/stdio/getchar_unlocked.h                |  6 ++++--
 libc/src/stdio/gpu/clearerr.cpp                  |  5 +++--
 libc/src/stdio/gpu/fclose.cpp                    |  5 +++--
 libc/src/stdio/gpu/feof.cpp                      |  5 +++--
 libc/src/stdio/gpu/ferror.cpp                    |  5 +++--
 libc/src/stdio/gpu/fflush.cpp                    |  5 +++--
 libc/src/stdio/gpu/fgetc.cpp                     |  5 +++--
 libc/src/stdio/gpu/fgets.cpp                     |  5 +++--
 libc/src/stdio/gpu/file.h                        |  5 +++--
 libc/src/stdio/gpu/fopen.cpp                     |  5 +++--
 libc/src/stdio/gpu/fputc.cpp                     |  5 +++--
 libc/src/stdio/gpu/fputs.cpp                     |  5 +++--
 libc/src/stdio/gpu/fread.cpp                     |  5 +++--
 libc/src/stdio/gpu/fseek.cpp                     |  5 +++--
 libc/src/stdio/gpu/ftell.cpp                     |  5 +++--
 libc/src/stdio/gpu/fwrite.cpp                    |  5 +++--
 libc/src/stdio/gpu/getc.cpp                      |  5 +++--
 libc/src/stdio/gpu/getchar.cpp                   |  5 +++--
 libc/src/stdio/gpu/putc.cpp                      |  5 +++--
 libc/src/stdio/gpu/putchar.cpp                   |  5 +++--
 libc/src/stdio/gpu/puts.cpp                      |  5 +++--
 libc/src/stdio/gpu/remove.cpp                    |  5 +++--
 libc/src/stdio/gpu/stderr.cpp                    |  5 +++--
 libc/src/stdio/gpu/stdin.cpp                     |  5 +++--
 libc/src/stdio/gpu/stdout.cpp                    |  5 +++--
 libc/src/stdio/gpu/ungetc.cpp                    |  5 +++--
 libc/src/stdio/linux/fdopen.cpp                  |  5 +++--
 libc/src/stdio/linux/remove.cpp                  |  5 +++--
 libc/src/stdio/linux/rename.cpp                  |  5 +++--
 libc/src/stdio/printf.h                          |  5 +++--
 libc/src/stdio/printf_core/char_converter.h      |  5 +++--
 libc/src/stdio/printf_core/converter.cpp         |  5 +++--
 libc/src/stdio/printf_core/converter.h           |  5 +++--
 libc/src/stdio/printf_core/converter_utils.h     |  5 +++--
 libc/src/stdio/printf_core/core_structs.h        |  4 ++--
 libc/src/stdio/printf_core/fixed_converter.h     |  5 +++--
 libc/src/stdio/printf_core/float_dec_converter.h |  5 +++--
 libc/src/stdio/printf_core/float_hex_converter.h |  5 +++--
 .../stdio/printf_core/float_inf_nan_converter.h  |  5 +++--
 libc/src/stdio/printf_core/int_converter.h       |  5 +++--
 libc/src/stdio/printf_core/parser.h              |  5 +++--
 libc/src/stdio/printf_core/printf_main.cpp       |  5 +++--
 libc/src/stdio/printf_core/printf_main.h         |  5 +++--
 libc/src/stdio/printf_core/ptr_converter.h       |  5 +++--
 libc/src/stdio/printf_core/string_converter.h    |  5 +++--
 libc/src/stdio/printf_core/vfprintf_internal.h   |  5 +++--
 libc/src/stdio/printf_core/write_int_converter.h |  5 +++--
 libc/src/stdio/printf_core/writer.cpp            |  5 +++--
 libc/src/stdio/printf_core/writer.h              |  5 +++--
 libc/src/stdio/putc.h                            |  5 +++--
 libc/src/stdio/putchar.h                         |  6 ++++--
 libc/src/stdio/puts.h                            |  6 ++++--
 libc/src/stdio/remove.h                          |  5 +++--
 libc/src/stdio/rename.h                          |  6 ++++--
 libc/src/stdio/scanf.cpp                         |  5 +++--
 libc/src/stdio/scanf.h                           |  6 ++++--
 libc/src/stdio/scanf_core/converter.cpp          |  5 +++--
 libc/src/stdio/scanf_core/converter.h            |  5 +++--
 libc/src/stdio/scanf_core/converter_utils.h      |  5 +++--
 libc/src/stdio/scanf_core/core_structs.h         |  5 +++--
 .../src/stdio/scanf_core/current_pos_converter.h |  5 +++--
 libc/src/stdio/scanf_core/float_converter.cpp    |  5 +++--
 libc/src/stdio/scanf_core/float_converter.h      |  5 +++--
 libc/src/stdio/scanf_core/int_converter.cpp      |  5 +++--
 libc/src/stdio/scanf_core/int_converter.h        |  5 +++--
 libc/src/stdio/scanf_core/parser.h               |  5 +++--
 libc/src/stdio/scanf_core/ptr_converter.cpp      |  5 +++--
 libc/src/stdio/scanf_core/ptr_converter.h        |  5 +++--
 libc/src/stdio/scanf_core/reader.cpp             |  5 +++--
 libc/src/stdio/scanf_core/reader.h               |  5 +++--
 libc/src/stdio/scanf_core/scanf_main.cpp         |  5 +++--
 libc/src/stdio/scanf_core/scanf_main.h           |  5 +++--
 libc/src/stdio/scanf_core/string_converter.cpp   |  5 +++--
 libc/src/stdio/scanf_core/string_converter.h     |  5 +++--
 libc/src/stdio/scanf_core/vfscanf_internal.h     |  5 +++--
 libc/src/stdio/setbuf.cpp                        |  5 +++--
 libc/src/stdio/setbuf.h                          |  5 +++--
 libc/src/stdio/setvbuf.cpp                       |  5 +++--
 libc/src/stdio/setvbuf.h                         |  5 +++--
 libc/src/stdio/snprintf.cpp                      |  5 +++--
 libc/src/stdio/snprintf.h                        |  5 +++--
 libc/src/stdio/sprintf.cpp                       |  5 +++--
 libc/src/stdio/sprintf.h                         |  6 ++++--
 libc/src/stdio/sscanf.cpp                        |  5 +++--
 libc/src/stdio/sscanf.h                          |  6 ++++--
 libc/src/stdio/ungetc.h                          |  5 +++--
 libc/src/stdio/vfprintf.cpp                      |  5 +++--
 libc/src/stdio/vfprintf.h                        |  5 +++--
 libc/src/stdio/vprintf.h                         |  5 +++--
 libc/src/stdio/vsnprintf.cpp                     |  5 +++--
 libc/src/stdio/vsnprintf.h                       |  5 +++--
 libc/src/stdio/vsprintf.cpp                      |  5 +++--
 libc/src/stdio/vsprintf.h                        |  5 +++--
 libc/src/stdlib/_Exit.cpp                        |  5 +++--
 libc/src/stdlib/_Exit.h                          |  6 ++++--
 libc/src/stdlib/abort.h                          |  6 ++++--
 libc/src/stdlib/abs.cpp                          |  5 +++--
 libc/src/stdlib/abs.h                            |  6 ++++--
 libc/src/stdlib/aligned_alloc.h                  |  5 +++--
 libc/src/stdlib/at_quick_exit.cpp                |  5 +++--
 libc/src/stdlib/at_quick_exit.h                  |  5 +++--
 libc/src/stdlib/atexit.cpp                       |  5 +++--
 libc/src/stdlib/atexit.h                         |  6 ++++--
 libc/src/stdlib/atof.cpp                         |  5 +++--
 libc/src/stdlib/atof.h                           |  6 ++++--
 libc/src/stdlib/atoi.cpp                         |  5 +++--
 libc/src/stdlib/atoi.h                           |  6 ++++--
 libc/src/stdlib/atol.cpp                         |  5 +++--
 libc/src/stdlib/atol.h                           |  6 ++++--
 libc/src/stdlib/atoll.cpp                        |  5 +++--
 libc/src/stdlib/atoll.h                          |  6 ++++--
 libc/src/stdlib/baremetal/abort.cpp              |  5 +++--
 libc/src/stdlib/bsearch.cpp                      |  5 +++--
 libc/src/stdlib/bsearch.h                        |  5 +++--
 libc/src/stdlib/calloc.h                         |  5 +++--
 libc/src/stdlib/div.cpp                          |  5 +++--
 libc/src/stdlib/div.h                            |  5 +++--
 libc/src/stdlib/exit.cpp                         |  5 +++--
 libc/src/stdlib/exit.h                           |  5 +++--
 libc/src/stdlib/exit_handler.cpp                 |  5 +++--
 libc/src/stdlib/exit_handler.h                   |  5 +++--
 libc/src/stdlib/free.h                           |  5 +++--
 libc/src/stdlib/freelist_malloc.cpp              |  5 +++--
 libc/src/stdlib/getenv.cpp                       |  5 +++--
 libc/src/stdlib/getenv.h                         |  6 ++++--
 libc/src/stdlib/gpu/abort.cpp                    |  5 +++--
 libc/src/stdlib/gpu/free.cpp                     |  5 +++--
 libc/src/stdlib/gpu/malloc.cpp                   |  5 +++--
 libc/src/stdlib/labs.cpp                         |  5 +++--
 libc/src/stdlib/labs.h                           |  6 ++++--
 libc/src/stdlib/ldiv.cpp                         |  5 +++--
 libc/src/stdlib/ldiv.h                           |  5 +++--
 libc/src/stdlib/linux/abort.cpp                  |  5 +++--
 libc/src/stdlib/llabs.cpp                        |  5 +++--
 libc/src/stdlib/llabs.h                          |  6 ++++--
 libc/src/stdlib/lldiv.cpp                        |  5 +++--
 libc/src/stdlib/lldiv.h                          |  5 +++--
 libc/src/stdlib/malloc.h                         |  5 +++--
 libc/src/stdlib/qsort.cpp                        |  5 +++--
 libc/src/stdlib/qsort.h                          |  5 +++--
 libc/src/stdlib/qsort_r.cpp                      |  5 +++--
 libc/src/stdlib/qsort_r.h                        |  5 +++--
 libc/src/stdlib/qsort_util.h                     |  7 +++++--
 libc/src/stdlib/quick_exit.cpp                   |  5 +++--
 libc/src/stdlib/quick_exit.h                     |  6 ++++--
 libc/src/stdlib/rand.cpp                         |  5 +++--
 libc/src/stdlib/rand.h                           |  5 +++--
 libc/src/stdlib/rand_util.cpp                    |  5 +++--
 libc/src/stdlib/rand_util.h                      |  5 +++--
 libc/src/stdlib/realloc.h                        |  5 +++--
 libc/src/stdlib/srand.cpp                        |  5 +++--
 libc/src/stdlib/srand.h                          |  5 +++--
 libc/src/stdlib/str_from_util.h                  |  7 +++++--
 libc/src/stdlib/strfromd.cpp                     |  5 +++--
 libc/src/stdlib/strfromd.h                       |  5 +++--
 libc/src/stdlib/strfromf.cpp                     |  5 +++--
 libc/src/stdlib/strfromf.h                       |  5 +++--
 libc/src/stdlib/strfroml.cpp                     |  5 +++--
 libc/src/stdlib/strfroml.h                       |  5 +++--
 libc/src/stdlib/strtod.cpp                       |  5 +++--
 libc/src/stdlib/strtod.h                         |  6 ++++--
 libc/src/stdlib/strtof.cpp                       |  5 +++--
 libc/src/stdlib/strtof.h                         |  6 ++++--
 libc/src/stdlib/strtol.cpp                       |  5 +++--
 libc/src/stdlib/strtol.h                         |  6 ++++--
 libc/src/stdlib/strtold.cpp                      |  5 +++--
 libc/src/stdlib/strtold.h                        |  6 ++++--
 libc/src/stdlib/strtoll.cpp                      |  5 +++--
 libc/src/stdlib/strtoll.h                        |  6 ++++--
 libc/src/stdlib/strtoul.cpp                      |  5 +++--
 libc/src/stdlib/strtoul.h                        |  6 ++++--
 libc/src/stdlib/strtoull.cpp                     |  5 +++--
 libc/src/stdlib/strtoull.h                       |  6 ++++--
 libc/src/string/allocating_string_utils.h        |  4 ++--
 libc/src/string/bcmp.cpp                         |  5 +++--
 libc/src/string/bcmp.h                           |  5 +++--
 libc/src/string/bcopy.cpp                        |  5 +++--
 libc/src/string/bcopy.h                          |  5 +++--
 libc/src/string/bzero.cpp                        |  5 +++--
 libc/src/string/bzero.h                          |  5 +++--
 libc/src/string/index.cpp                        |  5 +++--
 libc/src/string/index.h                          |  6 ++++--
 libc/src/string/memccpy.cpp                      |  5 +++--
 libc/src/string/memccpy.h                        |  5 +++--
 libc/src/string/memchr.cpp                       |  5 +++--
 libc/src/string/memchr.h                         |  5 +++--
 libc/src/string/memcmp.cpp                       |  5 +++--
 libc/src/string/memcmp.h                         |  5 +++--
 libc/src/string/memcpy.cpp                       |  5 +++--
 libc/src/string/memcpy.h                         |  5 +++--
 libc/src/string/memmem.cpp                       |  5 +++--
 libc/src/string/memmem.h                         |  5 +++--
 libc/src/string/memmove.cpp                      |  5 +++--
 libc/src/string/memmove.h                        |  5 +++--
 .../string/memory_utils/aarch64/inline_bcmp.h    |  5 +++--
 .../string/memory_utils/aarch64/inline_memcmp.h  |  4 ++--
 .../string/memory_utils/aarch64/inline_memcpy.h  |  4 ++--
 .../string/memory_utils/aarch64/inline_memmove.h |  4 ++--
 .../string/memory_utils/aarch64/inline_memset.h  |  5 +++--
 .../string/memory_utils/generic/aligned_access.h |  4 ++--
 libc/src/string/memory_utils/generic/builtin.h   |  7 ++++---
 .../string/memory_utils/generic/byte_per_byte.h  |  4 ++--
 libc/src/string/memory_utils/inline_bcmp.h       |  5 +++--
 libc/src/string/memory_utils/inline_bzero.h      |  5 +++--
 libc/src/string/memory_utils/inline_memcmp.h     |  4 ++--
 libc/src/string/memory_utils/inline_memcpy.h     |  4 ++--
 libc/src/string/memory_utils/inline_memmem.h     |  5 +++--
 libc/src/string/memory_utils/inline_memmove.h    |  5 +++--
 libc/src/string/memory_utils/inline_memset.h     |  4 ++--
 libc/src/string/memory_utils/inline_strcmp.h     |  5 +++--
 libc/src/string/memory_utils/inline_strstr.h     |  5 +++--
 libc/src/string/memory_utils/op_aarch64.h        | 13 +++++++++----
 libc/src/string/memory_utils/op_builtin.h        |  7 +++++--
 libc/src/string/memory_utils/op_generic.h        | 11 +++++++----
 libc/src/string/memory_utils/op_riscv.h          |  7 +++++--
 libc/src/string/memory_utils/op_x86.h            | 13 +++++++++----
 libc/src/string/memory_utils/riscv/inline_bcmp.h |  5 +++--
 .../string/memory_utils/riscv/inline_memcmp.h    |  5 +++--
 .../string/memory_utils/riscv/inline_memcpy.h    |  5 +++--
 .../string/memory_utils/riscv/inline_memmove.h   |  5 +++--
 .../string/memory_utils/riscv/inline_memset.h    |  5 +++--
 libc/src/string/memory_utils/utils.h             |  5 +++--
 .../src/string/memory_utils/x86_64/inline_bcmp.h |  5 +++--
 .../string/memory_utils/x86_64/inline_memcmp.h   |  4 ++--
 .../string/memory_utils/x86_64/inline_memcpy.h   |  4 ++--
 .../string/memory_utils/x86_64/inline_memmove.h  |  4 ++--
 .../string/memory_utils/x86_64/inline_memset.h   |  5 +++--
 libc/src/string/mempcpy.cpp                      |  5 +++--
 libc/src/string/mempcpy.h                        |  5 +++--
 libc/src/string/memrchr.cpp                      |  5 +++--
 libc/src/string/memrchr.h                        |  5 +++--
 libc/src/string/memset.cpp                       |  5 +++--
 libc/src/string/memset.h                         |  5 +++--
 libc/src/string/memset_explicit.cpp              |  5 +++--
 libc/src/string/memset_explicit.h                |  5 +++--
 libc/src/string/rindex.cpp                       |  5 +++--
 libc/src/string/rindex.h                         |  6 ++++--
 libc/src/string/stpcpy.cpp                       |  5 +++--
 libc/src/string/stpcpy.h                         |  6 ++++--
 libc/src/string/stpncpy.cpp                      |  5 +++--
 libc/src/string/stpncpy.h                        |  5 +++--
 libc/src/string/strcasecmp.cpp                   |  5 +++--
 libc/src/string/strcasecmp.h                     |  6 ++++--
 libc/src/string/strcasestr.cpp                   |  5 +++--
 libc/src/string/strcasestr.h                     |  6 ++++--
 libc/src/string/strcat.cpp                       |  5 +++--
 libc/src/string/strcat.h                         |  5 +++--
 libc/src/string/strchr.cpp                       |  5 +++--
 libc/src/string/strchr.h                         |  6 ++++--
 libc/src/string/strchrnul.cpp                    |  5 +++--
 libc/src/string/strchrnul.h                      |  6 ++++--
 libc/src/string/strcmp.cpp                       |  5 +++--
 libc/src/string/strcmp.h                         |  6 ++++--
 libc/src/string/strcoll.cpp                      |  5 +++--
 libc/src/string/strcoll.h                        |  6 ++++--
 libc/src/string/strcpy.cpp                       |  5 +++--
 libc/src/string/strcpy.h                         |  5 +++--
 libc/src/string/strcspn.cpp                      |  5 +++--
 libc/src/string/strcspn.h                        |  5 +++--
 libc/src/string/strdup.cpp                       |  5 +++--
 libc/src/string/strdup.h                         |  5 +++--
 libc/src/string/strerror.cpp                     |  5 +++--
 libc/src/string/strerror.h                       |  6 ++++--
 libc/src/string/strerror_r.cpp                   |  5 +++--
 libc/src/string/strerror_r.h                     |  5 +++--
 libc/src/string/string_utils.h                   |  5 +++--
 libc/src/string/strlcat.cpp                      |  5 +++--
 libc/src/string/strlcat.h                        |  5 +++--
 libc/src/string/strlcpy.cpp                      |  5 +++--
 libc/src/string/strlcpy.h                        |  5 +++--
 libc/src/string/strlen.cpp                       |  5 +++--
 libc/src/string/strlen.h                         |  5 +++--
 libc/src/string/strncasecmp.cpp                  |  5 +++--
 libc/src/string/strncasecmp.h                    |  5 +++--
 libc/src/string/strncat.cpp                      |  5 +++--
 libc/src/string/strncat.h                        |  5 +++--
 libc/src/string/strncmp.cpp                      |  5 +++--
 libc/src/string/strncmp.h                        |  5 +++--
 libc/src/string/strncpy.cpp                      |  5 +++--
 libc/src/string/strncpy.h                        |  5 +++--
 libc/src/string/strndup.cpp                      |  5 +++--
 libc/src/string/strndup.h                        |  5 +++--
 libc/src/string/strnlen.cpp                      |  5 +++--
 libc/src/string/strnlen.h                        |  5 +++--
 libc/src/string/strpbrk.cpp                      |  5 +++--
 libc/src/string/strpbrk.h                        |  6 ++++--
 libc/src/string/strrchr.cpp                      |  5 +++--
 libc/src/string/strrchr.h                        |  6 ++++--
 libc/src/string/strsep.cpp                       |  5 +++--
 libc/src/string/strsep.h                         |  6 ++++--
 libc/src/string/strsignal.cpp                    |  5 +++--
 libc/src/string/strsignal.h                      |  6 ++++--
 libc/src/string/strspn.cpp                       |  5 +++--
 libc/src/string/strspn.h                         |  5 +++--
 libc/src/string/strstr.cpp                       |  5 +++--
 libc/src/string/strstr.h                         |  6 ++++--
 libc/src/string/strtok.cpp                       |  5 +++--
 libc/src/string/strtok.h                         |  6 ++++--
 libc/src/string/strtok_r.cpp                     |  5 +++--
 libc/src/string/strtok_r.h                       |  6 ++++--
 libc/src/string/strxfrm.cpp                      |  5 +++--
 libc/src/string/strxfrm.h                        |  5 +++--
 libc/src/sys/auxv/getauxval.h                    |  5 +++--
 libc/src/sys/auxv/linux/getauxval.cpp            |  5 +++--
 libc/src/sys/epoll/epoll_create.h                |  6 ++++--
 libc/src/sys/epoll/epoll_create1.h               |  6 ++++--
 libc/src/sys/epoll/epoll_ctl.h                   |  5 +++--
 libc/src/sys/epoll/epoll_pwait.h                 |  5 +++--
 libc/src/sys/epoll/epoll_pwait2.h                |  5 +++--
 libc/src/sys/epoll/epoll_wait.h                  |  5 +++--
 libc/src/sys/epoll/linux/epoll_create.cpp        |  5 +++--
 libc/src/sys/epoll/linux/epoll_create1.cpp       |  5 +++--
 libc/src/sys/epoll/linux/epoll_ctl.cpp           |  5 +++--
 libc/src/sys/epoll/linux/epoll_pwait.cpp         |  5 +++--
 libc/src/sys/epoll/linux/epoll_pwait2.cpp        |  5 +++--
 libc/src/sys/epoll/linux/epoll_wait.cpp          |  5 +++--
 libc/src/sys/mman/linux/madvise.cpp              |  5 +++--
 libc/src/sys/mman/linux/mincore.cpp              |  5 +++--
 libc/src/sys/mman/linux/mlock.cpp                |  5 +++--
 libc/src/sys/mman/linux/mlock2.cpp               |  5 +++--
 libc/src/sys/mman/linux/mlockall.cpp             |  5 +++--
 libc/src/sys/mman/linux/mmap.cpp                 |  5 +++--
 libc/src/sys/mman/linux/mprotect.cpp             |  5 +++--
 libc/src/sys/mman/linux/msync.cpp                |  5 +++--
 libc/src/sys/mman/linux/munlock.cpp              |  5 +++--
 libc/src/sys/mman/linux/munlockall.cpp           |  5 +++--
 libc/src/sys/mman/linux/munmap.cpp               |  5 +++--
 libc/src/sys/mman/linux/posix_madvise.cpp        |  5 +++--
 libc/src/sys/mman/linux/shm_common.h             |  5 +++--
 libc/src/sys/mman/linux/shm_open.cpp             |  5 +++--
 libc/src/sys/mman/linux/shm_unlink.cpp           |  5 +++--
 libc/src/sys/mman/madvise.h                      |  5 +++--
 libc/src/sys/mman/mincore.h                      |  5 +++--
 libc/src/sys/mman/mlock.h                        |  5 +++--
 libc/src/sys/mman/mlock2.h                       |  5 +++--
 libc/src/sys/mman/mlockall.h                     |  5 +++--
 libc/src/sys/mman/mmap.h                         |  5 +++--
 libc/src/sys/mman/mprotect.h                     |  5 +++--
 libc/src/sys/mman/msync.h                        |  5 +++--
 libc/src/sys/mman/munlock.h                      |  5 +++--
 libc/src/sys/mman/munlockall.h                   |  5 +++--
 libc/src/sys/mman/munmap.h                       |  5 +++--
 libc/src/sys/mman/posix_madvise.h                |  5 +++--
 libc/src/sys/mman/shm_open.h                     |  5 +++--
 libc/src/sys/mman/shm_unlink.h                   |  6 ++++--
 libc/src/sys/prctl/linux/prctl.cpp               |  5 +++--
 libc/src/sys/prctl/prctl.h                       |  5 +++--
 libc/src/sys/random/getrandom.h                  |  5 +++--
 libc/src/sys/random/linux/getrandom.cpp          |  5 +++--
 libc/src/sys/resource/getrlimit.h                |  5 +++--
 libc/src/sys/resource/linux/getrlimit.cpp        |  5 +++--
 libc/src/sys/resource/linux/setrlimit.cpp        |  5 +++--
 libc/src/sys/resource/setrlimit.h                |  5 +++--
 libc/src/sys/select/linux/select.cpp             |  5 +++--
 libc/src/sys/select/select.h                     |  5 +++--
 libc/src/sys/sendfile/linux/sendfile.cpp         |  5 +++--
 libc/src/sys/sendfile/sendfile.h                 |  5 +++--
 libc/src/sys/socket/bind.h                       |  5 +++--
 libc/src/sys/socket/linux/bind.cpp               |  5 +++--
 libc/src/sys/socket/linux/socket.cpp             |  5 +++--
 libc/src/sys/socket/socket.h                     |  6 ++++--
 libc/src/sys/stat/chmod.h                        |  5 +++--
 libc/src/sys/stat/fchmod.h                       |  5 +++--
 libc/src/sys/stat/fchmodat.h                     |  5 +++--
 libc/src/sys/stat/fstat.h                        |  5 +++--
 libc/src/sys/stat/linux/chmod.cpp                |  5 +++--
 libc/src/sys/stat/linux/fchmod.cpp               |  5 +++--
 libc/src/sys/stat/linux/fchmodat.cpp             |  5 +++--
 libc/src/sys/stat/linux/fstat.cpp                |  5 +++--
 libc/src/sys/stat/linux/kernel_statx.h           |  5 +++--
 libc/src/sys/stat/linux/lstat.cpp                |  5 +++--
 libc/src/sys/stat/linux/mkdir.cpp                |  5 +++--
 libc/src/sys/stat/linux/mkdirat.cpp              |  5 +++--
 libc/src/sys/stat/linux/stat.cpp                 |  5 +++--
 libc/src/sys/stat/lstat.h                        |  5 +++--
 libc/src/sys/stat/mkdir.h                        |  5 +++--
 libc/src/sys/stat/mkdirat.h                      |  5 +++--
 libc/src/sys/stat/stat.h                         |  5 +++--
 libc/src/sys/statvfs/fstatvfs.h                  |  5 +++--
 libc/src/sys/statvfs/linux/fstatvfs.cpp          |  5 +++--
 libc/src/sys/statvfs/linux/statfs_utils.h        |  5 +++--
 libc/src/sys/statvfs/linux/statvfs.cpp           |  5 +++--
 libc/src/sys/statvfs/statvfs.h                   |  5 +++--
 libc/src/sys/utsname/linux/uname.cpp             |  5 +++--
 libc/src/sys/utsname/uname.h                     |  5 +++--
 libc/src/sys/wait/linux/wait.cpp                 |  5 +++--
 libc/src/sys/wait/linux/wait4.cpp                |  5 +++--
 libc/src/sys/wait/linux/waitpid.cpp              |  5 +++--
 libc/src/sys/wait/wait.h                         |  5 +++--
 libc/src/sys/wait/wait4.h                        |  5 +++--
 libc/src/sys/wait/wait4Impl.h                    |  5 +++--
 libc/src/sys/wait/waitpid.h                      |  5 +++--
 libc/src/termios/cfgetispeed.h                   |  5 +++--
 libc/src/termios/cfgetospeed.h                   |  5 +++--
 libc/src/termios/cfsetispeed.h                   |  5 +++--
 libc/src/termios/cfsetospeed.h                   |  5 +++--
 libc/src/termios/linux/cfgetispeed.cpp           |  5 +++--
 libc/src/termios/linux/cfgetospeed.cpp           |  5 +++--
 libc/src/termios/linux/cfsetispeed.cpp           |  5 +++--
 libc/src/termios/linux/cfsetospeed.cpp           |  5 +++--
 libc/src/termios/linux/kernel_termios.h          |  5 +++--
 libc/src/termios/linux/tcdrain.cpp               |  5 +++--
 libc/src/termios/linux/tcflow.cpp                |  5 +++--
 libc/src/termios/linux/tcflush.cpp               |  5 +++--
 libc/src/termios/linux/tcgetattr.cpp             |  5 +++--
 libc/src/termios/linux/tcgetsid.cpp              |  5 +++--
 libc/src/termios/linux/tcsendbreak.cpp           |  5 +++--
 libc/src/termios/linux/tcsetattr.cpp             |  5 +++--
 libc/src/termios/tcdrain.h                       |  5 +++--
 libc/src/termios/tcflow.h                        |  5 +++--
 libc/src/termios/tcflush.h                       |  5 +++--
 libc/src/termios/tcgetattr.h                     |  5 +++--
 libc/src/termios/tcgetsid.h                      |  5 +++--
 libc/src/termios/tcsendbreak.h                   |  5 +++--
 libc/src/termios/tcsetattr.h                     |  5 +++--
 libc/src/threads/call_once.cpp                   |  5 +++--
 libc/src/threads/call_once.h                     |  5 +++--
 libc/src/threads/cnd_broadcast.h                 |  5 +++--
 libc/src/threads/cnd_destroy.h                   |  5 +++--
 libc/src/threads/cnd_init.h                      |  5 +++--
 libc/src/threads/cnd_signal.h                    |  5 +++--
 libc/src/threads/cnd_wait.h                      |  5 +++--
 libc/src/threads/linux/Futex.h                   |  5 +++--
 libc/src/threads/linux/cnd_broadcast.cpp         |  5 +++--
 libc/src/threads/linux/cnd_destroy.cpp           |  5 +++--
 libc/src/threads/linux/cnd_init.cpp              |  5 +++--
 libc/src/threads/linux/cnd_signal.cpp            |  5 +++--
 libc/src/threads/linux/cnd_wait.cpp              |  5 +++--
 libc/src/threads/mtx_destroy.cpp                 |  5 +++--
 libc/src/threads/mtx_destroy.h                   |  5 +++--
 libc/src/threads/mtx_init.cpp                    |  5 +++--
 libc/src/threads/mtx_init.h                      |  5 +++--
 libc/src/threads/mtx_lock.cpp                    |  5 +++--
 libc/src/threads/mtx_lock.h                      |  5 +++--
 libc/src/threads/mtx_unlock.cpp                  |  5 +++--
 libc/src/threads/mtx_unlock.h                    |  5 +++--
 libc/src/threads/thrd_create.cpp                 |  5 +++--
 libc/src/threads/thrd_create.h                   |  5 +++--
 libc/src/threads/thrd_current.cpp                |  5 +++--
 libc/src/threads/thrd_current.h                  |  5 +++--
 libc/src/threads/thrd_detach.cpp                 |  5 +++--
 libc/src/threads/thrd_detach.h                   |  5 +++--
 libc/src/threads/thrd_equal.cpp                  |  5 +++--
 libc/src/threads/thrd_equal.h                    |  5 +++--
 libc/src/threads/thrd_exit.cpp                   |  5 +++--
 libc/src/threads/thrd_exit.h                     |  5 +++--
 libc/src/threads/thrd_join.cpp                   |  5 +++--
 libc/src/threads/thrd_join.h                     |  5 +++--
 libc/src/threads/tss_create.cpp                  |  5 +++--
 libc/src/threads/tss_create.h                    |  5 +++--
 libc/src/threads/tss_delete.cpp                  |  5 +++--
 libc/src/threads/tss_delete.h                    |  5 +++--
 libc/src/threads/tss_get.cpp                     |  5 +++--
 libc/src/threads/tss_get.h                       |  5 +++--
 libc/src/threads/tss_set.cpp                     |  5 +++--
 libc/src/threads/tss_set.h                       |  5 +++--
 libc/src/time/asctime.cpp                        |  5 +++--
 libc/src/time/asctime.h                          |  5 +++--
 libc/src/time/asctime_r.cpp                      |  5 +++--
 libc/src/time/asctime_r.h                        |  5 +++--
 libc/src/time/clock.h                            |  5 +++--
 libc/src/time/clock_gettime.h                    |  5 +++--
 libc/src/time/difftime.cpp                       |  5 +++--
 libc/src/time/difftime.h                         |  5 +++--
 libc/src/time/gettimeofday.h                     |  5 +++--
 libc/src/time/gmtime.cpp                         |  5 +++--
 libc/src/time/gmtime.h                           |  5 +++--
 libc/src/time/gmtime_r.cpp                       |  5 +++--
 libc/src/time/gmtime_r.h                         |  5 +++--
 libc/src/time/gpu/clock.cpp                      |  5 +++--
 libc/src/time/gpu/nanosleep.cpp                  |  5 +++--
 libc/src/time/gpu/time_utils.cpp                 |  5 +++--
 libc/src/time/gpu/time_utils.h                   |  6 ++++--
 libc/src/time/linux/clock.cpp                    |  5 +++--
 libc/src/time/linux/clock_gettime.cpp            |  5 +++--
 libc/src/time/linux/gettimeofday.cpp             |  5 +++--
 libc/src/time/linux/nanosleep.cpp                |  5 +++--
 libc/src/time/linux/time.cpp                     |  5 +++--
 libc/src/time/mktime.cpp                         |  5 +++--
 libc/src/time/mktime.h                           |  5 +++--
 libc/src/time/nanosleep.h                        |  5 +++--
 libc/src/time/time_func.h                        |  5 +++--
 libc/src/time/time_utils.cpp                     |  5 +++--
 libc/src/time/time_utils.h                       |  5 +++--
 libc/src/unistd/_exit.cpp                        |  5 +++--
 libc/src/unistd/_exit.h                          |  6 ++++--
 libc/src/unistd/access.h                         |  6 ++++--
 libc/src/unistd/chdir.h                          |  6 ++++--
 libc/src/unistd/close.h                          |  6 ++++--
 libc/src/unistd/dup.h                            |  5 +++--
 libc/src/unistd/dup2.h                           |  5 +++--
 libc/src/unistd/dup3.h                           |  5 +++--
 libc/src/unistd/environ.cpp                      |  6 ++++--
 libc/src/unistd/environ.h                        |  6 ++++--
 libc/src/unistd/execv.h                          |  6 ++++--
 libc/src/unistd/execve.h                         |  6 ++++--
 libc/src/unistd/fchdir.h                         |  6 ++++--
 libc/src/unistd/fork.h                           |  5 +++--
 libc/src/unistd/fpathconf.h                      |  6 ++++--
 libc/src/unistd/fsync.h                          |  6 ++++--
 libc/src/unistd/ftruncate.h                      |  5 +++--
 libc/src/unistd/getcwd.h                         |  5 +++--
 libc/src/unistd/geteuid.h                        |  5 +++--
 libc/src/unistd/getopt.cpp                       |  5 +++--
 libc/src/unistd/getopt.h                         |  5 +++--
 libc/src/unistd/getpid.h                         |  5 +++--
 libc/src/unistd/getppid.h                        |  5 +++--
 libc/src/unistd/getuid.h                         |  5 +++--
 libc/src/unistd/isatty.h                         |  5 +++--
 libc/src/unistd/link.h                           |  5 +++--
 libc/src/unistd/linkat.h                         |  6 ++++--
 libc/src/unistd/linux/access.cpp                 |  5 +++--
 libc/src/unistd/linux/chdir.cpp                  |  5 +++--
 libc/src/unistd/linux/close.cpp                  |  5 +++--
 libc/src/unistd/linux/dup.cpp                    |  5 +++--
 libc/src/unistd/linux/dup2.cpp                   |  5 +++--
 libc/src/unistd/linux/dup3.cpp                   |  5 +++--
 libc/src/unistd/linux/execv.cpp                  |  5 +++--
 libc/src/unistd/linux/execve.cpp                 |  5 +++--
 libc/src/unistd/linux/fchdir.cpp                 |  5 +++--
 libc/src/unistd/linux/fork.cpp                   |  5 +++--
 libc/src/unistd/linux/fpathconf.cpp              |  5 +++--
 libc/src/unistd/linux/fsync.cpp                  |  5 +++--
 libc/src/unistd/linux/ftruncate.cpp              |  5 +++--
 libc/src/unistd/linux/getcwd.cpp                 |  5 +++--
 libc/src/unistd/linux/geteuid.cpp                |  5 +++--
 libc/src/unistd/linux/getpid.cpp                 |  5 +++--
 libc/src/unistd/linux/getppid.cpp                |  5 +++--
 libc/src/unistd/linux/getuid.cpp                 |  5 +++--
 libc/src/unistd/linux/isatty.cpp                 |  5 +++--
 libc/src/unistd/linux/link.cpp                   |  5 +++--
 libc/src/unistd/linux/linkat.cpp                 |  5 +++--
 libc/src/unistd/linux/lseek.cpp                  |  5 +++--
 libc/src/unistd/linux/pathconf.cpp               |  5 +++--
 libc/src/unistd/linux/pathconf_utils.cpp         |  5 +++--
 libc/src/unistd/linux/pathconf_utils.h           |  5 +++--
 libc/src/unistd/linux/pipe.cpp                   |  5 +++--
 libc/src/unistd/linux/pread.cpp                  |  5 +++--
 libc/src/unistd/linux/pwrite.cpp                 |  5 +++--
 libc/src/unistd/linux/read.cpp                   |  5 +++--
 libc/src/unistd/linux/readlink.cpp               |  5 +++--
 libc/src/unistd/linux/readlinkat.cpp             |  5 +++--
 libc/src/unistd/linux/rmdir.cpp                  |  5 +++--
 libc/src/unistd/linux/symlink.cpp                |  5 +++--
 libc/src/unistd/linux/symlinkat.cpp              |  5 +++--
 libc/src/unistd/linux/syscall.cpp                |  5 +++--
 libc/src/unistd/linux/sysconf.cpp                |  5 +++--
 libc/src/unistd/linux/truncate.cpp               |  5 +++--
 libc/src/unistd/linux/unlink.cpp                 |  5 +++--
 libc/src/unistd/linux/unlinkat.cpp               |  5 +++--
 libc/src/unistd/linux/write.cpp                  |  5 +++--
 libc/src/unistd/lseek.h                          |  5 +++--
 libc/src/unistd/pathconf.h                       |  6 ++++--
 libc/src/unistd/pipe.h                           |  6 ++++--
 libc/src/unistd/pread.h                          |  5 +++--
 libc/src/unistd/pwrite.h                         |  5 +++--
 libc/src/unistd/read.h                           |  5 +++--
 libc/src/unistd/readlink.h                       |  5 +++--
 libc/src/unistd/readlinkat.h                     |  5 +++--
 libc/src/unistd/rmdir.h                          |  6 ++++--
 libc/src/unistd/swab.cpp                         |  5 +++--
 libc/src/unistd/swab.h                           |  5 +++--
 libc/src/unistd/symlink.h                        |  5 +++--
 libc/src/unistd/symlinkat.h                      |  5 +++--
 libc/src/unistd/syscall.h                        |  5 +++--
 libc/src/unistd/sysconf.h                        |  5 +++--
 libc/src/unistd/truncate.h                       |  5 +++--
 libc/src/unistd/unlink.h                         |  6 ++++--
 libc/src/unistd/unlinkat.h                       |  6 ++++--
 libc/src/unistd/write.h                          |  5 +++--
 libc/src/wchar/btowc.cpp                         |  5 +++--
 libc/src/wchar/btowc.h                           |  5 +++--
 libc/src/wchar/wctob.cpp                         |  5 +++--
 libc/src/wchar/wctob.h                           |  5 +++--
 libc/startup/baremetal/fini.cpp                  |  5 +++--
 libc/startup/baremetal/init.cpp                  |  5 +++--
 libc/startup/gpu/amdgpu/start.cpp                |  5 +++--
 libc/startup/gpu/nvptx/start.cpp                 |  5 +++--
 libc/startup/linux/aarch64/tls.cpp               |  5 +++--
 libc/startup/linux/do_start.cpp                  |  5 +++--
 libc/startup/linux/do_start.h                    |  5 +++--
 libc/startup/linux/riscv/tls.cpp                 |  5 +++--
 libc/startup/linux/x86_64/tls.cpp                |  5 +++--
 libc/test/IntegrationTest/test.cpp               |  5 +++--
 libc/test/UnitTest/BazelFilePath.cpp             |  7 +++++--
 libc/test/UnitTest/CmakeFilePath.cpp             |  7 +++++--
 libc/test/UnitTest/ErrnoSetterMatcher.h          |  5 +++--
 libc/test/UnitTest/ExecuteFunction.h             |  5 +++--
 libc/test/UnitTest/ExecuteFunctionUnix.cpp       |  5 +++--
 libc/test/UnitTest/FEnvSafeTest.cpp              |  7 +++++--
 libc/test/UnitTest/FEnvSafeTest.h                |  7 +++++--
 libc/test/UnitTest/FPExceptMatcher.cpp           |  5 +++--
 libc/test/UnitTest/FPExceptMatcher.h             |  5 +++--
 libc/test/UnitTest/FPMatcher.h                   |  5 +++--
 libc/test/UnitTest/GTest.h                       |  7 +++++--
 libc/test/UnitTest/HermeticTestUtils.cpp         |  5 +++--
 libc/test/UnitTest/LibcDeathTestExecutors.cpp    |  5 +++--
 libc/test/UnitTest/LibcTest.cpp                  |  5 +++--
 libc/test/UnitTest/LibcTest.h                    |  5 +++--
 libc/test/UnitTest/MemoryMatcher.cpp             |  5 +++--
 libc/test/UnitTest/MemoryMatcher.h               | 11 +++++++----
 libc/test/UnitTest/PrintfMatcher.cpp             |  5 +++--
 libc/test/UnitTest/PrintfMatcher.h               |  5 +++--
 libc/test/UnitTest/RoundingModeUtils.cpp         |  5 +++--
 libc/test/UnitTest/RoundingModeUtils.h           |  5 +++--
 libc/test/UnitTest/ScanfMatcher.cpp              |  5 +++--
 libc/test/UnitTest/ScanfMatcher.h                |  5 +++--
 libc/test/UnitTest/StringUtils.h                 |  5 +++--
 libc/test/UnitTest/TestLogger.cpp                |  5 +++--
 libc/test/UnitTest/TestLogger.h                  |  6 ++++--
 libc/test/UnitTest/ZxTest.h                      |  7 +++++--
 libc/test/include/sys/queue_test.cpp             |  5 +++--
 .../src/pthread/pthread_rwlock_test.cpp          |  7 +++++--
 libc/test/src/__support/CPP/algorithm_test.cpp   |  7 +++++--
 libc/test/src/__support/CPP/bit_test.cpp         |  7 +++++--
 libc/test/src/__support/CPP/cstddef_test.cpp     |  7 +++++--
 libc/test/src/__support/CPP/limits_test.cpp      |  5 +++--
 libc/test/src/__support/CPP/type_traits_test.cpp |  7 +++++--
 .../src/__support/HashTable/bitmask_test.cpp     |  5 +++--
 libc/test/src/__support/HashTable/group_test.cpp |  5 +++--
 libc/test/src/__support/HashTable/table_test.cpp |  5 +++--
 libc/test/src/__support/big_int_test.cpp         |  5 +++--
 libc/test/src/__support/endian_test.cpp          |  5 +++--
 libc/test/src/__support/freelist_heap_test.cpp   |  5 +++--
 libc/test/src/__support/math_extras_test.cpp     |  5 +++--
 libc/test/src/__support/memory_size_test.cpp     |  5 +++--
 libc/test/src/__support/str_to_double_test.cpp   |  5 +++--
 libc/test/src/__support/str_to_float_test.cpp    |  5 +++--
 libc/test/src/__support/str_to_fp_test.h         |  5 +++--
 .../src/__support/str_to_long_double_test.cpp    |  5 +++--
 .../BinaryOpSingleOutputPerf.h                   |  5 +++--
 .../src/math/performance_testing/CMakeLists.txt  | 10 +++++++++-
 .../SingleInputSingleOutputPerf.h                |  5 +++--
 libc/test/src/math/performance_testing/Timer.cpp |  5 +++--
 libc/test/src/math/performance_testing/Timer.h   |  5 +++--
 libc/test/src/math/sdcomp26094.h                 |  5 +++--
 libc/test/src/stdio/sprintf_test.cpp             |  3 ++-
 libc/test/src/stdlib/strtoint32_test.cpp         |  5 +++--
 libc/test/src/stdlib/strtoint64_test.cpp         |  5 +++--
 libc/test/src/string/bcmp_test.cpp               |  5 +++--
 libc/test/src/string/bcopy_test.cpp              |  5 +++--
 libc/test/src/string/bzero_test.cpp              |  5 +++--
 libc/test/src/string/memcmp_test.cpp             |  5 +++--
 libc/test/src/string/memcpy_test.cpp             |  5 +++--
 libc/test/src/string/memmem_test.cpp             |  5 +++--
 libc/test/src/string/memmove_test.cpp            |  5 +++--
 .../src/string/memory_utils/memory_check_utils.h |  5 +++--
 libc/test/src/string/memory_utils/op_tests.cpp   |  5 +++--
 libc/test/src/string/memory_utils/utils_test.cpp |  5 +++--
 libc/test/src/string/memset_explicit_test.cpp    |  5 +++--
 libc/test/src/string/memset_test.cpp             |  5 +++--
 .../test/src/sys/statvfs/linux/fstatvfs_test.cpp |  5 +++--
 libc/test/src/sys/statvfs/linux/statvfs_test.cpp |  5 +++--
 libc/test/src/time/TmHelper.h                    |  5 +++--
 libc/test/src/time/TmMatcher.h                   |  5 +++--
 libc/utils/MPFRWrapper/MPFRUtils.cpp             |  5 +++--
 libc/utils/MPFRWrapper/MPFRUtils.h               |  5 +++--
 .../bazel/llvm-project-overlay/libc/BUILD.bazel  | 16 +++++++---------
 .../libc/libc_build_rules.bzl                    |  2 +-
 .../libc/test/libc_test_rules.bzl                |  1 +
 2328 files changed, 7576 insertions(+), 4679 deletions(-)

diff --git a/libc/benchmarks/LibcDefaultImplementations.cpp b/libc/benchmarks/LibcDefaultImplementations.cpp
index c50ae00ffa105..1ff940afcc44f 100644
--- a/libc/benchmarks/LibcDefaultImplementations.cpp
+++ b/libc/benchmarks/LibcDefaultImplementations.cpp
@@ -1,8 +1,9 @@
 #include "LibcFunctionPrototypes.h"
+#include "src/__support/macros/config.h"
 #include "llvm/ADT/ArrayRef.h"
 #include <cstddef>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern void *memcpy(void *__restrict, const void *__restrict, size_t);
 extern void *memmove(void *, const void *, size_t);
@@ -11,7 +12,7 @@ extern void bzero(void *, size_t);
 extern int memcmp(const void *, const void *, size_t);
 extern int bcmp(const void *, const void *, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 // List of implementations to test.
 
diff --git a/libc/benchmarks/LibcMemoryBenchmarkMain.cpp b/libc/benchmarks/LibcMemoryBenchmarkMain.cpp
index bc6fd8b38cb6d..c042b29cad98e 100644
--- a/libc/benchmarks/LibcMemoryBenchmarkMain.cpp
+++ b/libc/benchmarks/LibcMemoryBenchmarkMain.cpp
@@ -10,6 +10,7 @@
 #include "LibcBenchmark.h"
 #include "LibcMemoryBenchmark.h"
 #include "MemorySizeDistributions.h"
+#include "src/__support/macros/config.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/FileSystem.h"
@@ -21,7 +22,7 @@
 #include <cstring>
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern void *memcpy(void *__restrict, const void *__restrict, size_t);
 extern void *memmove(void *, const void *, size_t);
@@ -30,7 +31,7 @@ extern void bzero(void *, size_t);
 extern int memcmp(const void *, const void *, size_t);
 extern int bcmp(const void *, const void *, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 namespace llvm {
 namespace libc_benchmarks {
diff --git a/libc/benchmarks/automemcpy/lib/CodeGen.cpp b/libc/benchmarks/automemcpy/lib/CodeGen.cpp
index 3837bd97d9f9a..d1336eaf31f34 100644
--- a/libc/benchmarks/automemcpy/lib/CodeGen.cpp
+++ b/libc/benchmarks/automemcpy/lib/CodeGen.cpp
@@ -36,6 +36,7 @@
 // function at the end of the file.
 
 #include "automemcpy/CodeGen.h"
+#include "src/__support/macros/config.h"
 #include <cassert>
 #include <llvm/ADT/STLExtras.h>
 #include <llvm/ADT/StringSet.h>
@@ -542,11 +543,11 @@ static void Serialize(raw_ostream &Stream,
   Stream << "using llvm::libc_benchmarks::MemmoveConfiguration;\n";
   Stream << "using llvm::libc_benchmarks::MemsetConfiguration;\n";
   Stream << "\n";
-  Stream << "namespace LIBC_NAMESPACE {\n";
+  Stream << "namespace LIBC_NAMESPACE_DECL {\n";
   Stream << "\n";
   codegen::functions::Serialize(Stream, Descriptors);
   Stream << "\n";
-  Stream << "} // namespace LIBC_NAMESPACE\n";
+  Stream << "} // namespace LIBC_NAMESPACE_DECL\n";
   Stream << "\n";
   Stream << "namespace llvm {\n";
   Stream << "namespace automemcpy {\n";
diff --git a/libc/benchmarks/automemcpy/unittests/CodeGenTest.cpp b/libc/benchmarks/automemcpy/unittests/CodeGenTest.cpp
index 5084b1d67dcd5..17bc189fa3f12 100644
--- a/libc/benchmarks/automemcpy/unittests/CodeGenTest.cpp
+++ b/libc/benchmarks/automemcpy/unittests/CodeGenTest.cpp
@@ -8,6 +8,7 @@
 
 #include "automemcpy/CodeGen.h"
 #include "automemcpy/RandomFunctionGenerator.h"
+#include "src/__support/macros/config.h"
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
 #include <optional>
@@ -63,7 +64,7 @@ using llvm::libc_benchmarks::MemcpyConfiguration;
 using llvm::libc_benchmarks::MemmoveConfiguration;
 using llvm::libc_benchmarks::MemsetConfiguration;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static void memcpy_0xE00E29EE73994E2B(char *__restrict dst, const char *__restrict src, size_t size) {
   using namespace LIBC_NAMESPACE::x86;
@@ -134,7 +135,7 @@ static void bzero_0x475977492C218AD4(char * dst, size_t size) {
   return splat_set<Align<_32,Arg::Dst>::Then<Loop<_32>>>(dst, 0, size);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 namespace llvm {
 namespace automemcpy {
diff --git a/libc/benchmarks/gpu/BenchmarkLogger.cpp b/libc/benchmarks/gpu/BenchmarkLogger.cpp
index 2e7e8e7600fdb..0d644fa3c37bc 100644
--- a/libc/benchmarks/gpu/BenchmarkLogger.cpp
+++ b/libc/benchmarks/gpu/BenchmarkLogger.cpp
@@ -3,12 +3,13 @@
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/OSUtil/io.h"               // write_to_stderr
 #include "src/__support/big_int.h"                 // is_big_int
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 #include "src/__support/uint128.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace benchmarks {
 
 // cpp::string_view specialization
@@ -94,4 +95,4 @@ template BenchmarkLogger &BenchmarkLogger::operator<< <UInt<320>>(UInt<320>);
 BenchmarkLogger log;
 
 } // namespace benchmarks
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/benchmarks/gpu/BenchmarkLogger.h b/libc/benchmarks/gpu/BenchmarkLogger.h
index 332ff1439e6f5..2b22aba085f86 100644
--- a/libc/benchmarks/gpu/BenchmarkLogger.h
+++ b/libc/benchmarks/gpu/BenchmarkLogger.h
@@ -9,7 +9,9 @@
 #ifndef LLVM_LIBC_BENCHMARKS_GPU_BENCHMARKLOGGER_H
 #define LLVM_LIBC_BENCHMARKS_GPU_BENCHMARKLOGGER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 namespace benchmarks {
 
 // A class to log to standard output in the context of hermetic tests.
@@ -22,6 +24,6 @@ struct BenchmarkLogger {
 extern BenchmarkLogger log;
 
 } // namespace benchmarks
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif /* LLVM_LIBC_BENCHMARKS_GPU_BENCHMARKLOGGER_H */
diff --git a/libc/benchmarks/gpu/LibcGpuBenchmark.cpp b/libc/benchmarks/gpu/LibcGpuBenchmark.cpp
index 3dd83cef6d4df..1c1ba7639d0b1 100644
--- a/libc/benchmarks/gpu/LibcGpuBenchmark.cpp
+++ b/libc/benchmarks/gpu/LibcGpuBenchmark.cpp
@@ -5,9 +5,10 @@
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/GPU/utils.h"
 #include "src/__support/fixedvector.h"
+#include "src/__support/macros/config.h"
 #include "src/time/gpu/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace benchmarks {
 
 FixedVector<Benchmark *, 64> benchmarks;
@@ -135,4 +136,4 @@ BenchmarkResult benchmark(const BenchmarkOptions &options,
 };
 
 } // namespace benchmarks
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/benchmarks/gpu/LibcGpuBenchmark.h b/libc/benchmarks/gpu/LibcGpuBenchmark.h
index ffc858911b1c0..26cb0fd30bc1c 100644
--- a/libc/benchmarks/gpu/LibcGpuBenchmark.h
+++ b/libc/benchmarks/gpu/LibcGpuBenchmark.h
@@ -6,11 +6,12 @@
 #include "src/__support/CPP/functional.h"
 #include "src/__support/CPP/limits.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/time/clock.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace benchmarks {
 
@@ -99,7 +100,7 @@ class Benchmark {
   const cpp::string_view get_name() const { return name; }
 };
 } // namespace benchmarks
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define BENCHMARK(SuiteName, TestName, Func)                                   \
   LIBC_NAMESPACE::benchmarks::Benchmark SuiteName##_##TestName##_Instance(     \
diff --git a/libc/benchmarks/gpu/timing/amdgpu/timing.h b/libc/benchmarks/gpu/timing/amdgpu/timing.h
index 1eecb2acd2136..9b40f9282b16b 100644
--- a/libc/benchmarks/gpu/timing/amdgpu/timing.h
+++ b/libc/benchmarks/gpu/timing/amdgpu/timing.h
@@ -25,7 +25,7 @@
   else                                                                         \
     asm("" ::"v"(VARIABLE))
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Returns the overhead associated with calling the profiling region. This
 // allows us to substract the constant-time overhead from the latency to
@@ -107,6 +107,6 @@ template <typename F, typename T1, typename T2>
   return stop - start;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_UTILS_GPU_TIMING_AMDGPU
diff --git a/libc/benchmarks/gpu/timing/nvptx/timing.h b/libc/benchmarks/gpu/timing/nvptx/timing.h
index d3851a764c43d..d141b08d4c922 100644
--- a/libc/benchmarks/gpu/timing/nvptx/timing.h
+++ b/libc/benchmarks/gpu/timing/nvptx/timing.h
@@ -16,7 +16,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Returns the overhead associated with calling the profiling region. This
 // allows us to substract the constant-time overhead from the latency to
@@ -94,6 +94,6 @@ static LIBC_INLINE uint64_t latency(F f, T1 t1, T2 t2) {
 
   return stop - start;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_UTILS_GPU_TIMING_NVPTX
diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake
index 1f80e7f4e57c1..0b092e94ca8a1 100644
--- a/libc/cmake/modules/LLVMLibCObjectRules.cmake
+++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake
@@ -93,11 +93,11 @@ function(create_object_library fq_target_name)
     endif()
   endif()
 
-  if(fq_deps_list)
-    add_dependencies(${fq_target_name} ${fq_deps_list})
-    # Add deps as link libraries to inherit interface compile and link options.
-    target_link_libraries(${fq_target_name} PUBLIC ${fq_deps_list})
-  endif()
+  list(APPEND fq_deps_list libc.src.__support.macros.config)
+  list(REMOVE_DUPLICATES fq_deps_list)
+  add_dependencies(${fq_target_name} ${fq_deps_list})
+  # Add deps as link libraries to inherit interface compile and link options.
+  target_link_libraries(${fq_target_name} PUBLIC ${fq_deps_list})
 
   set_target_properties(
     ${fq_target_name}
diff --git a/libc/config/linux/app.h b/libc/config/linux/app.h
index 2a3b1560817b8..188d34816454b 100644
--- a/libc/config/linux/app.h
+++ b/libc/config/linux/app.h
@@ -9,11 +9,12 @@
 #ifndef LLVM_LIBC_CONFIG_LINUX_APP_H
 #define LLVM_LIBC_CONFIG_LINUX_APP_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Data structure to capture properties of the linux/ELF TLS image.
 struct TLSImage {
@@ -104,6 +105,6 @@ void cleanup_tls(uintptr_t tls_addr, uintptr_t tls_size);
 // Set the thread pointer for the current thread.
 bool set_thread_ptr(uintptr_t val);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_CONFIG_LINUX_APP_H
diff --git a/libc/docs/dev/clang_tidy_checks.rst b/libc/docs/dev/clang_tidy_checks.rst
index 198d8f16d1cd7..91d415a2e0d47 100644
--- a/libc/docs/dev/clang_tidy_checks.rst
+++ b/libc/docs/dev/clang_tidy_checks.rst
@@ -36,17 +36,17 @@ implementation-in-namespace
 ---------------------------
 
 It is part of our implementation standards that all implementation pieces live
-under the ``LIBC_NAMESPACE`` namespace. This prevents pollution of the global
-namespace. Without a formal check to ensure this, an implementation might
-compile and pass unit tests, but not produce a usable libc function.
+under the ``LIBC_NAMESPACE_DECL`` namespace. This prevents pollution of the
+global namespace. Without a formal check to ensure this, an implementation
+might compile and pass unit tests, but not produce a usable libc function.
 
 This check that ensures any function call resolves to a function within the
-``LIBC_NAMESPACE`` namespace.
+``LIBC_NAMESPACE_DECL`` namespace.
 
 .. code-block:: c++
 
     // Correct: implementation inside the correct namespace.
-    namespace LIBC_NAMESPACE {
+    namespace LIBC_NAMESPACE_DECL {
         void LLVM_LIBC_ENTRYPOINT(strcpy)(char *dest, const char *src) {}
         // Namespaces within LIBC_NAMESPACE namespace are allowed.
         namespace inner{
@@ -87,7 +87,7 @@ are always external and can be intercepted.
 
 .. code-block:: c++
 
-    namespace LIBC_NAMESPACE {
+    namespace LIBC_NAMESPACE_DECL {
 
     // Allow calls with the fully qualified name.
     LIBC_NAMESPACE::strlen("hello");
@@ -104,4 +104,4 @@ are always external and can be intercepted.
     // Allow calling into specific global functions (explained above)
     ::malloc(10);
 
-    } // namespace LIBC_NAMESPACE
+    } // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/fuzzing/__support/hashtable_fuzz.cpp b/libc/fuzzing/__support/hashtable_fuzz.cpp
index 07f1057714114..7d61e106c9c4a 100644
--- a/libc/fuzzing/__support/hashtable_fuzz.cpp
+++ b/libc/fuzzing/__support/hashtable_fuzz.cpp
@@ -12,8 +12,9 @@
 #include "include/llvm-libc-types/ENTRY.h"
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // A fuzzing payload starts with
 // - uint16_t: initial capacity for table A
@@ -179,4 +180,4 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/CPP/algorithm.h b/libc/src/__support/CPP/algorithm.h
index 5120fa0daae17..f5dc9067409eb 100644
--- a/libc/src/__support/CPP/algorithm.h
+++ b/libc/src/__support/CPP/algorithm.h
@@ -13,8 +13,9 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_ALGORITHM_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 template <class T> LIBC_INLINE constexpr const T &max(const T &a, const T &b) {
@@ -41,6 +42,6 @@ LIBC_INLINE constexpr bool all_of(InputIt first, InputIt last, UnaryPred p) {
 }
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_ALGORITHM_H
diff --git a/libc/src/__support/CPP/array.h b/libc/src/__support/CPP/array.h
index 4e69ba003e800..db0a986b71205 100644
--- a/libc/src/__support/CPP/array.h
+++ b/libc/src/__support/CPP/array.h
@@ -11,9 +11,10 @@
 
 #include "src/__support/CPP/iterator.h" // reverse_iterator
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h> // For size_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 template <class T, size_t N> struct array {
@@ -74,6 +75,6 @@ template <class T, size_t N> struct array {
 };
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_ARRAY_H
diff --git a/libc/src/__support/CPP/atomic.h b/libc/src/__support/CPP/atomic.h
index e273d998c0702..72e7f2adde6a4 100644
--- a/libc/src/__support/CPP/atomic.h
+++ b/libc/src/__support/CPP/atomic.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_ATOMIC_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #include "type_traits.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 enum class MemoryOrder : int {
@@ -211,6 +212,6 @@ LIBC_INLINE void atomic_signal_fence([[maybe_unused]] MemoryOrder mem_ord) {
 }
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_ATOMIC_H
diff --git a/libc/src/__support/CPP/bit.h b/libc/src/__support/CPP/bit.h
index 4aea066d26ab0..adcd0472747d0 100644
--- a/libc/src/__support/CPP/bit.h
+++ b/libc/src/__support/CPP/bit.h
@@ -14,11 +14,13 @@
 #include "src/__support/CPP/limits.h" // numeric_limits
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 #if __has_builtin(__builtin_memcpy_inline)
 #define LLVM_LIBC_HAS_BUILTIN_MEMCPY_INLINE
@@ -290,6 +292,7 @@ ADD_SPECIALIZATION(unsigned long long, __builtin_popcountll)
 #endif // __builtin_popcountg
 #undef ADD_SPECIALIZATION
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_BIT_H
diff --git a/libc/src/__support/CPP/bitset.h b/libc/src/__support/CPP/bitset.h
index 30a7fa796cb4b..db193f414abd2 100644
--- a/libc/src/__support/CPP/bitset.h
+++ b/libc/src/__support/CPP/bitset.h
@@ -10,9 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_BITSET_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h> // For size_t.
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 template <size_t NumberOfBits> struct bitset {
   static_assert(NumberOfBits != 0,
@@ -86,6 +88,7 @@ template <size_t NumberOfBits> struct bitset {
   size_t Data[NUMBER_OF_UNITS] = {0};
 };
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_BITSET_H
diff --git a/libc/src/__support/CPP/cstddef.h b/libc/src/__support/CPP/cstddef.h
index 1da51fd253fb5..ed6c9d03362f4 100644
--- a/libc/src/__support/CPP/cstddef.h
+++ b/libc/src/__support/CPP/cstddef.h
@@ -10,9 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_CSTDDEF_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "type_traits.h" // For enable_if_t, is_integral_v.
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 enum class byte : unsigned char {};
 
@@ -66,6 +68,7 @@ to_integer(byte b) noexcept {
   return static_cast<IntegerType>(b);
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_CSTDDEF_H
diff --git a/libc/src/__support/CPP/expected.h b/libc/src/__support/CPP/expected.h
index c35f0a1dc5369..8a93091f0ebfb 100644
--- a/libc/src/__support/CPP/expected.h
+++ b/libc/src/__support/CPP/expected.h
@@ -10,8 +10,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_EXPECTED_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // This is used to hold an unexpected value so that a different constructor is
 // selected.
@@ -52,6 +54,7 @@ template <class T, class E> class expected {
   LIBC_INLINE constexpr const T *operator->() const { return &exp; }
 };
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_EXPECTED_H
diff --git a/libc/src/__support/CPP/functional.h b/libc/src/__support/CPP/functional.h
index 16283a264e657..50cfa256b6682 100644
--- a/libc/src/__support/CPP/functional.h
+++ b/libc/src/__support/CPP/functional.h
@@ -17,10 +17,11 @@
 #include "src/__support/CPP/type_traits/remove_reference.h"
 #include "src/__support/CPP/utility/forward.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 /// A function type adapted from LLVM's function_ref.
@@ -65,6 +66,6 @@ template <typename Ret, typename... Params> class function<Ret(Params...)> {
 };
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_FUNCTIONAL_H
diff --git a/libc/src/__support/CPP/iterator.h b/libc/src/__support/CPP/iterator.h
index b0fd5c9f22ae0..168a269731822 100644
--- a/libc/src/__support/CPP/iterator.h
+++ b/libc/src/__support/CPP/iterator.h
@@ -13,8 +13,9 @@
 #include "src/__support/CPP/type_traits/is_convertible.h"
 #include "src/__support/CPP/type_traits/is_same.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 template <typename T> struct iterator_traits;
@@ -93,6 +94,6 @@ template <typename Iter> class reverse_iterator {
 };
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_ITERATOR_H
diff --git a/libc/src/__support/CPP/limits.h b/libc/src/__support/CPP/limits.h
index 5b9b3e755c72b..686abcaea9880 100644
--- a/libc/src/__support/CPP/limits.h
+++ b/libc/src/__support/CPP/limits.h
@@ -13,9 +13,10 @@
 #include "src/__support/CPP/type_traits/is_integral.h"
 #include "src/__support/CPP/type_traits/is_signed.h"
 #include "src/__support/macros/attributes.h"       // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 namespace internal {
@@ -86,6 +87,6 @@ struct numeric_limits<__uint128_t>
 #endif
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_LIMITS_H
diff --git a/libc/src/__support/CPP/mutex.h b/libc/src/__support/CPP/mutex.h
index ff9c9f43a43cc..8a3102426e2d6 100644
--- a/libc/src/__support/CPP/mutex.h
+++ b/libc/src/__support/CPP/mutex.h
@@ -9,7 +9,9 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_CPP_MUTEX_H
 #define LLVM_LIBC_SRC___SUPPORT_CPP_MUTEX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 // Assume the calling thread has already obtained mutex ownership.
@@ -44,6 +46,6 @@ template <typename MutexType> class lock_guard {
 template <typename T> lock_guard(T &) -> lock_guard<T>;
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_MUTEX_H
diff --git a/libc/src/__support/CPP/new.h b/libc/src/__support/CPP/new.h
index 72187b70d7d24..94a8466a39677 100644
--- a/libc/src/__support/CPP/new.h
+++ b/libc/src/__support/CPP/new.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_NEW_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h> // For size_t
 #include <stdlib.h> // For malloc, free etc.
@@ -23,7 +24,7 @@ enum class align_val_t : size_t {};
 
 } // namespace std
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 class AllocChecker {
   bool success = false;
@@ -52,7 +53,7 @@ class AllocChecker {
   }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 LIBC_INLINE void *operator new(size_t size,
                                LIBC_NAMESPACE::AllocChecker &ac) noexcept {
diff --git a/libc/src/__support/CPP/optional.h b/libc/src/__support/CPP/optional.h
index 2c0f639a2b342..aed2269db1b11 100644
--- a/libc/src/__support/CPP/optional.h
+++ b/libc/src/__support/CPP/optional.h
@@ -12,8 +12,9 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/CPP/utility.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 // Trivial nullopt_t struct.
@@ -133,6 +134,6 @@ template <typename T> class optional {
 };
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_OPTIONAL_H
diff --git a/libc/src/__support/CPP/span.h b/libc/src/__support/CPP/span.h
index a8c1353581ba0..e9e3dbf169ce0 100644
--- a/libc/src/__support/CPP/span.h
+++ b/libc/src/__support/CPP/span.h
@@ -11,11 +11,13 @@
 #include <stddef.h> // For size_t
 
 #include "array.h"       // For array
+#include "src/__support/macros/config.h"
 #include "type_traits.h" // For remove_cv_t, enable_if_t, is_same_v, is_const_v
 
 #include "src/__support/macros/attributes.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // A trimmed down implementation of std::span.
 // Missing features:
@@ -119,6 +121,7 @@ template <typename T> class span {
   size_t span_size;
 };
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_SPAN_H
diff --git a/libc/src/__support/CPP/string.h b/libc/src/__support/CPP/string.h
index cb794e081970d..64d4c276e8428 100644
--- a/libc/src/__support/CPP/string.h
+++ b/libc/src/__support/CPP/string.h
@@ -11,6 +11,7 @@
 
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/integer_to_string.h" // IntegerToString
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "src/string/memory_utils/inline_memset.h"
 #include "src/string/string_utils.h" // string_length
@@ -18,7 +19,7 @@
 #include <stddef.h> // size_t
 #include <stdlib.h> // malloc, free
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 // This class mimics std::string but does not intend to be a full fledged
@@ -225,6 +226,6 @@ LIBC_INLINE string to_string(unsigned long long value) {
 // LIBC_INLINE string to_string(long double value);
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_STRING_H
diff --git a/libc/src/__support/CPP/string_view.h b/libc/src/__support/CPP/string_view.h
index 8aa96fa87f698..88f5270c3170a 100644
--- a/libc/src/__support/CPP/string_view.h
+++ b/libc/src/__support/CPP/string_view.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_STRING_VIEW_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 // This is very simple alternate of the std::string_view class. There is no
@@ -214,6 +215,6 @@ class string_view {
 };
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_STRING_VIEW_H
diff --git a/libc/src/__support/CPP/stringstream.h b/libc/src/__support/CPP/stringstream.h
index c8eb59cf65cbb..a16084c848688 100644
--- a/libc/src/__support/CPP/stringstream.h
+++ b/libc/src/__support/CPP/stringstream.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_STRINGSTREAM_H
 
 #include "span.h"
+#include "src/__support/macros/config.h"
 #include "string_view.h"
 #include "type_traits.h"
 
 #include "src/__support/integer_to_string.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace cpp {
 
 // This class is to be used to write simple strings into a user provided buffer
@@ -90,6 +91,6 @@ class StringStream {
 };
 
 } // namespace cpp
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_STRINGSTREAM_H
diff --git a/libc/src/__support/CPP/type_traits/add_lvalue_reference.h b/libc/src/__support/CPP/type_traits/add_lvalue_reference.h
index 2bca6267914d5..6f5fc6b0a4be1 100644
--- a/libc/src/__support/CPP/type_traits/add_lvalue_reference.h
+++ b/libc/src/__support/CPP/type_traits/add_lvalue_reference.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_LVALUE_REFERENCE_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // add_lvalue_reference
 namespace detail {
@@ -25,6 +27,7 @@ struct add_lvalue_reference : decltype(detail::try_add_lvalue_reference<T>(0)) {
 template <class T>
 using add_lvalue_reference_t = typename add_lvalue_reference<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_LVALUE_REFERENCE_H
diff --git a/libc/src/__support/CPP/type_traits/add_pointer.h b/libc/src/__support/CPP/type_traits/add_pointer.h
index 1257033ee80e2..2568a35653edc 100644
--- a/libc/src/__support/CPP/type_traits/add_pointer.h
+++ b/libc/src/__support/CPP/type_traits/add_pointer.h
@@ -10,8 +10,10 @@
 
 #include "src/__support/CPP/type_traits/remove_reference.h"
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // add_pointer
 namespace detail {
@@ -22,6 +24,7 @@ template <class T> auto try_add_pointer(...) -> cpp::type_identity<T>;
 template <class T>
 struct add_pointer : decltype(detail::try_add_pointer<T>(0)) {};
 template <class T> using add_pointer_t = typename add_pointer<T>::type;
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_POINTER_H
diff --git a/libc/src/__support/CPP/type_traits/add_rvalue_reference.h b/libc/src/__support/CPP/type_traits/add_rvalue_reference.h
index 76db6712e5364..f51ebf46d7c8b 100644
--- a/libc/src/__support/CPP/type_traits/add_rvalue_reference.h
+++ b/libc/src/__support/CPP/type_traits/add_rvalue_reference.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_RVALUE_REFERENCE_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // add_rvalue_reference
 namespace detail {
@@ -24,6 +26,7 @@ struct add_rvalue_reference : decltype(detail::try_add_rvalue_reference<T>(0)) {
 template <class T>
 using add_rvalue_reference_t = typename add_rvalue_reference<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_RVALUE_REFERENCE_H
diff --git a/libc/src/__support/CPP/type_traits/aligned_storage.h b/libc/src/__support/CPP/type_traits/aligned_storage.h
index 574b1146f6b2a..69ad4cc8478e2 100644
--- a/libc/src/__support/CPP/type_traits/aligned_storage.h
+++ b/libc/src/__support/CPP/type_traits/aligned_storage.h
@@ -9,9 +9,11 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ALIGNED_STORAGE_H
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ALIGNED_STORAGE_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 template <size_t Len, size_t Align> struct aligned_storage {
   struct type {
@@ -22,6 +24,7 @@ template <size_t Len, size_t Align> struct aligned_storage {
 template <size_t Len, size_t Align>
 using aligned_storage_t = typename aligned_storage<Len, Align>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ALIGNED_STORAGE_H
diff --git a/libc/src/__support/CPP/type_traits/always_false.h b/libc/src/__support/CPP/type_traits/always_false.h
index a86e926569fe6..218eb9d577ec3 100644
--- a/libc/src/__support/CPP/type_traits/always_false.h
+++ b/libc/src/__support/CPP/type_traits/always_false.h
@@ -10,8 +10,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ALWAYS_FALSE_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // This is technically not part of the standard but it come often enough that
 // it's convenient to have around.
@@ -24,6 +26,7 @@ namespace LIBC_NAMESPACE::cpp {
 // Usage `static_assert(cpp::always_false<T>, "error message");`
 template <typename...> LIBC_INLINE_VAR constexpr bool always_false = false;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ALWAYS_FALSE_H
diff --git a/libc/src/__support/CPP/type_traits/bool_constant.h b/libc/src/__support/CPP/type_traits/bool_constant.h
index 72eeaf29bc094..e61a81a84b0f8 100644
--- a/libc/src/__support/CPP/type_traits/bool_constant.h
+++ b/libc/src/__support/CPP/type_traits/bool_constant.h
@@ -9,12 +9,15 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_BOOL_CONSTANT_H
 
 #include "src/__support/CPP/type_traits/integral_constant.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // bool_constant
 template <bool V> using bool_constant = cpp::integral_constant<bool, V>;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_BOOL_CONSTANT_H
diff --git a/libc/src/__support/CPP/type_traits/conditional.h b/libc/src/__support/CPP/type_traits/conditional.h
index 4fa65a08e5552..effcda02da1a1 100644
--- a/libc/src/__support/CPP/type_traits/conditional.h
+++ b/libc/src/__support/CPP/type_traits/conditional.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_CONDITIONAL_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // conditional
 template <bool B, typename T, typename F>
@@ -20,6 +22,7 @@ struct conditional<false, T, F> : type_identity<F> {};
 template <bool B, typename T, typename F>
 using conditional_t = typename conditional<B, T, F>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_CONDITIONAL_H
diff --git a/libc/src/__support/CPP/type_traits/decay.h b/libc/src/__support/CPP/type_traits/decay.h
index f1a1200ab2ba1..c07e9e8557787 100644
--- a/libc/src/__support/CPP/type_traits/decay.h
+++ b/libc/src/__support/CPP/type_traits/decay.h
@@ -17,8 +17,10 @@
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/CPP/type_traits/remove_extent.h"
 #include "src/__support/CPP/type_traits/remove_reference.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // decay
 template <class T> class decay {
@@ -32,6 +34,7 @@ template <class T> class decay {
 };
 template <class T> using decay_t = typename decay<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_DECAY_H
diff --git a/libc/src/__support/CPP/type_traits/enable_if.h b/libc/src/__support/CPP/type_traits/enable_if.h
index cda9189b29eca..a2ce2037eb964 100644
--- a/libc/src/__support/CPP/type_traits/enable_if.h
+++ b/libc/src/__support/CPP/type_traits/enable_if.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ENABLE_IF_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // enable_if
 template <bool B, typename T = void> struct enable_if;
@@ -18,6 +20,7 @@ template <typename T> struct enable_if<true, T> : type_identity<T> {};
 template <bool B, typename T = void>
 using enable_if_t = typename enable_if<B, T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ENABLE_IF_H
diff --git a/libc/src/__support/CPP/type_traits/false_type.h b/libc/src/__support/CPP/type_traits/false_type.h
index 97c041ccd1624..65934b96bab06 100644
--- a/libc/src/__support/CPP/type_traits/false_type.h
+++ b/libc/src/__support/CPP/type_traits/false_type.h
@@ -9,12 +9,15 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_FALSE_TYPE_H
 
 #include "src/__support/CPP/type_traits/bool_constant.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // false_type
 using false_type = cpp::bool_constant<false>;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_FALSE_TYPE_H
diff --git a/libc/src/__support/CPP/type_traits/integral_constant.h b/libc/src/__support/CPP/type_traits/integral_constant.h
index 7b5b6c2150c71..931a9b98a64ca 100644
--- a/libc/src/__support/CPP/type_traits/integral_constant.h
+++ b/libc/src/__support/CPP/type_traits/integral_constant.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_INTEGRAL_CONSTANT_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE_VAR
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // integral_constant
 template <typename T, T v> struct integral_constant {
@@ -18,6 +20,7 @@ template <typename T, T v> struct integral_constant {
   LIBC_INLINE_VAR static constexpr T value = v;
 };
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_INTEGRAL_CONSTANT_H
diff --git a/libc/src/__support/CPP/type_traits/invoke.h b/libc/src/__support/CPP/type_traits/invoke.h
index 94351d849b926..e4d9be74d12df 100644
--- a/libc/src/__support/CPP/type_traits/invoke.h
+++ b/libc/src/__support/CPP/type_traits/invoke.h
@@ -17,8 +17,10 @@
 #include "src/__support/CPP/type_traits/is_same.h"
 #include "src/__support/CPP/utility/forward.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 namespace detail {
 
@@ -59,6 +61,7 @@ decltype(auto) invoke(Function &&fun, Args &&...args) {
       cpp::forward<Function>(fun), cpp::forward<Args>(args)...);
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_INVOKE_H
diff --git a/libc/src/__support/CPP/type_traits/invoke_result.h b/libc/src/__support/CPP/type_traits/invoke_result.h
index a6e522fbd1a0f..71d848b77fd27 100644
--- a/libc/src/__support/CPP/type_traits/invoke_result.h
+++ b/libc/src/__support/CPP/type_traits/invoke_result.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/invoke.h"
 #include "src/__support/CPP/type_traits/type_identity.h"
 #include "src/__support/CPP/utility/declval.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 template <class F, class... Args>
 struct invoke_result : cpp::type_identity<decltype(cpp::invoke(
@@ -21,6 +23,7 @@ struct invoke_result : cpp::type_identity<decltype(cpp::invoke(
 template <class F, class... Args>
 using invoke_result_t = typename invoke_result<F, Args...>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_INVOKE_RESULT_H
diff --git a/libc/src/__support/CPP/type_traits/is_arithmetic.h b/libc/src/__support/CPP/type_traits/is_arithmetic.h
index 53bb21203f593..33671b0def431 100644
--- a/libc/src/__support/CPP/type_traits/is_arithmetic.h
+++ b/libc/src/__support/CPP/type_traits/is_arithmetic.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/is_floating_point.h"
 #include "src/__support/CPP/type_traits/is_integral.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_arithmetic
 template <typename T>
@@ -22,6 +24,7 @@ struct is_arithmetic : cpp::bool_constant<(cpp::is_integral_v<T> ||
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_arithmetic_v = is_arithmetic<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_ARITHMETIC_H
diff --git a/libc/src/__support/CPP/type_traits/is_array.h b/libc/src/__support/CPP/type_traits/is_array.h
index 14360b130b2b1..f0ab100fd5c73 100644
--- a/libc/src/__support/CPP/type_traits/is_array.h
+++ b/libc/src/__support/CPP/type_traits/is_array.h
@@ -11,10 +11,12 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h> // For size_t
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_array
 template <class T> struct is_array : false_type {};
@@ -23,6 +25,7 @@ template <class T, size_t N> struct is_array<T[N]> : true_type {};
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_array_v = is_array<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_ARRAY_H
diff --git a/libc/src/__support/CPP/type_traits/is_base_of.h b/libc/src/__support/CPP/type_traits/is_base_of.h
index 47fb56876cd7f..2efd1bf3f1aff 100644
--- a/libc/src/__support/CPP/type_traits/is_base_of.h
+++ b/libc/src/__support/CPP/type_traits/is_base_of.h
@@ -14,8 +14,10 @@
 #include "src/__support/CPP/type_traits/remove_all_extents.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_base_of
 namespace detail {
@@ -39,6 +41,7 @@ struct is_base_of
 template <typename Base, typename Derived>
 LIBC_INLINE_VAR constexpr bool is_base_of_v = is_base_of<Base, Derived>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_BASE_OF_H
diff --git a/libc/src/__support/CPP/type_traits/is_class.h b/libc/src/__support/CPP/type_traits/is_class.h
index 83ebaea544c75..fe12f7d2763cf 100644
--- a/libc/src/__support/CPP/type_traits/is_class.h
+++ b/libc/src/__support/CPP/type_traits/is_class.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/is_union.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_class
 namespace detail {
@@ -24,6 +26,7 @@ template <class T> struct is_class : decltype(detail::test<T>(nullptr)) {};
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_class_v = is_class<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CLASS_H
diff --git a/libc/src/__support/CPP/type_traits/is_const.h b/libc/src/__support/CPP/type_traits/is_const.h
index 8e56a9afd2291..b8e60f79a6684 100644
--- a/libc/src/__support/CPP/type_traits/is_const.h
+++ b/libc/src/__support/CPP/type_traits/is_const.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_const
 template <class T> struct is_const : cpp::false_type {};
@@ -20,6 +22,7 @@ template <class T> struct is_const<const T> : cpp::true_type {};
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_const_v = is_const<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CONST_H
diff --git a/libc/src/__support/CPP/type_traits/is_constant_evaluated.h b/libc/src/__support/CPP/type_traits/is_constant_evaluated.h
index 93cfd07b567f0..0bb2d0806cb0d 100644
--- a/libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+++ b/libc/src/__support/CPP/type_traits/is_constant_evaluated.h
@@ -9,13 +9,16 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CONSTANT_EVALUATED_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 LIBC_INLINE constexpr bool is_constant_evaluated() {
   return __builtin_is_constant_evaluated();
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CONSTANT_EVALUATED_H
diff --git a/libc/src/__support/CPP/type_traits/is_convertible.h b/libc/src/__support/CPP/type_traits/is_convertible.h
index d419443493f7d..a9f94cbb95a2a 100644
--- a/libc/src/__support/CPP/type_traits/is_convertible.h
+++ b/libc/src/__support/CPP/type_traits/is_convertible.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/is_void.h"
 #include "src/__support/CPP/utility/declval.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_convertible
 namespace detail {
@@ -40,6 +42,7 @@ template <class From, class To>
 LIBC_INLINE_VAR constexpr bool is_convertible_v =
     is_convertible<From, To>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CONVERTIBLE_H
diff --git a/libc/src/__support/CPP/type_traits/is_destructible.h b/libc/src/__support/CPP/type_traits/is_destructible.h
index f94fe309ac8f7..830f22efafa52 100644
--- a/libc/src/__support/CPP/type_traits/is_destructible.h
+++ b/libc/src/__support/CPP/type_traits/is_destructible.h
@@ -16,8 +16,10 @@
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/CPP/type_traits/type_identity.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_destructible
 #if __has_builtin(__is_destructible)
@@ -60,6 +62,7 @@ template <> struct is_destructible<void> : public false_type {};
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_destructible_v = is_destructible<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_DESTRUCTIBLE_H
diff --git a/libc/src/__support/CPP/type_traits/is_enum.h b/libc/src/__support/CPP/type_traits/is_enum.h
index 8d55a1ca8a9f7..623ae072aff68 100644
--- a/libc/src/__support/CPP/type_traits/is_enum.h
+++ b/libc/src/__support/CPP/type_traits/is_enum.h
@@ -10,14 +10,17 @@
 
 #include "src/__support/CPP/type_traits/bool_constant.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_enum
 template <typename T> struct is_enum : bool_constant<__is_enum(T)> {};
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_enum_v = is_enum<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_ENUM_H
diff --git a/libc/src/__support/CPP/type_traits/is_fixed_point.h b/libc/src/__support/CPP/type_traits/is_fixed_point.h
index 025268bc2979d..9df2a7727c961 100644
--- a/libc/src/__support/CPP/type_traits/is_fixed_point.h
+++ b/libc/src/__support/CPP/type_traits/is_fixed_point.h
@@ -13,8 +13,10 @@
 #include "src/__support/macros/attributes.h"
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_fixed_point
 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
@@ -41,6 +43,7 @@ template <typename T> struct is_fixed_point : false_type {};
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_fixed_point_v = is_fixed_point<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_FIXED_POINT_H
diff --git a/libc/src/__support/CPP/type_traits/is_floating_point.h b/libc/src/__support/CPP/type_traits/is_floating_point.h
index 49b51dc83ea0a..11ffbfabe60b6 100644
--- a/libc/src/__support/CPP/type_traits/is_floating_point.h
+++ b/libc/src/__support/CPP/type_traits/is_floating_point.h
@@ -11,9 +11,11 @@
 #include "src/__support/CPP/type_traits/is_same.h"
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_FLOAT128
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_floating_point
 template <typename T> struct is_floating_point {
@@ -40,6 +42,7 @@ template <typename T>
 LIBC_INLINE_VAR constexpr bool is_floating_point_v =
     is_floating_point<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_FLOATING_POINT_H
diff --git a/libc/src/__support/CPP/type_traits/is_function.h b/libc/src/__support/CPP/type_traits/is_function.h
index 0eba5860ad607..f7717f0a4dcd6 100644
--- a/libc/src/__support/CPP/type_traits/is_function.h
+++ b/libc/src/__support/CPP/type_traits/is_function.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/is_const.h"
 #include "src/__support/CPP/type_traits/is_reference.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_function
 #if __has_builtin(__is_function)
@@ -27,6 +29,7 @@ struct is_function
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_function_v = is_function<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_FUNCTION_H
diff --git a/libc/src/__support/CPP/type_traits/is_integral.h b/libc/src/__support/CPP/type_traits/is_integral.h
index 68e16ff841833..96ba09a07ddc6 100644
--- a/libc/src/__support/CPP/type_traits/is_integral.h
+++ b/libc/src/__support/CPP/type_traits/is_integral.h
@@ -11,9 +11,11 @@
 #include "src/__support/CPP/type_traits/is_same.h"
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_integral
 template <typename T> struct is_integral {
@@ -35,6 +37,7 @@ template <typename T> struct is_integral {
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_integral_v = is_integral<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_INTEGRAL_H
diff --git a/libc/src/__support/CPP/type_traits/is_lvalue_reference.h b/libc/src/__support/CPP/type_traits/is_lvalue_reference.h
index 1dff57f186a3a..e0bfbebdaa296 100644
--- a/libc/src/__support/CPP/type_traits/is_lvalue_reference.h
+++ b/libc/src/__support/CPP/type_traits/is_lvalue_reference.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_lvalue_reference
 #if __has_builtin(__is_lvalue_reference)
@@ -27,6 +29,7 @@ template <class T>
 LIBC_INLINE_VAR constexpr bool is_lvalue_reference_v =
     is_lvalue_reference<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_LVALUE_REFERENCE_H
diff --git a/libc/src/__support/CPP/type_traits/is_member_pointer.h b/libc/src/__support/CPP/type_traits/is_member_pointer.h
index f1f362f8dfd54..f44567003959c 100644
--- a/libc/src/__support/CPP/type_traits/is_member_pointer.h
+++ b/libc/src/__support/CPP/type_traits/is_member_pointer.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_member_pointer
 template <class T> struct is_member_pointer_helper : cpp::false_type {};
@@ -25,6 +27,7 @@ template <class T>
 LIBC_INLINE_VAR constexpr bool is_member_pointer_v =
     is_member_pointer<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_MEMBER_POINTER_H
diff --git a/libc/src/__support/CPP/type_traits/is_null_pointer.h b/libc/src/__support/CPP/type_traits/is_null_pointer.h
index 14452433862ae..acf341311be06 100644
--- a/libc/src/__support/CPP/type_traits/is_null_pointer.h
+++ b/libc/src/__support/CPP/type_traits/is_null_pointer.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/is_same.h"
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_null_pointer
 using nullptr_t = decltype(nullptr);
@@ -21,6 +23,7 @@ struct is_null_pointer : cpp::is_same<cpp::nullptr_t, cpp::remove_cv_t<T>> {};
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_null_pointer_v = is_null_pointer<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_NULL_POINTER_H
diff --git a/libc/src/__support/CPP/type_traits/is_object.h b/libc/src/__support/CPP/type_traits/is_object.h
index a23bebca572be..16799fb8f25f6 100644
--- a/libc/src/__support/CPP/type_traits/is_object.h
+++ b/libc/src/__support/CPP/type_traits/is_object.h
@@ -14,8 +14,10 @@
 #include "src/__support/CPP/type_traits/is_scalar.h"
 #include "src/__support/CPP/type_traits/is_union.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_object
 template <class T>
@@ -25,6 +27,7 @@ struct is_object
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_object_v = is_object<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_OBJECT_H
diff --git a/libc/src/__support/CPP/type_traits/is_pointer.h b/libc/src/__support/CPP/type_traits/is_pointer.h
index 177f8e5b64e7a..606c8e9e8c0fb 100644
--- a/libc/src/__support/CPP/type_traits/is_pointer.h
+++ b/libc/src/__support/CPP/type_traits/is_pointer.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_pointer
 template <typename T> struct is_pointer : cpp::false_type {};
@@ -23,6 +25,7 @@ template <typename T> struct is_pointer<T *const volatile> : cpp::true_type {};
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_pointer_v = is_pointer<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_POINTER_H
diff --git a/libc/src/__support/CPP/type_traits/is_reference.h b/libc/src/__support/CPP/type_traits/is_reference.h
index bbfb2b7359c3e..12da81778fd54 100644
--- a/libc/src/__support/CPP/type_traits/is_reference.h
+++ b/libc/src/__support/CPP/type_traits/is_reference.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_reference
 #if __has_builtin(__is_reference)
@@ -26,6 +28,7 @@ template <typename T> struct is_reference<T &&> : public true_type {};
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_reference_v = is_reference<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_REFERENCE_H
diff --git a/libc/src/__support/CPP/type_traits/is_rvalue_reference.h b/libc/src/__support/CPP/type_traits/is_rvalue_reference.h
index 3efbbe6b033a0..998b6353afb15 100644
--- a/libc/src/__support/CPP/type_traits/is_rvalue_reference.h
+++ b/libc/src/__support/CPP/type_traits/is_rvalue_reference.h
@@ -12,8 +12,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_rvalue_reference
 #if __has_builtin(__is_rvalue_reference)
@@ -27,6 +29,7 @@ template <class T>
 LIBC_INLINE_VAR constexpr bool is_rvalue_reference_v =
     is_rvalue_reference<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_RVALUE_REFERENCE_H
diff --git a/libc/src/__support/CPP/type_traits/is_same.h b/libc/src/__support/CPP/type_traits/is_same.h
index eb73952f9f971..306d16b86f88f 100644
--- a/libc/src/__support/CPP/type_traits/is_same.h
+++ b/libc/src/__support/CPP/type_traits/is_same.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/false_type.h"
 #include "src/__support/CPP/type_traits/true_type.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_same
 template <typename T, typename U> struct is_same : cpp::false_type {};
@@ -20,6 +22,7 @@ template <typename T> struct is_same<T, T> : cpp::true_type {};
 template <typename T, typename U>
 LIBC_INLINE_VAR constexpr bool is_same_v = is_same<T, U>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_SAME_H
diff --git a/libc/src/__support/CPP/type_traits/is_scalar.h b/libc/src/__support/CPP/type_traits/is_scalar.h
index 1f71cde36ca27..7f8a750cd7edb 100644
--- a/libc/src/__support/CPP/type_traits/is_scalar.h
+++ b/libc/src/__support/CPP/type_traits/is_scalar.h
@@ -15,8 +15,10 @@
 #include "src/__support/CPP/type_traits/is_null_pointer.h"
 #include "src/__support/CPP/type_traits/is_pointer.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_scalar
 template <class T>
@@ -27,6 +29,7 @@ struct is_scalar
 template <class T>
 LIBC_INLINE_VAR constexpr bool is_scalar_v = is_scalar<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_SCALAR_H
diff --git a/libc/src/__support/CPP/type_traits/is_signed.h b/libc/src/__support/CPP/type_traits/is_signed.h
index 971fe692679f9..3f56fb38aabb0 100644
--- a/libc/src/__support/CPP/type_traits/is_signed.h
+++ b/libc/src/__support/CPP/type_traits/is_signed.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/bool_constant.h"
 #include "src/__support/CPP/type_traits/is_arithmetic.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_signed
 template <typename T>
@@ -23,6 +25,7 @@ struct is_signed : bool_constant<(is_arithmetic_v<T> && (T(-1) < T(0)))> {
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_signed_v = is_signed<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_SIGNED_H
diff --git a/libc/src/__support/CPP/type_traits/is_trivially_constructible.h b/libc/src/__support/CPP/type_traits/is_trivially_constructible.h
index be97b2289cf0a..b801911038a90 100644
--- a/libc/src/__support/CPP/type_traits/is_trivially_constructible.h
+++ b/libc/src/__support/CPP/type_traits/is_trivially_constructible.h
@@ -9,14 +9,17 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_TRIVIALLY_CONSTRUCTIBLE_H
 
 #include "src/__support/CPP/type_traits/integral_constant.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_trivially_constructible
 template <class T, class... Args>
 struct is_trivially_constructible
     : integral_constant<bool, __is_trivially_constructible(T, Args...)> {};
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_TRIVIALLY_CONSTRUCTIBLE_H
diff --git a/libc/src/__support/CPP/type_traits/is_trivially_copyable.h b/libc/src/__support/CPP/type_traits/is_trivially_copyable.h
index b4c825d579619..68e56c8547834 100644
--- a/libc/src/__support/CPP/type_traits/is_trivially_copyable.h
+++ b/libc/src/__support/CPP/type_traits/is_trivially_copyable.h
@@ -9,14 +9,17 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_TRIVIALLY_COPYABLE_H
 
 #include "src/__support/CPP/type_traits/integral_constant.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_trivially_copyable
 template <class T>
 struct is_trivially_copyable
     : public integral_constant<bool, __is_trivially_copyable(T)> {};
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_TRIVIALLY_COPYABLE_H
diff --git a/libc/src/__support/CPP/type_traits/is_trivially_destructible.h b/libc/src/__support/CPP/type_traits/is_trivially_destructible.h
index 37e0e869266e1..d727a0ec3a82b 100644
--- a/libc/src/__support/CPP/type_traits/is_trivially_destructible.h
+++ b/libc/src/__support/CPP/type_traits/is_trivially_destructible.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/bool_constant.h"
 #include "src/__support/CPP/type_traits/is_destructible.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_trivially_destructible
 #if __has_builtin(__is_trivially_destructible)
@@ -29,6 +31,7 @@ template <typename T>
 LIBC_INLINE_VAR constexpr bool is_trivially_destructible_v =
     is_trivially_destructible<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_TRIVIALLY_DESTRUCTIBLE_H
diff --git a/libc/src/__support/CPP/type_traits/is_union.h b/libc/src/__support/CPP/type_traits/is_union.h
index 04e78a89fc0c1..00ca11a351bdc 100644
--- a/libc/src/__support/CPP/type_traits/is_union.h
+++ b/libc/src/__support/CPP/type_traits/is_union.h
@@ -10,14 +10,17 @@
 
 #include "src/__support/CPP/type_traits/bool_constant.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_union
 template <class T> struct is_union : bool_constant<__is_union(T)> {};
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_union_v = is_union<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_UNION_H
diff --git a/libc/src/__support/CPP/type_traits/is_unsigned.h b/libc/src/__support/CPP/type_traits/is_unsigned.h
index f089c2b61632f..eed519b1c067e 100644
--- a/libc/src/__support/CPP/type_traits/is_unsigned.h
+++ b/libc/src/__support/CPP/type_traits/is_unsigned.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/bool_constant.h"
 #include "src/__support/CPP/type_traits/is_arithmetic.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_unsigned
 template <typename T>
@@ -23,6 +25,7 @@ struct is_unsigned : bool_constant<(is_arithmetic_v<T> && (T(-1) > T(0)))> {
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_unsigned_v = is_unsigned<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_UNSIGNED_H
diff --git a/libc/src/__support/CPP/type_traits/is_void.h b/libc/src/__support/CPP/type_traits/is_void.h
index 040dc831fd64e..30459dcf91a7f 100644
--- a/libc/src/__support/CPP/type_traits/is_void.h
+++ b/libc/src/__support/CPP/type_traits/is_void.h
@@ -11,14 +11,17 @@
 #include "src/__support/CPP/type_traits/is_same.h"
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // is_void
 template <typename T> struct is_void : is_same<void, remove_cv_t<T>> {};
 template <typename T>
 LIBC_INLINE_VAR constexpr bool is_void_v = is_void<T>::value;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_VOID_H
diff --git a/libc/src/__support/CPP/type_traits/make_signed.h b/libc/src/__support/CPP/type_traits/make_signed.h
index 4652d8b6bfa56..00bc6be8fcc18 100644
--- a/libc/src/__support/CPP/type_traits/make_signed.h
+++ b/libc/src/__support/CPP/type_traits/make_signed.h
@@ -9,9 +9,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_MAKE_SIGNED_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // make_signed
 template <typename T> struct make_signed;
@@ -33,6 +35,7 @@ template <> struct make_signed<__uint128_t> : type_identity<__int128_t> {};
 #endif
 template <typename T> using make_signed_t = typename make_signed<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_MAKE_SIGNED_H
diff --git a/libc/src/__support/CPP/type_traits/make_unsigned.h b/libc/src/__support/CPP/type_traits/make_unsigned.h
index 1e814ae002a77..e5f60ae665219 100644
--- a/libc/src/__support/CPP/type_traits/make_unsigned.h
+++ b/libc/src/__support/CPP/type_traits/make_unsigned.h
@@ -9,9 +9,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_MAKE_UNSIGNED_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // make_unsigned
 
@@ -38,6 +40,7 @@ template <> struct make_unsigned<__uint128_t> : type_identity<__uint128_t> {};
 #endif
 template <typename T> using make_unsigned_t = typename make_unsigned<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_MAKE_UNSIGNED_H
diff --git a/libc/src/__support/CPP/type_traits/remove_all_extents.h b/libc/src/__support/CPP/type_traits/remove_all_extents.h
index 5941b82bbc161..bc577ca6f4df9 100644
--- a/libc/src/__support/CPP/type_traits/remove_all_extents.h
+++ b/libc/src/__support/CPP/type_traits/remove_all_extents.h
@@ -9,10 +9,12 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_ALL_EXTENTS_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // remove_all_extents
 #if __has_builtin(__remove_all_extents)
@@ -33,6 +35,7 @@ template <typename T>
 using remove_all_extents_t = typename remove_all_extents<T>::type;
 #endif
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_ALL_EXTENTS_H
diff --git a/libc/src/__support/CPP/type_traits/remove_cv.h b/libc/src/__support/CPP/type_traits/remove_cv.h
index 3cd7e5914119c..2e843e0b4363a 100644
--- a/libc/src/__support/CPP/type_traits/remove_cv.h
+++ b/libc/src/__support/CPP/type_traits/remove_cv.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_CV_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // remove_cv
 template <class T> struct remove_cv : cpp::type_identity<T> {};
@@ -20,6 +22,7 @@ template <class T>
 struct remove_cv<const volatile T> : cpp::type_identity<T> {};
 template <class T> using remove_cv_t = typename remove_cv<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_CV_H
diff --git a/libc/src/__support/CPP/type_traits/remove_cvref.h b/libc/src/__support/CPP/type_traits/remove_cvref.h
index 6b410bb5841bc..27591783fd7a1 100644
--- a/libc/src/__support/CPP/type_traits/remove_cvref.h
+++ b/libc/src/__support/CPP/type_traits/remove_cvref.h
@@ -10,8 +10,10 @@
 
 #include "src/__support/CPP/type_traits/remove_cv.h"
 #include "src/__support/CPP/type_traits/remove_reference.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // remove_cvref
 template <typename T> struct remove_cvref {
@@ -19,6 +21,7 @@ template <typename T> struct remove_cvref {
 };
 template <typename T> using remove_cvref_t = typename remove_cvref<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_CVREF_H
diff --git a/libc/src/__support/CPP/type_traits/remove_extent.h b/libc/src/__support/CPP/type_traits/remove_extent.h
index 3c0759dc1a522..4f5ffd34530d5 100644
--- a/libc/src/__support/CPP/type_traits/remove_extent.h
+++ b/libc/src/__support/CPP/type_traits/remove_extent.h
@@ -9,9 +9,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_EXTENT_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 #include "stddef.h" // size_t
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // remove_extent
 template <class T> struct remove_extent : cpp::type_identity<T> {};
@@ -20,6 +22,7 @@ template <class T, size_t N>
 struct remove_extent<T[N]> : cpp::type_identity<T> {};
 template <class T> using remove_extent_t = typename remove_extent<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_EXTENT_H
diff --git a/libc/src/__support/CPP/type_traits/remove_reference.h b/libc/src/__support/CPP/type_traits/remove_reference.h
index 02a0bd6373d3a..26ded0879f190 100644
--- a/libc/src/__support/CPP/type_traits/remove_reference.h
+++ b/libc/src/__support/CPP/type_traits/remove_reference.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_REFERENCE_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // remove_reference
 template <class T> struct remove_reference : cpp::type_identity<T> {};
@@ -19,6 +21,7 @@ template <class T> struct remove_reference<T &&> : cpp::type_identity<T> {};
 template <class T>
 using remove_reference_t = typename remove_reference<T>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_REFERENCE_H
diff --git a/libc/src/__support/CPP/type_traits/true_type.h b/libc/src/__support/CPP/type_traits/true_type.h
index 60ffc8acd9dad..55f8a535d03f3 100644
--- a/libc/src/__support/CPP/type_traits/true_type.h
+++ b/libc/src/__support/CPP/type_traits/true_type.h
@@ -9,12 +9,15 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_TRUE_TYPE_H
 
 #include "src/__support/CPP/type_traits/bool_constant.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // true_type
 using true_type = cpp::bool_constant<true>;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_TRUE_TYPE_H
diff --git a/libc/src/__support/CPP/type_traits/type_identity.h b/libc/src/__support/CPP/type_traits/type_identity.h
index f33a43ac7ea10..304a1ed2cea31 100644
--- a/libc/src/__support/CPP/type_traits/type_identity.h
+++ b/libc/src/__support/CPP/type_traits/type_identity.h
@@ -8,13 +8,17 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_TYPE_IDENTITY_H
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_TYPE_IDENTITY_H
 
-namespace LIBC_NAMESPACE::cpp {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // type_identity
 template <typename T> struct type_identity {
   using type = T;
 };
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_TYPE_IDENTITY_H
diff --git a/libc/src/__support/CPP/type_traits/void_t.h b/libc/src/__support/CPP/type_traits/void_t.h
index babdaccfbc537..9018860a83a2c 100644
--- a/libc/src/__support/CPP/type_traits/void_t.h
+++ b/libc/src/__support/CPP/type_traits/void_t.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_VOID_T_H
 
 #include "src/__support/CPP/type_traits/type_identity.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // void_t
 
@@ -21,6 +23,7 @@ template <typename... Ts> struct make_void : cpp::type_identity<void> {};
 template <typename... Ts>
 using void_t = typename detail::make_void<Ts...>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_VOID_T_H
diff --git a/libc/src/__support/CPP/utility/declval.h b/libc/src/__support/CPP/utility/declval.h
index 0d00aa6d38199..9b963b92204f3 100644
--- a/libc/src/__support/CPP/utility/declval.h
+++ b/libc/src/__support/CPP/utility/declval.h
@@ -10,8 +10,10 @@
 
 #include "src/__support/CPP/type_traits/add_rvalue_reference.h"
 #include "src/__support/CPP/type_traits/always_false.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // declval
 template <typename T> cpp::add_rvalue_reference_t<T> declval() {
@@ -19,6 +21,7 @@ template <typename T> cpp::add_rvalue_reference_t<T> declval() {
                 "declval not allowed in an evaluated context");
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_DECLVAL_H
diff --git a/libc/src/__support/CPP/utility/forward.h b/libc/src/__support/CPP/utility/forward.h
index 891097ec96d54..085b3d16f999b 100644
--- a/libc/src/__support/CPP/utility/forward.h
+++ b/libc/src/__support/CPP/utility/forward.h
@@ -11,8 +11,10 @@
 #include "src/__support/CPP/type_traits/is_lvalue_reference.h"
 #include "src/__support/CPP/type_traits/remove_reference.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // forward
 template <typename T>
@@ -27,6 +29,7 @@ LIBC_INLINE constexpr T &&forward(remove_reference_t<T> &&value) {
   return static_cast<T &&>(value);
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_FORWARD_H
diff --git a/libc/src/__support/CPP/utility/in_place.h b/libc/src/__support/CPP/utility/in_place.h
index 3aace22f211a8..b5411f247d551 100644
--- a/libc/src/__support/CPP/utility/in_place.h
+++ b/libc/src/__support/CPP/utility/in_place.h
@@ -9,10 +9,12 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_IN_PLACE_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE, LIBC_INLINE_VAR
+#include "src/__support/macros/config.h"
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // in_place
 struct in_place_t {
@@ -31,6 +33,7 @@ template <size_t I> struct in_place_index_t {
 template <size_t I>
 LIBC_INLINE_VAR constexpr in_place_index_t<I> in_place_index{};
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_IN_PLACE_H
diff --git a/libc/src/__support/CPP/utility/integer_sequence.h b/libc/src/__support/CPP/utility/integer_sequence.h
index 2ed26df3d238e..06643d505aca0 100644
--- a/libc/src/__support/CPP/utility/integer_sequence.h
+++ b/libc/src/__support/CPP/utility/integer_sequence.h
@@ -9,8 +9,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_INTEGER_SEQUENCE_H
 
 #include "src/__support/CPP/type_traits/is_integral.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // integer_sequence
 template <typename T, T... Ints> struct integer_sequence {
@@ -32,6 +34,7 @@ template <typename T, int N>
 using make_integer_sequence =
     typename detail::make_integer_sequence<T, N - 1>::type;
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_INTEGER_SEQUENCE_H
diff --git a/libc/src/__support/CPP/utility/move.h b/libc/src/__support/CPP/utility/move.h
index 4fec5e6af96e3..b61f723e8d4cb 100644
--- a/libc/src/__support/CPP/utility/move.h
+++ b/libc/src/__support/CPP/utility/move.h
@@ -10,8 +10,10 @@
 
 #include "src/__support/CPP/type_traits/remove_reference.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 // move
 template <class T>
@@ -19,6 +21,7 @@ LIBC_INLINE constexpr cpp::remove_reference_t<T> &&move(T &&t) {
   return static_cast<typename cpp::remove_reference_t<T> &&>(t);
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_MOVE_H
diff --git a/libc/src/__support/FPUtil/BasicOperations.h b/libc/src/__support/FPUtil/BasicOperations.h
index 17eee7bddb282..a963a92bfb074 100644
--- a/libc/src/__support/FPUtil/BasicOperations.h
+++ b/libc/src/__support/FPUtil/BasicOperations.h
@@ -15,10 +15,11 @@
 #include "FEnvImpl.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/uint128.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <typename T, cpp::enable_if_t<cpp::is_floating_point_v<T>, int> = 0>
@@ -308,6 +309,6 @@ setpayload(T &res, T pl) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_BASICOPERATIONS_H
diff --git a/libc/src/__support/FPUtil/DivisionAndRemainderOperations.h b/libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
index eee05c67d9e9b..fda33875f25bc 100644
--- a/libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
+++ b/libc/src/__support/FPUtil/DivisionAndRemainderOperations.h
@@ -15,8 +15,9 @@
 
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 static constexpr int QUOTIENT_LSB_BITS = 3;
@@ -115,6 +116,6 @@ LIBC_INLINE T remquo(T x, T y, int &q) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_DIVISIONANDREMAINDEROPERATIONS_H
diff --git a/libc/src/__support/FPUtil/FEnvImpl.h b/libc/src/__support/FPUtil/FEnvImpl.h
index 1674dd0358e88..4bb31a6f4c426 100644
--- a/libc/src/__support/FPUtil/FEnvImpl.h
+++ b/libc/src/__support/FPUtil/FEnvImpl.h
@@ -13,6 +13,7 @@
 #include "hdr/math_macros.h"
 #include "hdr/types/fenv_t.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/errno/libc_errno.h"
 
@@ -34,7 +35,8 @@
 #include "riscv/FEnvImpl.h"
 #else
 
-namespace LIBC_NAMESPACE::fputil {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 // All dummy functions silently succeed.
 
@@ -62,10 +64,12 @@ LIBC_INLINE int get_env(fenv_t *) { return 0; }
 
 LIBC_INLINE int set_env(const fenv_t *) { return 0; }
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 #endif
 
-namespace LIBC_NAMESPACE::fputil {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 LIBC_INLINE int clear_except_if_required(int excepts) {
   if (math_errhandling & MATH_ERREXCEPT)
@@ -90,6 +94,7 @@ LIBC_INLINE void set_errno_if_required(int err) {
     libc_errno = err;
 }
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_FENVIMPL_H
diff --git a/libc/src/__support/FPUtil/FMA.h b/libc/src/__support/FPUtil/FMA.h
index cf01a317d7359..807d685239732 100644
--- a/libc/src/__support/FPUtil/FMA.h
+++ b/libc/src/__support/FPUtil/FMA.h
@@ -11,10 +11,11 @@
 
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/FPUtil/generic/FMA.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <typename OutType, typename InType>
@@ -33,6 +34,6 @@ template <> LIBC_INLINE double fma(double x, double y, double z) {
 #endif // LIBC_TARGET_CPU_HAS_FMA
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_FMA_H
diff --git a/libc/src/__support/FPUtil/FPBits.h b/libc/src/__support/FPUtil/FPBits.h
index 559ecde767c30..5d1f633bb56ee 100644
--- a/libc/src/__support/FPUtil/FPBits.h
+++ b/libc/src/__support/FPUtil/FPBits.h
@@ -14,6 +14,7 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"       // LIBC_ASSERT
 #include "src/__support/macros/attributes.h" // LIBC_INLINE, LIBC_INLINE_VAR
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_FLOAT128
 #include "src/__support/math_extras.h"             // mask_trailing_ones
 #include "src/__support/sign.h"                    // Sign
@@ -21,7 +22,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 // The supported floating point types.
@@ -824,6 +825,6 @@ struct FPBits final : public internal::FPRepImpl<get_fp_type<T>(), FPBits<T>> {
 };
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_FPBITS_H
diff --git a/libc/src/__support/FPUtil/Hypot.h b/libc/src/__support/FPUtil/Hypot.h
index 76b1f07976213..a5a991e75ed01 100644
--- a/libc/src/__support/FPUtil/Hypot.h
+++ b/libc/src/__support/FPUtil/Hypot.h
@@ -16,9 +16,10 @@
 #include "src/__support/CPP/bit.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 namespace internal {
@@ -263,6 +264,6 @@ LIBC_INLINE T hypot(T x, T y) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_HYPOT_H
diff --git a/libc/src/__support/FPUtil/ManipulationFunctions.h b/libc/src/__support/FPUtil/ManipulationFunctions.h
index 97c43126a71a3..a14f355789999 100644
--- a/libc/src/__support/FPUtil/ManipulationFunctions.h
+++ b/libc/src/__support/FPUtil/ManipulationFunctions.h
@@ -21,9 +21,10 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <typename T, cpp::enable_if_t<cpp::is_floating_point_v<T>, int> = 0>
@@ -258,7 +259,7 @@ LIBC_INLINE constexpr T nextupdown(T x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #ifdef LIBC_TYPES_LONG_DOUBLE_IS_X86_FLOAT80
 #include "x86_64/NextAfterLongDouble.h"
diff --git a/libc/src/__support/FPUtil/NearestIntegerOperations.h b/libc/src/__support/FPUtil/NearestIntegerOperations.h
index a9a0a97eebb5c..e4e497b898e83 100644
--- a/libc/src/__support/FPUtil/NearestIntegerOperations.h
+++ b/libc/src/__support/FPUtil/NearestIntegerOperations.h
@@ -16,8 +16,9 @@
 #include "hdr/math_macros.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <typename T, cpp::enable_if_t<cpp::is_floating_point_v<T>, int> = 0>
@@ -400,6 +401,6 @@ LIBC_INLINE I round_to_signed_integer_using_current_rounding_mode(F x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_NEARESTINTEGEROPERATIONS_H
diff --git a/libc/src/__support/FPUtil/NormalFloat.h b/libc/src/__support/FPUtil/NormalFloat.h
index 413d20430090b..b4cbb5042a68b 100644
--- a/libc/src/__support/FPUtil/NormalFloat.h
+++ b/libc/src/__support/FPUtil/NormalFloat.h
@@ -13,10 +13,11 @@
 
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 // A class which stores the normalized form of a floating point value.
@@ -267,6 +268,6 @@ template <> LIBC_INLINE NormalFloat<long double>::operator long double() const {
 #endif // LIBC_TYPES_LONG_DOUBLE_IS_X86_FLOAT80
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_NORMALFLOAT_H
diff --git a/libc/src/__support/FPUtil/PolyEval.h b/libc/src/__support/FPUtil/PolyEval.h
index 7a6384541a747..41104620ed61d 100644
--- a/libc/src/__support/FPUtil/PolyEval.h
+++ b/libc/src/__support/FPUtil/PolyEval.h
@@ -12,6 +12,7 @@
 #include "multiply_add.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 // Evaluate polynomial using Horner's Scheme:
 // With polyeval(x, a_0, a_1, ..., a_n) = a_n * x^n + ... + a_1 * x + a_0, we
@@ -20,7 +21,7 @@
 // Example: to evaluate x^3 + 2*x^2 + 3*x + 4, call
 //   polyeval( x, 4.0, 3.0, 2.0, 1.0 )
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <typename T>
@@ -48,6 +49,6 @@ polyeval(T x, T a0, Ts... a) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_POLYEVAL_H
diff --git a/libc/src/__support/FPUtil/aarch64/FEnvImpl.h b/libc/src/__support/FPUtil/aarch64/FEnvImpl.h
index cd8a5970edd65..3cea9772154fc 100644
--- a/libc/src/__support/FPUtil/aarch64/FEnvImpl.h
+++ b/libc/src/__support/FPUtil/aarch64/FEnvImpl.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_FENVIMPL_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_AARCH64) || defined(__APPLE__)
@@ -23,7 +24,7 @@
 #include "hdr/types/fenv_t.h"
 #include "src/__support/FPUtil/FPBits.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 struct FEnv {
@@ -279,6 +280,6 @@ LIBC_INLINE int set_env(const fenv_t *envp) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_FENVIMPL_H
diff --git a/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h b/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
index feb48e3719bf1..969e70796d1f1 100644
--- a/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
+++ b/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_FENV_DARWIN_IMPL_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_AARCH64) || !defined(__APPLE__)
@@ -23,7 +24,7 @@
 #include "hdr/types/fenv_t.h"
 #include "src/__support/FPUtil/FPBits.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 struct FEnv {
@@ -284,6 +285,6 @@ LIBC_INLINE int set_env(const fenv_t *envp) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_FENV_DARWIN_IMPL_H
diff --git a/libc/src/__support/FPUtil/aarch64/nearest_integer.h b/libc/src/__support/FPUtil/aarch64/nearest_integer.h
index ca0763078ff0d..d5ea0678825fd 100644
--- a/libc/src/__support/FPUtil/aarch64/nearest_integer.h
+++ b/libc/src/__support/FPUtil/aarch64/nearest_integer.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_NEAREST_INTEGER_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_AARCH64)
 #error "Invalid include"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 LIBC_INLINE float nearest_integer(float x) {
@@ -32,6 +33,6 @@ LIBC_INLINE double nearest_integer(double x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_NEAREST_INTEGER_H
diff --git a/libc/src/__support/FPUtil/aarch64/sqrt.h b/libc/src/__support/FPUtil/aarch64/sqrt.h
index bad7e316bf370..b69267ff91f5c 100644
--- a/libc/src/__support/FPUtil/aarch64/sqrt.h
+++ b/libc/src/__support/FPUtil/aarch64/sqrt.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_SQRT_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_AARCH64)
@@ -18,7 +19,7 @@
 
 #include "src/__support/FPUtil/generic/sqrt.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <> LIBC_INLINE float sqrt<float>(float x) {
@@ -34,6 +35,6 @@ template <> LIBC_INLINE double sqrt<double>(double x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_AARCH64_SQRT_H
diff --git a/libc/src/__support/FPUtil/arm/FEnvImpl.h b/libc/src/__support/FPUtil/arm/FEnvImpl.h
index cb8d31d683af3..aaf37c0a045af 100644
--- a/libc/src/__support/FPUtil/arm/FEnvImpl.h
+++ b/libc/src/__support/FPUtil/arm/FEnvImpl.h
@@ -13,9 +13,10 @@
 #include "hdr/types/fenv_t.h"
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/macros/attributes.h" // For LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 struct FEnv {
@@ -260,6 +261,6 @@ LIBC_INLINE int set_env(const fenv_t *envp) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_ARM_FENVIMPL_H
diff --git a/libc/src/__support/FPUtil/double_double.h b/libc/src/__support/FPUtil/double_double.h
index 6867026953f25..25a4ee03387c6 100644
--- a/libc/src/__support/FPUtil/double_double.h
+++ b/libc/src/__support/FPUtil/double_double.h
@@ -11,10 +11,12 @@
 
 #include "multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 #include "src/__support/number_pair.h"
 
-namespace LIBC_NAMESPACE::fputil {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 using DoubleDouble = LIBC_NAMESPACE::NumberPair<double>;
 
@@ -165,6 +167,7 @@ LIBC_INLINE DoubleDouble div(const DoubleDouble &a, const DoubleDouble &b) {
   return r;
 }
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_DOUBLE_DOUBLE_H
diff --git a/libc/src/__support/FPUtil/dyadic_float.h b/libc/src/__support/FPUtil/dyadic_float.h
index 32267bb68e1cc..86346a47b35a3 100644
--- a/libc/src/__support/FPUtil/dyadic_float.h
+++ b/libc/src/__support/FPUtil/dyadic_float.h
@@ -14,11 +14,13 @@
 #include "multiply_add.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/big_int.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE::fputil {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 // A generic class to perform computations of high precision floating points.
 // We store the value in dyadic format, including 3 fields:
@@ -371,6 +373,7 @@ LIBC_INLINE constexpr DyadicFloat<Bits> mul_pow_2(const DyadicFloat<Bits> &a,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_DYADIC_FLOAT_H
diff --git a/libc/src/__support/FPUtil/except_value_utils.h b/libc/src/__support/FPUtil/except_value_utils.h
index 1e0381194009d..b9f54aa24e3a2 100644
--- a/libc/src/__support/FPUtil/except_value_utils.h
+++ b/libc/src/__support/FPUtil/except_value_utils.h
@@ -13,9 +13,10 @@
 #include "FPBits.h"
 #include "rounding_mode.h"
 #include "src/__support/CPP/optional.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace fputil {
 
@@ -114,6 +115,6 @@ template <typename T> LIBC_INLINE T round_result_slightly_up(T value_rn) {
 
 } // namespace fputil
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_EXCEPT_VALUE_UTILS_H
diff --git a/libc/src/__support/FPUtil/fpbits_str.h b/libc/src/__support/FPUtil/fpbits_str.h
index 97689867da4de..92981917561a1 100644
--- a/libc/src/__support/FPUtil/fpbits_str.h
+++ b/libc/src/__support/FPUtil/fpbits_str.h
@@ -14,8 +14,9 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/integer_to_string.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace details {
 
@@ -70,6 +71,6 @@ template <typename T> LIBC_INLINE cpp::string str(fputil::FPBits<T> x) {
   return s;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_FPBITS_STR_H
diff --git a/libc/src/__support/FPUtil/generic/FMA.h b/libc/src/__support/FPUtil/generic/FMA.h
index 72341a129dcb5..337301d86d919 100644
--- a/libc/src/__support/FPUtil/generic/FMA.h
+++ b/libc/src/__support/FPUtil/generic/FMA.h
@@ -18,11 +18,12 @@
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/big_int.h"
 #include "src/__support/macros/attributes.h"   // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "hdr/fenv_macros.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 namespace generic {
 
@@ -272,6 +273,6 @@ fma(InType x, InType y, InType z) {
 
 } // namespace generic
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMA_H
diff --git a/libc/src/__support/FPUtil/generic/FMod.h b/libc/src/__support/FPUtil/generic/FMod.h
index 0b9244ebdc8a8..30d6472085f6f 100644
--- a/libc/src/__support/FPUtil/generic/FMod.h
+++ b/libc/src/__support/FPUtil/generic/FMod.h
@@ -14,9 +14,10 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 namespace generic {
 
@@ -290,6 +291,6 @@ class FMod {
 
 } // namespace generic
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_FMOD_H
diff --git a/libc/src/__support/FPUtil/generic/README.md b/libc/src/__support/FPUtil/generic/README.md
index 61278aca949cd..e45812cfe120c 100644
--- a/libc/src/__support/FPUtil/generic/README.md
+++ b/libc/src/__support/FPUtil/generic/README.md
@@ -12,7 +12,7 @@ we want to be able to call the generic `long double` implementation from the
 nested namespace, we will be to call them as follows:
 
 ```
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 long double fmal(long double x, long double y, long double z) {
@@ -20,7 +20,7 @@ long double fmal(long double x, long double y, long double z) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 ```
 
 Note that actual code might not be as straightforward as above (for example,
diff --git a/libc/src/__support/FPUtil/generic/add_sub.h b/libc/src/__support/FPUtil/generic/add_sub.h
index a522deae31368..ec20a8723b704 100644
--- a/libc/src/__support/FPUtil/generic/add_sub.h
+++ b/libc/src/__support/FPUtil/generic/add_sub.h
@@ -20,9 +20,11 @@
 #include "src/__support/FPUtil/dyadic_float.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 
-namespace LIBC_NAMESPACE::fputil::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil::generic {
 
 template <bool IsSub, typename OutType, typename InType>
 LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
@@ -201,6 +203,7 @@ sub(InType x, InType y) {
   return add_or_sub</*IsSub=*/true, OutType>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE::fputil::generic
+} // namespace fputil::generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_ADD_SUB_H
diff --git a/libc/src/__support/FPUtil/generic/div.h b/libc/src/__support/FPUtil/generic/div.h
index 0d84aa8d8bccc..27545786aea17 100644
--- a/libc/src/__support/FPUtil/generic/div.h
+++ b/libc/src/__support/FPUtil/generic/div.h
@@ -18,9 +18,11 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/dyadic_float.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 
-namespace LIBC_NAMESPACE::fputil::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil::generic {
 
 template <typename OutType, typename InType>
 LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<OutType> &&
@@ -118,6 +120,7 @@ div(InType x, InType y) {
   return result.template as<OutType, /*ShouldSignalExceptions=*/true>();
 }
 
-} // namespace LIBC_NAMESPACE::fputil::generic
+} // namespace fputil::generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_DIV_H
diff --git a/libc/src/__support/FPUtil/generic/sqrt.h b/libc/src/__support/FPUtil/generic/sqrt.h
index 1b713796f7499..4502cc07d32b3 100644
--- a/libc/src/__support/FPUtil/generic/sqrt.h
+++ b/libc/src/__support/FPUtil/generic/sqrt.h
@@ -16,11 +16,12 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/dyadic_float.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"
 
 #include "hdr/fenv_macros.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 namespace internal {
@@ -163,6 +164,6 @@ sqrt(InType x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_SQRT_H
diff --git a/libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h b/libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
index 6308ffe95493e..053348d4c975d 100644
--- a/libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
+++ b/libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
@@ -14,9 +14,10 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 namespace x86 {
 
@@ -134,6 +135,6 @@ LIBC_INLINE long double sqrt(long double x) {
 
 } // namespace x86
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_GENERIC_SQRT_80_BIT_LONG_DOUBLE_H
diff --git a/libc/src/__support/FPUtil/multiply_add.h b/libc/src/__support/FPUtil/multiply_add.h
index 1b9eee4ace62d..a86067c401873 100644
--- a/libc/src/__support/FPUtil/multiply_add.h
+++ b/libc/src/__support/FPUtil/multiply_add.h
@@ -11,10 +11,11 @@
 
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 // Implement a simple wrapper for multiply-add operation:
@@ -34,7 +35,7 @@ multiply_add(T x, T y, T z) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #if defined(LIBC_TARGET_CPU_HAS_FMA)
 
@@ -42,7 +43,7 @@ multiply_add(T x, T y, T z) {
 // We use builtins directly instead of including FMA.h to avoid a circular
 // dependency: multiply_add.h -> FMA.h -> generic/FMA.h -> dyadic_float.h.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 LIBC_INLINE float multiply_add(float x, float y, float z) {
@@ -54,7 +55,7 @@ LIBC_INLINE double multiply_add(double x, double y, double z) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TARGET_CPU_HAS_FMA
 
diff --git a/libc/src/__support/FPUtil/nearest_integer.h b/libc/src/__support/FPUtil/nearest_integer.h
index f9d952cfa163b..5d0deddd751f5 100644
--- a/libc/src/__support/FPUtil/nearest_integer.h
+++ b/libc/src/__support/FPUtil/nearest_integer.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_NEAREST_INTEGER_H
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_NEAREST_INTEGER_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/macros/properties/cpu_features.h"
@@ -19,7 +20,7 @@
 #include "aarch64/nearest_integer.h"
 #elif defined(LIBC_TARGET_ARCH_IS_GPU)
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 LIBC_INLINE float nearest_integer(float x) { return __builtin_rintf(x); }
@@ -27,11 +28,11 @@ LIBC_INLINE float nearest_integer(float x) { return __builtin_rintf(x); }
 LIBC_INLINE double nearest_integer(double x) { return __builtin_rint(x); }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #else
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 // This is a fast implementation for rounding to a nearest integer that.
@@ -72,7 +73,7 @@ LIBC_INLINE double nearest_integer(double x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_NEAREST_INTEGER_H
diff --git a/libc/src/__support/FPUtil/riscv/FEnvImpl.h b/libc/src/__support/FPUtil/riscv/FEnvImpl.h
index 1de464a89de48..2f525eb5dac5a 100644
--- a/libc/src/__support/FPUtil/riscv/FEnvImpl.h
+++ b/libc/src/__support/FPUtil/riscv/FEnvImpl.h
@@ -17,7 +17,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 struct FEnv {
@@ -176,6 +176,6 @@ LIBC_INLINE int set_env(const fenv_t *envp) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_RISCV_FENVIMPL_H
diff --git a/libc/src/__support/FPUtil/riscv/sqrt.h b/libc/src/__support/FPUtil/riscv/sqrt.h
index a1c436d0ebb1d..0363822a4e8af 100644
--- a/libc/src/__support/FPUtil/riscv/sqrt.h
+++ b/libc/src/__support/FPUtil/riscv/sqrt.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_RISCV_SQRT_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_ANY_RISCV)
@@ -18,7 +19,7 @@
 
 #include "src/__support/FPUtil/generic/sqrt.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 #ifdef __riscv_flen
@@ -38,6 +39,6 @@ template <> LIBC_INLINE double sqrt<double>(double x) {
 #endif // __riscv_flen
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_RISCV_SQRT_H
diff --git a/libc/src/__support/FPUtil/rounding_mode.h b/libc/src/__support/FPUtil/rounding_mode.h
index aa5e00fa560bc..bc66d09b94160 100644
--- a/libc/src/__support/FPUtil/rounding_mode.h
+++ b/libc/src/__support/FPUtil/rounding_mode.h
@@ -11,8 +11,10 @@
 
 #include "hdr/fenv_macros.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::fputil {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 // Quick free-standing test whether fegetround() == FE_UPWARD.
 // Using the following observation:
@@ -73,6 +75,7 @@ LIBC_INLINE int quick_get_round() {
   return (2.0f + y == 2.0f) ? FE_TONEAREST : FE_UPWARD;
 }
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_ROUNDING_MODE_H
diff --git a/libc/src/__support/FPUtil/triple_double.h b/libc/src/__support/FPUtil/triple_double.h
index eafa777878651..f3ac5404ca368 100644
--- a/libc/src/__support/FPUtil/triple_double.h
+++ b/libc/src/__support/FPUtil/triple_double.h
@@ -9,7 +9,10 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_TRIPLE_DOUBLE_H
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_TRIPLE_DOUBLE_H
 
-namespace LIBC_NAMESPACE::fputil {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 struct TripleDouble {
   double lo = 0.0;
@@ -17,6 +20,7 @@ struct TripleDouble {
   double hi = 0.0;
 };
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_TRIPLE_DOUBLE_H
diff --git a/libc/src/__support/FPUtil/x86_64/FEnvImpl.h b/libc/src/__support/FPUtil/x86_64/FEnvImpl.h
index 2aa69565efc58..b77178ea69ea0 100644
--- a/libc/src/__support/FPUtil/x86_64/FEnvImpl.h
+++ b/libc/src/__support/FPUtil/x86_64/FEnvImpl.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_FENVIMPL_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_X86)
@@ -21,7 +22,7 @@
 #include "hdr/types/fenv_t.h"
 #include "src/__support/macros/sanitizer.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 namespace internal {
@@ -642,6 +643,6 @@ LIBC_INLINE int set_env(const fenv_t *envp) {
 #endif
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_FENVIMPL_H
diff --git a/libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h b/libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
index d1c76ba954b93..2e6b297ae9349 100644
--- a/libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
+++ b/libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_NEXTAFTERLONGDOUBLE_H
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_NEXTAFTERLONGDOUBLE_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_X86)
@@ -21,7 +22,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 LIBC_INLINE long double nextafter(long double from, long double to) {
@@ -119,6 +120,6 @@ LIBC_INLINE long double nextafter(long double from, long double to) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_NEXTAFTERLONGDOUBLE_H
diff --git a/libc/src/__support/FPUtil/x86_64/NextUpDownLongDouble.h b/libc/src/__support/FPUtil/x86_64/NextUpDownLongDouble.h
index 1bc849500be04..31869975ac5ad 100644
--- a/libc/src/__support/FPUtil/x86_64/NextUpDownLongDouble.h
+++ b/libc/src/__support/FPUtil/x86_64/NextUpDownLongDouble.h
@@ -11,13 +11,15 @@
 
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_X86)
 #error "Invalid include"
 #endif
 
-namespace LIBC_NAMESPACE::fputil {
+namespace LIBC_NAMESPACE_DECL {
+namespace fputil {
 
 template <bool IsDown>
 LIBC_INLINE constexpr long double nextupdown(long double x) {
@@ -55,6 +57,7 @@ LIBC_INLINE constexpr long double nextupdown(long double x) {
   return xbits.get_val();
 }
 
-} // namespace LIBC_NAMESPACE::fputil
+} // namespace fputil
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_NEXTUPDOWNLONGDOUBLE_H
diff --git a/libc/src/__support/FPUtil/x86_64/nearest_integer.h b/libc/src/__support/FPUtil/x86_64/nearest_integer.h
index ee31aeefd8489..4eae5ffe816b3 100644
--- a/libc/src/__support/FPUtil/x86_64/nearest_integer.h
+++ b/libc/src/__support/FPUtil/x86_64/nearest_integer.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_NEAREST_INTEGER_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_X86_64)
@@ -22,7 +23,7 @@
 
 #include <immintrin.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 LIBC_INLINE float nearest_integer(float x) {
@@ -40,6 +41,6 @@ LIBC_INLINE double nearest_integer(double x) {
 }
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_NEAREST_INTEGER_H
diff --git a/libc/src/__support/FPUtil/x86_64/sqrt.h b/libc/src/__support/FPUtil/x86_64/sqrt.h
index bfcc5e98834d6..e10447751d216 100644
--- a/libc/src/__support/FPUtil/x86_64/sqrt.h
+++ b/libc/src/__support/FPUtil/x86_64/sqrt.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_SQRT_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/macros/properties/cpu_features.h"
 
@@ -19,7 +20,7 @@
 
 #include "src/__support/FPUtil/generic/sqrt.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 
 template <> LIBC_INLINE float sqrt<float>(float x) {
@@ -48,6 +49,6 @@ template <> LIBC_INLINE long double sqrt<long double>(long double x) {
 #endif
 
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FPUTIL_X86_64_SQRT_H
diff --git a/libc/src/__support/File/dir.cpp b/libc/src/__support/File/dir.cpp
index e0f7695b39323..21b0106f70106 100644
--- a/libc/src/__support/File/dir.cpp
+++ b/libc/src/__support/File/dir.cpp
@@ -11,9 +11,10 @@
 #include "src/__support/CPP/mutex.h" // lock_guard
 #include "src/__support/CPP/new.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h" // For error macros
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ErrorOr<Dir *> Dir::open(const char *path) {
   auto fd = platform_opendir(path);
@@ -61,4 +62,4 @@ int Dir::close() {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/File/dir.h b/libc/src/__support/File/dir.h
index 9f8c8dbb0c36e..136c266524a01 100644
--- a/libc/src/__support/File/dir.h
+++ b/libc/src/__support/File/dir.h
@@ -11,12 +11,13 @@
 
 #include "src/__support/CPP/span.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <dirent.h>
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Platform specific function which will open the directory |name|
 // and return its file descriptor. Upon failure, the error value is returned.
@@ -74,6 +75,6 @@ class Dir {
   LIBC_INLINE int getfd() { return fd; }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FILE_DIR_H
diff --git a/libc/src/__support/File/file.cpp b/libc/src/__support/File/file.cpp
index 08052f8d0a328..1b545c5096936 100644
--- a/libc/src/__support/File/file.cpp
+++ b/libc/src/__support/File/file.cpp
@@ -12,9 +12,10 @@
 #include "hdr/types/off_t.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/CPP/span.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h" // For error macros
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 FileIOResult File::write_unlocked(const void *data, size_t len) {
   if (!write_allowed()) {
@@ -430,4 +431,4 @@ File::ModeFlags File::mode_flags(const char *mode) {
   return flags;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/File/file.h b/libc/src/__support/File/file.h
index d804289702540..0cedf866519d6 100644
--- a/libc/src/__support/File/file.h
+++ b/libc/src/__support/File/file.h
@@ -13,13 +13,14 @@
 #include "hdr/types/off_t.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/threads/mutex.h"
 
 #include <stddef.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct FileIOResult {
   size_t value;
@@ -314,6 +315,6 @@ extern File *stdin;
 extern File *stdout;
 extern File *stderr;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FILE_FILE_H
diff --git a/libc/src/__support/File/linux/dir.cpp b/libc/src/__support/File/linux/dir.cpp
index cae545a9fb8e9..fc90ff097e460 100644
--- a/libc/src/__support/File/linux/dir.cpp
+++ b/libc/src/__support/File/linux/dir.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 
 #include <fcntl.h>       // For open flags
 #include <sys/syscall.h> // For syscall numbers
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ErrorOr<int> platform_opendir(const char *name) {
   int open_flags = O_RDONLY | O_DIRECTORY | O_CLOEXEC;
@@ -56,4 +57,4 @@ int platform_closedir(int fd) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/File/linux/file.cpp b/libc/src/__support/File/linux/file.cpp
index df68570bc1043..22292336f300e 100644
--- a/libc/src/__support/File/linux/file.cpp
+++ b/libc/src/__support/File/linux/file.cpp
@@ -15,13 +15,14 @@
 #include "src/__support/File/linux/lseekImpl.h"
 #include "src/__support/OSUtil/fcntl.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
-#include "src/errno/libc_errno.h"         // For error macros
+#include "src/__support/macros/config.h"
+#include "src/errno/libc_errno.h" // For error macros
 
 #include <fcntl.h>       // For mode_t and other flags to the open syscall
 #include <sys/stat.h>    // For S_IS*, S_IF*, and S_IR* flags.
 #include <sys/syscall.h> // For syscall numbers
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 FileIOResult linux_file_write(File *f, const void *data, size_t size) {
   auto *lf = reinterpret_cast<LinuxFile *>(f);
@@ -179,4 +180,4 @@ int get_fileno(File *f) {
   return lf->get_fd();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/File/linux/file.h b/libc/src/__support/File/linux/file.h
index 0507109e6793f..16d72a60f8638 100644
--- a/libc/src/__support/File/linux/file.h
+++ b/libc/src/__support/File/linux/file.h
@@ -8,8 +8,9 @@
 
 #include "hdr/types/off_t.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 FileIOResult linux_file_write(File *, const void *, size_t);
 FileIOResult linux_file_read(File *, void *, size_t);
@@ -33,4 +34,4 @@ class LinuxFile : public File {
 // Create a File object and associate it with a fd.
 ErrorOr<LinuxFile *> create_file_from_fd(int fd, const char *mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/File/linux/lseekImpl.h b/libc/src/__support/File/linux/lseekImpl.h
index af015a2fd6a70..a034913d9f6ec 100644
--- a/libc/src/__support/File/linux/lseekImpl.h
+++ b/libc/src/__support/File/linux/lseekImpl.h
@@ -13,12 +13,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <stdint.h>      // For uint64_t.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 LIBC_INLINE ErrorOr<off_t> lseekimpl(int fd, off_t offset, int whence) {
@@ -45,6 +46,6 @@ LIBC_INLINE ErrorOr<off_t> lseekimpl(int fd, off_t offset, int whence) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FILE_LINUX_LSEEKIMPL_H
diff --git a/libc/src/__support/File/linux/stderr.cpp b/libc/src/__support/File/linux/stderr.cpp
index 0b4b207329fff..bc174792856ec 100644
--- a/libc/src/__support/File/linux/stderr.cpp
+++ b/libc/src/__support/File/linux/stderr.cpp
@@ -9,15 +9,16 @@
 #include "file.h"
 #include "hdr/stdio_macros.h"
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constexpr size_t STDERR_BUFFER_SIZE = 0;
 static LinuxFile StdErr(2, nullptr, STDERR_BUFFER_SIZE, _IONBF, false,
                         File::ModeFlags(File::OpenMode::APPEND));
 File *stderr = &StdErr;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 extern "C" {
 FILE *stderr = reinterpret_cast<FILE *>(&LIBC_NAMESPACE::StdErr);
diff --git a/libc/src/__support/File/linux/stdin.cpp b/libc/src/__support/File/linux/stdin.cpp
index 49146dacfd4ac..e7b6ede85ddeb 100644
--- a/libc/src/__support/File/linux/stdin.cpp
+++ b/libc/src/__support/File/linux/stdin.cpp
@@ -9,8 +9,9 @@
 #include "file.h"
 #include "hdr/stdio_macros.h"
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constexpr size_t STDIN_BUFFER_SIZE = 512;
 uint8_t stdin_buffer[STDIN_BUFFER_SIZE];
@@ -18,7 +19,7 @@ static LinuxFile StdIn(0, stdin_buffer, STDIN_BUFFER_SIZE, _IOFBF, false,
                        File::ModeFlags(File::OpenMode::READ));
 File *stdin = &StdIn;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 extern "C" {
 FILE *stdin = reinterpret_cast<FILE *>(&LIBC_NAMESPACE::StdIn);
diff --git a/libc/src/__support/File/linux/stdout.cpp b/libc/src/__support/File/linux/stdout.cpp
index 58caf85b5167f..0d3b9f3d03768 100644
--- a/libc/src/__support/File/linux/stdout.cpp
+++ b/libc/src/__support/File/linux/stdout.cpp
@@ -9,8 +9,9 @@
 #include "file.h"
 #include "hdr/stdio_macros.h"
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constexpr size_t STDOUT_BUFFER_SIZE = 1024;
 uint8_t stdout_buffer[STDOUT_BUFFER_SIZE];
@@ -18,7 +19,7 @@ static LinuxFile StdOut(1, stdout_buffer, STDOUT_BUFFER_SIZE, _IOLBF, false,
                         File::ModeFlags(File::OpenMode::APPEND));
 File *stdout = &StdOut;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 extern "C" {
 FILE *stdout = reinterpret_cast<FILE *>(&LIBC_NAMESPACE::StdOut);
diff --git a/libc/src/__support/GPU/allocator.cpp b/libc/src/__support/GPU/allocator.cpp
index a049959964cfc..01273e16a9387 100644
--- a/libc/src/__support/GPU/allocator.cpp
+++ b/libc/src/__support/GPU/allocator.cpp
@@ -10,8 +10,9 @@
 
 #include "src/__support/GPU/utils.h"
 #include "src/__support/RPC/rpc_client.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace {
 
 void *rpc_allocate(uint64_t size) {
@@ -42,4 +43,4 @@ void *allocate(uint64_t size) { return rpc_allocate(size); }
 void deallocate(void *ptr) { rpc_free(ptr); }
 
 } // namespace gpu
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/GPU/allocator.h b/libc/src/__support/GPU/allocator.h
index 99eeb6826cc28..466009aa71981 100644
--- a/libc/src/__support/GPU/allocator.h
+++ b/libc/src/__support/GPU/allocator.h
@@ -9,15 +9,16 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_GPU_ALLOCATOR_H
 #define LLVM_LIBC_SRC___SUPPORT_GPU_ALLOCATOR_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace gpu {
 
 void *allocate(uint64_t size);
 void deallocate(void *ptr);
 
 } // namespace gpu
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_GPU_ALLOCATOR_H
diff --git a/libc/src/__support/GPU/amdgpu/utils.h b/libc/src/__support/GPU/amdgpu/utils.h
index 5f8ad74f6aea3..6ab95403ca389 100644
--- a/libc/src/__support/GPU/amdgpu/utils.h
+++ b/libc/src/__support/GPU/amdgpu/utils.h
@@ -14,7 +14,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace gpu {
 
 /// Type aliases to the address spaces used by the AMDGPU backend.
@@ -178,6 +178,6 @@ LIBC_INLINE uint64_t fixed_frequency_clock() {
 LIBC_INLINE uint32_t get_cluster_id() { return 0; }
 
 } // namespace gpu
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif
diff --git a/libc/src/__support/GPU/generic/utils.h b/libc/src/__support/GPU/generic/utils.h
index b6df59f7aa9ef..9461ef0aa245b 100644
--- a/libc/src/__support/GPU/generic/utils.h
+++ b/libc/src/__support/GPU/generic/utils.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_GPU_GENERIC_UTILS_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace gpu {
 
 template <typename T> using Private = T;
@@ -78,6 +79,6 @@ LIBC_INLINE uint64_t fixed_frequency_clock() { return 0; }
 LIBC_INLINE uint32_t get_cluster_id() { return 0; }
 
 } // namespace gpu
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_GPU_GENERIC_UTILS_H
diff --git a/libc/src/__support/GPU/nvptx/utils.h b/libc/src/__support/GPU/nvptx/utils.h
index 88b8ee2e31d32..1a43a839a9ce4 100644
--- a/libc/src/__support/GPU/nvptx/utils.h
+++ b/libc/src/__support/GPU/nvptx/utils.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_GPU_NVPTX_IO_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace gpu {
 
 /// Type aliases to the address spaces used by the NVPTX backend.
@@ -154,6 +155,6 @@ LIBC_INLINE uint64_t fixed_frequency_clock() {
 LIBC_INLINE uint32_t get_cluster_id() { return __nvvm_read_ptx_sreg_smid(); }
 
 } // namespace gpu
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif
diff --git a/libc/src/__support/GPU/utils.h b/libc/src/__support/GPU/utils.h
index cb04a3562eb1c..ae52e7a088ad5 100644
--- a/libc/src/__support/GPU/utils.h
+++ b/libc/src/__support/GPU/utils.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_GPU_UTILS_H
 #define LLVM_LIBC_SRC___SUPPORT_GPU_UTILS_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if defined(LIBC_TARGET_ARCH_IS_AMDGPU)
@@ -19,7 +20,7 @@
 #include "generic/utils.h"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace gpu {
 /// Get the first active thread inside the lane.
 LIBC_INLINE uint64_t get_first_lane_id(uint64_t lane_mask) {
@@ -51,6 +52,6 @@ LIBC_INLINE uint32_t scan(uint64_t lane_mask, uint32_t x) {
 }
 
 } // namespace gpu
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_GPU_UTILS_H
diff --git a/libc/src/__support/HashTable/bitmask.h b/libc/src/__support/HashTable/bitmask.h
index afdf7c2c43bfb..3cac481b80609 100644
--- a/libc/src/__support/HashTable/bitmask.h
+++ b/libc/src/__support/HashTable/bitmask.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC___SUPPORT_HASHTABLE_BITMASK_H
 
 #include "src/__support/CPP/bit.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/cpu_features.h"
 #include <stddef.h> // size_t
 #include <stdint.h> // uint8_t, uint64_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // Implementations of the bitmask.
@@ -81,7 +82,7 @@ template <class BitMask> struct IteratableBitMaskAdaptor : public BitMask {
 };
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #if defined(LIBC_TARGET_CPU_HAS_SSE2) && defined(__LIBC_EXPLICIT_SIMD_OPT)
 #include "sse2/bitmask_impl.inc"
diff --git a/libc/src/__support/HashTable/generic/bitmask_impl.inc b/libc/src/__support/HashTable/generic/bitmask_impl.inc
index d6c5ae075558a..6266ac3c84a90 100644
--- a/libc/src/__support/HashTable/generic/bitmask_impl.inc
+++ b/libc/src/__support/HashTable/generic/bitmask_impl.inc
@@ -8,8 +8,9 @@
 
 #include "src/__support/common.h"
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // GPU architectures are 64-bit but use 32-bit general purpose registers.
@@ -121,4 +122,4 @@ struct Group {
   }
 };
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/HashTable/randomness.h b/libc/src/__support/HashTable/randomness.h
index bcc91190e9d45..06d3e84a710e7 100644
--- a/libc/src/__support/HashTable/randomness.h
+++ b/libc/src/__support/HashTable/randomness.h
@@ -12,12 +12,13 @@
 #include "src/__support/common.h"
 #include "src/__support/hash.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #if defined(LIBC_HASHTABLE_USE_GETRANDOM)
 #include "src/errno/libc_errno.h"
 #include "src/sys/random/getrandom.h"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 namespace randomness {
 // We need an initial state for the hash function. More entropy are to be added
@@ -58,5 +59,5 @@ LIBC_INLINE uint64_t next_random_seed() {
 
 } // namespace randomness
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 #endif // LLVM_LIBC_SRC___SUPPORT_HASHTABLE_RANDOMNESS_H
diff --git a/libc/src/__support/HashTable/sse2/bitmask_impl.inc b/libc/src/__support/HashTable/sse2/bitmask_impl.inc
index e778c19f284a8..eb4b3b5119f26 100644
--- a/libc/src/__support/HashTable/sse2/bitmask_impl.inc
+++ b/libc/src/__support/HashTable/sse2/bitmask_impl.inc
@@ -7,7 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include <immintrin.h>
-namespace LIBC_NAMESPACE {
+
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 // With SSE2, every bitmask is iteratable as
 // we use single bit to encode the data.
@@ -46,4 +49,4 @@ struct Group {
   }
 };
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/HashTable/table.h b/libc/src/__support/HashTable/table.h
index 8f6c5887c189e..d50a9482ec4ce 100644
--- a/libc/src/__support/HashTable/table.h
+++ b/libc/src/__support/HashTable/table.h
@@ -15,6 +15,7 @@
 #include "src/__support/HashTable/bitmask.h"
 #include "src/__support/hash.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/memory_size.h"
 #include "src/string/memset.h"
@@ -23,7 +24,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 LIBC_INLINE uint8_t secondary_hash(uint64_t hash) {
@@ -349,6 +350,6 @@ struct HashTable {
   }
 };
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_HASHTABLE_TABLE_H
diff --git a/libc/src/__support/OSUtil/baremetal/exit.cpp b/libc/src/__support/OSUtil/baremetal/exit.cpp
index 26088c28b0a50..64d3862422b6b 100644
--- a/libc/src/__support/OSUtil/baremetal/exit.cpp
+++ b/libc/src/__support/OSUtil/baremetal/exit.cpp
@@ -7,12 +7,15 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/OSUtil/exit.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 // This is intended to be provided by the vendor.
 extern "C" [[noreturn]] void __llvm_libc_exit(int status);
 
 [[noreturn]] void exit(int status) { __llvm_libc_exit(status); }
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/OSUtil/baremetal/io.cpp b/libc/src/__support/OSUtil/baremetal/io.cpp
index c97bd5ae65b13..de278eb0092f8 100644
--- a/libc/src/__support/OSUtil/baremetal/io.cpp
+++ b/libc/src/__support/OSUtil/baremetal/io.cpp
@@ -9,8 +9,9 @@
 #include "io.h"
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This is intended to be provided by the vendor.
 
@@ -28,4 +29,4 @@ void write_to_stderr(cpp::string_view msg) {
   __llvm_libc_log_write(msg.data(), msg.size());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/OSUtil/baremetal/io.h b/libc/src/__support/OSUtil/baremetal/io.h
index b9ae0bde502be..92bf3db6b3fd1 100644
--- a/libc/src/__support/OSUtil/baremetal/io.h
+++ b/libc/src/__support/OSUtil/baremetal/io.h
@@ -12,12 +12,13 @@
 #include "include/llvm-libc-types/size_t.h"
 #include "include/llvm-libc-types/ssize_t.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t read_from_stdin(char *buf, size_t size);
 void write_to_stderr(cpp::string_view msg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_BAREMETAL_IO_H
diff --git a/libc/src/__support/OSUtil/darwin/arm/syscall.h b/libc/src/__support/OSUtil/darwin/arm/syscall.h
index ce10c2a7a3079..dc98c07a8ba33 100644
--- a/libc/src/__support/OSUtil/darwin/arm/syscall.h
+++ b/libc/src/__support/OSUtil/darwin/arm/syscall.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_DARWIN_ARM_SYSCALL_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #define REGISTER_DECL_0                                                        \
   register long x16 __asm__("x16") = number;                                   \
@@ -44,7 +45,7 @@
 #define SYSCALL_INSTR(input_constraint)                                        \
   LIBC_INLINE_ASM("svc 0x80" : "=r"(x0) : input_constraint : "memory", "cc")
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE long syscall_impl(long number) {
   REGISTER_DECL_0;
@@ -91,7 +92,7 @@ LIBC_INLINE long syscall_impl(long number, long arg1, long arg2, long arg3,
   return x0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef REGISTER_DECL_0
 #undef REGISTER_DECL_1
diff --git a/libc/src/__support/OSUtil/darwin/io.h b/libc/src/__support/OSUtil/darwin/io.h
index 9bbc8e1ded000..a5f7ecbd70362 100644
--- a/libc/src/__support/OSUtil/darwin/io.h
+++ b/libc/src/__support/OSUtil/darwin/io.h
@@ -10,15 +10,16 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_DARWIN_IO_H
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "syscall.h" // For internal syscall function.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE void write_to_stderr(cpp::string_view msg) {
   LIBC_NAMESPACE::syscall_impl(4 /*SYS_write*/, 2 /* stderr */,
                                reinterpret_cast<long>(msg.data()), msg.size());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_DARWIN_IO_H
diff --git a/libc/src/__support/OSUtil/darwin/syscall.h b/libc/src/__support/OSUtil/darwin/syscall.h
index 93b492e14ddfc..eab96366a21a3 100644
--- a/libc/src/__support/OSUtil/darwin/syscall.h
+++ b/libc/src/__support/OSUtil/darwin/syscall.h
@@ -11,6 +11,7 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #ifdef LIBC_TARGET_ARCH_IS_ANY_ARM
@@ -19,7 +20,7 @@
 #error "Unsupported architecture"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename R, typename... Ts>
 LIBC_INLINE R syscall_impl(long __number, Ts... ts) {
@@ -27,6 +28,6 @@ LIBC_INLINE R syscall_impl(long __number, Ts... ts) {
   return cpp::bit_or_static_cast<R>(syscall_impl(__number, (long)ts...));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_DARWIN_SYSCALL_H
diff --git a/libc/src/__support/OSUtil/exit.h b/libc/src/__support/OSUtil/exit.h
index f01e4c70502f6..e784ca0cb00b8 100644
--- a/libc/src/__support/OSUtil/exit.h
+++ b/libc/src/__support/OSUtil/exit.h
@@ -9,10 +9,14 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_OSUTIL_EXIT_H
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_EXIT_H
 
-namespace LIBC_NAMESPACE::internal {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 [[noreturn]] void exit(int status);
 
-}
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_EXIT_H
diff --git a/libc/src/__support/OSUtil/fcntl.h b/libc/src/__support/OSUtil/fcntl.h
index d934545c28d76..46f7d28132396 100644
--- a/libc/src/__support/OSUtil/fcntl.h
+++ b/libc/src/__support/OSUtil/fcntl.h
@@ -8,10 +8,14 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_OSUTIL_FCNTL_H
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_FCNTL_H
 
-namespace LIBC_NAMESPACE::internal {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 int fcntl(int fd, int cmd, void *arg = nullptr);
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_FCNTL_H
diff --git a/libc/src/__support/OSUtil/fuchsia/io.h b/libc/src/__support/OSUtil/fuchsia/io.h
index f68d734492fab..3953afce079df 100644
--- a/libc/src/__support/OSUtil/fuchsia/io.h
+++ b/libc/src/__support/OSUtil/fuchsia/io.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_FUCHSIA_IO_H
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 
 #include <iostream>
 #include <zircon/sanitizer.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE void write_to_stderr(cpp::string_view msg) {
 #if defined(LIBC_COPT_TEST_USE_ZXTEST)
@@ -28,6 +29,6 @@ LIBC_INLINE void write_to_stderr(cpp::string_view msg) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_FUCHSIA_IO_H
diff --git a/libc/src/__support/OSUtil/gpu/exit.cpp b/libc/src/__support/OSUtil/gpu/exit.cpp
index 96acb549bb7ab..360bcca1c6da3 100644
--- a/libc/src/__support/OSUtil/gpu/exit.cpp
+++ b/libc/src/__support/OSUtil/gpu/exit.cpp
@@ -9,9 +9,11 @@
 #include "src/__support/OSUtil/exit.h"
 
 #include "src/__support/RPC/rpc_client.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 [[noreturn]] void exit(int status) {
   // We want to first make sure the server is listening before we exit.
@@ -25,4 +27,5 @@ namespace LIBC_NAMESPACE::internal {
   gpu::end_program();
 }
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/OSUtil/gpu/io.cpp b/libc/src/__support/OSUtil/gpu/io.cpp
index fec4d9f7b35d2..f3000bd0f48b1 100644
--- a/libc/src/__support/OSUtil/gpu/io.cpp
+++ b/libc/src/__support/OSUtil/gpu/io.cpp
@@ -10,8 +10,9 @@
 
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/RPC/rpc_client.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void write_to_stderr(cpp::string_view msg) {
   rpc::Client::Port port = rpc::client.open<RPC_WRITE_TO_STDERR>();
@@ -20,4 +21,4 @@ void write_to_stderr(cpp::string_view msg) {
   port.close();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/OSUtil/gpu/io.h b/libc/src/__support/OSUtil/gpu/io.h
index e5562eb74a67d..e23db8acdaeca 100644
--- a/libc/src/__support/OSUtil/gpu/io.h
+++ b/libc/src/__support/OSUtil/gpu/io.h
@@ -11,11 +11,12 @@
 
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void write_to_stderr(cpp::string_view msg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_GPU_IO_H
diff --git a/libc/src/__support/OSUtil/linux/aarch64/syscall.h b/libc/src/__support/OSUtil/linux/aarch64/syscall.h
index f6c9a741de3ac..f28392de5dced 100644
--- a/libc/src/__support/OSUtil/linux/aarch64/syscall.h
+++ b/libc/src/__support/OSUtil/linux/aarch64/syscall.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_AARCH64_SYSCALL_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #define REGISTER_DECL_0                                                        \
   register long x8 __asm__("x8") = number;                                     \
@@ -42,7 +43,7 @@
 #define SYSCALL_INSTR(input_constraint)                                        \
   LIBC_INLINE_ASM("svc 0" : "=r"(x0) : input_constraint : "memory", "cc")
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE long syscall_impl(long number) {
   REGISTER_DECL_0;
@@ -89,7 +90,7 @@ LIBC_INLINE long syscall_impl(long number, long arg1, long arg2, long arg3,
   return x0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef REGISTER_DECL_0
 #undef REGISTER_DECL_1
diff --git a/libc/src/__support/OSUtil/linux/arm/syscall.h b/libc/src/__support/OSUtil/linux/arm/syscall.h
index 9674ee45a49e9..d1058c84281fe 100644
--- a/libc/src/__support/OSUtil/linux/arm/syscall.h
+++ b/libc/src/__support/OSUtil/linux/arm/syscall.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_ARM_SYSCALL_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #ifdef __thumb__
 #define R7 long r7 = number
@@ -60,7 +61,7 @@
 #define REGISTER_CONSTRAINT_5 REGISTER_CONSTRAINT_4, "r"(r4)
 #define REGISTER_CONSTRAINT_6 REGISTER_CONSTRAINT_5, "r"(r5)
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE long syscall_impl(long number) {
   REGISTER_DECL_0;
@@ -107,7 +108,7 @@ LIBC_INLINE long syscall_impl(long number, long arg1, long arg2, long arg3,
   return r0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef REGISTER_DECL_0
 #undef REGISTER_DECL_1
diff --git a/libc/src/__support/OSUtil/linux/exit.cpp b/libc/src/__support/OSUtil/linux/exit.cpp
index 4a1d56a172a1a..9c64ce42be185 100644
--- a/libc/src/__support/OSUtil/linux/exit.cpp
+++ b/libc/src/__support/OSUtil/linux/exit.cpp
@@ -7,10 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "syscall.h"     // For internal syscall function.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 // mark as no_stack_protector for x86 since TLS can be torn down before calling
 // exit so that the stack protector canary cannot be loaded.
@@ -25,4 +27,5 @@ exit(int status) {
   }
 }
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/OSUtil/linux/fcntl.cpp b/libc/src/__support/OSUtil/linux/fcntl.cpp
index d5e850a904703..e11013121b04b 100644
--- a/libc/src/__support/OSUtil/linux/fcntl.cpp
+++ b/libc/src/__support/OSUtil/linux/fcntl.cpp
@@ -15,12 +15,14 @@
 #include "hdr/types/struct_flock64.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <stdarg.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 int fcntl(int fd, int cmd, void *arg) {
 #if SYS_fcntl
@@ -97,4 +99,5 @@ int fcntl(int fd, int cmd, void *arg) {
   }
 }
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/OSUtil/linux/io.h b/libc/src/__support/OSUtil/linux/io.h
index fd5d2e1b898b2..63e5b120d5c67 100644
--- a/libc/src/__support/OSUtil/linux/io.h
+++ b/libc/src/__support/OSUtil/linux/io.h
@@ -10,17 +10,18 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_IO_H
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "syscall.h" // For internal syscall function.
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE void write_to_stderr(cpp::string_view msg) {
   LIBC_NAMESPACE::syscall_impl<long>(SYS_write, 2 /* stderr */, msg.data(),
                                      msg.size());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_IO_H
diff --git a/libc/src/__support/OSUtil/linux/riscv/syscall.h b/libc/src/__support/OSUtil/linux/riscv/syscall.h
index 4fc716f7d416c..e460e9bb56e67 100644
--- a/libc/src/__support/OSUtil/linux/riscv/syscall.h
+++ b/libc/src/__support/OSUtil/linux/riscv/syscall.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_RISCV_SYSCALL_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #define REGISTER_DECL_0                                                        \
   register long a7 __asm__("a7") = number;                                     \
@@ -42,7 +43,7 @@
 #define SYSCALL_INSTR(input_constraint)                                        \
   LIBC_INLINE_ASM("ecall\n\t" : "=r"(a0) : input_constraint : "memory")
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE long syscall_impl(long number) {
   REGISTER_DECL_0;
@@ -89,7 +90,7 @@ LIBC_INLINE long syscall_impl(long number, long arg1, long arg2, long arg3,
   return a0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef REGISTER_DECL_0
 #undef REGISTER_DECL_1
diff --git a/libc/src/__support/OSUtil/linux/syscall.h b/libc/src/__support/OSUtil/linux/syscall.h
index 2be3cefa906af..ad3f6947d0a06 100644
--- a/libc/src/__support/OSUtil/linux/syscall.h
+++ b/libc/src/__support/OSUtil/linux/syscall.h
@@ -11,6 +11,7 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #ifdef LIBC_TARGET_ARCH_IS_X86_64
@@ -23,7 +24,7 @@
 #include "riscv/syscall.h"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename R, typename... Ts>
 LIBC_INLINE R syscall_impl(long __number, Ts... ts) {
@@ -31,6 +32,6 @@ LIBC_INLINE R syscall_impl(long __number, Ts... ts) {
   return cpp::bit_or_static_cast<R>(syscall_impl(__number, (long)ts...));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_SYSCALL_H
diff --git a/libc/src/__support/OSUtil/linux/x86_64/syscall.h b/libc/src/__support/OSUtil/linux/x86_64/syscall.h
index 986db9372ad39..ebd77980af6a4 100644
--- a/libc/src/__support/OSUtil/linux/x86_64/syscall.h
+++ b/libc/src/__support/OSUtil/linux/x86_64/syscall.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_X86_64_SYSCALL_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #define SYSCALL_CLOBBER_LIST "rcx", "r11", "memory"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE long syscall_impl(long __number) {
   long retcode;
@@ -93,6 +94,6 @@ LIBC_INLINE long syscall_impl(long __number, long __arg1, long __arg2,
 }
 
 #undef SYSCALL_CLOBBER_LIST
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_X86_64_SYSCALL_H
diff --git a/libc/src/__support/RPC/rpc.h b/libc/src/__support/RPC/rpc.h
index 05506c04fc079..a94b11902c119 100644
--- a/libc/src/__support/RPC/rpc.h
+++ b/libc/src/__support/RPC/rpc.h
@@ -24,10 +24,11 @@
 #include "src/__support/CPP/functional.h"
 #include "src/__support/CPP/optional.h"
 #include "src/__support/GPU/utils.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace rpc {
 
 /// A fixed size channel used to communicate between the RPC client and server.
@@ -597,6 +598,6 @@ LIBC_INLINE Server::Port Server::open(uint32_t lane_size) {
 }
 
 } // namespace rpc
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif
diff --git a/libc/src/__support/RPC/rpc_client.cpp b/libc/src/__support/RPC/rpc_client.cpp
index 8367d54fada63..232b20d008d1d 100644
--- a/libc/src/__support/RPC/rpc_client.cpp
+++ b/libc/src/__support/RPC/rpc_client.cpp
@@ -8,8 +8,9 @@
 
 #include "rpc_client.h"
 #include "rpc.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace rpc {
 
 /// The libc client instance used to communicate with the server.
@@ -22,4 +23,4 @@ extern "C" [[gnu::visibility("protected")]] const void *__llvm_libc_rpc_client =
     &client;
 
 } // namespace rpc
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/RPC/rpc_client.h b/libc/src/__support/RPC/rpc_client.h
index 6e1827dbfeea9..695b6b7515bf7 100644
--- a/libc/src/__support/RPC/rpc_client.h
+++ b/libc/src/__support/RPC/rpc_client.h
@@ -12,14 +12,15 @@
 #include "rpc.h"
 
 #include "include/llvm-libc-types/rpc_opcodes_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace rpc {
 
 /// The libc client instance used to communicate with the server.
 extern Client client;
 
 } // namespace rpc
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif
diff --git a/libc/src/__support/RPC/rpc_util.h b/libc/src/__support/RPC/rpc_util.h
index 7a9901af83e73..1a29ed6557714 100644
--- a/libc/src/__support/RPC/rpc_util.h
+++ b/libc/src/__support/RPC/rpc_util.h
@@ -12,12 +12,13 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/GPU/utils.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/threads/sleep.h"
 #include "src/string/memory_utils/generic/byte_per_byte.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace rpc {
 
 /// Conditional to indicate if this process is running on the GPU.
@@ -67,6 +68,6 @@ LIBC_INLINE void rpc_memcpy(void *dst, const void *src, size_t count) {
 }
 
 } // namespace rpc
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_RPC_RPC_UTIL_H
diff --git a/libc/src/__support/StringUtil/error_to_string.cpp b/libc/src/__support/StringUtil/error_to_string.cpp
index 3ea60a6740b30..e347ddae90f6e 100644
--- a/libc/src/__support/StringUtil/error_to_string.cpp
+++ b/libc/src/__support/StringUtil/error_to_string.cpp
@@ -15,10 +15,11 @@
 #include "src/__support/StringUtil/message_mapper.h"
 #include "src/__support/integer_to_string.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 constexpr size_t max_buff_size() {
@@ -74,4 +75,4 @@ cpp::string_view get_error_string(int err_num, cpp::span<char> buffer) {
     return internal::build_error_string(err_num, buffer);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/StringUtil/error_to_string.h b/libc/src/__support/StringUtil/error_to_string.h
index 43cf785c30b03..ff5868457f8c9 100644
--- a/libc/src/__support/StringUtil/error_to_string.h
+++ b/libc/src/__support/StringUtil/error_to_string.h
@@ -11,13 +11,14 @@
 
 #include "src/__support/CPP/span.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 cpp::string_view get_error_string(int err_num);
 
 cpp::string_view get_error_string(int err_num, cpp::span<char> buffer);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_ERROR_TO_STRING_H
diff --git a/libc/src/__support/StringUtil/message_mapper.h b/libc/src/__support/StringUtil/message_mapper.h
index dd91839fb9200..df7506a2f3ecb 100644
--- a/libc/src/__support/StringUtil/message_mapper.h
+++ b/libc/src/__support/StringUtil/message_mapper.h
@@ -12,9 +12,10 @@
 #include "src/__support/CPP/array.h"
 #include "src/__support/CPP/optional.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct MsgMapping {
   int num;
@@ -98,6 +99,6 @@ constexpr MsgTable<N1 + N2> operator+(const MsgTable<N1> &t1,
   return res;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_MESSAGE_MAPPER_H
diff --git a/libc/src/__support/StringUtil/signal_to_string.cpp b/libc/src/__support/StringUtil/signal_to_string.cpp
index 1fea53a32aa21..b67d28814816c 100644
--- a/libc/src/__support/StringUtil/signal_to_string.cpp
+++ b/libc/src/__support/StringUtil/signal_to_string.cpp
@@ -15,11 +15,12 @@
 #include "src/__support/StringUtil/message_mapper.h"
 #include "src/__support/integer_to_string.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 #include <signal.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 constexpr size_t max_buff_size() {
@@ -77,4 +78,4 @@ cpp::string_view get_signal_string(int sig_num, cpp::span<char> buffer) {
     return internal::build_signal_string(sig_num, buffer);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/StringUtil/signal_to_string.h b/libc/src/__support/StringUtil/signal_to_string.h
index e27324e970c06..a162486d134e1 100644
--- a/libc/src/__support/StringUtil/signal_to_string.h
+++ b/libc/src/__support/StringUtil/signal_to_string.h
@@ -12,13 +12,14 @@
 
 #include "src/__support/CPP/span.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 cpp::string_view get_signal_string(int err_num);
 
 cpp::string_view get_signal_string(int err_num, cpp::span<char> buffer);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_SIGNAL_TO_STRING_H
diff --git a/libc/src/__support/StringUtil/tables/linux_extension_errors.h b/libc/src/__support/StringUtil/tables/linux_extension_errors.h
index f48968892e967..9c60a07220491 100644
--- a/libc/src/__support/StringUtil/tables/linux_extension_errors.h
+++ b/libc/src/__support/StringUtil/tables/linux_extension_errors.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_LINUX_EXTENSION_ERRORS_H
 
 #include "src/__support/StringUtil/message_mapper.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h> // For error macros
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constexpr MsgTable<52> LINUX_ERRORS = {
     MsgMapping(ENOTBLK, "Block device required"),
@@ -70,6 +71,6 @@ constexpr MsgTable<52> LINUX_ERRORS = {
     MsgMapping(EHWPOISON, "Memory page has hardware error"),
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_LINUX_EXTENSION_ERRORS_H
diff --git a/libc/src/__support/StringUtil/tables/linux_extension_signals.h b/libc/src/__support/StringUtil/tables/linux_extension_signals.h
index 3f9f0c66ff24b..c9cb26b785a13 100644
--- a/libc/src/__support/StringUtil/tables/linux_extension_signals.h
+++ b/libc/src/__support/StringUtil/tables/linux_extension_signals.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_LINUX_EXTENSION_SIGNALS_H
 
 #include "src/__support/StringUtil/message_mapper.h"
+#include "src/__support/macros/config.h"
 
 #include <signal.h> // For signal numbers
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The array being larger than necessary isn't a problem. The MsgMappings will
 // be set to their default state which maps 0 to an empty string. This will get
@@ -28,6 +29,6 @@ LIBC_INLINE_VAR constexpr const MsgTable<3> LINUX_SIGNALS = {
 #endif
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_LINUX_EXTENSION_SIGNALS_H
diff --git a/libc/src/__support/StringUtil/tables/linux_platform_errors.h b/libc/src/__support/StringUtil/tables/linux_platform_errors.h
index a7bb545d3bf92..22cc87fb3654a 100644
--- a/libc/src/__support/StringUtil/tables/linux_platform_errors.h
+++ b/libc/src/__support/StringUtil/tables/linux_platform_errors.h
@@ -11,13 +11,14 @@
 
 #include "linux_extension_errors.h"
 #include "posix_errors.h"
+#include "src/__support/macros/config.h"
 #include "stdc_errors.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr auto PLATFORM_ERRORS =
     STDC_ERRORS + POSIX_ERRORS + LINUX_ERRORS;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_LINUX_PLATFORM_ERRORS_H
diff --git a/libc/src/__support/StringUtil/tables/linux_platform_signals.h b/libc/src/__support/StringUtil/tables/linux_platform_signals.h
index f12d31f222b09..7c816aaf504fb 100644
--- a/libc/src/__support/StringUtil/tables/linux_platform_signals.h
+++ b/libc/src/__support/StringUtil/tables/linux_platform_signals.h
@@ -11,13 +11,14 @@
 
 #include "linux_extension_signals.h"
 #include "posix_signals.h"
+#include "src/__support/macros/config.h"
 #include "stdc_signals.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr auto PLATFORM_SIGNALS =
     STDC_SIGNALS + POSIX_SIGNALS + LINUX_SIGNALS;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_LINUX_PLATFORM_SIGNALS_H
diff --git a/libc/src/__support/StringUtil/tables/minimal_platform_errors.h b/libc/src/__support/StringUtil/tables/minimal_platform_errors.h
index c5672c4d875f5..baaa07bc8c998 100644
--- a/libc/src/__support/StringUtil/tables/minimal_platform_errors.h
+++ b/libc/src/__support/StringUtil/tables/minimal_platform_errors.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_MINIMAL_PLATFORM_ERRORS_H
 #define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_MINIMAL_PLATFORM_ERRORS_H
 
+#include "src/__support/macros/config.h"
 #include "stdc_errors.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr auto PLATFORM_ERRORS = STDC_ERRORS;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_MINIMAL_PLATFORM_ERRORS_H
diff --git a/libc/src/__support/StringUtil/tables/minimal_platform_signals.h b/libc/src/__support/StringUtil/tables/minimal_platform_signals.h
index 7fe0dccfc465e..d4cecb3b35e5d 100644
--- a/libc/src/__support/StringUtil/tables/minimal_platform_signals.h
+++ b/libc/src/__support/StringUtil/tables/minimal_platform_signals.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_MINIMAL_PLATFORM_SIGNALS_H
 #define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_MINIMAL_PLATFORM_SIGNALS_H
 
+#include "src/__support/macros/config.h"
 #include "stdc_signals.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr auto PLATFORM_SIGNALS = STDC_SIGNALS;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_MINIMAL_PLATFORM_SIGNALS_H
diff --git a/libc/src/__support/StringUtil/tables/posix_errors.h b/libc/src/__support/StringUtil/tables/posix_errors.h
index 3cb6de394ea36..aae00d11ad556 100644
--- a/libc/src/__support/StringUtil/tables/posix_errors.h
+++ b/libc/src/__support/StringUtil/tables/posix_errors.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_POSIX_ERRORS_H
 
 #include "src/__support/StringUtil/message_mapper.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h> // For error macros
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr MsgTable<76> POSIX_ERRORS = {
     MsgMapping(EPERM, "Operation not permitted"),
@@ -94,6 +95,6 @@ LIBC_INLINE_VAR constexpr MsgTable<76> POSIX_ERRORS = {
     MsgMapping(ENOTRECOVERABLE, "State not recoverable"),
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_POSIX_ERRORS_H
diff --git a/libc/src/__support/StringUtil/tables/posix_signals.h b/libc/src/__support/StringUtil/tables/posix_signals.h
index b9535cbeb6f69..7c70f71837e27 100644
--- a/libc/src/__support/StringUtil/tables/posix_signals.h
+++ b/libc/src/__support/StringUtil/tables/posix_signals.h
@@ -11,10 +11,11 @@
 
 #include "src/__support/CPP/array.h"
 #include "src/__support/StringUtil/message_mapper.h"
+#include "src/__support/macros/config.h"
 
 #include <signal.h> // For signal numbers
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr MsgTable<22> POSIX_SIGNALS = {
     MsgMapping(SIGHUP, "Hangup"),
@@ -41,6 +42,6 @@ LIBC_INLINE_VAR constexpr MsgTable<22> POSIX_SIGNALS = {
     MsgMapping(SIGSYS, "Bad system call"),
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_POSIX_SIGNALS_H
diff --git a/libc/src/__support/StringUtil/tables/signal_table.h b/libc/src/__support/StringUtil/tables/signal_table.h
index d7ffbc63722e5..bfec39b52f1ae 100644
--- a/libc/src/__support/StringUtil/tables/signal_table.h
+++ b/libc/src/__support/StringUtil/tables/signal_table.h
@@ -12,6 +12,7 @@
 #include "src/__support/StringUtil/message_mapper.h"
 
 #include "posix_signals.h"
+#include "src/__support/macros/config.h"
 #include "stdc_signals.h"
 
 #if defined(__linux__) || defined(__Fuchsia__)
@@ -24,7 +25,8 @@
 #include "linux_extension_signals.h"
 #endif
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 LIBC_INLINE_VAR constexpr auto PLATFORM_SIGNALS = []() {
   if constexpr (USE_LINUX_PLATFORM_SIGNALS) {
@@ -34,6 +36,7 @@ LIBC_INLINE_VAR constexpr auto PLATFORM_SIGNALS = []() {
   }
 }();
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_SIGNAL_TABLE_H
diff --git a/libc/src/__support/StringUtil/tables/stdc_errors.h b/libc/src/__support/StringUtil/tables/stdc_errors.h
index 6873d6bd51074..a5d2279ff399c 100644
--- a/libc/src/__support/StringUtil/tables/stdc_errors.h
+++ b/libc/src/__support/StringUtil/tables/stdc_errors.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_STDC_ERRORS_H
 
 #include "src/__support/StringUtil/message_mapper.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h> // For error macros
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr const MsgTable<3> STDC_ERRORS = {
     MsgMapping(0, "Success"),
@@ -21,6 +22,6 @@ LIBC_INLINE_VAR constexpr const MsgTable<3> STDC_ERRORS = {
     MsgMapping(ERANGE, "Numerical result out of range"),
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_STDC_ERRORS_H
diff --git a/libc/src/__support/StringUtil/tables/stdc_signals.h b/libc/src/__support/StringUtil/tables/stdc_signals.h
index 7c93b45a441c3..094b59b4ba641 100644
--- a/libc/src/__support/StringUtil/tables/stdc_signals.h
+++ b/libc/src/__support/StringUtil/tables/stdc_signals.h
@@ -12,8 +12,9 @@
 #include <signal.h> // For signal numbers
 
 #include "src/__support/StringUtil/message_mapper.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE_VAR constexpr const MsgTable<6> STDC_SIGNALS = {
     MsgMapping(SIGINT, "Interrupt"),
@@ -24,6 +25,6 @@ LIBC_INLINE_VAR constexpr const MsgTable<6> STDC_SIGNALS = {
     MsgMapping(SIGTERM, "Terminated"),
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_TABLES_STDC_SIGNALS_H
diff --git a/libc/src/__support/arg_list.h b/libc/src/__support/arg_list.h
index 0965e12afd562..a57973273c9f6 100644
--- a/libc/src/__support/arg_list.h
+++ b/libc/src/__support/arg_list.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC___SUPPORT_ARG_LIST_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 class ArgList {
@@ -99,6 +100,6 @@ class StructArgList {
 };
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_ARG_LIST_H
diff --git a/libc/src/__support/big_int.h b/libc/src/__support/big_int.h
index 8eeb4db9d650b..681782d57319e 100644
--- a/libc/src/__support/big_int.h
+++ b/libc/src/__support/big_int.h
@@ -15,6 +15,7 @@
 #include "src/__support/CPP/optional.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h"          // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"        // LIBC_UNLIKELY
 #include "src/__support/macros/properties/compiler.h" // LIBC_COMPILER_IS_CLANG
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128, LIBC_TYPES_HAS_INT64
@@ -24,7 +25,7 @@
 #include <stddef.h> // For size_t
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace multiword {
 
@@ -1293,6 +1294,6 @@ first_trailing_one(T value) {
                                                 : cpp::countr_zero(value) + 1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_UINT_H
diff --git a/libc/src/__support/block.h b/libc/src/__support/block.h
index e1b7aeaaf813c..242602ad2f856 100644
--- a/libc/src/__support/block.h
+++ b/libc/src/__support/block.h
@@ -17,10 +17,11 @@
 #include "src/__support/CPP/span.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace internal {
 // Types of corrupted blocks, and functions to crash with an error message
@@ -599,6 +600,6 @@ internal::BlockStatus Block<OffsetType, kAlign>::check_status() const {
   return internal::BlockStatus::VALID;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_BLOCK_H
diff --git a/libc/src/__support/blockstore.h b/libc/src/__support/blockstore.h
index bcab7504dbd6e..8d13e0ed290df 100644
--- a/libc/src/__support/blockstore.h
+++ b/libc/src/__support/blockstore.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_BLOCKSTORE_H
 #define LLVM_LIBC_SRC___SUPPORT_BLOCKSTORE_H
 
+#include "src/__support/macros/config.h"
 #include <src/__support/CPP/new.h>
 #include <src/__support/libc_assert.h>
 
 #include <stddef.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The difference between BlockStore a traditional vector types is that,
 // when more capacity is desired, a new block is added instead of allocating
@@ -203,6 +204,6 @@ LIBC_INLINE void BlockStore<T, BLOCK_SIZE, REVERSE_ORDER>::destroy(
 template <typename T, size_t BLOCK_SIZE>
 using ReverseOrderBlockStore = BlockStore<T, BLOCK_SIZE, true>;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_BLOCKSTORE_H
diff --git a/libc/src/__support/c_string.h b/libc/src/__support/c_string.h
index 9049311a57789..11f41320681af 100644
--- a/libc/src/__support/c_string.h
+++ b/libc/src/__support/c_string.h
@@ -11,8 +11,9 @@
 
 #include "src/__support/CPP/string.h"
 #include "src/__support/macros/attributes.h" // for LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The CString class is a companion to the cpp::string class. Its use case is as
 // a return value for a function that in C would return a char* and a flag for
@@ -31,6 +32,6 @@ class CString {
   LIBC_INLINE operator const char *() const { return str.c_str(); }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_C_STRING_H
diff --git a/libc/src/__support/char_vector.h b/libc/src/__support/char_vector.h
index d39310e09dd71..df109da5d8127 100644
--- a/libc/src/__support/char_vector.h
+++ b/libc/src/__support/char_vector.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC___SUPPORT_CHARVECTOR_H
 
 #include "src/__support/common.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
 #include <stddef.h> // size_t
 #include <stdlib.h> // malloc, realloc, free
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This is very simple alternate of the std::string class. There is no
 // bounds check performed in any of the methods. The callers are expected to
@@ -73,6 +74,6 @@ class CharVector {
   LIBC_INLINE size_t length() { return index; }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_CHARVECTOR_H
diff --git a/libc/src/__support/common.h b/libc/src/__support/common.h
index 53951dc131c28..48c773fa02c17 100644
--- a/libc/src/__support/common.h
+++ b/libc/src/__support/common.h
@@ -14,6 +14,7 @@
 #endif
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #ifndef LLVM_LIBC_FUNCTION_ATTR
@@ -35,7 +36,7 @@
 #define LLVM_LIBC_FUNCTION(type, name, arglist)                                \
   LLVM_LIBC_FUNCTION_IMPL(type, name, arglist)
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 LIBC_INLINE constexpr bool same_string(char const *lhs, char const *rhs) {
   for (; *lhs || *rhs; ++lhs, ++rhs)
@@ -44,7 +45,7 @@ LIBC_INLINE constexpr bool same_string(char const *lhs, char const *rhs) {
   return true;
 }
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define __LIBC_MACRO_TO_STRING(str) #str
 #define LIBC_MACRO_TO_STRING(str) __LIBC_MACRO_TO_STRING(str)
diff --git a/libc/src/__support/ctype_utils.h b/libc/src/__support/ctype_utils.h
index 5fa4777ffd65f..91f6ce8cabd8d 100644
--- a/libc/src/__support/ctype_utils.h
+++ b/libc/src/__support/ctype_utils.h
@@ -10,8 +10,9 @@
 #define LLVM_LIBC_SRC___SUPPORT_CTYPE_UTILS_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // ------------------------------------------------------
@@ -55,6 +56,6 @@ LIBC_INLINE static constexpr int tolower(int ch) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC___SUPPORT_CTYPE_UTILS_H
diff --git a/libc/src/__support/detailed_powers_of_ten.h b/libc/src/__support/detailed_powers_of_ten.h
index c8340fda06eed..28741b8a3f563 100644
--- a/libc/src/__support/detailed_powers_of_ten.h
+++ b/libc/src/__support/detailed_powers_of_ten.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_DETAILED_POWERS_OF_TEN_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // TODO(michaelrj): write a script that will generate this table.
@@ -734,6 +735,6 @@ static constexpr uint64_t DETAILED_POWERS_OF_TEN[696][2] = {
 };
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_DETAILED_POWERS_OF_TEN_H
diff --git a/libc/src/__support/endian.h b/libc/src/__support/endian.h
index cd083aad09c3c..8c443fefab5e8 100644
--- a/libc/src/__support/endian.h
+++ b/libc/src/__support/endian.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_ENDIAN_H
 
 #include "common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // We rely on compiler preprocessor defines to allow for cross compilation.
 #if !defined(__BYTE_ORDER__) || !defined(__ORDER_LITTLE_ENDIAN__) ||           \
@@ -140,6 +141,6 @@ Endian<__ORDER_BIG_ENDIAN__>::to_little_endian<uint64_t>(uint64_t v) {
 
 using Endian = internal::Endian<__BYTE_ORDER__>;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_ENDIAN_H
diff --git a/libc/src/__support/error_or.h b/libc/src/__support/error_or.h
index 34c652dd878c2..3faaddde6cd32 100644
--- a/libc/src/__support/error_or.h
+++ b/libc/src/__support/error_or.h
@@ -10,8 +10,9 @@
 #define LLVM_LIBC_SRC___SUPPORT_ERROR_OR_H
 
 #include "src/__support/CPP/expected.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <class T> using ErrorOr = cpp::expected<T, int>;
 
@@ -34,6 +35,6 @@ using Error = cpp::unexpected<int>;
 //   constexpr operator T() { return value; }
 // };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_ERROR_OR_H
diff --git a/libc/src/__support/fixed_point/fx_bits.h b/libc/src/__support/fixed_point/fx_bits.h
index 53e693d4ddfd1..0a4c21fb6a14f 100644
--- a/libc/src/__support/fixed_point/fx_bits.h
+++ b/libc/src/__support/fixed_point/fx_bits.h
@@ -13,6 +13,7 @@
 #include "src/__support/CPP/bit.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h"   // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/math_extras.h"
 
@@ -20,7 +21,8 @@
 
 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
 
-namespace LIBC_NAMESPACE::fixed_point {
+namespace LIBC_NAMESPACE_DECL {
+namespace fixed_point {
 
 template <typename T> struct FXBits {
 private:
@@ -161,7 +163,8 @@ template <typename T> LIBC_INLINE constexpr T round(T x, int n) {
   return bit_and((x + round_bit), rounding_mask);
 }
 
-} // namespace LIBC_NAMESPACE::fixed_point
+} // namespace fixed_point
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_COMPILER_HAS_FIXED_POINT
 
diff --git a/libc/src/__support/fixed_point/fx_rep.h b/libc/src/__support/fixed_point/fx_rep.h
index f13640a6c0191..186938947694e 100644
--- a/libc/src/__support/fixed_point/fx_rep.h
+++ b/libc/src/__support/fixed_point/fx_rep.h
@@ -12,12 +12,14 @@
 #include "include/llvm-libc-macros/stdfix-macros.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE, LIBC_INLINE_VAR
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
 
-namespace LIBC_NAMESPACE::fixed_point {
+namespace LIBC_NAMESPACE_DECL {
+namespace fixed_point {
 
 namespace internal {
 
@@ -293,7 +295,8 @@ template <> struct FXRep<unsigned sat accum> : FXRep<unsigned accum> {};
 template <>
 struct FXRep<unsigned long sat accum> : FXRep<unsigned long accum> {};
 
-} // namespace LIBC_NAMESPACE::fixed_point
+} // namespace fixed_point
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_COMPILER_HAS_FIXED_POINT
 
diff --git a/libc/src/__support/fixed_point/sqrt.h b/libc/src/__support/fixed_point/sqrt.h
index 982e318e2d1e3..b77319debeeaf 100644
--- a/libc/src/__support/fixed_point/sqrt.h
+++ b/libc/src/__support/fixed_point/sqrt.h
@@ -14,13 +14,15 @@
 #include "src/__support/CPP/limits.h" // CHAR_BIT
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h"   // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "fx_rep.h"
 
 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
 
-namespace LIBC_NAMESPACE::fixed_point {
+namespace LIBC_NAMESPACE_DECL {
+namespace fixed_point {
 
 namespace internal {
 
@@ -259,7 +261,8 @@ isqrt_fast(T x) {
   return cpp::bit_cast<OutType>(r);
 }
 
-} // namespace LIBC_NAMESPACE::fixed_point
+} // namespace fixed_point
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_COMPILER_HAS_FIXED_POINT
 
diff --git a/libc/src/__support/fixedvector.h b/libc/src/__support/fixedvector.h
index 5161c0d7a533c..7ac0c230f9c53 100644
--- a/libc/src/__support/fixedvector.h
+++ b/libc/src/__support/fixedvector.h
@@ -12,8 +12,9 @@
 #include "src/__support/CPP/array.h"
 
 #include "src/__support/CPP/iterator.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // A fixed size data store backed by an underlying cpp::array data structure. It
 // supports vector like API but is not resizable like a vector.
@@ -97,6 +98,6 @@ template <typename T, size_t CAPACITY> class FixedVector {
   }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FIXEDVECTOR_H
diff --git a/libc/src/__support/float_to_string.h b/libc/src/__support/float_to_string.h
index 09b13324f25bb..c4c7a15179f95 100644
--- a/libc/src/__support/float_to_string.h
+++ b/libc/src/__support/float_to_string.h
@@ -19,6 +19,7 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 // This file has 5 compile-time flags to allow the user to configure the float
 // to string behavior. These were used to explore tradeoffs during the design
@@ -105,7 +106,7 @@ constexpr size_t MID_INT_SIZE = 192;
 // Any block that is all 9s adds one to the max block counter and doesn't clear
 // the buffer because they can cause the block above them to be rounded up.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using BlockInt = uint32_t;
 constexpr uint32_t BLOCK_SIZE = 9;
@@ -839,6 +840,6 @@ template <> class FloatToString<long double> {
 #endif // !LIBC_TYPES_LONG_DOUBLE_IS_FLOAT64 &&
        // !LIBC_COPT_FLOAT_TO_STR_NO_SPECIALIZE_LD
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FLOAT_TO_STRING_H
diff --git a/libc/src/__support/freelist.h b/libc/src/__support/freelist.h
index b2eb84a85dbce..a54cf953fe7ab 100644
--- a/libc/src/__support/freelist.h
+++ b/libc/src/__support/freelist.h
@@ -14,8 +14,9 @@
 #include "src/__support/CPP/new.h"
 #include "src/__support/CPP/span.h"
 #include "src/__support/fixedvector.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using cpp::span;
 
@@ -203,6 +204,6 @@ FreeList<NUM_BUCKETS>::find_chunk_ptr_for_size(size_t size,
   return chunk_ptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FREELIST_H
diff --git a/libc/src/__support/freelist_heap.h b/libc/src/__support/freelist_heap.h
index 3d0db544c4af0..ce4f14b431585 100644
--- a/libc/src/__support/freelist_heap.h
+++ b/libc/src/__support/freelist_heap.h
@@ -16,10 +16,11 @@
 #include "src/__support/CPP/optional.h"
 #include "src/__support/CPP/span.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "src/string/memory_utils/inline_memset.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using cpp::optional;
 using cpp::span;
@@ -258,6 +259,6 @@ void *FreeListHeap<NUM_BUCKETS>::calloc(size_t num, size_t size) {
 
 extern FreeListHeap<> *freelist_heap;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_FREELIST_HEAP_H
diff --git a/libc/src/__support/hash.h b/libc/src/__support/hash.h
index d1218fdc25927..527c83993fd59 100644
--- a/libc/src/__support/hash.h
+++ b/libc/src/__support/hash.h
@@ -12,10 +12,11 @@
 #include "src/__support/CPP/bit.h"           // rotl
 #include "src/__support/CPP/limits.h"        // numeric_limits
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"           // UInt128
 #include <stdint.h>                          // For uint64_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // Folded multiplication.
@@ -160,6 +161,6 @@ class HashState {
 };
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_HASH_H
diff --git a/libc/src/__support/high_precision_decimal.h b/libc/src/__support/high_precision_decimal.h
index 6a22554165014..3e397574d4cbb 100644
--- a/libc/src/__support/high_precision_decimal.h
+++ b/libc/src/__support/high_precision_decimal.h
@@ -11,10 +11,11 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 struct LShiftTableEntry {
@@ -422,6 +423,6 @@ class HighPrecisionDecimal {
 };
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_HIGH_PRECISION_DECIMAL_H
diff --git a/libc/src/__support/integer_literals.h b/libc/src/__support/integer_literals.h
index 5fb67464090ce..af3da1c443d7b 100644
--- a/libc/src/__support/integer_literals.h
+++ b/libc/src/__support/integer_literals.h
@@ -15,11 +15,12 @@
 
 #include "src/__support/CPP/limits.h"        // CHAR_BIT
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"           // UInt128
 #include <stddef.h>                          // size_t
 #include <stdint.h>                          // uintxx_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE constexpr uint8_t operator""_u8(unsigned long long value) {
   return static_cast<uint8_t>(value);
@@ -182,6 +183,6 @@ template <typename T> LIBC_INLINE constexpr T parse_bigint(const char *ptr) {
   return internal::parse_with_prefix<T>(ptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_INTEGER_LITERALS_H
diff --git a/libc/src/__support/integer_operations.h b/libc/src/__support/integer_operations.h
index 390181f13b08b..4ecff70a61752 100644
--- a/libc/src/__support/integer_operations.h
+++ b/libc/src/__support/integer_operations.h
@@ -11,8 +11,9 @@
 
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename T>
 LIBC_INLINE static constexpr cpp::enable_if_t<cpp::is_integral_v<T>, T>
@@ -27,6 +28,6 @@ integer_rem_quo(T x, T y, T &quot, T &rem) {
   rem = x % y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_INTEGER_OPERATIONS_H
diff --git a/libc/src/__support/integer_to_string.h b/libc/src/__support/integer_to_string.h
index 375f0e82960e3..40d45a05ceadb 100644
--- a/libc/src/__support/integer_to_string.h
+++ b/libc/src/__support/integer_to_string.h
@@ -69,8 +69,9 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/big_int.h" // make_integral_or_big_int_unsigned_t
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace details {
 
@@ -317,6 +318,6 @@ template <typename T, typename Fmt = radix::Dec> class IntegerToString {
   }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_INTEGER_TO_STRING_H
diff --git a/libc/src/__support/intrusive_list.h b/libc/src/__support/intrusive_list.h
index 69be877777f78..4bbd8a41abd65 100644
--- a/libc/src/__support/intrusive_list.h
+++ b/libc/src/__support/intrusive_list.h
@@ -14,8 +14,9 @@
 #define LLVM_LIBC_SRC___SUPPORT_INTRUSIVE_LIST_H
 
 #include "common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 class IntrusiveList {
@@ -60,6 +61,6 @@ class IntrusiveList {
 };
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_INTRUSIVE_LIST_H
diff --git a/libc/src/__support/libc_assert.h b/libc/src/__support/libc_assert.h
index ed06cc329809f..e3235199780c2 100644
--- a/libc/src/__support/libc_assert.h
+++ b/libc/src/__support/libc_assert.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_LIBC_ASSERT_H
 #define LLVM_LIBC_SRC___SUPPORT_LIBC_ASSERT_H
 
+#include "src/__support/macros/config.h"
 #ifdef LIBC_COPT_USE_C_ASSERT
 
 // The build is configured to just use the public <assert.h> API
@@ -25,7 +26,7 @@
 #include "src/__support/integer_to_string.h"
 #include "src/__support/macros/attributes.h" // For LIBC_INLINE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This is intended to be removed in a future patch to use a similar design to
 // below, but it's necessary for the external assert.
@@ -43,7 +44,7 @@ LIBC_INLINE void report_assertion_failure(const char *assertion,
   write_to_stderr("'\n");
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #ifdef LIBC_ASSERT
 #error "Unexpected: LIBC_ASSERT macro already defined"
diff --git a/libc/src/__support/macros/config.h b/libc/src/__support/macros/config.h
index 2ab0fba095e6b..8b1263e08249c 100644
--- a/libc/src/__support/macros/config.h
+++ b/libc/src/__support/macros/config.h
@@ -15,6 +15,7 @@
 
 // Workaround for compilers that do not support builtin detection.
 // FIXME: This is only required for the GPU portion which should be moved.
+#include "src/__support/macros/config.h"
 #ifndef __has_builtin
 #define __has_builtin(b) 0
 #endif
diff --git a/libc/src/__support/macros/optimization.h b/libc/src/__support/macros/optimization.h
index 05a47791deed8..5ffd474d35c54 100644
--- a/libc/src/__support/macros/optimization.h
+++ b/libc/src/__support/macros/optimization.h
@@ -11,16 +11,19 @@
 #define LLVM_LIBC_SRC___SUPPORT_MACROS_OPTIMIZATION_H
 
 #include "src/__support/macros/attributes.h"          // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/compiler.h" // LIBC_COMPILER_IS_CLANG
 
 // We use a template to implement likely/unlikely to make sure that we don't
 // accidentally pass an integer.
-namespace LIBC_NAMESPACE::details {
+namespace LIBC_NAMESPACE_DECL {
+namespace details {
 template <typename T>
 LIBC_INLINE constexpr bool expects_bool_condition(T value, T expected) {
   return __builtin_expect(value, expected);
 }
-} // namespace LIBC_NAMESPACE::details
+} // namespace details
+} // namespace LIBC_NAMESPACE_DECL
 #define LIBC_LIKELY(x) LIBC_NAMESPACE::details::expects_bool_condition(x, true)
 #define LIBC_UNLIKELY(x)                                                       \
   LIBC_NAMESPACE::details::expects_bool_condition(x, false)
diff --git a/libc/src/__support/math_extras.h b/libc/src/__support/math_extras.h
index 4bd8719574068..6f4a006aad270 100644
--- a/libc/src/__support/math_extras.h
+++ b/libc/src/__support/math_extras.h
@@ -14,8 +14,9 @@
 #include "src/__support/CPP/limits.h"      // CHAR_BIT, numeric_limits
 #include "src/__support/CPP/type_traits.h" // is_unsigned_v, is_constant_evaluated
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Create a bitmask with the count right-most bits set to 1, and all other bits
 // set to 0.  Only unsigned types are allowed.
@@ -155,6 +156,6 @@ count_zeros(T value) {
   return cpp::popcount<T>(static_cast<T>(~value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_MATH_EXTRAS_H
diff --git a/libc/src/__support/memory_size.h b/libc/src/__support/memory_size.h
index 491123bbabf30..cdd6a10222de1 100644
--- a/libc/src/__support/memory_size.h
+++ b/libc/src/__support/memory_size.h
@@ -13,10 +13,11 @@
 #include "src/__support/CPP/limits.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/string/memory_utils/utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 template <class T> LIBC_INLINE bool mul_overflow(T a, T b, T *res) {
 #if __has_builtin(__builtin_mul_overflow)
@@ -85,6 +86,6 @@ class SafeMemSize {
   }
 };
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_MEMORY_SIZE_H
diff --git a/libc/src/__support/number_pair.h b/libc/src/__support/number_pair.h
index 2f713fc03520f..f5e877406d8f3 100644
--- a/libc/src/__support/number_pair.h
+++ b/libc/src/__support/number_pair.h
@@ -10,16 +10,17 @@
 #define LLVM_LIBC_SRC___SUPPORT_NUMBER_PAIR_H
 
 #include "CPP/type_traits.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename T> struct NumberPair {
   T lo = T(0);
   T hi = T(0);
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_NUMBER_PAIR_H
diff --git a/libc/src/__support/str_to_float.h b/libc/src/__support/str_to_float.h
index fa466ca8492fc..c72bc1f957dc3 100644
--- a/libc/src/__support/str_to_float.h
+++ b/libc/src/__support/str_to_float.h
@@ -21,12 +21,13 @@
 #include "src/__support/ctype_utils.h"
 #include "src/__support/detailed_powers_of_ten.h"
 #include "src/__support/high_precision_decimal.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/__support/str_to_num_result.h"
 #include "src/__support/uint128.h"
 #include "src/errno/libc_errno.h" // For ERANGE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 template <class T> struct ExpandedFloat {
@@ -1226,6 +1227,6 @@ template <class T> LIBC_INLINE StrToNumResult<T> strtonan(const char *arg) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STR_TO_FLOAT_H
diff --git a/libc/src/__support/str_to_integer.h b/libc/src/__support/str_to_integer.h
index 6db851ab0e65a..1f80229a9eff4 100644
--- a/libc/src/__support/str_to_integer.h
+++ b/libc/src/__support/str_to_integer.h
@@ -13,11 +13,12 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_num_result.h"
 #include "src/__support/uint128.h"
 #include "src/errno/libc_errno.h" // For ERANGE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // Returns a pointer to the first character in src that is not a whitespace
@@ -164,6 +165,6 @@ strtointeger(const char *__restrict src, int base,
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STR_TO_INTEGER_H
diff --git a/libc/src/__support/str_to_num_result.h b/libc/src/__support/str_to_num_result.h
index b32fbdeeb580f..6d361357cac2a 100644
--- a/libc/src/__support/str_to_num_result.h
+++ b/libc/src/__support/str_to_num_result.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC___SUPPORT_STR_TO_NUM_RESULT_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename T> struct StrToNumResult {
   T value;
@@ -31,6 +32,6 @@ template <typename T> struct StrToNumResult {
 
   LIBC_INLINE constexpr operator T() { return value; }
 };
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_STR_TO_NUM_RESULT_H
diff --git a/libc/src/__support/threads/CndVar.h b/libc/src/__support/threads/CndVar.h
index 55f6e02b354cb..e42fa145faeaf 100644
--- a/libc/src/__support/threads/CndVar.h
+++ b/libc/src/__support/threads/CndVar.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC___SUPPORT_SRC_THREADS_LINUX_CNDVAR_H
 #define LLVM_LIBC___SUPPORT_SRC_THREADS_LINUX_CNDVAR_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_utils.h" // Futex
 #include "src/__support/threads/linux/raw_mutex.h"   // RawMutex
 #include "src/__support/threads/mutex.h"             // Mutex
 
 #include <stdint.h> // uint32_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 class CndVar {
   enum CndWaiterStatus : uint32_t {
@@ -49,6 +50,6 @@ class CndVar {
   void broadcast();
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_CNDVAR_H
diff --git a/libc/src/__support/threads/callonce.h b/libc/src/__support/threads/callonce.h
index 67f4c99657107..5392722045c94 100644
--- a/libc/src/__support/threads/callonce.h
+++ b/libc/src/__support/threads/callonce.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_THREADS_CALLONCE_H
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_CALLONCE_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_LIKELY
 
 // Plaform specific routines, provides:
@@ -21,7 +22,7 @@
 #error "callonce is not supported on this platform"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Common definitions
 using CallOnceCallback = void(void);
@@ -35,6 +36,6 @@ LIBC_INLINE int callonce(CallOnceFlag *flag, CallOnceCallback *callback) {
 
   return callonce_impl::callonce_slowpath(flag, callback);
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_CALLONCE_H
diff --git a/libc/src/__support/threads/fork_callbacks.cpp b/libc/src/__support/threads/fork_callbacks.cpp
index 385a2bcb58168..b050b1712f4aa 100644
--- a/libc/src/__support/threads/fork_callbacks.cpp
+++ b/libc/src/__support/threads/fork_callbacks.cpp
@@ -9,11 +9,12 @@
 #include "fork_callbacks.h"
 
 #include "src/__support/CPP/mutex.h" // lock_guard
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <stddef.h> // For size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -91,4 +92,4 @@ void invoke_prepare_callbacks() { cb_manager.invoke_prepare(); }
 
 void invoke_parent_callbacks() { cb_manager.invoke_parent(); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/threads/fork_callbacks.h b/libc/src/__support/threads/fork_callbacks.h
index 57a4f8228c5fb..2a06a4a91892d 100644
--- a/libc/src/__support/threads/fork_callbacks.h
+++ b/libc/src/__support/threads/fork_callbacks.h
@@ -9,7 +9,9 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_THREADS_FORK_CALLBACKS_H
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_FORK_CALLBACKS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 using ForkCallback = void(void);
 
@@ -19,6 +21,6 @@ void invoke_prepare_callbacks();
 void invoke_parent_callbacks();
 void invoke_child_callbacks();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_FORK_CALLBACKS_H
diff --git a/libc/src/__support/threads/gpu/mutex.h b/libc/src/__support/threads/gpu/mutex.h
index 9554083679335..c8c484ed2b794 100644
--- a/libc/src/__support/threads/gpu/mutex.h
+++ b/libc/src/__support/threads/gpu/mutex.h
@@ -10,9 +10,10 @@
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_GPU_MUTEX_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex_common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 /// Implementation of a simple passthrough mutex which guards nothing. A
 /// complete Mutex locks in general cannot be implemented on the GPU. We simply
@@ -26,6 +27,6 @@ struct Mutex {
   LIBC_INLINE MutexError reset() { return MutexError::NONE; }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_GPU_MUTEX_H
diff --git a/libc/src/__support/threads/linux/CndVar.cpp b/libc/src/__support/threads/linux/CndVar.cpp
index 03125323477a2..be74c18dddf31 100644
--- a/libc/src/__support/threads/linux/CndVar.cpp
+++ b/libc/src/__support/threads/linux/CndVar.cpp
@@ -9,13 +9,14 @@
 #include "src/__support/threads/CndVar.h"
 #include "src/__support/CPP/mutex.h"
 #include "src/__support/OSUtil/syscall.h"           // syscall_impl
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_word.h" // FutexWordType
 #include "src/__support/threads/linux/raw_mutex.h"  // RawMutex
 #include "src/__support/threads/mutex.h"            // Mutex
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int CndVar::wait(Mutex *m) {
   // The goal is to perform "unlock |m| and wait" in an
@@ -102,4 +103,4 @@ void CndVar::broadcast() {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/threads/linux/callonce.cpp b/libc/src/__support/threads/linux/callonce.cpp
index 24d376f447fba..c6e5f2aba69fc 100644
--- a/libc/src/__support/threads/linux/callonce.cpp
+++ b/libc/src/__support/threads/linux/callonce.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/threads/callonce.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/callonce.h"
 #include "src/__support/threads/linux/futex_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace callonce_impl {
 int callonce_slowpath(CallOnceFlag *flag, CallOnceCallback *func) {
   auto *futex_word = reinterpret_cast<Futex *>(flag);
@@ -36,4 +37,4 @@ int callonce_slowpath(CallOnceFlag *flag, CallOnceCallback *func) {
   return 0;
 }
 } // namespace callonce_impl
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/threads/linux/callonce.h b/libc/src/__support/threads/linux/callonce.h
index 315cc6149e9ec..b3ea3a5b1c679 100644
--- a/libc/src/__support/threads/linux/callonce.h
+++ b/libc/src/__support/threads/linux/callonce.h
@@ -8,9 +8,10 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_CALLONCE_H
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_CALLONCE_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 using CallOnceFlag = Futex;
 
 namespace callonce_impl {
@@ -27,5 +28,5 @@ LIBC_INLINE bool callonce_fastpath(CallOnceFlag *flag) {
 }
 } // namespace callonce_impl
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_CALLONCE_H
diff --git a/libc/src/__support/threads/linux/futex_utils.h b/libc/src/__support/threads/linux/futex_utils.h
index e40ade8e709b1..943a99ab38c8c 100644
--- a/libc/src/__support/threads/linux/futex_utils.h
+++ b/libc/src/__support/threads/linux/futex_utils.h
@@ -14,12 +14,13 @@
 #include "src/__support/CPP/optional.h"
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_word.h"
 #include "src/__support/time/linux/abs_timeout.h"
 #include <linux/errno.h>
 #include <linux/futex.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 class Futex : public cpp::Atomic<FutexWordType> {
 public:
   using Timeout = internal::AbsTimeout;
@@ -82,6 +83,6 @@ class Futex : public cpp::Atomic<FutexWordType> {
 
 static_assert(__is_standard_layout(Futex),
               "Futex must be a standard layout type.");
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_FUTEX_UTILS_H
diff --git a/libc/src/__support/threads/linux/futex_word.h b/libc/src/__support/threads/linux/futex_word.h
index acdd33bcdaafa..a5a6a0c110cae 100644
--- a/libc/src/__support/threads/linux/futex_word.h
+++ b/libc/src/__support/threads/linux/futex_word.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_FUTEX_WORD_H
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_FUTEX_WORD_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 #include <sys/syscall.h>
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Futexes are 32 bits in size on all platforms, including 64-bit platforms.
 using FutexWordType = uint32_t;
@@ -24,6 +25,6 @@ constexpr auto FUTEX_SYSCALL_ID = SYS_futex_time64;
 #error "futex and futex_time64 syscalls not available."
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_FUTEX_WORD_H
diff --git a/libc/src/__support/threads/linux/mutex.h b/libc/src/__support/threads/linux/mutex.h
index 79506d7e6911a..0c4b1ae09af6f 100644
--- a/libc/src/__support/threads/linux/mutex.h
+++ b/libc/src/__support/threads/linux/mutex.h
@@ -12,11 +12,12 @@
 #include "hdr/types/pid_t.h"
 #include "src/__support/CPP/optional.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_utils.h"
 #include "src/__support/threads/linux/raw_mutex.h"
 #include "src/__support/threads/mutex_common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: support shared/recursive/robust mutexes.
 class Mutex final : private RawMutex {
@@ -84,6 +85,6 @@ class Mutex final : private RawMutex {
   }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_MUTEX_H
diff --git a/libc/src/__support/threads/linux/raw_mutex.h b/libc/src/__support/threads/linux/raw_mutex.h
index 75bd4bdfb6212..2bc302f49762c 100644
--- a/libc/src/__support/threads/linux/raw_mutex.h
+++ b/libc/src/__support/threads/linux/raw_mutex.h
@@ -12,6 +12,7 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_utils.h"
 #include "src/__support/threads/linux/futex_word.h"
 #include "src/__support/threads/sleep.h"
@@ -32,7 +33,7 @@
     "LIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT is not defined, defaulting to 100"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 // Lock is a simple timable lock for internal usage.
 // This is separated from Mutex because this one does not need to consider
 // robustness and reentrancy. Also, this one has spin optimization for shorter
@@ -125,6 +126,6 @@ class RawMutex {
   LIBC_INLINE Futex &get_raw_futex() { return futex; }
   LIBC_INLINE void reset() { futex = UNLOCKED; }
 };
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_LINUX_RAW_MUTEX_H
diff --git a/libc/src/__support/threads/linux/rwlock.h b/libc/src/__support/threads/linux/rwlock.h
index 201fe92c37fc0..d2fb0ce1a3c08 100644
--- a/libc/src/__support/threads/linux/rwlock.h
+++ b/libc/src/__support/threads/linux/rwlock.h
@@ -17,6 +17,7 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/threads/linux/futex_utils.h"
 #include "src/__support/threads/linux/futex_word.h"
@@ -36,7 +37,7 @@
 #include "src/__support/time/linux/monotonicity.h"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 // Forward declaration of the RwLock class.
 class RwLock;
 // A namespace to rwlock specific utilities.
@@ -553,6 +554,6 @@ class RwLock {
     return LockResult::Success;
   }
 };
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SUPPORT_THREADS_LINUX_RWLOCK_H
diff --git a/libc/src/__support/threads/linux/thread.cpp b/libc/src/__support/threads/linux/thread.cpp
index 1d986ff38cfff..36b4a88eba9b4 100644
--- a/libc/src/__support/threads/linux/thread.cpp
+++ b/libc/src/__support/threads/linux/thread.cpp
@@ -14,6 +14,7 @@
 #include "src/__support/OSUtil/syscall.h" // For syscall functions.
 #include "src/__support/common.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/futex_utils.h" // For FutexWordType
 #include "src/errno/libc_errno.h"                    // For error macros
 
@@ -29,7 +30,7 @@
 #include <sys/mman.h>    // For PROT_* and MAP_* definitions.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #ifdef SYS_mmap2
 static constexpr long MMAP_SYSCALL_NUMBER = SYS_mmap2;
@@ -517,4 +518,4 @@ void thread_exit(ThreadReturnValue retval, ThreadStyle style) {
   __builtin_unreachable();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/threads/mutex_common.h b/libc/src/__support/threads/mutex_common.h
index ad8d0025eba69..9913f69a6a61a 100644
--- a/libc/src/__support/threads/mutex_common.h
+++ b/libc/src/__support/threads/mutex_common.h
@@ -9,7 +9,9 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_THREADS_MUTEX_COMMON_H
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_MUTEX_COMMON_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 enum class MutexError : int {
   NONE,
@@ -19,6 +21,6 @@ enum class MutexError : int {
   BAD_LOCK_STATE,
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_MUTEX_COMMON_H
diff --git a/libc/src/__support/threads/sleep.h b/libc/src/__support/threads/sleep.h
index 6433bc3badd50..777283356b58e 100644
--- a/libc/src/__support/threads/sleep.h
+++ b/libc/src/__support/threads/sleep.h
@@ -10,8 +10,9 @@
 #define LLVM_LIBC_SRC___SUPPORT_THREADS_SLEEP_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 /// Suspend the thread briefly to assist the thread scheduler during busy loops.
 LIBC_INLINE void sleep_briefly() {
@@ -31,6 +32,6 @@ LIBC_INLINE void sleep_briefly() {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_SLEEP_H
diff --git a/libc/src/__support/threads/thread.cpp b/libc/src/__support/threads/thread.cpp
index d7bedb8ca67d0..886281e0d50f7 100644
--- a/libc/src/__support/threads/thread.cpp
+++ b/libc/src/__support/threads/thread.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/threads/thread.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include "src/__support/CPP/array.h"
@@ -15,7 +16,7 @@
 #include "src/__support/fixedvector.h"
 #include "src/__support/macros/attributes.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_THREAD_LOCAL Thread self;
 
@@ -188,4 +189,4 @@ void *get_tss_value(unsigned int key) {
   return u.payload;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/__support/threads/thread.h b/libc/src/__support/threads/thread.h
index f89c687eeaa19..ce23a880e048a 100644
--- a/libc/src/__support/threads/thread.h
+++ b/libc/src/__support/threads/thread.h
@@ -14,6 +14,7 @@
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/CPP/stringstream.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #include <linux/param.h> // for exec_pagesize.
@@ -21,7 +22,7 @@
 #include <stddef.h> // For size_t
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using ThreadRunnerPosix = void *(void *);
 using ThreadRunnerStdc = int(void *);
@@ -250,6 +251,6 @@ void call_atexit_callbacks(ThreadAttributes *attrib);
 
 } // namespace internal
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_THREAD_H
diff --git a/libc/src/__support/time/linux/abs_timeout.h b/libc/src/__support/time/linux/abs_timeout.h
index 0097f8abc4ee9..37e602672208f 100644
--- a/libc/src/__support/time/linux/abs_timeout.h
+++ b/libc/src/__support/time/linux/abs_timeout.h
@@ -12,9 +12,10 @@
 #include "hdr/time_macros.h"
 #include "hdr/types/struct_timespec.h"
 #include "src/__support/CPP/expected.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/time/units.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 // We use AbsTimeout to remind ourselves that the timeout is an absolute time.
 // This is a simple wrapper around the timespec struct that also keeps track of
@@ -44,6 +45,6 @@ class AbsTimeout {
   }
 };
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_TIME_LINUX_ABS_TIMEOUT_H
diff --git a/libc/src/__support/time/linux/clock_conversion.h b/libc/src/__support/time/linux/clock_conversion.h
index 4a7c8ff284849..7a52873263a14 100644
--- a/libc/src/__support/time/linux/clock_conversion.h
+++ b/libc/src/__support/time/linux/clock_conversion.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_TIME_LINUX_CLOCK_CONVERSION_H
 #define LLVM_LIBC_SRC___SUPPORT_TIME_LINUX_CLOCK_CONVERSION_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/time/linux/clock_gettime.h"
 #include "src/__support/time/units.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 LIBC_INLINE timespec convert_clock(timespec input, clockid_t from,
@@ -37,6 +38,6 @@ LIBC_INLINE timespec convert_clock(timespec input, clockid_t from,
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_TIME_LINUX_CLOCK_CONVERSION_H
diff --git a/libc/src/__support/time/linux/clock_gettime.h b/libc/src/__support/time/linux/clock_gettime.h
index bbdde98551abe..eca1ba70de592 100644
--- a/libc/src/__support/time/linux/clock_gettime.h
+++ b/libc/src/__support/time/linux/clock_gettime.h
@@ -14,9 +14,10 @@
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 LIBC_INLINE ErrorOr<int> clock_gettime(clockid_t clockid, timespec *ts) {
 #if SYS_clock_gettime
@@ -39,6 +40,6 @@ LIBC_INLINE ErrorOr<int> clock_gettime(clockid_t clockid, timespec *ts) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_TIME_LINUX_CLOCK_GETTIME_H
diff --git a/libc/src/__support/time/linux/monotonicity.h b/libc/src/__support/time/linux/monotonicity.h
index e413275430dd1..c7234db2e64c4 100644
--- a/libc/src/__support/time/linux/monotonicity.h
+++ b/libc/src/__support/time/linux/monotonicity.h
@@ -11,9 +11,10 @@
 
 #include "hdr/time_macros.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/time/linux/abs_timeout.h"
 #include "src/__support/time/linux/clock_conversion.h"
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 // This function is separated from abs_timeout.
 // This function pulls in the dependency to clock_conversion.h,
@@ -38,6 +39,6 @@ LIBC_INLINE void ensure_monotonicity(AbsTimeout &timeout) {
   }
 }
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_TIME_LINUX_MONOTONICITY_H
diff --git a/libc/src/__support/time/units.h b/libc/src/__support/time/units.h
index ee74af70efdfc..ff951992610a7 100644
--- a/libc/src/__support/time/units.h
+++ b/libc/src/__support/time/units.h
@@ -11,8 +11,9 @@
 
 #include "hdr/types/time_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace time_units {
 LIBC_INLINE constexpr time_t operator""_s_ns(unsigned long long s) {
   return static_cast<time_t>(s * 1'000'000'000);
@@ -33,6 +34,6 @@ LIBC_INLINE constexpr time_t operator""_us_ns(unsigned long long us) {
   return static_cast<time_t>(us * 1'000);
 }
 } // namespace time_units
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_TIME_UNITS_H
diff --git a/libc/src/__support/wctype_utils.h b/libc/src/__support/wctype_utils.h
index aa1161c777453..469d81250b535 100644
--- a/libc/src/__support/wctype_utils.h
+++ b/libc/src/__support/wctype_utils.h
@@ -11,12 +11,13 @@
 
 #include "src/__support/CPP/optional.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 
 #define __need_wint_t
 #define __need_wchar_t
 #include <stddef.h> // needed for wint_t and wchar_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // ------------------------------------------------------
@@ -44,6 +45,6 @@ LIBC_INLINE cpp::optional<wint_t> btowc(int c) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC___SUPPORT_WCTYPE_UTILS_H
diff --git a/libc/src/assert/__assert_fail.h b/libc/src/assert/__assert_fail.h
index 6b9dee2a4bf66..bbc0aa8e2bf23 100644
--- a/libc/src/assert/__assert_fail.h
+++ b/libc/src/assert/__assert_fail.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_ASSERT___ASSERT_FAIL_H
 #define LLVM_LIBC_SRC_ASSERT___ASSERT_FAIL_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void __assert_fail(const char *assertion, const char *file,
                                 unsigned line, const char *function);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_ASSERT___ASSERT_FAIL_H
diff --git a/libc/src/assert/generic/__assert_fail.cpp b/libc/src/assert/generic/__assert_fail.cpp
index 4cf914bbe257f..877336122eba2 100644
--- a/libc/src/assert/generic/__assert_fail.cpp
+++ b/libc/src/assert/generic/__assert_fail.cpp
@@ -9,9 +9,10 @@
 #include "src/assert/__assert_fail.h"
 #include "src/__support/OSUtil/io.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/abort.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, __assert_fail,
                    (const char *assertion, const char *file, unsigned line,
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(void, __assert_fail,
   LIBC_NAMESPACE::abort();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/assert/gpu/__assert_fail.cpp b/libc/src/assert/gpu/__assert_fail.cpp
index 7621c0803a00d..5b772426f28bc 100644
--- a/libc/src/assert/gpu/__assert_fail.cpp
+++ b/libc/src/assert/gpu/__assert_fail.cpp
@@ -11,9 +11,10 @@
 #include "src/__support/CPP/atomic.h"
 #include "src/__support/GPU/utils.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/abort.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // A single-use lock to allow only a single thread to print the assertion.
 static cpp::Atomic<uint32_t> lock = 0;
@@ -37,4 +38,4 @@ LLVM_LIBC_FUNCTION(void, __assert_fail,
   LIBC_NAMESPACE::abort();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isalnum.cpp b/libc/src/ctype/isalnum.cpp
index 42ed8ea475f10..382553c23a6bf 100644
--- a/libc/src/ctype/isalnum.cpp
+++ b/libc/src/ctype/isalnum.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, isalnum, (int c)) {
   return static_cast<int>(internal::isalnum(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isalnum.h b/libc/src/ctype/isalnum.h
index 71830c95cb2ff..6516f2ebc327d 100644
--- a/libc/src/ctype/isalnum.h
+++ b/libc/src/ctype/isalnum.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISALNUM_H
 #define LLVM_LIBC_SRC_CTYPE_ISALNUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isalnum(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISALNUM_H
diff --git a/libc/src/ctype/isalpha.cpp b/libc/src/ctype/isalpha.cpp
index 2b1bd0efc3b3a..1a63406780b6e 100644
--- a/libc/src/ctype/isalpha.cpp
+++ b/libc/src/ctype/isalpha.cpp
@@ -10,8 +10,9 @@
 
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, isalpha, (int c)) {
   return static_cast<int>(internal::isalpha(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isalpha.h b/libc/src/ctype/isalpha.h
index b5b07eecd6798..a21c4592365c0 100644
--- a/libc/src/ctype/isalpha.h
+++ b/libc/src/ctype/isalpha.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISALPHA_H
 #define LLVM_LIBC_SRC_CTYPE_ISALPHA_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isalpha(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISALPHA_H
diff --git a/libc/src/ctype/isascii.cpp b/libc/src/ctype/isascii.cpp
index 8be3d7e205afe..ef3788d136e9d 100644
--- a/libc/src/ctype/isascii.cpp
+++ b/libc/src/ctype/isascii.cpp
@@ -9,11 +9,12 @@
 #include "src/ctype/isascii.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, isascii, (int c)) {
   return static_cast<int>((c & (~0x7f)) == 0);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isascii.h b/libc/src/ctype/isascii.h
index 5a734a21bd1e5..20473a7a493f2 100644
--- a/libc/src/ctype/isascii.h
+++ b/libc/src/ctype/isascii.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISASCII_H
 #define LLVM_LIBC_SRC_CTYPE_ISASCII_H
 
+#include "src/__support/macros/config.h"
 #undef isascii
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int isascii(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISASCII_H
diff --git a/libc/src/ctype/isblank.cpp b/libc/src/ctype/isblank.cpp
index 9ac9d36580c7b..a4f33d265bd2d 100644
--- a/libc/src/ctype/isblank.cpp
+++ b/libc/src/ctype/isblank.cpp
@@ -9,8 +9,9 @@
 #include "src/ctype/isblank.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(int, isblank, (int c)) {
   return static_cast<int>(c == ' ' || c == '\t');
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isblank.h b/libc/src/ctype/isblank.h
index 4cacdb3d2a8d7..3fb69e8b620e8 100644
--- a/libc/src/ctype/isblank.h
+++ b/libc/src/ctype/isblank.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISBLANK_H
 #define LLVM_LIBC_SRC_CTYPE_ISBLANK_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isblank(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISBLANK_H
diff --git a/libc/src/ctype/iscntrl.cpp b/libc/src/ctype/iscntrl.cpp
index b52b86f1df291..fb582fd6ef082 100644
--- a/libc/src/ctype/iscntrl.cpp
+++ b/libc/src/ctype/iscntrl.cpp
@@ -9,8 +9,9 @@
 #include "src/ctype/iscntrl.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, iscntrl, (int c)) {
   return static_cast<int>(ch < 0x20 || ch == 0x7f);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/iscntrl.h b/libc/src/ctype/iscntrl.h
index e0cae0caa6b8d..ac8e2eb6a93d4 100644
--- a/libc/src/ctype/iscntrl.h
+++ b/libc/src/ctype/iscntrl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISCNTRL_H
 #define LLVM_LIBC_SRC_CTYPE_ISCNTRL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int iscntrl(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISCNTRL_H
diff --git a/libc/src/ctype/isdigit.cpp b/libc/src/ctype/isdigit.cpp
index d4d5d1f20f3fb..43c5f1940c7f0 100644
--- a/libc/src/ctype/isdigit.cpp
+++ b/libc/src/ctype/isdigit.cpp
@@ -9,8 +9,9 @@
 #include "src/ctype/isdigit.h"
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(int, isdigit, (int c)) {
   return static_cast<int>(internal::isdigit(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isdigit.h b/libc/src/ctype/isdigit.h
index a024cf464b52a..ca8242d5c3018 100644
--- a/libc/src/ctype/isdigit.h
+++ b/libc/src/ctype/isdigit.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISDIGIT_H
 #define LLVM_LIBC_SRC_CTYPE_ISDIGIT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isdigit(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISDIGIT_H
diff --git a/libc/src/ctype/isgraph.cpp b/libc/src/ctype/isgraph.cpp
index e195f9fcbf48c..a5b6e501b5813 100644
--- a/libc/src/ctype/isgraph.cpp
+++ b/libc/src/ctype/isgraph.cpp
@@ -10,8 +10,9 @@
 
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, isgraph, (int c)) {
   return static_cast<int>(internal::isgraph(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isgraph.h b/libc/src/ctype/isgraph.h
index 486c32d10a11a..bc9ab7dc9954c 100644
--- a/libc/src/ctype/isgraph.h
+++ b/libc/src/ctype/isgraph.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISGRAPH_H
 #define LLVM_LIBC_SRC_CTYPE_ISGRAPH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isgraph(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISGRAPH_H
diff --git a/libc/src/ctype/islower.cpp b/libc/src/ctype/islower.cpp
index bd252e5e6efd1..61ccbcc1db413 100644
--- a/libc/src/ctype/islower.cpp
+++ b/libc/src/ctype/islower.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, islower, (int c)) {
   return static_cast<int>(internal::islower(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/islower.h b/libc/src/ctype/islower.h
index dc59ce9cea438..f279dc7d14c1b 100644
--- a/libc/src/ctype/islower.h
+++ b/libc/src/ctype/islower.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISLOWER_H
 #define LLVM_LIBC_SRC_CTYPE_ISLOWER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int islower(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISLOWER_H
diff --git a/libc/src/ctype/isprint.cpp b/libc/src/ctype/isprint.cpp
index bdf9d083b621b..42ab9cc8d238a 100644
--- a/libc/src/ctype/isprint.cpp
+++ b/libc/src/ctype/isprint.cpp
@@ -9,8 +9,9 @@
 #include "src/ctype/isprint.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, isprint, (int c)) {
   return static_cast<int>((ch - ' ') < 95);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isprint.h b/libc/src/ctype/isprint.h
index 22c835b7987c0..551e2eb006573 100644
--- a/libc/src/ctype/isprint.h
+++ b/libc/src/ctype/isprint.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISPRINT_H
 #define LLVM_LIBC_SRC_CTYPE_ISPRINT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isprint(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISPRINT_H
diff --git a/libc/src/ctype/ispunct.cpp b/libc/src/ctype/ispunct.cpp
index d355c19c426c6..c1906e3acdd80 100644
--- a/libc/src/ctype/ispunct.cpp
+++ b/libc/src/ctype/ispunct.cpp
@@ -10,8 +10,9 @@
 
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, ispunct, (int c)) {
   return static_cast<int>(!internal::isalnum(ch) && internal::isgraph(ch));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/ispunct.h b/libc/src/ctype/ispunct.h
index 7eaa83ac8ae5e..96775f4f68bac 100644
--- a/libc/src/ctype/ispunct.h
+++ b/libc/src/ctype/ispunct.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISPUNCT_H
 #define LLVM_LIBC_SRC_CTYPE_ISPUNCT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int ispunct(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISPUNCT_H
diff --git a/libc/src/ctype/isspace.cpp b/libc/src/ctype/isspace.cpp
index 8c09eda00bc43..f890849378784 100644
--- a/libc/src/ctype/isspace.cpp
+++ b/libc/src/ctype/isspace.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, isspace, (int c)) {
   return static_cast<int>(internal::isspace(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isspace.h b/libc/src/ctype/isspace.h
index 56b70579fad94..f76ae173c1be3 100644
--- a/libc/src/ctype/isspace.h
+++ b/libc/src/ctype/isspace.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISSPACE_H
 #define LLVM_LIBC_SRC_CTYPE_ISSPACE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isspace(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISSPACE_H
diff --git a/libc/src/ctype/isupper.cpp b/libc/src/ctype/isupper.cpp
index b527e3ee53279..8f929ea1a009e 100644
--- a/libc/src/ctype/isupper.cpp
+++ b/libc/src/ctype/isupper.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, isupper, (int c)) {
   return static_cast<int>(internal::isupper(static_cast<unsigned>(c)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isupper.h b/libc/src/ctype/isupper.h
index 8f5ce849f7961..398f65376f0a0 100644
--- a/libc/src/ctype/isupper.h
+++ b/libc/src/ctype/isupper.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISUPPER_H
 #define LLVM_LIBC_SRC_CTYPE_ISUPPER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isupper(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISUPPER_H
diff --git a/libc/src/ctype/isxdigit.cpp b/libc/src/ctype/isxdigit.cpp
index 79152c95986c3..391c5c53cee1e 100644
--- a/libc/src/ctype/isxdigit.cpp
+++ b/libc/src/ctype/isxdigit.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, isxdigit, (int c)) {
   return static_cast<int>(internal::isdigit(ch) || (ch | 32) - 'a' < 6);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/isxdigit.h b/libc/src/ctype/isxdigit.h
index 4966c320341e0..8d0a0993dec8a 100644
--- a/libc/src/ctype/isxdigit.h
+++ b/libc/src/ctype/isxdigit.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_ISXDIGIT_H
 #define LLVM_LIBC_SRC_CTYPE_ISXDIGIT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isxdigit(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_ISXDIGIT_H
diff --git a/libc/src/ctype/toascii.cpp b/libc/src/ctype/toascii.cpp
index 06bf91b171906..53b26b5bdd6d6 100644
--- a/libc/src/ctype/toascii.cpp
+++ b/libc/src/ctype/toascii.cpp
@@ -9,9 +9,10 @@
 #include "src/ctype/toascii.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, toascii, (int c)) { return (c & 0x7f); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/toascii.h b/libc/src/ctype/toascii.h
index 246580e23d5f6..d41e58521ee70 100644
--- a/libc/src/ctype/toascii.h
+++ b/libc/src/ctype/toascii.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_TOASCII_H
 #define LLVM_LIBC_SRC_CTYPE_TOASCII_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int toascii(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_TOASCII_H
diff --git a/libc/src/ctype/tolower.cpp b/libc/src/ctype/tolower.cpp
index 4e8b96dca078f..e230428eef2b1 100644
--- a/libc/src/ctype/tolower.cpp
+++ b/libc/src/ctype/tolower.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
 LLVM_LIBC_FUNCTION(int, tolower, (int c)) { return internal::tolower(c); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/tolower.h b/libc/src/ctype/tolower.h
index 8213da9319af1..d26d0b5f2f57c 100644
--- a/libc/src/ctype/tolower.h
+++ b/libc/src/ctype/tolower.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_TOLOWER_H
 #define LLVM_LIBC_SRC_CTYPE_TOLOWER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int tolower(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_TOLOWER_H
diff --git a/libc/src/ctype/toupper.cpp b/libc/src/ctype/toupper.cpp
index 7b0db35441035..97c1ac2c02b8c 100644
--- a/libc/src/ctype/toupper.cpp
+++ b/libc/src/ctype/toupper.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/ctype_utils.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Currently restricted to default locale.
 // These should be extended using locale information.
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, toupper, (int c)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/ctype/toupper.h b/libc/src/ctype/toupper.h
index b5d8890b2090d..03016873ec3d7 100644
--- a/libc/src/ctype/toupper.h
+++ b/libc/src/ctype/toupper.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_CTYPE_TOUPPER_H
 #define LLVM_LIBC_SRC_CTYPE_TOUPPER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int toupper(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_CTYPE_TOUPPER_H
diff --git a/libc/src/dirent/closedir.cpp b/libc/src/dirent/closedir.cpp
index 22c27c4c0f061..1249ef94cf411 100644
--- a/libc/src/dirent/closedir.cpp
+++ b/libc/src/dirent/closedir.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/File/dir.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, closedir, (::DIR * dir)) {
   auto *d = reinterpret_cast<LIBC_NAMESPACE::Dir *>(dir);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, closedir, (::DIR * dir)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dirent/closedir.h b/libc/src/dirent/closedir.h
index 6d6b898cfe1a9..14df5fe5f4748 100644
--- a/libc/src/dirent/closedir.h
+++ b/libc/src/dirent/closedir.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_DIRENT_CLOSEDIR_H
 #define LLVM_LIBC_SRC_DIRENT_CLOSEDIR_H
 
+#include "src/__support/macros/config.h"
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int closedir(::DIR *dir);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DIRENT_CLOSEDIR_H
diff --git a/libc/src/dirent/dirfd.cpp b/libc/src/dirent/dirfd.cpp
index 27995f6ef3c64..e60a62d4e1445 100644
--- a/libc/src/dirent/dirfd.cpp
+++ b/libc/src/dirent/dirfd.cpp
@@ -10,14 +10,15 @@
 
 #include "src/__support/File/dir.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, dirfd, (::DIR * dir)) {
   auto *d = reinterpret_cast<LIBC_NAMESPACE::Dir *>(dir);
   return d->getfd();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dirent/dirfd.h b/libc/src/dirent/dirfd.h
index 34acb01dd6118..ed037e2edfdd0 100644
--- a/libc/src/dirent/dirfd.h
+++ b/libc/src/dirent/dirfd.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_DIRENT_DIRFD_H
 #define LLVM_LIBC_SRC_DIRENT_DIRFD_H
 
+#include "src/__support/macros/config.h"
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int dirfd(::DIR *dir);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DIRENT_DIRFD_H
diff --git a/libc/src/dirent/opendir.cpp b/libc/src/dirent/opendir.cpp
index 56f7bc8b574f0..fee14ef0f558d 100644
--- a/libc/src/dirent/opendir.cpp
+++ b/libc/src/dirent/opendir.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/File/dir.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(::DIR *, opendir, (const char *name)) {
   auto dir = Dir::open(name);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(::DIR *, opendir, (const char *name)) {
   return reinterpret_cast<DIR *>(dir.value());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dirent/opendir.h b/libc/src/dirent/opendir.h
index 635cb9083d068..a9f33586f2e59 100644
--- a/libc/src/dirent/opendir.h
+++ b/libc/src/dirent/opendir.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_DIRENT_OPENDIR_H
 #define LLVM_LIBC_SRC_DIRENT_OPENDIR_H
 
+#include "src/__support/macros/config.h"
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ::DIR *opendir(const char *name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DIRENT_OPENDIR_H
diff --git a/libc/src/dirent/readdir.cpp b/libc/src/dirent/readdir.cpp
index 448935e3a4ab2..ad460b5e80b8b 100644
--- a/libc/src/dirent/readdir.cpp
+++ b/libc/src/dirent/readdir.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/File/dir.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(struct ::dirent *, readdir, (::DIR * dir)) {
   auto *d = reinterpret_cast<LIBC_NAMESPACE::Dir *>(dir);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(struct ::dirent *, readdir, (::DIR * dir)) {
   return dirent_val.value();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dirent/readdir.h b/libc/src/dirent/readdir.h
index 83c8c56e3f53b..2dcf5360ebd35 100644
--- a/libc/src/dirent/readdir.h
+++ b/libc/src/dirent/readdir.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_DIRENT_READDIR_H
 #define LLVM_LIBC_SRC_DIRENT_READDIR_H
 
+#include "src/__support/macros/config.h"
 #include <dirent.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct ::dirent *readdir(DIR *dir);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DIRENT_READDIR_H
diff --git a/libc/src/dlfcn/dlclose.cpp b/libc/src/dlfcn/dlclose.cpp
index 1f1bfabd79801..e76eb74af681a 100644
--- a/libc/src/dlfcn/dlclose.cpp
+++ b/libc/src/dlfcn/dlclose.cpp
@@ -9,10 +9,11 @@
 #include "dlclose.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO(@izaakschroeder): https://github.com/llvm/llvm-project/issues/97917
 LLVM_LIBC_FUNCTION(int, dlclose, (void *)) { return -1; }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dlfcn/dlclose.h b/libc/src/dlfcn/dlclose.h
index 27c0207d726e4..4a9cb0091c467 100644
--- a/libc/src/dlfcn/dlclose.h
+++ b/libc/src/dlfcn/dlclose.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_DLFCN_DLCLOSE_H
 #define LLVM_LIBC_SRC_DLFCN_DLCLOSE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int dlclose(void *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DLFCN_DLCLOSE_H
diff --git a/libc/src/dlfcn/dlerror.cpp b/libc/src/dlfcn/dlerror.cpp
index 711b5a39420b6..cb2f2f50e2ef6 100644
--- a/libc/src/dlfcn/dlerror.cpp
+++ b/libc/src/dlfcn/dlerror.cpp
@@ -9,12 +9,13 @@
 #include "dlerror.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO(@izaakschroeder): https://github.com/llvm/llvm-project/issues/97918
 LLVM_LIBC_FUNCTION(char *, dlerror, ()) {
   return const_cast<char *>("unsupported");
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dlfcn/dlerror.h b/libc/src/dlfcn/dlerror.h
index 966496016d3eb..79a2f6e114fe0 100644
--- a/libc/src/dlfcn/dlerror.h
+++ b/libc/src/dlfcn/dlerror.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_DLFCN_DLERROR_H
 #define LLVM_LIBC_SRC_DLFCN_DLERROR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *dlerror();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DLFCN_DLERROR_H
diff --git a/libc/src/dlfcn/dlopen.cpp b/libc/src/dlfcn/dlopen.cpp
index 9fa4d061c9c82..9e8d58e347635 100644
--- a/libc/src/dlfcn/dlopen.cpp
+++ b/libc/src/dlfcn/dlopen.cpp
@@ -9,10 +9,11 @@
 #include "dlopen.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO(@izaakschroeder): https://github.com/llvm/llvm-project/issues/97919
 LLVM_LIBC_FUNCTION(void *, dlopen, (const char *, int)) { return nullptr; }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dlfcn/dlopen.h b/libc/src/dlfcn/dlopen.h
index 4565953efd494..607ef7af08c81 100644
--- a/libc/src/dlfcn/dlopen.h
+++ b/libc/src/dlfcn/dlopen.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_DLFCN_DLOPEN_H
 #define LLVM_LIBC_SRC_DLFCN_DLOPEN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 void *dlopen(const char *, int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DLFCN_DLOPEN_H
diff --git a/libc/src/dlfcn/dlsym.cpp b/libc/src/dlfcn/dlsym.cpp
index 4c8dac698f61d..c075c203bd583 100644
--- a/libc/src/dlfcn/dlsym.cpp
+++ b/libc/src/dlfcn/dlsym.cpp
@@ -9,10 +9,11 @@
 #include "dlsym.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO(@izaakschroeder): https://github.com/llvm/llvm-project/issues/97920
 LLVM_LIBC_FUNCTION(void *, dlsym, (void *, const char *)) { return nullptr; }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/dlfcn/dlsym.h b/libc/src/dlfcn/dlsym.h
index 8157ac3e3fd4c..70c6ab3fbb143 100644
--- a/libc/src/dlfcn/dlsym.h
+++ b/libc/src/dlfcn/dlsym.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_DLFCN_DLSYM_H
 #define LLVM_LIBC_SRC_DLFCN_DLSYM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 void *dlsym(void *, const char *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_DLFCN_DLSYM_H
diff --git a/libc/src/errno/libc_errno.cpp b/libc/src/errno/libc_errno.cpp
index bd1438c226143..341636f0495c1 100644
--- a/libc/src/errno/libc_errno.cpp
+++ b/libc/src/errno/libc_errno.cpp
@@ -8,6 +8,7 @@
 
 #include "libc_errno.h"
 #include "src/__support/CPP/atomic.h"
+#include "src/__support/macros/config.h"
 
 #ifdef LIBC_TARGET_ARCH_IS_GPU
 // LIBC_THREAD_LOCAL on GPU currently does nothing. So essentially this is just
@@ -46,7 +47,7 @@ LIBC_NAMESPACE::Errno::operator int() { return errno; }
 
 #endif // LIBC_FULL_BUILD
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 // Define the global `libc_errno` instance.
 Errno libc_errno;
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/errno/libc_errno.h b/libc/src/errno/libc_errno.h
index df67ea3b42faa..8d28a01c8b7bb 100644
--- a/libc/src/errno/libc_errno.h
+++ b/libc/src/errno/libc_errno.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC_ERRNO_LIBC_ERRNO_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #include "hdr/errno_macros.h"
@@ -30,7 +31,7 @@
 // - Use regular `errno` in the code
 // - Still depend on libc.src.errno.errno
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 struct Errno {
   void operator=(int);
   operator int();
@@ -38,6 +39,6 @@ struct Errno {
 
 extern Errno libc_errno;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_ERRNO_LIBC_ERRNO_H
diff --git a/libc/src/fcntl/creat.h b/libc/src/fcntl/creat.h
index fc91a3cc8f677..e180e17c25788 100644
--- a/libc/src/fcntl/creat.h
+++ b/libc/src/fcntl/creat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_FCNTL_CREAT_H
 #define LLVM_LIBC_SRC_FCNTL_CREAT_H
 
+#include "src/__support/macros/config.h"
 #include <fcntl.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int creat(const char *path, int mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FCNTL_CREAT_H
diff --git a/libc/src/fcntl/fcntl.h b/libc/src/fcntl/fcntl.h
index 8fe3fb3146b91..02d7250b632de 100644
--- a/libc/src/fcntl/fcntl.h
+++ b/libc/src/fcntl/fcntl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FCNTL_FCNTL_H
 #define LLVM_LIBC_SRC_FCNTL_FCNTL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fcntl(int fd, int cmd, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FCNTL_FCNTL_H
diff --git a/libc/src/fcntl/linux/creat.cpp b/libc/src/fcntl/linux/creat.cpp
index 0710fab23fe1b..2c5b5d736a3be 100644
--- a/libc/src/fcntl/linux/creat.cpp
+++ b/libc/src/fcntl/linux/creat.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, creat, (const char *path, int mode_flags)) {
 #ifdef SYS_open
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, creat, (const char *path, int mode_flags)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fcntl/linux/fcntl.cpp b/libc/src/fcntl/linux/fcntl.cpp
index 3875889d9d0b9..a0c8459ced342 100644
--- a/libc/src/fcntl/linux/fcntl.cpp
+++ b/libc/src/fcntl/linux/fcntl.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/fcntl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fcntl, (int fd, int cmd, ...)) {
   void *arg;
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, fcntl, (int fd, int cmd, ...)) {
   return LIBC_NAMESPACE::internal::fcntl(fd, cmd, arg);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fcntl/linux/open.cpp b/libc/src/fcntl/linux/open.cpp
index 7394069a7e736..79b7b2b32c887 100644
--- a/libc/src/fcntl/linux/open.cpp
+++ b/libc/src/fcntl/linux/open.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <stdarg.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, open, (const char *path, int flags, ...)) {
   mode_t mode_flags = 0;
@@ -42,4 +43,4 @@ LLVM_LIBC_FUNCTION(int, open, (const char *path, int flags, ...)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fcntl/linux/openat.cpp b/libc/src/fcntl/linux/openat.cpp
index a2f7413ff87bf..0862082c22ebf 100644
--- a/libc/src/fcntl/linux/openat.cpp
+++ b/libc/src/fcntl/linux/openat.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <stdarg.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, openat, (int dfd, const char *path, int flags, ...)) {
   mode_t mode_flags = 0;
@@ -38,4 +39,4 @@ LLVM_LIBC_FUNCTION(int, openat, (int dfd, const char *path, int flags, ...)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fcntl/open.h b/libc/src/fcntl/open.h
index 30950dd828ae3..19bb53c2e3203 100644
--- a/libc/src/fcntl/open.h
+++ b/libc/src/fcntl/open.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_FCNTL_OPEN_H
 #define LLVM_LIBC_SRC_FCNTL_OPEN_H
 
+#include "src/__support/macros/config.h"
 #include <fcntl.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int open(const char *path, int flags, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FCNTL_OPEN_H
diff --git a/libc/src/fcntl/openat.h b/libc/src/fcntl/openat.h
index 5ea5d7f0b65ac..d09791a84f735 100644
--- a/libc/src/fcntl/openat.h
+++ b/libc/src/fcntl/openat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_FCNTL_OPENAT_H
 #define LLVM_LIBC_SRC_FCNTL_OPENAT_H
 
+#include "src/__support/macros/config.h"
 #include <fcntl.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int openat(int dfd, const char *path, int flags, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FCNTL_OPENAT_H
diff --git a/libc/src/fenv/feclearexcept.cpp b/libc/src/fenv/feclearexcept.cpp
index 5eb1b0438b9af..c8a032fe399b9 100644
--- a/libc/src/fenv/feclearexcept.cpp
+++ b/libc/src/fenv/feclearexcept.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/feclearexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feclearexcept, (int e)) {
   return fputil::clear_except(e);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/feclearexcept.h b/libc/src/fenv/feclearexcept.h
index e7df86d0e20d8..19379edbdfe27 100644
--- a/libc/src/fenv/feclearexcept.h
+++ b/libc/src/fenv/feclearexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FECLEAREXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FECLEAREXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int feclearexcept(int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FECLEAREXCEPT_H
diff --git a/libc/src/fenv/fedisableexcept.cpp b/libc/src/fenv/fedisableexcept.cpp
index c715627c395b9..a2a1e97c54a87 100644
--- a/libc/src/fenv/fedisableexcept.cpp
+++ b/libc/src/fenv/fedisableexcept.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/fedisableexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fedisableexcept, (int e)) {
   return fputil::disable_except(e);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fedisableexcept.h b/libc/src/fenv/fedisableexcept.h
index 977fd83262c1e..6aa0981b20557 100644
--- a/libc/src/fenv/fedisableexcept.h
+++ b/libc/src/fenv/fedisableexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FEDISABLEEXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FEDISABLEEXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fedisableexcept(int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEDISABLEEXCEPT_H
diff --git a/libc/src/fenv/feenableexcept.cpp b/libc/src/fenv/feenableexcept.cpp
index cf45b7f1b5f73..468a170919e61 100644
--- a/libc/src/fenv/feenableexcept.cpp
+++ b/libc/src/fenv/feenableexcept.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/feenableexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feenableexcept, (int e)) {
   return fputil::enable_except(e);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/feenableexcept.h b/libc/src/fenv/feenableexcept.h
index a077162479952..0ed19f4dd407f 100644
--- a/libc/src/fenv/feenableexcept.h
+++ b/libc/src/fenv/feenableexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FEENABLEEXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FEENABLEEXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int feenableexcept(int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEENABLEEXCEPT_H
diff --git a/libc/src/fenv/fegetenv.cpp b/libc/src/fenv/fegetenv.cpp
index fbdb7d577b5a5..c692b87c219a6 100644
--- a/libc/src/fenv/fegetenv.cpp
+++ b/libc/src/fenv/fegetenv.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/fegetenv.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fegetenv, (fenv_t * envp)) {
   return fputil::get_env(envp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fegetenv.h b/libc/src/fenv/fegetenv.h
index 8d33029647402..58a5e7db65226 100644
--- a/libc/src/fenv/fegetenv.h
+++ b/libc/src/fenv/fegetenv.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FEGETENV_H
 
 #include "hdr/types/fenv_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fegetenv(fenv_t *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEGETENV_H
diff --git a/libc/src/fenv/fegetexcept.cpp b/libc/src/fenv/fegetexcept.cpp
index edc4faff05282..2b3de83848b91 100644
--- a/libc/src/fenv/fegetexcept.cpp
+++ b/libc/src/fenv/fegetexcept.cpp
@@ -9,9 +9,10 @@
 #include "src/fenv/fegetexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fegetexcept, ()) { return fputil::get_except(); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fegetexcept.h b/libc/src/fenv/fegetexcept.h
index 53ce64872eaf0..eaf48e669e768 100644
--- a/libc/src/fenv/fegetexcept.h
+++ b/libc/src/fenv/fegetexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FEGETEXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FEGETEXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fegetexcept();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEGETEXCEPT_H
diff --git a/libc/src/fenv/fegetexceptflag.cpp b/libc/src/fenv/fegetexceptflag.cpp
index 72f31bf7abd52..58418cc9cc334 100644
--- a/libc/src/fenv/fegetexceptflag.cpp
+++ b/libc/src/fenv/fegetexceptflag.cpp
@@ -10,8 +10,9 @@
 #include "hdr/types/fexcept_t.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fegetexceptflag, (fexcept_t * flagp, int excepts)) {
   static_assert(sizeof(int) >= sizeof(fexcept_t),
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, fegetexceptflag, (fexcept_t * flagp, int excepts)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fegetexceptflag.h b/libc/src/fenv/fegetexceptflag.h
index fcb9598658d43..c427bfbfc48de 100644
--- a/libc/src/fenv/fegetexceptflag.h
+++ b/libc/src/fenv/fegetexceptflag.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FEGETEXCEPTFLAG_H
 
 #include "hdr/types/fexcept_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fegetexceptflag(fexcept_t *, int excepts);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEGETEXCEPTFLAG_H
diff --git a/libc/src/fenv/fegetround.cpp b/libc/src/fenv/fegetround.cpp
index edf6eac0a5b03..4f5caedb77a8c 100644
--- a/libc/src/fenv/fegetround.cpp
+++ b/libc/src/fenv/fegetround.cpp
@@ -9,9 +9,10 @@
 #include "src/fenv/fegetround.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fegetround, ()) { return fputil::get_round(); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fegetround.h b/libc/src/fenv/fegetround.h
index 40be879a66d05..2887c33786d68 100644
--- a/libc/src/fenv/fegetround.h
+++ b/libc/src/fenv/fegetround.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FEGETROUND_H
 #define LLVM_LIBC_SRC_FENV_FEGETROUND_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fegetround();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEGETROUND_H
diff --git a/libc/src/fenv/feholdexcept.cpp b/libc/src/fenv/feholdexcept.cpp
index e5ca257e2be5d..81b3ea435e552 100644
--- a/libc/src/fenv/feholdexcept.cpp
+++ b/libc/src/fenv/feholdexcept.cpp
@@ -10,8 +10,9 @@
 #include "hdr/types/fenv_t.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feholdexcept, (fenv_t * envp)) {
   if (fputil::get_env(envp) != 0)
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, feholdexcept, (fenv_t * envp)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/feholdexcept.h b/libc/src/fenv/feholdexcept.h
index e53619e12feaf..1882538e1292c 100644
--- a/libc/src/fenv/feholdexcept.h
+++ b/libc/src/fenv/feholdexcept.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FEHOLDEXCEPT_H
 
 #include "hdr/types/fenv_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int feholdexcept(fenv_t *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEHOLDEXCEPT_H
diff --git a/libc/src/fenv/feraiseexcept.cpp b/libc/src/fenv/feraiseexcept.cpp
index 0bee7f5f5b923..6eaa09dd49a62 100644
--- a/libc/src/fenv/feraiseexcept.cpp
+++ b/libc/src/fenv/feraiseexcept.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/feraiseexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feraiseexcept, (int e)) {
   return fputil::raise_except(e);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/feraiseexcept.h b/libc/src/fenv/feraiseexcept.h
index a5ab3b93720ef..af62427540830 100644
--- a/libc/src/fenv/feraiseexcept.h
+++ b/libc/src/fenv/feraiseexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FERAISEEXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FERAISEEXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int feraiseexcept(int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FERAISEEXCEPT_H
diff --git a/libc/src/fenv/fesetenv.cpp b/libc/src/fenv/fesetenv.cpp
index 25ac78958cf93..7a9f90a740ded 100644
--- a/libc/src/fenv/fesetenv.cpp
+++ b/libc/src/fenv/fesetenv.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/fesetenv.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fesetenv, (const fenv_t *envp)) {
   return fputil::set_env(envp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fesetenv.h b/libc/src/fenv/fesetenv.h
index 8636711cb1fee..2f42ebc828ae7 100644
--- a/libc/src/fenv/fesetenv.h
+++ b/libc/src/fenv/fesetenv.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FESETENV_H
 
 #include "hdr/types/fenv_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fesetenv(const fenv_t *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FESETENV_H
diff --git a/libc/src/fenv/fesetexcept.cpp b/libc/src/fenv/fesetexcept.cpp
index 9afa7b73b4fb5..87758211b7fe3 100644
--- a/libc/src/fenv/fesetexcept.cpp
+++ b/libc/src/fenv/fesetexcept.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/fesetexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fesetexcept, (int excepts)) {
   return fputil::set_except(excepts);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fesetexcept.h b/libc/src/fenv/fesetexcept.h
index 40a7303efcb0a..7b0d8d3d6c36c 100644
--- a/libc/src/fenv/fesetexcept.h
+++ b/libc/src/fenv/fesetexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FESETEXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FESETEXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fesetexcept(int excepts);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FESETEXCEPT_H
diff --git a/libc/src/fenv/fesetexceptflag.cpp b/libc/src/fenv/fesetexceptflag.cpp
index 628f33dcb9c4b..9cec9d15d9742 100644
--- a/libc/src/fenv/fesetexceptflag.cpp
+++ b/libc/src/fenv/fesetexceptflag.cpp
@@ -10,8 +10,9 @@
 #include "hdr/types/fexcept_t.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fesetexceptflag,
                    (const fexcept_t *flagp, int excepts)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, fesetexceptflag,
   return fputil::set_except(excepts_to_set);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fesetexceptflag.h b/libc/src/fenv/fesetexceptflag.h
index a018358dc9dfc..74564151a52e0 100644
--- a/libc/src/fenv/fesetexceptflag.h
+++ b/libc/src/fenv/fesetexceptflag.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FESETEXCEPTFLAG_H
 
 #include "hdr/types/fexcept_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fesetexceptflag(const fexcept_t *, int excepts);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FESETEXCEPTFLAG_H
diff --git a/libc/src/fenv/fesetround.cpp b/libc/src/fenv/fesetround.cpp
index 22f2b9d1e087e..6f65f9fc4adcf 100644
--- a/libc/src/fenv/fesetround.cpp
+++ b/libc/src/fenv/fesetround.cpp
@@ -9,9 +9,10 @@
 #include "src/fenv/fesetround.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fesetround, (int m)) { return fputil::set_round(m); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fesetround.h b/libc/src/fenv/fesetround.h
index 75023bdb691c4..5b15c4fb0acdd 100644
--- a/libc/src/fenv/fesetround.h
+++ b/libc/src/fenv/fesetround.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FESETROUND_H
 #define LLVM_LIBC_SRC_FENV_FESETROUND_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fesetround(int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FESETROUND_H
diff --git a/libc/src/fenv/fetestexcept.cpp b/libc/src/fenv/fetestexcept.cpp
index c284a2c2a9528..f4986acca6eb8 100644
--- a/libc/src/fenv/fetestexcept.cpp
+++ b/libc/src/fenv/fetestexcept.cpp
@@ -9,11 +9,12 @@
 #include "src/fenv/fetestexcept.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fetestexcept, (int e)) {
   return fputil::test_except(e);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fetestexcept.h b/libc/src/fenv/fetestexcept.h
index dec1ac20cc08b..07f30aef0177d 100644
--- a/libc/src/fenv/fetestexcept.h
+++ b/libc/src/fenv/fetestexcept.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_FENV_FETESTEXCEPT_H
 #define LLVM_LIBC_SRC_FENV_FETESTEXCEPT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fetestexcept(int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FETESTEXCEPT_H
diff --git a/libc/src/fenv/fetestexceptflag.cpp b/libc/src/fenv/fetestexceptflag.cpp
index 63453350a199f..03ba1e6f3f3b4 100644
--- a/libc/src/fenv/fetestexceptflag.cpp
+++ b/libc/src/fenv/fetestexceptflag.cpp
@@ -10,8 +10,9 @@
 #include "hdr/types/fexcept_t.h"
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fetestexceptflag,
                    (const fexcept_t *flagp, int excepts)) {
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, fetestexceptflag,
   return *flagp | fputil::test_except(excepts);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/fetestexceptflag.h b/libc/src/fenv/fetestexceptflag.h
index 1c8b0b843f547..4cf6434703ed4 100644
--- a/libc/src/fenv/fetestexceptflag.h
+++ b/libc/src/fenv/fetestexceptflag.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FETESTEXCEPTFLAG_H
 
 #include "hdr/types/fexcept_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fetestexceptflag(const fexcept_t *, int excepts);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FETESTEXCEPTFLAG_H
diff --git a/libc/src/fenv/feupdateenv.cpp b/libc/src/fenv/feupdateenv.cpp
index 0664863538155..1cc730ca8bed0 100644
--- a/libc/src/fenv/feupdateenv.cpp
+++ b/libc/src/fenv/feupdateenv.cpp
@@ -11,8 +11,9 @@
 #include "src/__support/common.h"
 
 #include "hdr/types/fenv_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feupdateenv, (const fenv_t *envp)) {
   int current_excepts = fputil::test_except(FE_ALL_EXCEPT);
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, feupdateenv, (const fenv_t *envp)) {
   return fputil::raise_except(current_excepts);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/fenv/feupdateenv.h b/libc/src/fenv/feupdateenv.h
index 3c9c88b36e728..52212cba66cc2 100644
--- a/libc/src/fenv/feupdateenv.h
+++ b/libc/src/fenv/feupdateenv.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_FENV_FEUPDATEENV_H
 
 #include "hdr/types/fenv_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int feupdateenv(const fenv_t *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_FENV_FEUPDATEENV_H
diff --git a/libc/src/gpu/rpc_fprintf.cpp b/libc/src/gpu/rpc_fprintf.cpp
index 7b0e60b59baf3..321137ef24955 100644
--- a/libc/src/gpu/rpc_fprintf.cpp
+++ b/libc/src/gpu/rpc_fprintf.cpp
@@ -12,9 +12,10 @@
 #include "src/__support/GPU/utils.h"
 #include "src/__support/RPC/rpc_client.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/gpu/file.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <uint16_t opcode>
 int fprintf_impl(::FILE *__restrict file, const char *__restrict format,
@@ -68,4 +69,4 @@ LLVM_LIBC_FUNCTION(int, rpc_fprintf,
                                               args, size);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/gpu/rpc_fprintf.h b/libc/src/gpu/rpc_fprintf.h
index 3292ce2d4b1ec..7658b214c07c2 100644
--- a/libc/src/gpu/rpc_fprintf.h
+++ b/libc/src/gpu/rpc_fprintf.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_GPU_RPC_HOST_CALL_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int rpc_fprintf(::FILE *__restrict stream, const char *__restrict format,
                 void *argc, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_GPU_RPC_HOST_CALL_H
diff --git a/libc/src/gpu/rpc_host_call.cpp b/libc/src/gpu/rpc_host_call.cpp
index 7b9b9f2adfd53..ca2e331340a6c 100644
--- a/libc/src/gpu/rpc_host_call.cpp
+++ b/libc/src/gpu/rpc_host_call.cpp
@@ -11,8 +11,9 @@
 #include "src/__support/GPU/utils.h"
 #include "src/__support/RPC/rpc_client.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This calls the associated function pointer on the RPC server with the given
 // arguments. We expect that the pointer here is a valid pointer on the server.
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(void, rpc_host_call, (void *fn, void *data, size_t size)) {
   port.close();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/gpu/rpc_host_call.h b/libc/src/gpu/rpc_host_call.h
index 473d90ba48fd0..7cfea757ccdfd 100644
--- a/libc/src/gpu/rpc_host_call.h
+++ b/libc/src/gpu/rpc_host_call.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_GPU_RPC_HOST_CALL_H
 #define LLVM_LIBC_SRC_GPU_RPC_HOST_CALL_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void rpc_host_call(void *fn, void *buffer, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_GPU_RPC_HOST_CALL_H
diff --git a/libc/src/inttypes/imaxabs.cpp b/libc/src/inttypes/imaxabs.cpp
index b390676f9dde2..385fd9b131713 100644
--- a/libc/src/inttypes/imaxabs.cpp
+++ b/libc/src/inttypes/imaxabs.cpp
@@ -9,9 +9,10 @@
 #include "src/inttypes/imaxabs.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(intmax_t, imaxabs, (intmax_t j)) { return integer_abs(j); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/inttypes/imaxabs.h b/libc/src/inttypes/imaxabs.h
index cd30011b9e57a..4cc39e295d486 100644
--- a/libc/src/inttypes/imaxabs.h
+++ b/libc/src/inttypes/imaxabs.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_INTTYPES_IMAXABS_H
 #define LLVM_LIBC_SRC_INTTYPES_IMAXABS_H
 
+#include "src/__support/macros/config.h"
 #include <inttypes.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 intmax_t imaxabs(intmax_t j);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_INTTYPES_IMAXABS_H
diff --git a/libc/src/inttypes/imaxdiv.cpp b/libc/src/inttypes/imaxdiv.cpp
index 77f0cc58a897c..4b878d55c881c 100644
--- a/libc/src/inttypes/imaxdiv.cpp
+++ b/libc/src/inttypes/imaxdiv.cpp
@@ -9,8 +9,9 @@
 #include "src/inttypes/imaxdiv.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(imaxdiv_t, imaxdiv, (intmax_t x, intmax_t y)) {
   imaxdiv_t res;
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(imaxdiv_t, imaxdiv, (intmax_t x, intmax_t y)) {
   return res;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/inttypes/imaxdiv.h b/libc/src/inttypes/imaxdiv.h
index 749122782347c..6dbefafc0fa1c 100644
--- a/libc/src/inttypes/imaxdiv.h
+++ b/libc/src/inttypes/imaxdiv.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_INTTYPES_IMAXDIV_H
 #define LLVM_LIBC_SRC_INTTYPES_IMAXDIV_H
 
+#include "src/__support/macros/config.h"
 #include <inttypes.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 imaxdiv_t imaxdiv(intmax_t x, intmax_t y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_INTTYPES_IMAXDIV_H
diff --git a/libc/src/inttypes/strtoimax.cpp b/libc/src/inttypes/strtoimax.cpp
index 459877eeff472..85f197c75d90c 100644
--- a/libc/src/inttypes/strtoimax.cpp
+++ b/libc/src/inttypes/strtoimax.cpp
@@ -8,10 +8,11 @@
 
 #include "src/inttypes/strtoimax.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(intmax_t, strtoimax,
                    (const char *__restrict str, char **__restrict str_end,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(intmax_t, strtoimax,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/inttypes/strtoimax.h b/libc/src/inttypes/strtoimax.h
index b72547f3d22f6..804d07c219aad 100644
--- a/libc/src/inttypes/strtoimax.h
+++ b/libc/src/inttypes/strtoimax.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_INTTYPES_STRTOIMAX_H
 #define LLVM_LIBC_SRC_INTTYPES_STRTOIMAX_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 intmax_t strtoimax(const char *__restrict str, char **__restrict str_end,
                    int base);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_INTTYPES_STRTOIMAX_H
diff --git a/libc/src/inttypes/strtoumax.cpp b/libc/src/inttypes/strtoumax.cpp
index 4011a177b81fe..2e9cbc9acba75 100644
--- a/libc/src/inttypes/strtoumax.cpp
+++ b/libc/src/inttypes/strtoumax.cpp
@@ -8,10 +8,11 @@
 
 #include "src/inttypes/strtoumax.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uintmax_t, strtoumax,
                    (const char *__restrict str, char **__restrict str_end,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(uintmax_t, strtoumax,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/inttypes/strtoumax.h b/libc/src/inttypes/strtoumax.h
index d59e9932da519..4c53c0362b9e5 100644
--- a/libc/src/inttypes/strtoumax.h
+++ b/libc/src/inttypes/strtoumax.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_INTTYPES_STRTOUMAX_H
 #define LLVM_LIBC_SRC_INTTYPES_STRTOUMAX_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uintmax_t strtoumax(const char *__restrict str, char **__restrict str_end,
                     int base);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_INTTYPES_STRTOUMAX_H
diff --git a/libc/src/math/aarch64/ceil.cpp b/libc/src/math/aarch64/ceil.cpp
index 81cd95078efee..5bfd053d603de 100644
--- a/libc/src/math/aarch64/ceil.cpp
+++ b/libc/src/math/aarch64/ceil.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/ceil.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ceil, (double x)) {
   double y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(double, ceil, (double x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/ceilf.cpp b/libc/src/math/aarch64/ceilf.cpp
index 3cbcc1f0e90d8..2352245bc8303 100644
--- a/libc/src/math/aarch64/ceilf.cpp
+++ b/libc/src/math/aarch64/ceilf.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/ceilf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ceilf, (float x)) {
   float y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(float, ceilf, (float x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/floor.cpp b/libc/src/math/aarch64/floor.cpp
index 0e3d13a13a95c..f9da52bdd45a8 100644
--- a/libc/src/math/aarch64/floor.cpp
+++ b/libc/src/math/aarch64/floor.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/floor.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, floor, (double x)) {
   double y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(double, floor, (double x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/floorf.cpp b/libc/src/math/aarch64/floorf.cpp
index 8942a9e7c576e..980b3c52a00b5 100644
--- a/libc/src/math/aarch64/floorf.cpp
+++ b/libc/src/math/aarch64/floorf.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/floorf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, floorf, (float x)) {
   float y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(float, floorf, (float x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/round.cpp b/libc/src/math/aarch64/round.cpp
index 8972c16c57167..c85445aa19ab5 100644
--- a/libc/src/math/aarch64/round.cpp
+++ b/libc/src/math/aarch64/round.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/round.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, round, (double x)) {
   double y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(double, round, (double x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/roundf.cpp b/libc/src/math/aarch64/roundf.cpp
index 8b3a9cf50e601..0c7f7640e8278 100644
--- a/libc/src/math/aarch64/roundf.cpp
+++ b/libc/src/math/aarch64/roundf.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/roundf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, roundf, (float x)) {
   float y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(float, roundf, (float x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/trunc.cpp b/libc/src/math/aarch64/trunc.cpp
index 34ffd1702f5a6..1ef26f44fd234 100644
--- a/libc/src/math/aarch64/trunc.cpp
+++ b/libc/src/math/aarch64/trunc.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/trunc.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, trunc, (double x)) {
   double y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(double, trunc, (double x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/aarch64/truncf.cpp b/libc/src/math/aarch64/truncf.cpp
index fc2426f26df24..0c64ef60e91c4 100644
--- a/libc/src/math/aarch64/truncf.cpp
+++ b/libc/src/math/aarch64/truncf.cpp
@@ -8,8 +8,9 @@
 
 #include "src/math/truncf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, truncf, (float x)) {
   float y;
@@ -17,4 +18,4 @@ LLVM_LIBC_FUNCTION(float, truncf, (float x)) {
   return y;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/acos.h b/libc/src/math/acos.h
index da89a9dd3d9d4..fed59e2b67de8 100644
--- a/libc/src/math/acos.h
+++ b/libc/src/math/acos.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ACOS_H
 #define LLVM_LIBC_SRC_MATH_ACOS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double acos(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ACOS_H
diff --git a/libc/src/math/acosf.h b/libc/src/math/acosf.h
index 3221efa340a9d..839f7dfa7483c 100644
--- a/libc/src/math/acosf.h
+++ b/libc/src/math/acosf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ACOSF_H
 #define LLVM_LIBC_SRC_MATH_ACOSF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float acosf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ACOSF_H
diff --git a/libc/src/math/acosh.h b/libc/src/math/acosh.h
index a5bbd82c120b8..7d59b6c9241d3 100644
--- a/libc/src/math/acosh.h
+++ b/libc/src/math/acosh.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ACOSH_H
 #define LLVM_LIBC_SRC_MATH_ACOSH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double acosh(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ACOSH_H
diff --git a/libc/src/math/acoshf.h b/libc/src/math/acoshf.h
index aac43b4ccca8d..a6f08bd9c68ec 100644
--- a/libc/src/math/acoshf.h
+++ b/libc/src/math/acoshf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ACOSHF_H
 #define LLVM_LIBC_SRC_MATH_ACOSHF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float acoshf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ACOSHF_H
diff --git a/libc/src/math/amdgpu/acos.cpp b/libc/src/math/amdgpu/acos.cpp
index b1e30fef82ded..de870f207326e 100644
--- a/libc/src/math/amdgpu/acos.cpp
+++ b/libc/src/math/amdgpu/acos.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, acos, (double x)) { return __ocml_acos_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/acosf.cpp b/libc/src/math/amdgpu/acosf.cpp
index 4c2dd4bcf4353..0a72a70a3ee9d 100644
--- a/libc/src/math/amdgpu/acosf.cpp
+++ b/libc/src/math/amdgpu/acosf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, acosf, (float x)) { return __ocml_acos_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/acosh.cpp b/libc/src/math/amdgpu/acosh.cpp
index dcdeeab29454e..15c9734499832 100644
--- a/libc/src/math/amdgpu/acosh.cpp
+++ b/libc/src/math/amdgpu/acosh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, acosh, (double x)) { return __ocml_acosh_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/acoshf.cpp b/libc/src/math/amdgpu/acoshf.cpp
index 52baa2eaecc79..79e71b02e7198 100644
--- a/libc/src/math/amdgpu/acoshf.cpp
+++ b/libc/src/math/amdgpu/acoshf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, acoshf, (float x)) { return __ocml_acosh_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/asin.cpp b/libc/src/math/amdgpu/asin.cpp
index 835c317112e2e..a79641e1977cb 100644
--- a/libc/src/math/amdgpu/asin.cpp
+++ b/libc/src/math/amdgpu/asin.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, asin, (double x)) { return __ocml_asin_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/asinf.cpp b/libc/src/math/amdgpu/asinf.cpp
index 72c45d5cf1723..e70944a4d9890 100644
--- a/libc/src/math/amdgpu/asinf.cpp
+++ b/libc/src/math/amdgpu/asinf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, asinf, (float x)) { return __ocml_asin_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/asinh.cpp b/libc/src/math/amdgpu/asinh.cpp
index 7a9f7ea4e9887..642368592a99b 100644
--- a/libc/src/math/amdgpu/asinh.cpp
+++ b/libc/src/math/amdgpu/asinh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, asinh, (double x)) { return __ocml_asinh_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/asinhf.cpp b/libc/src/math/amdgpu/asinhf.cpp
index 28d6bde5c9184..bafa77f946000 100644
--- a/libc/src/math/amdgpu/asinhf.cpp
+++ b/libc/src/math/amdgpu/asinhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, asinhf, (float x)) { return __ocml_asinh_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/atan.cpp b/libc/src/math/amdgpu/atan.cpp
index a1fa38ba451de..49941e97096f7 100644
--- a/libc/src/math/amdgpu/atan.cpp
+++ b/libc/src/math/amdgpu/atan.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atan, (double x)) { return __ocml_atan_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/atan2.cpp b/libc/src/math/amdgpu/atan2.cpp
index 9cfdba75eb8d6..f5907504cb364 100644
--- a/libc/src/math/amdgpu/atan2.cpp
+++ b/libc/src/math/amdgpu/atan2.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atan2, (double x, double y)) {
   return __ocml_atan2_f64(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/atan2f.cpp b/libc/src/math/amdgpu/atan2f.cpp
index ef56293b4caf5..736c77d1cbce9 100644
--- a/libc/src/math/amdgpu/atan2f.cpp
+++ b/libc/src/math/amdgpu/atan2f.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atan2f, (float x, float y)) {
   return __ocml_atan2_f32(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/atanf.cpp b/libc/src/math/amdgpu/atanf.cpp
index bbcceca3ed092..ab1837dd026b7 100644
--- a/libc/src/math/amdgpu/atanf.cpp
+++ b/libc/src/math/amdgpu/atanf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanf, (float x)) { return __ocml_atan_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/atanh.cpp b/libc/src/math/amdgpu/atanh.cpp
index ec462586450bf..091c155190f94 100644
--- a/libc/src/math/amdgpu/atanh.cpp
+++ b/libc/src/math/amdgpu/atanh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atanh, (double x)) { return __ocml_atanh_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/atanhf.cpp b/libc/src/math/amdgpu/atanhf.cpp
index 227269369ab6b..fa9cf39383963 100644
--- a/libc/src/math/amdgpu/atanhf.cpp
+++ b/libc/src/math/amdgpu/atanhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanhf, (float x)) { return __ocml_atanh_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/ceil.cpp b/libc/src/math/amdgpu/ceil.cpp
index ad1407d61f620..8834c7b560a1b 100644
--- a/libc/src/math/amdgpu/ceil.cpp
+++ b/libc/src/math/amdgpu/ceil.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/ceil.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ceil, (double x)) { return __builtin_ceil(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/ceilf.cpp b/libc/src/math/amdgpu/ceilf.cpp
index c4fc58d936038..5d26a30c849cd 100644
--- a/libc/src/math/amdgpu/ceilf.cpp
+++ b/libc/src/math/amdgpu/ceilf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/ceilf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ceilf, (float x)) { return __builtin_ceilf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/copysign.cpp b/libc/src/math/amdgpu/copysign.cpp
index 6f804bdb90a1f..06ef36fb3595f 100644
--- a/libc/src/math/amdgpu/copysign.cpp
+++ b/libc/src/math/amdgpu/copysign.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/copysign.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, copysign, (double x, double y)) {
   return __builtin_copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/copysignf.cpp b/libc/src/math/amdgpu/copysignf.cpp
index 4d7e132462ac9..aea94f3577d8f 100644
--- a/libc/src/math/amdgpu/copysignf.cpp
+++ b/libc/src/math/amdgpu/copysignf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/copysignf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, copysignf, (float x, float y)) {
   return __builtin_copysignf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/cos.cpp b/libc/src/math/amdgpu/cos.cpp
index 68239d9337801..a4d4c94dd7ac7 100644
--- a/libc/src/math/amdgpu/cos.cpp
+++ b/libc/src/math/amdgpu/cos.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, cos, (double x)) { return __ocml_cos_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/cosf.cpp b/libc/src/math/amdgpu/cosf.cpp
index a60e9ea28907c..99ec1185a8346 100644
--- a/libc/src/math/amdgpu/cosf.cpp
+++ b/libc/src/math/amdgpu/cosf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, cosf, (float x)) { return __ocml_cos_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/cosh.cpp b/libc/src/math/amdgpu/cosh.cpp
index b71df0c0170c3..d94d7af251261 100644
--- a/libc/src/math/amdgpu/cosh.cpp
+++ b/libc/src/math/amdgpu/cosh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, cosh, (double x)) { return __ocml_cosh_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/coshf.cpp b/libc/src/math/amdgpu/coshf.cpp
index 699fb0478aee8..5b641be27818a 100644
--- a/libc/src/math/amdgpu/coshf.cpp
+++ b/libc/src/math/amdgpu/coshf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, coshf, (float x)) { return __ocml_cosh_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/declarations.h b/libc/src/math/amdgpu/declarations.h
index 81d788d943f22..98c14ee43cd19 100644
--- a/libc/src/math/amdgpu/declarations.h
+++ b/libc/src/math/amdgpu/declarations.h
@@ -12,8 +12,9 @@
 #include "platform.h"
 
 #include "src/__support/GPU/utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" {
 float __ocml_acos_f32(float);
@@ -83,6 +84,6 @@ double __ocml_tgamma_f64(double);
 float __ocml_tgamma_f32(float);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_AMDGPU_DECLARATIONS_H
diff --git a/libc/src/math/amdgpu/erf.cpp b/libc/src/math/amdgpu/erf.cpp
index 7a464550c7e06..07ae268ff2cdc 100644
--- a/libc/src/math/amdgpu/erf.cpp
+++ b/libc/src/math/amdgpu/erf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, erf, (double x)) { return __ocml_erf_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/erff.cpp b/libc/src/math/amdgpu/erff.cpp
index 1f77d08585a3d..a4b7b275cfcc2 100644
--- a/libc/src/math/amdgpu/erff.cpp
+++ b/libc/src/math/amdgpu/erff.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, erff, (float x)) { return __ocml_erf_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/exp.cpp b/libc/src/math/amdgpu/exp.cpp
index d19c73dd02426..dae79bec5599b 100644
--- a/libc/src/math/amdgpu/exp.cpp
+++ b/libc/src/math/amdgpu/exp.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, exp, (double x)) { return __ocml_exp_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/exp10.cpp b/libc/src/math/amdgpu/exp10.cpp
index 17d8f3350ac24..f13d218ca88c4 100644
--- a/libc/src/math/amdgpu/exp10.cpp
+++ b/libc/src/math/amdgpu/exp10.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, exp10, (double x)) { return __ocml_exp10_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/exp10f.cpp b/libc/src/math/amdgpu/exp10f.cpp
index ddab555a8fbd3..883e734e06877 100644
--- a/libc/src/math/amdgpu/exp10f.cpp
+++ b/libc/src/math/amdgpu/exp10f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, exp10f, (float x)) { return __ocml_exp10_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/exp2.cpp b/libc/src/math/amdgpu/exp2.cpp
index dfbb1f80d1294..fb336cf48f157 100644
--- a/libc/src/math/amdgpu/exp2.cpp
+++ b/libc/src/math/amdgpu/exp2.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, exp2, (double x)) { return __ocml_exp2_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/exp2f.cpp b/libc/src/math/amdgpu/exp2f.cpp
index 016dfe3a62223..77b4a9c3b86e7 100644
--- a/libc/src/math/amdgpu/exp2f.cpp
+++ b/libc/src/math/amdgpu/exp2f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, exp2f, (float x)) { return __ocml_exp2_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/expf.cpp b/libc/src/math/amdgpu/expf.cpp
index 33393078cfa3a..6c44aad164bfd 100644
--- a/libc/src/math/amdgpu/expf.cpp
+++ b/libc/src/math/amdgpu/expf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, expf, (float x)) { return __ocml_exp_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/expm1.cpp b/libc/src/math/amdgpu/expm1.cpp
index d2ac28ae6a3e2..df3643f9c78b5 100644
--- a/libc/src/math/amdgpu/expm1.cpp
+++ b/libc/src/math/amdgpu/expm1.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, expm1, (double x)) { return __ocml_expm1_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/expm1f.cpp b/libc/src/math/amdgpu/expm1f.cpp
index 0ffe1a362af12..2409997f479c3 100644
--- a/libc/src/math/amdgpu/expm1f.cpp
+++ b/libc/src/math/amdgpu/expm1f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, expm1f, (float x)) { return __ocml_expm1_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fabs.cpp b/libc/src/math/amdgpu/fabs.cpp
index c0d063d50ae53..bb37596b9d563 100644
--- a/libc/src/math/amdgpu/fabs.cpp
+++ b/libc/src/math/amdgpu/fabs.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/fabs.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fabs, (double x)) { return __builtin_fabs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fabsf.cpp b/libc/src/math/amdgpu/fabsf.cpp
index 398ffd0c74c07..2698618f3f1e1 100644
--- a/libc/src/math/amdgpu/fabsf.cpp
+++ b/libc/src/math/amdgpu/fabsf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/fabsf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fabsf, (float x)) { return __builtin_fabsf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fdim.cpp b/libc/src/math/amdgpu/fdim.cpp
index f16942dc61934..8ade0b21503b1 100644
--- a/libc/src/math/amdgpu/fdim.cpp
+++ b/libc/src/math/amdgpu/fdim.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fdim, (double x, double y)) {
   return __ocml_fdim_f64(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fdimf.cpp b/libc/src/math/amdgpu/fdimf.cpp
index eccb441f14556..ed3855e5ce2d6 100644
--- a/libc/src/math/amdgpu/fdimf.cpp
+++ b/libc/src/math/amdgpu/fdimf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fdimf, (float x, float y)) {
   return __ocml_fdim_f32(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/floor.cpp b/libc/src/math/amdgpu/floor.cpp
index eada89c178d75..564efa9a7da38 100644
--- a/libc/src/math/amdgpu/floor.cpp
+++ b/libc/src/math/amdgpu/floor.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/floor.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, floor, (double x)) { return __builtin_floor(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/floorf.cpp b/libc/src/math/amdgpu/floorf.cpp
index a5611c515a88d..6717c8f60c992 100644
--- a/libc/src/math/amdgpu/floorf.cpp
+++ b/libc/src/math/amdgpu/floorf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/floorf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, floorf, (float x)) { return __builtin_floorf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fma.cpp b/libc/src/math/amdgpu/fma.cpp
index 41a6ddf60dbc3..c4a117e42a3aa 100644
--- a/libc/src/math/amdgpu/fma.cpp
+++ b/libc/src/math/amdgpu/fma.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fma.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fma, (double x, double y, double z)) {
   return __builtin_fma(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fmaf.cpp b/libc/src/math/amdgpu/fmaf.cpp
index c948e32f77eb9..c088bd5b30fea 100644
--- a/libc/src/math/amdgpu/fmaf.cpp
+++ b/libc/src/math/amdgpu/fmaf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fmaf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaf, (float x, float y, float z)) {
   return __builtin_fmaf(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fmax.cpp b/libc/src/math/amdgpu/fmax.cpp
index 09f0f942a042a..474019733598f 100644
--- a/libc/src/math/amdgpu/fmax.cpp
+++ b/libc/src/math/amdgpu/fmax.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmax, (double x, double y)) {
   return __builtin_fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fmaxf.cpp b/libc/src/math/amdgpu/fmaxf.cpp
index 5913a85df6370..59ee8259c025a 100644
--- a/libc/src/math/amdgpu/fmaxf.cpp
+++ b/libc/src/math/amdgpu/fmaxf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaxf.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaxf, (float x, float y)) {
   return __builtin_fmaxf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fmin.cpp b/libc/src/math/amdgpu/fmin.cpp
index 0d6f3521dcb70..694eb664b599b 100644
--- a/libc/src/math/amdgpu/fmin.cpp
+++ b/libc/src/math/amdgpu/fmin.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmin.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmin, (double x, double y)) {
   return __builtin_fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fminf.cpp b/libc/src/math/amdgpu/fminf.cpp
index 42744abfb3b02..2060b71b0841f 100644
--- a/libc/src/math/amdgpu/fminf.cpp
+++ b/libc/src/math/amdgpu/fminf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminf.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminf, (float x, float y)) {
   return __builtin_fminf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fmod.cpp b/libc/src/math/amdgpu/fmod.cpp
index 0654cdd2abe08..49d19c4decb96 100644
--- a/libc/src/math/amdgpu/fmod.cpp
+++ b/libc/src/math/amdgpu/fmod.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fmod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmod, (double x, double y)) {
   return __builtin_fmod(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/fmodf.cpp b/libc/src/math/amdgpu/fmodf.cpp
index b689046468fbe..8fbcb0cc2ad9e 100644
--- a/libc/src/math/amdgpu/fmodf.cpp
+++ b/libc/src/math/amdgpu/fmodf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fmodf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmodf, (float x, float y)) {
   return __builtin_fmodf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/frexp.cpp b/libc/src/math/amdgpu/frexp.cpp
index 0acf97342fa08..00e5187c0c719 100644
--- a/libc/src/math/amdgpu/frexp.cpp
+++ b/libc/src/math/amdgpu/frexp.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, frexp, (double x, int *p)) {
   return __builtin_frexp(x, p);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/frexpf.cpp b/libc/src/math/amdgpu/frexpf.cpp
index d870bf3095b25..2799e542efae2 100644
--- a/libc/src/math/amdgpu/frexpf.cpp
+++ b/libc/src/math/amdgpu/frexpf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, frexpf, (float x, int *p)) {
   return __builtin_frexpf(x, p);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/hypot.cpp b/libc/src/math/amdgpu/hypot.cpp
index ffc13504c8f41..dcf1152a75160 100644
--- a/libc/src/math/amdgpu/hypot.cpp
+++ b/libc/src/math/amdgpu/hypot.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, hypot, (double x, double y)) {
   return __ocml_hypot_f64(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/hypotf.cpp b/libc/src/math/amdgpu/hypotf.cpp
index 811fc540488d3..68ec659d12e5b 100644
--- a/libc/src/math/amdgpu/hypotf.cpp
+++ b/libc/src/math/amdgpu/hypotf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, hypotf, (float x, float y)) {
   return __ocml_hypot_f32(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/ilogb.cpp b/libc/src/math/amdgpu/ilogb.cpp
index 4479908d38564..37f24dfd8c39c 100644
--- a/libc/src/math/amdgpu/ilogb.cpp
+++ b/libc/src/math/amdgpu/ilogb.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogb, (double x)) { return __ocml_ilogb_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/ilogbf.cpp b/libc/src/math/amdgpu/ilogbf.cpp
index cded285c72f38..56e74e1575f1d 100644
--- a/libc/src/math/amdgpu/ilogbf.cpp
+++ b/libc/src/math/amdgpu/ilogbf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogbf, (float x)) { return __ocml_ilogb_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/ldexp.cpp b/libc/src/math/amdgpu/ldexp.cpp
index 70c5b0d6e555f..393eabb84e61b 100644
--- a/libc/src/math/amdgpu/ldexp.cpp
+++ b/libc/src/math/amdgpu/ldexp.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ldexp, (double x, int y)) {
   return __builtin_ldexp(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/ldexpf.cpp b/libc/src/math/amdgpu/ldexpf.cpp
index 8dc7c132ee213..970603dd170eb 100644
--- a/libc/src/math/amdgpu/ldexpf.cpp
+++ b/libc/src/math/amdgpu/ldexpf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ldexpf, (float x, int y)) {
   return __builtin_ldexpf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/llrint.cpp b/libc/src/math/amdgpu/llrint.cpp
index 307420a9b8b26..21129fe80a0c1 100644
--- a/libc/src/math/amdgpu/llrint.cpp
+++ b/libc/src/math/amdgpu/llrint.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrint, (double x)) {
   return static_cast<long long>(__builtin_rint(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/llrintf.cpp b/libc/src/math/amdgpu/llrintf.cpp
index 23404990fb1bd..a6f9f43876010 100644
--- a/libc/src/math/amdgpu/llrintf.cpp
+++ b/libc/src/math/amdgpu/llrintf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrintf, (float x)) {
   return static_cast<long long>(__builtin_rintf(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log.cpp b/libc/src/math/amdgpu/log.cpp
index 3f2489580356f..bd01adfa08a4d 100644
--- a/libc/src/math/amdgpu/log.cpp
+++ b/libc/src/math/amdgpu/log.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log, (double x)) { return __ocml_log_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log10.cpp b/libc/src/math/amdgpu/log10.cpp
index d522d5e84291d..75957c9aeb506 100644
--- a/libc/src/math/amdgpu/log10.cpp
+++ b/libc/src/math/amdgpu/log10.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log10, (double x)) { return __ocml_log10_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log10f.cpp b/libc/src/math/amdgpu/log10f.cpp
index 47b9b162ad9db..9c12d6b11bcf0 100644
--- a/libc/src/math/amdgpu/log10f.cpp
+++ b/libc/src/math/amdgpu/log10f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log10f, (float x)) { return __ocml_log10_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log1p.cpp b/libc/src/math/amdgpu/log1p.cpp
index fae60e4485861..fc275196830f6 100644
--- a/libc/src/math/amdgpu/log1p.cpp
+++ b/libc/src/math/amdgpu/log1p.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log1p, (double x)) { return __ocml_log1p_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log1pf.cpp b/libc/src/math/amdgpu/log1pf.cpp
index e7b1772158fcd..b2d26fb1166fc 100644
--- a/libc/src/math/amdgpu/log1pf.cpp
+++ b/libc/src/math/amdgpu/log1pf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log1pf, (float x)) { return __ocml_log1p_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log2.cpp b/libc/src/math/amdgpu/log2.cpp
index 9d84f62dff6fc..73f34b65a32f7 100644
--- a/libc/src/math/amdgpu/log2.cpp
+++ b/libc/src/math/amdgpu/log2.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log2, (double x)) { return __ocml_log2_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/log2f.cpp b/libc/src/math/amdgpu/log2f.cpp
index 7742a6141c37d..3b62edacfa656 100644
--- a/libc/src/math/amdgpu/log2f.cpp
+++ b/libc/src/math/amdgpu/log2f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log2f, (float x)) { return __ocml_log2_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/logb.cpp b/libc/src/math/amdgpu/logb.cpp
index 1344fbb182af6..4b68e281be874 100644
--- a/libc/src/math/amdgpu/logb.cpp
+++ b/libc/src/math/amdgpu/logb.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, logb, (double x)) { return __ocml_logb_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/logbf.cpp b/libc/src/math/amdgpu/logbf.cpp
index fdb493fe28daf..bc7c462c7f927 100644
--- a/libc/src/math/amdgpu/logbf.cpp
+++ b/libc/src/math/amdgpu/logbf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, logbf, (float x)) { return __ocml_logb_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/logf.cpp b/libc/src/math/amdgpu/logf.cpp
index d4d4b265ee5cd..17925672ef32f 100644
--- a/libc/src/math/amdgpu/logf.cpp
+++ b/libc/src/math/amdgpu/logf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, logf, (float x)) { return __ocml_log_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/lrint.cpp b/libc/src/math/amdgpu/lrint.cpp
index b335b4f06393c..715b552575789 100644
--- a/libc/src/math/amdgpu/lrint.cpp
+++ b/libc/src/math/amdgpu/lrint.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrint, (double x)) {
   return static_cast<long>(__builtin_rint(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/lrintf.cpp b/libc/src/math/amdgpu/lrintf.cpp
index 7959e76728a43..387063803f27f 100644
--- a/libc/src/math/amdgpu/lrintf.cpp
+++ b/libc/src/math/amdgpu/lrintf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrintf, (float x)) {
   return static_cast<long>(__builtin_rintf(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/nearbyint.cpp b/libc/src/math/amdgpu/nearbyint.cpp
index 9c7b600df7082..7d78c7241d023 100644
--- a/libc/src/math/amdgpu/nearbyint.cpp
+++ b/libc/src/math/amdgpu/nearbyint.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/nearbyint.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nearbyint, (double x)) {
   return __builtin_nearbyint(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/nearbyintf.cpp b/libc/src/math/amdgpu/nearbyintf.cpp
index 7fbe9f4f0e0be..4bd20dc58fb89 100644
--- a/libc/src/math/amdgpu/nearbyintf.cpp
+++ b/libc/src/math/amdgpu/nearbyintf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/nearbyintf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nearbyintf, (float x)) {
   return __builtin_nearbyintf(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/nextafter.cpp b/libc/src/math/amdgpu/nextafter.cpp
index 5c74ef165268b..226b8a5a12547 100644
--- a/libc/src/math/amdgpu/nextafter.cpp
+++ b/libc/src/math/amdgpu/nextafter.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nextafter, (double x, double y)) {
   return __ocml_nextafter_f64(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/nextafterf.cpp b/libc/src/math/amdgpu/nextafterf.cpp
index a97b990a61fcd..7bed2c17b6e12 100644
--- a/libc/src/math/amdgpu/nextafterf.cpp
+++ b/libc/src/math/amdgpu/nextafterf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nextafterf, (float x, float y)) {
   return __ocml_nextafter_f32(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/platform.h b/libc/src/math/amdgpu/platform.h
index 29d6cac1fa492..472a9830e8bb3 100644
--- a/libc/src/math/amdgpu/platform.h
+++ b/libc/src/math/amdgpu/platform.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC_MATH_AMDGPU_PLATFORM_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The ROCm device library uses control globals to alter codegen for the
 // different targets. To avoid needing to link them in manually we simply
@@ -49,6 +50,6 @@ extern const LIBC_INLINE_VAR uint32_t __oclc_ISA_version = 9000;
 [[gnu::alias("__oclc_finite_only_opt")]] const uint8_t __oclc_finite_only_opt__;
 [[gnu::alias("__oclc_ISA_version")]] const uint32_t __oclc_ISA_version__;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_AMDGPU_PLATFORM_H
diff --git a/libc/src/math/amdgpu/pow.cpp b/libc/src/math/amdgpu/pow.cpp
index e5056f67292d5..979ad6cda6ef0 100644
--- a/libc/src/math/amdgpu/pow.cpp
+++ b/libc/src/math/amdgpu/pow.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, pow, (double x, double y)) {
   return __ocml_pow_f64(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/powf.cpp b/libc/src/math/amdgpu/powf.cpp
index 6114bcc642e11..6931934d4c11e 100644
--- a/libc/src/math/amdgpu/powf.cpp
+++ b/libc/src/math/amdgpu/powf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, powf, (float x, float y)) {
   return __ocml_pow_f32(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/powi.cpp b/libc/src/math/amdgpu/powi.cpp
index b13cb52aaaf6a..6b31b471e4b20 100644
--- a/libc/src/math/amdgpu/powi.cpp
+++ b/libc/src/math/amdgpu/powi.cpp
@@ -8,13 +8,14 @@
 
 #include "src/math/powi.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "declarations.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, powi, (double x, int y)) {
   return __ocml_pown_f64(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/powif.cpp b/libc/src/math/amdgpu/powif.cpp
index 7682f0e1a27a6..94f8a91d9c03b 100644
--- a/libc/src/math/amdgpu/powif.cpp
+++ b/libc/src/math/amdgpu/powif.cpp
@@ -8,13 +8,14 @@
 
 #include "src/math/powif.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "declarations.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, powif, (float x, int y)) {
   return __ocml_pown_f32(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/remainder.cpp b/libc/src/math/amdgpu/remainder.cpp
index 89b235f9c22af..9027204312e00 100644
--- a/libc/src/math/amdgpu/remainder.cpp
+++ b/libc/src/math/amdgpu/remainder.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/remainder.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, remainder, (double x, double y)) {
   return __builtin_remainder(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/remainderf.cpp b/libc/src/math/amdgpu/remainderf.cpp
index 9fee6f856dc8b..50df3b2ce25c1 100644
--- a/libc/src/math/amdgpu/remainderf.cpp
+++ b/libc/src/math/amdgpu/remainderf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/remainderf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, remainderf, (float x, float y)) {
   return __builtin_remainderf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/remquo.cpp b/libc/src/math/amdgpu/remquo.cpp
index d8074a9626ecb..42c908e91c6c0 100644
--- a/libc/src/math/amdgpu/remquo.cpp
+++ b/libc/src/math/amdgpu/remquo.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, remquo, (double x, double y, int *quo)) {
   int tmp;
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(double, remquo, (double x, double y, int *quo)) {
   return r;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/remquof.cpp b/libc/src/math/amdgpu/remquof.cpp
index b6584dfb97c3b..854d3bfe842fd 100644
--- a/libc/src/math/amdgpu/remquof.cpp
+++ b/libc/src/math/amdgpu/remquof.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, remquof, (float x, float y, int *quo)) {
   int tmp;
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(float, remquof, (float x, float y, int *quo)) {
   return r;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/rint.cpp b/libc/src/math/amdgpu/rint.cpp
index 44d494a8ed57a..ac6837a4abc37 100644
--- a/libc/src/math/amdgpu/rint.cpp
+++ b/libc/src/math/amdgpu/rint.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/rint.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, rint, (double x)) { return __builtin_rint(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/rintf.cpp b/libc/src/math/amdgpu/rintf.cpp
index daf98d9436051..94093471a8d92 100644
--- a/libc/src/math/amdgpu/rintf.cpp
+++ b/libc/src/math/amdgpu/rintf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/rintf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, rintf, (float x)) { return __builtin_rintf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/round.cpp b/libc/src/math/amdgpu/round.cpp
index 9d8b5582f0407..0d2765f2e959f 100644
--- a/libc/src/math/amdgpu/round.cpp
+++ b/libc/src/math/amdgpu/round.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/round.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, round, (double x)) { return __builtin_round(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/roundf.cpp b/libc/src/math/amdgpu/roundf.cpp
index 8743e4eb7fb8d..86e8ba3ac83d6 100644
--- a/libc/src/math/amdgpu/roundf.cpp
+++ b/libc/src/math/amdgpu/roundf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/roundf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, roundf, (float x)) { return __builtin_roundf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/scalbn.cpp b/libc/src/math/amdgpu/scalbn.cpp
index c2a43e03a7bcd..05bbbc69b47a1 100644
--- a/libc/src/math/amdgpu/scalbn.cpp
+++ b/libc/src/math/amdgpu/scalbn.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, scalbn, (double x, int y)) {
   return __builtin_amdgcn_ldexp(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/scalbnf.cpp b/libc/src/math/amdgpu/scalbnf.cpp
index 63de26ccbc470..f0e9e475674c3 100644
--- a/libc/src/math/amdgpu/scalbnf.cpp
+++ b/libc/src/math/amdgpu/scalbnf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, scalbnf, (float x, int y)) {
   return __builtin_amdgcn_ldexpf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sin.cpp b/libc/src/math/amdgpu/sin.cpp
index dbc29a725db07..f3d88af009ce4 100644
--- a/libc/src/math/amdgpu/sin.cpp
+++ b/libc/src/math/amdgpu/sin.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sin, (double x)) { return __ocml_sin_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sincos.cpp b/libc/src/math/amdgpu/sincos.cpp
index 7cdd0d1f97690..304ac0c7c6332 100644
--- a/libc/src/math/amdgpu/sincos.cpp
+++ b/libc/src/math/amdgpu/sincos.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, sincos, (double x, double *sinptr, double *cosptr)) {
   *sinptr = __ocml_sincos_f64(x, cosptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sincosf.cpp b/libc/src/math/amdgpu/sincosf.cpp
index 37a5e2a6d11c2..1c4e9c6a2463f 100644
--- a/libc/src/math/amdgpu/sincosf.cpp
+++ b/libc/src/math/amdgpu/sincosf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, sincosf, (float x, float *sinptr, float *cosptr)) {
   *sinptr = __ocml_sincos_f32(x, cosptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sinf.cpp b/libc/src/math/amdgpu/sinf.cpp
index cda2c626f8ac6..c6d64a63c755d 100644
--- a/libc/src/math/amdgpu/sinf.cpp
+++ b/libc/src/math/amdgpu/sinf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinf, (float x)) { return __ocml_sin_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sinh.cpp b/libc/src/math/amdgpu/sinh.cpp
index 66cacd19e4632..26314f46d0e97 100644
--- a/libc/src/math/amdgpu/sinh.cpp
+++ b/libc/src/math/amdgpu/sinh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sinh, (double x)) { return __ocml_sinh_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sinhf.cpp b/libc/src/math/amdgpu/sinhf.cpp
index 5d3f5ea6b36ae..a4eb8e1a65283 100644
--- a/libc/src/math/amdgpu/sinhf.cpp
+++ b/libc/src/math/amdgpu/sinhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinhf, (float x)) { return __ocml_sinh_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sqrt.cpp b/libc/src/math/amdgpu/sqrt.cpp
index 60ca5af4987b6..ed83b6e5c6cae 100644
--- a/libc/src/math/amdgpu/sqrt.cpp
+++ b/libc/src/math/amdgpu/sqrt.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sqrt, (double x)) { return __builtin_sqrt(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/sqrtf.cpp b/libc/src/math/amdgpu/sqrtf.cpp
index e17f942a4d5fc..851922c316452 100644
--- a/libc/src/math/amdgpu/sqrtf.cpp
+++ b/libc/src/math/amdgpu/sqrtf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/sqrtf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sqrtf, (float x)) { return __builtin_sqrtf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/tan.cpp b/libc/src/math/amdgpu/tan.cpp
index 6121a9319a2ab..c946dc2a3db67 100644
--- a/libc/src/math/amdgpu/tan.cpp
+++ b/libc/src/math/amdgpu/tan.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, tan, (double x)) { return __ocml_tan_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/tanf.cpp b/libc/src/math/amdgpu/tanf.cpp
index fdd83ee7aeb94..8c93fc4f62369 100644
--- a/libc/src/math/amdgpu/tanf.cpp
+++ b/libc/src/math/amdgpu/tanf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, tanf, (float x)) { return __ocml_tan_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/tanh.cpp b/libc/src/math/amdgpu/tanh.cpp
index 25a9c2954bf39..834353e122abe 100644
--- a/libc/src/math/amdgpu/tanh.cpp
+++ b/libc/src/math/amdgpu/tanh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, tanh, (double x)) { return __ocml_tanh_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/tanhf.cpp b/libc/src/math/amdgpu/tanhf.cpp
index a4bfd2095eb35..5029596a8e6fd 100644
--- a/libc/src/math/amdgpu/tanhf.cpp
+++ b/libc/src/math/amdgpu/tanhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, tanhf, (float x)) { return __ocml_tanh_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/tgamma.cpp b/libc/src/math/amdgpu/tgamma.cpp
index 10f58d566f88a..485a6a3def432 100644
--- a/libc/src/math/amdgpu/tgamma.cpp
+++ b/libc/src/math/amdgpu/tgamma.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, tgamma, (double x)) { return __ocml_tgamma_f64(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/tgammaf.cpp b/libc/src/math/amdgpu/tgammaf.cpp
index e7d22059a7c41..e48a486c9c5e5 100644
--- a/libc/src/math/amdgpu/tgammaf.cpp
+++ b/libc/src/math/amdgpu/tgammaf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, tgammaf, (float x)) { return __ocml_tgamma_f32(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/trunc.cpp b/libc/src/math/amdgpu/trunc.cpp
index 773600f0f2501..f60caa2a71d78 100644
--- a/libc/src/math/amdgpu/trunc.cpp
+++ b/libc/src/math/amdgpu/trunc.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/trunc.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, trunc, (double x)) { return __builtin_trunc(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/amdgpu/truncf.cpp b/libc/src/math/amdgpu/truncf.cpp
index 534797a3e5860..a6c9b8f188f02 100644
--- a/libc/src/math/amdgpu/truncf.cpp
+++ b/libc/src/math/amdgpu/truncf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/truncf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, truncf, (float x)) { return __builtin_truncf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/asin.h b/libc/src/math/asin.h
index e443776e507d9..6516e403c4ba9 100644
--- a/libc/src/math/asin.h
+++ b/libc/src/math/asin.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ASIN_H
 #define LLVM_LIBC_SRC_MATH_ASIN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double asin(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ASIN_H
diff --git a/libc/src/math/asinf.h b/libc/src/math/asinf.h
index 227f10b0a5072..ed0b8abd06105 100644
--- a/libc/src/math/asinf.h
+++ b/libc/src/math/asinf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ASINF_H
 #define LLVM_LIBC_SRC_MATH_ASINF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float asinf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ASINF_H
diff --git a/libc/src/math/asinh.h b/libc/src/math/asinh.h
index 418bf96179841..45fbc7cfa7c29 100644
--- a/libc/src/math/asinh.h
+++ b/libc/src/math/asinh.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ASINH_H
 #define LLVM_LIBC_SRC_MATH_ASINH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double asinh(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ASINH_H
diff --git a/libc/src/math/asinhf.h b/libc/src/math/asinhf.h
index 32a697cbfad09..d5787ee7d5e5e 100644
--- a/libc/src/math/asinhf.h
+++ b/libc/src/math/asinhf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ASINHF_H
 #define LLVM_LIBC_SRC_MATH_ASINHF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float asinhf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ASINHF_H
diff --git a/libc/src/math/atan.h b/libc/src/math/atan.h
index bcbc97a52ee6d..a9ba28a2efcd7 100644
--- a/libc/src/math/atan.h
+++ b/libc/src/math/atan.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ATAN_H
 #define LLVM_LIBC_SRC_MATH_ATAN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double atan(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ATAN_H
diff --git a/libc/src/math/atan2.h b/libc/src/math/atan2.h
index 024bbfb5fe9cb..7bb2f96fe6444 100644
--- a/libc/src/math/atan2.h
+++ b/libc/src/math/atan2.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ATAN2_H
 #define LLVM_LIBC_SRC_MATH_ATAN2_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double atan2(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ATAN2_H
diff --git a/libc/src/math/atan2f.h b/libc/src/math/atan2f.h
index 25d2de09342fa..ed60383cb925c 100644
--- a/libc/src/math/atan2f.h
+++ b/libc/src/math/atan2f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ATAN2F_H
 #define LLVM_LIBC_SRC_MATH_ATAN2F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float atan2f(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ATAN2F_H
diff --git a/libc/src/math/atanf.h b/libc/src/math/atanf.h
index bb4c5a8bd963c..0be32f3c1dfcd 100644
--- a/libc/src/math/atanf.h
+++ b/libc/src/math/atanf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ATANF_H
 #define LLVM_LIBC_SRC_MATH_ATANF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float atanf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ATANF_H
diff --git a/libc/src/math/atanh.h b/libc/src/math/atanh.h
index dc84d07c02a0a..485c824a1f2ca 100644
--- a/libc/src/math/atanh.h
+++ b/libc/src/math/atanh.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ATANH_H
 #define LLVM_LIBC_SRC_MATH_ATANH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double atanh(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ATANH_H
diff --git a/libc/src/math/atanhf.h b/libc/src/math/atanhf.h
index 589ffd022366a..0a4d899c78e4f 100644
--- a/libc/src/math/atanhf.h
+++ b/libc/src/math/atanhf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ATANHF_H
 #define LLVM_LIBC_SRC_MATH_ATANHF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float atanhf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ATANHF_H
diff --git a/libc/src/math/canonicalize.h b/libc/src/math/canonicalize.h
index b7b5959fb667c..6b6b1e07e923c 100644
--- a/libc/src/math/canonicalize.h
+++ b/libc/src/math/canonicalize.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CANONICALIZE_H
 #define LLVM_LIBC_SRC_MATH_CANONICALIZE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int canonicalize(double *cx, const double *x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CANONICALIZE_H
diff --git a/libc/src/math/canonicalizef.h b/libc/src/math/canonicalizef.h
index 556607f133496..94bc48b9b6aa2 100644
--- a/libc/src/math/canonicalizef.h
+++ b/libc/src/math/canonicalizef.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CANONICALIZEF_H
 #define LLVM_LIBC_SRC_MATH_CANONICALIZEF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int canonicalizef(float *cx, const float *x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CANONICALIZEF_H
diff --git a/libc/src/math/canonicalizef128.h b/libc/src/math/canonicalizef128.h
index 6db8009475376..eeeb7e3fb4526 100644
--- a/libc/src/math/canonicalizef128.h
+++ b/libc/src/math/canonicalizef128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_CANONICALIZEF128_H
 #define LLVM_LIBC_SRC_MATH_CANONICALIZEF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int canonicalizef128(float128 *cx, const float128 *x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CANONICALIZEF128_H
diff --git a/libc/src/math/canonicalizef16.h b/libc/src/math/canonicalizef16.h
index 102af01c0c2ba..c47cec682574e 100644
--- a/libc/src/math/canonicalizef16.h
+++ b/libc/src/math/canonicalizef16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_CANONICALIZEF16_H
 #define LLVM_LIBC_SRC_MATH_CANONICALIZEF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int canonicalizef16(float16 *cx, const float16 *x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CANONICALIZEF16_H
diff --git a/libc/src/math/canonicalizel.h b/libc/src/math/canonicalizel.h
index 1cab29e8e8b1c..1c6b9e68d2487 100644
--- a/libc/src/math/canonicalizel.h
+++ b/libc/src/math/canonicalizel.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CANONICALIZEL_H
 #define LLVM_LIBC_SRC_MATH_CANONICALIZEL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int canonicalizel(long double *cx, const long double *x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CANONICALIZEL_H
diff --git a/libc/src/math/cbrtf.h b/libc/src/math/cbrtf.h
index 74744594f2986..1187efbdd38b2 100644
--- a/libc/src/math/cbrtf.h
+++ b/libc/src/math/cbrtf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CBRTF_H
 #define LLVM_LIBC_SRC_MATH_CBRTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float cbrtf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CBRTF_H
diff --git a/libc/src/math/ceil.h b/libc/src/math/ceil.h
index c424deec34ca8..4cf262e6957aa 100644
--- a/libc/src/math/ceil.h
+++ b/libc/src/math/ceil.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CEIL_H
 #define LLVM_LIBC_SRC_MATH_CEIL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double ceil(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CEIL_H
diff --git a/libc/src/math/ceilf.h b/libc/src/math/ceilf.h
index 0fa3aa8bc048e..359465c15b62b 100644
--- a/libc/src/math/ceilf.h
+++ b/libc/src/math/ceilf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CEILF_H
 #define LLVM_LIBC_SRC_MATH_CEILF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float ceilf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CEILF_H
diff --git a/libc/src/math/ceilf128.h b/libc/src/math/ceilf128.h
index b0c4020718b29..211b8131a9559 100644
--- a/libc/src/math/ceilf128.h
+++ b/libc/src/math/ceilf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_CEILF128_H
 #define LLVM_LIBC_SRC_MATH_CEILF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 ceilf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CEILF128_H
diff --git a/libc/src/math/ceilf16.h b/libc/src/math/ceilf16.h
index 36a6bd219d5b5..b0e988b2f097f 100644
--- a/libc/src/math/ceilf16.h
+++ b/libc/src/math/ceilf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_CEILF16_H
 #define LLVM_LIBC_SRC_MATH_CEILF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 ceilf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CEILF16_H
diff --git a/libc/src/math/ceill.h b/libc/src/math/ceill.h
index fbe6563d21923..ce79cb562c951 100644
--- a/libc/src/math/ceill.h
+++ b/libc/src/math/ceill.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_CEILL_H
 #define LLVM_LIBC_SRC_MATH_CEILL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double ceill(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_CEILL_H
diff --git a/libc/src/math/copysign.h b/libc/src/math/copysign.h
index 004240f412bf1..a115f120477c5 100644
--- a/libc/src/math/copysign.h
+++ b/libc/src/math/copysign.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COPYSIGN_H
 #define LLVM_LIBC_SRC_MATH_COPYSIGN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double copysign(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COPYSIGN_H
diff --git a/libc/src/math/copysignf.h b/libc/src/math/copysignf.h
index 503e7cbfeda6e..3877f7b299aad 100644
--- a/libc/src/math/copysignf.h
+++ b/libc/src/math/copysignf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COPYSIGNF_H
 #define LLVM_LIBC_SRC_MATH_COPYSIGNF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float copysignf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COPYSIGNF_H
diff --git a/libc/src/math/copysignf128.h b/libc/src/math/copysignf128.h
index 06c194985d720..b001b8e61b258 100644
--- a/libc/src/math/copysignf128.h
+++ b/libc/src/math/copysignf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_COPYSIGNF128_H
 #define LLVM_LIBC_SRC_MATH_COPYSIGNF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 copysignf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COPYSIGNF128_H
diff --git a/libc/src/math/copysignf16.h b/libc/src/math/copysignf16.h
index 3ddde9fafaa70..0b0e4865b3eb1 100644
--- a/libc/src/math/copysignf16.h
+++ b/libc/src/math/copysignf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_COPYSIGNF16_H
 #define LLVM_LIBC_SRC_MATH_COPYSIGNF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 copysignf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COPYSIGNF16_H
diff --git a/libc/src/math/copysignl.h b/libc/src/math/copysignl.h
index 8b8b37bd85d95..6c5e8fbcfeb00 100644
--- a/libc/src/math/copysignl.h
+++ b/libc/src/math/copysignl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COPYSIGNL_H
 #define LLVM_LIBC_SRC_MATH_COPYSIGNL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double copysignl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COPYSIGNL_H
diff --git a/libc/src/math/cos.h b/libc/src/math/cos.h
index aa97ccf66e6c7..7c1a88f744fc7 100644
--- a/libc/src/math/cos.h
+++ b/libc/src/math/cos.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COS_H
 #define LLVM_LIBC_SRC_MATH_COS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double cos(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COS_H
diff --git a/libc/src/math/cosf.h b/libc/src/math/cosf.h
index 158f311910812..7942eaf471eb2 100644
--- a/libc/src/math/cosf.h
+++ b/libc/src/math/cosf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COSF_H
 #define LLVM_LIBC_SRC_MATH_COSF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float cosf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COSF_H
diff --git a/libc/src/math/cosh.h b/libc/src/math/cosh.h
index f0c8b6bced454..4a4be4a5d4a14 100644
--- a/libc/src/math/cosh.h
+++ b/libc/src/math/cosh.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COSH_H
 #define LLVM_LIBC_SRC_MATH_COSH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double cosh(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COSH_H
diff --git a/libc/src/math/coshf.h b/libc/src/math/coshf.h
index c470a8c943b50..28abada7f887e 100644
--- a/libc/src/math/coshf.h
+++ b/libc/src/math/coshf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COSHF_H
 #define LLVM_LIBC_SRC_MATH_COSHF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float coshf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COSHF_H
diff --git a/libc/src/math/cospif.h b/libc/src/math/cospif.h
index 50935bc33e59d..fbe011f0ad6e7 100644
--- a/libc/src/math/cospif.h
+++ b/libc/src/math/cospif.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_COSPIF_H
 #define LLVM_LIBC_SRC_MATH_COSPIF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float cospif(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_COSPIF_H
diff --git a/libc/src/math/erf.h b/libc/src/math/erf.h
index a38c92410de13..bd16abca82bd1 100644
--- a/libc/src/math/erf.h
+++ b/libc/src/math/erf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ERF_H
 #define LLVM_LIBC_SRC_MATH_ERF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double erf(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ERF_H
diff --git a/libc/src/math/erff.h b/libc/src/math/erff.h
index f6c56c7dddab6..24cfa83067308 100644
--- a/libc/src/math/erff.h
+++ b/libc/src/math/erff.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ERFF_H
 #define LLVM_LIBC_SRC_MATH_ERFF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float erff(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ERFF_H
diff --git a/libc/src/math/exp.h b/libc/src/math/exp.h
index 6d60a3bc4802f..1e1e672c36bb6 100644
--- a/libc/src/math/exp.h
+++ b/libc/src/math/exp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXP_H
 #define LLVM_LIBC_SRC_MATH_EXP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double exp(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXP_H
diff --git a/libc/src/math/exp10.h b/libc/src/math/exp10.h
index 081b419275a33..06e9be54306d3 100644
--- a/libc/src/math/exp10.h
+++ b/libc/src/math/exp10.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXP10_H
 #define LLVM_LIBC_SRC_MATH_EXP10_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double exp10(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXP10_H
diff --git a/libc/src/math/exp10f.h b/libc/src/math/exp10f.h
index 4df5c461c1f56..0e537421c66a9 100644
--- a/libc/src/math/exp10f.h
+++ b/libc/src/math/exp10f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXP10F_H
 #define LLVM_LIBC_SRC_MATH_EXP10F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float exp10f(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXP10F_H
diff --git a/libc/src/math/exp2.h b/libc/src/math/exp2.h
index 2feccf6128e76..50b11ee12e6d8 100644
--- a/libc/src/math/exp2.h
+++ b/libc/src/math/exp2.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXP2_H
 #define LLVM_LIBC_SRC_MATH_EXP2_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double exp2(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXP2_H
diff --git a/libc/src/math/exp2f.h b/libc/src/math/exp2f.h
index 13af54c02468f..994371c0adc87 100644
--- a/libc/src/math/exp2f.h
+++ b/libc/src/math/exp2f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXP2F_H
 #define LLVM_LIBC_SRC_MATH_EXP2F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float exp2f(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXP2F_H
diff --git a/libc/src/math/exp2m1f.h b/libc/src/math/exp2m1f.h
index 0eaf6b00e958c..71b15885912c4 100644
--- a/libc/src/math/exp2m1f.h
+++ b/libc/src/math/exp2m1f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXP2M1F_H
 #define LLVM_LIBC_SRC_MATH_EXP2M1F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float exp2m1f(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXP2M1F_H
diff --git a/libc/src/math/expf.h b/libc/src/math/expf.h
index 38837cba41d53..e82b762234597 100644
--- a/libc/src/math/expf.h
+++ b/libc/src/math/expf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXPF_H
 #define LLVM_LIBC_SRC_MATH_EXPF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float expf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXPF_H
diff --git a/libc/src/math/expm1.h b/libc/src/math/expm1.h
index 52409290a5ccf..216e8b8f0d515 100644
--- a/libc/src/math/expm1.h
+++ b/libc/src/math/expm1.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXPM1_H
 #define LLVM_LIBC_SRC_MATH_EXPM1_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double expm1(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXPM1_H
diff --git a/libc/src/math/expm1f.h b/libc/src/math/expm1f.h
index 359cbeec72f6c..e3539c57138f8 100644
--- a/libc/src/math/expm1f.h
+++ b/libc/src/math/expm1f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_EXPM1F_H
 #define LLVM_LIBC_SRC_MATH_EXPM1F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float expm1f(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_EXPM1F_H
diff --git a/libc/src/math/f16add.h b/libc/src/math/f16add.h
index 763a0787d860d..1e794fd5833bb 100644
--- a/libc/src/math/f16add.h
+++ b/libc/src/math/f16add.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16ADD_H
 #define LLVM_LIBC_SRC_MATH_F16ADD_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16add(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16ADD_H
diff --git a/libc/src/math/f16addf.h b/libc/src/math/f16addf.h
index 31d0e786584e6..d9cd0cffb77de 100644
--- a/libc/src/math/f16addf.h
+++ b/libc/src/math/f16addf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16ADDF_H
 #define LLVM_LIBC_SRC_MATH_F16ADDF_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16addf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16ADDF_H
diff --git a/libc/src/math/f16addf128.h b/libc/src/math/f16addf128.h
index 284ce1d303775..aabb5ebdaa2f2 100644
--- a/libc/src/math/f16addf128.h
+++ b/libc/src/math/f16addf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16ADDF128_H
 #define LLVM_LIBC_SRC_MATH_F16ADDF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16addf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16ADDF128_H
diff --git a/libc/src/math/f16addl.h b/libc/src/math/f16addl.h
index 6a7267a10d0c6..b39a2901d1ecc 100644
--- a/libc/src/math/f16addl.h
+++ b/libc/src/math/f16addl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16ADDL_H
 #define LLVM_LIBC_SRC_MATH_F16ADDL_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16addl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16ADDL_H
diff --git a/libc/src/math/f16div.h b/libc/src/math/f16div.h
index 3807bc02276c9..4e1724ffefa30 100644
--- a/libc/src/math/f16div.h
+++ b/libc/src/math/f16div.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16DIV_H
 #define LLVM_LIBC_SRC_MATH_F16DIV_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16div(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16DIV_H
diff --git a/libc/src/math/f16divf.h b/libc/src/math/f16divf.h
index a3359d9e47944..351cffd38dc8f 100644
--- a/libc/src/math/f16divf.h
+++ b/libc/src/math/f16divf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16DIVF_H
 #define LLVM_LIBC_SRC_MATH_F16DIVF_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16divf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16DIVF_H
diff --git a/libc/src/math/f16divf128.h b/libc/src/math/f16divf128.h
index 2f63535ca27ce..b515419dfc719 100644
--- a/libc/src/math/f16divf128.h
+++ b/libc/src/math/f16divf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16DIVF128_H
 #define LLVM_LIBC_SRC_MATH_F16DIVF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16divf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16DIVF128_H
diff --git a/libc/src/math/f16divl.h b/libc/src/math/f16divl.h
index ad9999135b588..61a37747e721c 100644
--- a/libc/src/math/f16divl.h
+++ b/libc/src/math/f16divl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16DIVL_H
 #define LLVM_LIBC_SRC_MATH_F16DIVL_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16divl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16DIVL_H
diff --git a/libc/src/math/f16fma.h b/libc/src/math/f16fma.h
index d9505f88f37af..d2628e317697e 100644
--- a/libc/src/math/f16fma.h
+++ b/libc/src/math/f16fma.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16FMA_H
 #define LLVM_LIBC_SRC_MATH_F16FMA_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16fma(double x, double y, double z);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16FMA_H
diff --git a/libc/src/math/f16fmaf.h b/libc/src/math/f16fmaf.h
index d92cb43c292eb..627afae5cb0ee 100644
--- a/libc/src/math/f16fmaf.h
+++ b/libc/src/math/f16fmaf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16FMAF_H
 #define LLVM_LIBC_SRC_MATH_F16FMAF_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16fmaf(float x, float y, float z);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16FMAF_H
diff --git a/libc/src/math/f16fmaf128.h b/libc/src/math/f16fmaf128.h
index 9203b4d30d212..c8f81d42608f9 100644
--- a/libc/src/math/f16fmaf128.h
+++ b/libc/src/math/f16fmaf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16FMAF128_H
 #define LLVM_LIBC_SRC_MATH_F16FMAF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16fmaf128(float128 x, float128 y, float128 z);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16FMAF128_H
diff --git a/libc/src/math/f16fmal.h b/libc/src/math/f16fmal.h
index 6f5dd33aa18f6..ff35f637f7f04 100644
--- a/libc/src/math/f16fmal.h
+++ b/libc/src/math/f16fmal.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16FMAL_H
 #define LLVM_LIBC_SRC_MATH_F16FMAL_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16fmal(long double x, long double y, long double z);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16FMAL_H
diff --git a/libc/src/math/f16sqrt.h b/libc/src/math/f16sqrt.h
index f1134ac5ee2b9..27c6f3454891d 100644
--- a/libc/src/math/f16sqrt.h
+++ b/libc/src/math/f16sqrt.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SQRT_H
 #define LLVM_LIBC_SRC_MATH_F16SQRT_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16sqrt(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SQRT_H
diff --git a/libc/src/math/f16sqrtf.h b/libc/src/math/f16sqrtf.h
index 197ebe6db8016..0471b02da0f3c 100644
--- a/libc/src/math/f16sqrtf.h
+++ b/libc/src/math/f16sqrtf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SQRTF_H
 #define LLVM_LIBC_SRC_MATH_F16SQRTF_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16sqrtf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SQRTF_H
diff --git a/libc/src/math/f16sqrtf128.h b/libc/src/math/f16sqrtf128.h
index 61a6ce9ea5a5d..713bbe14023c2 100644
--- a/libc/src/math/f16sqrtf128.h
+++ b/libc/src/math/f16sqrtf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SQRTF128_H
 #define LLVM_LIBC_SRC_MATH_F16SQRTF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16sqrtf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SQRTF128_H
diff --git a/libc/src/math/f16sqrtl.h b/libc/src/math/f16sqrtl.h
index fd3c55fc95f32..8238f9eb3a099 100644
--- a/libc/src/math/f16sqrtl.h
+++ b/libc/src/math/f16sqrtl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SQRTL_H
 #define LLVM_LIBC_SRC_MATH_F16SQRTL_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16sqrtl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SQRTL_H
diff --git a/libc/src/math/f16sub.h b/libc/src/math/f16sub.h
index 66f82daada019..fbceba8a53c47 100644
--- a/libc/src/math/f16sub.h
+++ b/libc/src/math/f16sub.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SUB_H
 #define LLVM_LIBC_SRC_MATH_F16SUB_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16sub(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SUB_H
diff --git a/libc/src/math/f16subf.h b/libc/src/math/f16subf.h
index 1d04a4c952d17..255953a39cd3f 100644
--- a/libc/src/math/f16subf.h
+++ b/libc/src/math/f16subf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SUBF_H
 #define LLVM_LIBC_SRC_MATH_F16SUBF_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16subf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SUBF_H
diff --git a/libc/src/math/f16subf128.h b/libc/src/math/f16subf128.h
index eb674297ba266..fae3360a3d5cd 100644
--- a/libc/src/math/f16subf128.h
+++ b/libc/src/math/f16subf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SUBF128_H
 #define LLVM_LIBC_SRC_MATH_F16SUBF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16subf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SUBF128_H
diff --git a/libc/src/math/f16subl.h b/libc/src/math/f16subl.h
index 43b44a57a604e..b4e3c3ca7631f 100644
--- a/libc/src/math/f16subl.h
+++ b/libc/src/math/f16subl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_F16SUBL_H
 #define LLVM_LIBC_SRC_MATH_F16SUBL_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 f16subl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_F16SUBL_H
diff --git a/libc/src/math/fabs.h b/libc/src/math/fabs.h
index 0aad5ea1f69f9..c2f179afe747a 100644
--- a/libc/src/math/fabs.h
+++ b/libc/src/math/fabs.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FABS_H
 #define LLVM_LIBC_SRC_MATH_FABS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fabs(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FABS_H
diff --git a/libc/src/math/fabsf.h b/libc/src/math/fabsf.h
index ca2cc106a08b2..52347d9c1478d 100644
--- a/libc/src/math/fabsf.h
+++ b/libc/src/math/fabsf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FABSF_H
 #define LLVM_LIBC_SRC_MATH_FABSF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fabsf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FABSF_H
diff --git a/libc/src/math/fabsf128.h b/libc/src/math/fabsf128.h
index 0a275025a5cfe..4507e57c3cdc4 100644
--- a/libc/src/math/fabsf128.h
+++ b/libc/src/math/fabsf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FABSF128_H
 #define LLVM_LIBC_SRC_MATH_FABSF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fabsf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FABSF128_H
diff --git a/libc/src/math/fabsf16.h b/libc/src/math/fabsf16.h
index 532662a77e9a6..f48a51f5ff58e 100644
--- a/libc/src/math/fabsf16.h
+++ b/libc/src/math/fabsf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FABSF16_H
 #define LLVM_LIBC_SRC_MATH_FABSF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fabsf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FABSF16_H
diff --git a/libc/src/math/fabsl.h b/libc/src/math/fabsl.h
index b3df8bffed105..a04446015a8cd 100644
--- a/libc/src/math/fabsl.h
+++ b/libc/src/math/fabsl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FABSL_H
 #define LLVM_LIBC_SRC_MATH_FABSL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fabsl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FABSL_H
diff --git a/libc/src/math/fdim.h b/libc/src/math/fdim.h
index 457cb470a4e2b..19a9e99bf49b1 100644
--- a/libc/src/math/fdim.h
+++ b/libc/src/math/fdim.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FDIM_H
 #define LLVM_LIBC_SRC_MATH_FDIM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fdim(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FDIM_H
diff --git a/libc/src/math/fdimf.h b/libc/src/math/fdimf.h
index 01d5a530b8cca..b90bb456afbf2 100644
--- a/libc/src/math/fdimf.h
+++ b/libc/src/math/fdimf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FDIMF_H
 #define LLVM_LIBC_SRC_MATH_FDIMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fdimf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FDIMF_H
diff --git a/libc/src/math/fdimf128.h b/libc/src/math/fdimf128.h
index f0485aba4822c..a5e1387042b71 100644
--- a/libc/src/math/fdimf128.h
+++ b/libc/src/math/fdimf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FDIMF128_H
 #define LLVM_LIBC_SRC_MATH_FDIMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fdimf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FDIMF128_H
diff --git a/libc/src/math/fdimf16.h b/libc/src/math/fdimf16.h
index 0aa23810c64fa..e3aac7b8a1532 100644
--- a/libc/src/math/fdimf16.h
+++ b/libc/src/math/fdimf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FDIMF16_H
 #define LLVM_LIBC_SRC_MATH_FDIMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fdimf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FDIMF16_H
diff --git a/libc/src/math/fdiml.h b/libc/src/math/fdiml.h
index 4b18d9a2590a4..226860108b08a 100644
--- a/libc/src/math/fdiml.h
+++ b/libc/src/math/fdiml.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FDIML_H
 #define LLVM_LIBC_SRC_MATH_FDIML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fdiml(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FDIML_H
diff --git a/libc/src/math/floor.h b/libc/src/math/floor.h
index 2920c7a7ee45d..d6c61955c4122 100644
--- a/libc/src/math/floor.h
+++ b/libc/src/math/floor.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FLOOR_H
 #define LLVM_LIBC_SRC_MATH_FLOOR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double floor(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FLOOR_H
diff --git a/libc/src/math/floorf.h b/libc/src/math/floorf.h
index 52d6dd701fa9b..c9dfcf6e2782f 100644
--- a/libc/src/math/floorf.h
+++ b/libc/src/math/floorf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FLOORF_H
 #define LLVM_LIBC_SRC_MATH_FLOORF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float floorf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FLOORF_H
diff --git a/libc/src/math/floorf128.h b/libc/src/math/floorf128.h
index b97c4b6c6cece..9af48b259fb2a 100644
--- a/libc/src/math/floorf128.h
+++ b/libc/src/math/floorf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FLOORF128_H
 #define LLVM_LIBC_SRC_MATH_FLOORF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 floorf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FLOORF128_H
diff --git a/libc/src/math/floorf16.h b/libc/src/math/floorf16.h
index 4e5e196105cf6..c9b1f48363d75 100644
--- a/libc/src/math/floorf16.h
+++ b/libc/src/math/floorf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FLOORF16_H
 #define LLVM_LIBC_SRC_MATH_FLOORF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 floorf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FLOORF16_H
diff --git a/libc/src/math/floorl.h b/libc/src/math/floorl.h
index ef53b29e73588..4597b4e089a99 100644
--- a/libc/src/math/floorl.h
+++ b/libc/src/math/floorl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FLOORL_H
 #define LLVM_LIBC_SRC_MATH_FLOORL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double floorl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FLOORL_H
diff --git a/libc/src/math/fma.h b/libc/src/math/fma.h
index 7f0608ea4aaa6..a705228183882 100644
--- a/libc/src/math/fma.h
+++ b/libc/src/math/fma.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMA_H
 #define LLVM_LIBC_SRC_MATH_FMA_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fma(double x, double y, double z);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMA_H
diff --git a/libc/src/math/fmaf.h b/libc/src/math/fmaf.h
index 29e5bdc3e2335..b7335c4ca56a6 100644
--- a/libc/src/math/fmaf.h
+++ b/libc/src/math/fmaf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAF_H
 #define LLVM_LIBC_SRC_MATH_FMAF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmaf(float x, float y, float z);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAF_H
diff --git a/libc/src/math/fmax.h b/libc/src/math/fmax.h
index 64baa4d261dba..01128748bd677 100644
--- a/libc/src/math/fmax.h
+++ b/libc/src/math/fmax.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAX_H
 #define LLVM_LIBC_SRC_MATH_FMAX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmax(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAX_H
diff --git a/libc/src/math/fmaxf.h b/libc/src/math/fmaxf.h
index 1126323e2a4b2..af6a0cb954c95 100644
--- a/libc/src/math/fmaxf.h
+++ b/libc/src/math/fmaxf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXF_H
 #define LLVM_LIBC_SRC_MATH_FMAXF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmaxf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXF_H
diff --git a/libc/src/math/fmaxf128.h b/libc/src/math/fmaxf128.h
index a4407d9655afa..47bf3541982ab 100644
--- a/libc/src/math/fmaxf128.h
+++ b/libc/src/math/fmaxf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXF128_H
 #define LLVM_LIBC_SRC_MATH_FMAXF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fmaxf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXF128_H
diff --git a/libc/src/math/fmaxf16.h b/libc/src/math/fmaxf16.h
index bf608f82c420a..904816009602f 100644
--- a/libc/src/math/fmaxf16.h
+++ b/libc/src/math/fmaxf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXF16_H
 #define LLVM_LIBC_SRC_MATH_FMAXF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fmaxf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXF16_H
diff --git a/libc/src/math/fmaximum.h b/libc/src/math/fmaximum.h
index 8eac02b17b79a..818c4281d02ee 100644
--- a/libc/src/math/fmaximum.h
+++ b/libc/src/math/fmaximum.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmaximum(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_H
diff --git a/libc/src/math/fmaximum_mag.h b/libc/src/math/fmaximum_mag.h
index 31b7c0fcf7ee3..d4954e32a08fe 100644
--- a/libc/src/math/fmaximum_mag.h
+++ b/libc/src/math/fmaximum_mag.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmaximum_mag(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_H
diff --git a/libc/src/math/fmaximum_mag_num.h b/libc/src/math/fmaximum_mag_num.h
index c4ff243846e03..debb0170366a1 100644
--- a/libc/src/math/fmaximum_mag_num.h
+++ b/libc/src/math/fmaximum_mag_num.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUM_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmaximum_mag_num(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUM_H
diff --git a/libc/src/math/fmaximum_mag_numf.h b/libc/src/math/fmaximum_mag_numf.h
index 702903ab8bcfe..0ec05c35e92d2 100644
--- a/libc/src/math/fmaximum_mag_numf.h
+++ b/libc/src/math/fmaximum_mag_numf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmaximum_mag_numf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF_H
diff --git a/libc/src/math/fmaximum_mag_numf128.h b/libc/src/math/fmaximum_mag_numf128.h
index 2afae7fc37c46..a263f98aabcf1 100644
--- a/libc/src/math/fmaximum_mag_numf128.h
+++ b/libc/src/math/fmaximum_mag_numf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF128_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fmaximum_mag_numf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF128_H
diff --git a/libc/src/math/fmaximum_mag_numf16.h b/libc/src/math/fmaximum_mag_numf16.h
index 4c963d4dccc73..1bf2e461efa4b 100644
--- a/libc/src/math/fmaximum_mag_numf16.h
+++ b/libc/src/math/fmaximum_mag_numf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF16_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fmaximum_mag_numf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUMF16_H
diff --git a/libc/src/math/fmaximum_mag_numl.h b/libc/src/math/fmaximum_mag_numl.h
index 32f9ae9708a65..9fbc63842bd27 100644
--- a/libc/src/math/fmaximum_mag_numl.h
+++ b/libc/src/math/fmaximum_mag_numl.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUML_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fmaximum_mag_numl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAG_NUML_H
diff --git a/libc/src/math/fmaximum_magf.h b/libc/src/math/fmaximum_magf.h
index 1bfcc795f8f81..73ffd2e5bc4a5 100644
--- a/libc/src/math/fmaximum_magf.h
+++ b/libc/src/math/fmaximum_magf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmaximum_magf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF_H
diff --git a/libc/src/math/fmaximum_magf128.h b/libc/src/math/fmaximum_magf128.h
index 23c466b74cce8..fb68af7e6a0c9 100644
--- a/libc/src/math/fmaximum_magf128.h
+++ b/libc/src/math/fmaximum_magf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF128_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fmaximum_magf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF128_H
diff --git a/libc/src/math/fmaximum_magf16.h b/libc/src/math/fmaximum_magf16.h
index e5f57d3b7f1df..32aee6e3822b5 100644
--- a/libc/src/math/fmaximum_magf16.h
+++ b/libc/src/math/fmaximum_magf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF16_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fmaximum_magf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF16_H
diff --git a/libc/src/math/fmaximum_magl.h b/libc/src/math/fmaximum_magl.h
index 23b283cb5dbc2..8745f6aaa90a9 100644
--- a/libc/src/math/fmaximum_magl.h
+++ b/libc/src/math/fmaximum_magl.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGL_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fmaximum_magl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGL_H
diff --git a/libc/src/math/fmaximum_num.h b/libc/src/math/fmaximum_num.h
index ce3ce12ca64b4..df4bfcb6e38be 100644
--- a/libc/src/math/fmaximum_num.h
+++ b/libc/src/math/fmaximum_num.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_NUM_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_NUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmaximum_num(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_NUM_H
diff --git a/libc/src/math/fmaximum_numf.h b/libc/src/math/fmaximum_numf.h
index b3243ed16be9f..65997154bdae3 100644
--- a/libc/src/math/fmaximum_numf.h
+++ b/libc/src/math/fmaximum_numf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmaximum_numf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF_H
diff --git a/libc/src/math/fmaximum_numf128.h b/libc/src/math/fmaximum_numf128.h
index d55183ce88cc6..1e9bd8dfb81aa 100644
--- a/libc/src/math/fmaximum_numf128.h
+++ b/libc/src/math/fmaximum_numf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF128_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fmaximum_numf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF128_H
diff --git a/libc/src/math/fmaximum_numf16.h b/libc/src/math/fmaximum_numf16.h
index b450a45956483..3a2b2305b8282 100644
--- a/libc/src/math/fmaximum_numf16.h
+++ b/libc/src/math/fmaximum_numf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF16_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fmaximum_numf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF16_H
diff --git a/libc/src/math/fmaximum_numl.h b/libc/src/math/fmaximum_numl.h
index f668cbdf73151..fc1d3ca38526b 100644
--- a/libc/src/math/fmaximum_numl.h
+++ b/libc/src/math/fmaximum_numl.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_NUML_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUM_NUML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fmaximum_numl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUM_NUML_H
diff --git a/libc/src/math/fmaximumf.h b/libc/src/math/fmaximumf.h
index 4eee696ce1521..9c4c54486507d 100644
--- a/libc/src/math/fmaximumf.h
+++ b/libc/src/math/fmaximumf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUMF_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmaximumf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUMF_H
diff --git a/libc/src/math/fmaximumf128.h b/libc/src/math/fmaximumf128.h
index 4a214ef096e10..3cc6fa023c797 100644
--- a/libc/src/math/fmaximumf128.h
+++ b/libc/src/math/fmaximumf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUMF128_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fmaximumf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUMF128_H
diff --git a/libc/src/math/fmaximumf16.h b/libc/src/math/fmaximumf16.h
index 806339fde6830..8a81e81b9341d 100644
--- a/libc/src/math/fmaximumf16.h
+++ b/libc/src/math/fmaximumf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUMF16_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fmaximumf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUMF16_H
diff --git a/libc/src/math/fmaximuml.h b/libc/src/math/fmaximuml.h
index ba8a8b12110c7..71310c2ccdec3 100644
--- a/libc/src/math/fmaximuml.h
+++ b/libc/src/math/fmaximuml.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUML_H
 #define LLVM_LIBC_SRC_MATH_FMAXIMUML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fmaximuml(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXIMUML_H
diff --git a/libc/src/math/fmaxl.h b/libc/src/math/fmaxl.h
index a0673001fe0e6..ea5cc4db5d533 100644
--- a/libc/src/math/fmaxl.h
+++ b/libc/src/math/fmaxl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMAXL_H
 #define LLVM_LIBC_SRC_MATH_FMAXL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fmaxl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMAXL_H
diff --git a/libc/src/math/fmin.h b/libc/src/math/fmin.h
index bf011bb7c313c..d09ec695559db 100644
--- a/libc/src/math/fmin.h
+++ b/libc/src/math/fmin.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMIN_H
 #define LLVM_LIBC_SRC_MATH_FMIN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmin(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMIN_H
diff --git a/libc/src/math/fminf.h b/libc/src/math/fminf.h
index b9c159a68b88e..8eeb542c1699c 100644
--- a/libc/src/math/fminf.h
+++ b/libc/src/math/fminf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINF_H
 #define LLVM_LIBC_SRC_MATH_FMINF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fminf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINF_H
diff --git a/libc/src/math/fminf128.h b/libc/src/math/fminf128.h
index d2ed593250a4a..7bc393ab3badc 100644
--- a/libc/src/math/fminf128.h
+++ b/libc/src/math/fminf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINF128_H
 #define LLVM_LIBC_SRC_MATH_FMINF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fminf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINF128_H
diff --git a/libc/src/math/fminf16.h b/libc/src/math/fminf16.h
index 22d4e6c803948..a92ff50c4c68f 100644
--- a/libc/src/math/fminf16.h
+++ b/libc/src/math/fminf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINF16_H
 #define LLVM_LIBC_SRC_MATH_FMINF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fminf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINF16_H
diff --git a/libc/src/math/fminimum.h b/libc/src/math/fminimum.h
index 9d39b1bdd3db2..53d764e6bf58c 100644
--- a/libc/src/math/fminimum.h
+++ b/libc/src/math/fminimum.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fminimum(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_H
diff --git a/libc/src/math/fminimum_mag.h b/libc/src/math/fminimum_mag.h
index 10b242e6026e8..5ebe3eeb5fda6 100644
--- a/libc/src/math/fminimum_mag.h
+++ b/libc/src/math/fminimum_mag.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fminimum_mag(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_H
diff --git a/libc/src/math/fminimum_mag_num.h b/libc/src/math/fminimum_mag_num.h
index eb1823018851c..c4464343338dc 100644
--- a/libc/src/math/fminimum_mag_num.h
+++ b/libc/src/math/fminimum_mag_num.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUM_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fminimum_mag_num(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMH
diff --git a/libc/src/math/fminimum_mag_numf.h b/libc/src/math/fminimum_mag_numf.h
index 8091990911399..627b5ad29aa71 100644
--- a/libc/src/math/fminimum_mag_numf.h
+++ b/libc/src/math/fminimum_mag_numf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fminimum_mag_numf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF_H
diff --git a/libc/src/math/fminimum_mag_numf128.h b/libc/src/math/fminimum_mag_numf128.h
index 803c5e641d170..e3e69a770c667 100644
--- a/libc/src/math/fminimum_mag_numf128.h
+++ b/libc/src/math/fminimum_mag_numf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF128_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fminimum_mag_numf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF128_H
diff --git a/libc/src/math/fminimum_mag_numf16.h b/libc/src/math/fminimum_mag_numf16.h
index 0fd314b2f5a22..5ceca3ae75b1a 100644
--- a/libc/src/math/fminimum_mag_numf16.h
+++ b/libc/src/math/fminimum_mag_numf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF16_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fminimum_mag_numf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUMF16_H
diff --git a/libc/src/math/fminimum_mag_numl.h b/libc/src/math/fminimum_mag_numl.h
index fdbb183280692..6b1412604aef5 100644
--- a/libc/src/math/fminimum_mag_numl.h
+++ b/libc/src/math/fminimum_mag_numl.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUML_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fminimum_mag_numl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAG_NUML_H
diff --git a/libc/src/math/fminimum_magf.h b/libc/src/math/fminimum_magf.h
index 6209340074d2d..98c9cc08ce0e8 100644
--- a/libc/src/math/fminimum_magf.h
+++ b/libc/src/math/fminimum_magf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fminimum_magf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF_H
diff --git a/libc/src/math/fminimum_magf128.h b/libc/src/math/fminimum_magf128.h
index 05bd163be97c8..00eee4e287933 100644
--- a/libc/src/math/fminimum_magf128.h
+++ b/libc/src/math/fminimum_magf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF128_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fminimum_magf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF128_H
diff --git a/libc/src/math/fminimum_magf16.h b/libc/src/math/fminimum_magf16.h
index 27673555403c9..cebc76d1d8e31 100644
--- a/libc/src/math/fminimum_magf16.h
+++ b/libc/src/math/fminimum_magf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF16_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fminimum_magf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF16_H
diff --git a/libc/src/math/fminimum_magl.h b/libc/src/math/fminimum_magl.h
index bcda35ce3bd2a..3220e5095eb41 100644
--- a/libc/src/math/fminimum_magl.h
+++ b/libc/src/math/fminimum_magl.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAGL_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_MAGL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fminimum_magl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_MAGL_H
diff --git a/libc/src/math/fminimum_num.h b/libc/src/math/fminimum_num.h
index 4c864cba84872..42afb06e2f3f3 100644
--- a/libc/src/math/fminimum_num.h
+++ b/libc/src/math/fminimum_num.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_NUM_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_NUM_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fminimum_num(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_NUM_H
diff --git a/libc/src/math/fminimum_numf.h b/libc/src/math/fminimum_numf.h
index ac4b08b292be8..8252b8f321ccb 100644
--- a/libc/src/math/fminimum_numf.h
+++ b/libc/src/math/fminimum_numf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fminimum_numf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF_H
diff --git a/libc/src/math/fminimum_numf128.h b/libc/src/math/fminimum_numf128.h
index 00f8960ff1279..1833e9e1c9f5c 100644
--- a/libc/src/math/fminimum_numf128.h
+++ b/libc/src/math/fminimum_numf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF128_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fminimum_numf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF128_H
diff --git a/libc/src/math/fminimum_numf16.h b/libc/src/math/fminimum_numf16.h
index 598ff9d3c32d2..0b01c37e137ae 100644
--- a/libc/src/math/fminimum_numf16.h
+++ b/libc/src/math/fminimum_numf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF16_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fminimum_numf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF16_H
diff --git a/libc/src/math/fminimum_numl.h b/libc/src/math/fminimum_numl.h
index 0da204e72c74d..77d124f7cef1b 100644
--- a/libc/src/math/fminimum_numl.h
+++ b/libc/src/math/fminimum_numl.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_NUML_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUM_NUML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fminimum_numl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUM_NUML_H
diff --git a/libc/src/math/fminimumf.h b/libc/src/math/fminimumf.h
index 424309f3a5313..915e206d3f419 100644
--- a/libc/src/math/fminimumf.h
+++ b/libc/src/math/fminimumf.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUMF_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUMF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fminimumf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUMF_H
diff --git a/libc/src/math/fminimumf128.h b/libc/src/math/fminimumf128.h
index 7ff0190727379..d507766059909 100644
--- a/libc/src/math/fminimumf128.h
+++ b/libc/src/math/fminimumf128.h
@@ -10,12 +10,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUMF128_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUMF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fminimumf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUMF128_H
diff --git a/libc/src/math/fminimumf16.h b/libc/src/math/fminimumf16.h
index 86dd240ae406d..eaa466aa6602d 100644
--- a/libc/src/math/fminimumf16.h
+++ b/libc/src/math/fminimumf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUMF16_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUMF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fminimumf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUMF16_H
diff --git a/libc/src/math/fminimuml.h b/libc/src/math/fminimuml.h
index b9cc321354a28..3928806b9dd48 100644
--- a/libc/src/math/fminimuml.h
+++ b/libc/src/math/fminimuml.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINIMUML_H
 #define LLVM_LIBC_SRC_MATH_FMINIMUML_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fminimuml(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINIMUML_H
diff --git a/libc/src/math/fminl.h b/libc/src/math/fminl.h
index e111e26fc3f07..7b352cbc174db 100644
--- a/libc/src/math/fminl.h
+++ b/libc/src/math/fminl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMINL_H
 #define LLVM_LIBC_SRC_MATH_FMINL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fminl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMINL_H
diff --git a/libc/src/math/fmod.h b/libc/src/math/fmod.h
index 01b9aa7d2441e..f796930fad5ed 100644
--- a/libc/src/math/fmod.h
+++ b/libc/src/math/fmod.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMOD_H
 #define LLVM_LIBC_SRC_MATH_FMOD_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fmod(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMOD_H
diff --git a/libc/src/math/fmodf.h b/libc/src/math/fmodf.h
index 90d97e6cf1e05..01e0868134cbd 100644
--- a/libc/src/math/fmodf.h
+++ b/libc/src/math/fmodf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMODF_H
 #define LLVM_LIBC_SRC_MATH_FMODF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmodf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMODF_H
diff --git a/libc/src/math/fmodf128.h b/libc/src/math/fmodf128.h
index b3242705f025e..908fc61a19497 100644
--- a/libc/src/math/fmodf128.h
+++ b/libc/src/math/fmodf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMODF128_H
 #define LLVM_LIBC_SRC_MATH_FMODF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fmodf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMODF128_H
diff --git a/libc/src/math/fmodf16.h b/libc/src/math/fmodf16.h
index ab658430275d8..1c8cb8a9f5479 100644
--- a/libc/src/math/fmodf16.h
+++ b/libc/src/math/fmodf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMODF16_H
 #define LLVM_LIBC_SRC_MATH_FMODF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fmodf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMODF16_H
diff --git a/libc/src/math/fmodl.h b/libc/src/math/fmodl.h
index f259ddb238a8e..2ff5c9a264a5d 100644
--- a/libc/src/math/fmodl.h
+++ b/libc/src/math/fmodl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMODL_H
 #define LLVM_LIBC_SRC_MATH_FMODL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fmodl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMODL_H
diff --git a/libc/src/math/fmul.h b/libc/src/math/fmul.h
index fbc1069db733e..73ec2ee51649c 100644
--- a/libc/src/math/fmul.h
+++ b/libc/src/math/fmul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FMUL_H
 #define LLVM_LIBC_SRC_MATH_FMUL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fmul(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FMUL_H
diff --git a/libc/src/math/frexp.h b/libc/src/math/frexp.h
index 963ea7ba5fd07..316f5e0b635de 100644
--- a/libc/src/math/frexp.h
+++ b/libc/src/math/frexp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FREXP_H
 #define LLVM_LIBC_SRC_MATH_FREXP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double frexp(double x, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FREXP_H
diff --git a/libc/src/math/frexpf.h b/libc/src/math/frexpf.h
index 74eeac24bef8e..f13707369a542 100644
--- a/libc/src/math/frexpf.h
+++ b/libc/src/math/frexpf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FREXPF_H
 #define LLVM_LIBC_SRC_MATH_FREXPF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float frexpf(float x, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FREXPF_H
diff --git a/libc/src/math/frexpf128.h b/libc/src/math/frexpf128.h
index 55c4a47cc80ca..e143e6f17ffb3 100644
--- a/libc/src/math/frexpf128.h
+++ b/libc/src/math/frexpf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FREXPF128_H
 #define LLVM_LIBC_SRC_MATH_FREXPF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 frexpf128(float128 x, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FREXPF128_H
diff --git a/libc/src/math/frexpf16.h b/libc/src/math/frexpf16.h
index dc1898cc5f702..09a9938794e23 100644
--- a/libc/src/math/frexpf16.h
+++ b/libc/src/math/frexpf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FREXPF16_H
 #define LLVM_LIBC_SRC_MATH_FREXPF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 frexpf16(float16 x, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FREXPF16_H
diff --git a/libc/src/math/frexpl.h b/libc/src/math/frexpl.h
index 818266ed9f5fa..a5d827961f4a7 100644
--- a/libc/src/math/frexpl.h
+++ b/libc/src/math/frexpl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FREXPL_H
 #define LLVM_LIBC_SRC_MATH_FREXPL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double frexpl(long double x, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FREXPL_H
diff --git a/libc/src/math/fromfp.h b/libc/src/math/fromfp.h
index d3de2dd346083..63094bb207eaf 100644
--- a/libc/src/math/fromfp.h
+++ b/libc/src/math/fromfp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFP_H
 #define LLVM_LIBC_SRC_MATH_FROMFP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fromfp(double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFP_H
diff --git a/libc/src/math/fromfpf.h b/libc/src/math/fromfpf.h
index 11d432148d018..47e15ffa2075b 100644
--- a/libc/src/math/fromfpf.h
+++ b/libc/src/math/fromfpf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPF_H
 #define LLVM_LIBC_SRC_MATH_FROMFPF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fromfpf(float x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPF_H
diff --git a/libc/src/math/fromfpf128.h b/libc/src/math/fromfpf128.h
index 5f85fde570a0f..1600b81351ee6 100644
--- a/libc/src/math/fromfpf128.h
+++ b/libc/src/math/fromfpf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPF128_H
 #define LLVM_LIBC_SRC_MATH_FROMFPF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fromfpf128(float128 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPF128_H
diff --git a/libc/src/math/fromfpf16.h b/libc/src/math/fromfpf16.h
index 6e37c2de2e016..a76a92f6df701 100644
--- a/libc/src/math/fromfpf16.h
+++ b/libc/src/math/fromfpf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPF16_H
 #define LLVM_LIBC_SRC_MATH_FROMFPF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fromfpf16(float16 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPF16_H
diff --git a/libc/src/math/fromfpl.h b/libc/src/math/fromfpl.h
index dd8e1eebdea99..dab20069a884a 100644
--- a/libc/src/math/fromfpl.h
+++ b/libc/src/math/fromfpl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPL_H
 #define LLVM_LIBC_SRC_MATH_FROMFPL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fromfpl(long double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPL_H
diff --git a/libc/src/math/fromfpx.h b/libc/src/math/fromfpx.h
index 3fc96e1e648b9..e3e36a06ff49f 100644
--- a/libc/src/math/fromfpx.h
+++ b/libc/src/math/fromfpx.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPX_H
 #define LLVM_LIBC_SRC_MATH_FROMFPX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double fromfpx(double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPX_H
diff --git a/libc/src/math/fromfpxf.h b/libc/src/math/fromfpxf.h
index b55bc4c751395..5cc75ac72c9fc 100644
--- a/libc/src/math/fromfpxf.h
+++ b/libc/src/math/fromfpxf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPXF_H
 #define LLVM_LIBC_SRC_MATH_FROMFPXF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float fromfpxf(float x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPXF_H
diff --git a/libc/src/math/fromfpxf128.h b/libc/src/math/fromfpxf128.h
index 88932646cdcc9..32a772973cb05 100644
--- a/libc/src/math/fromfpxf128.h
+++ b/libc/src/math/fromfpxf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPXF128_H
 #define LLVM_LIBC_SRC_MATH_FROMFPXF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 fromfpxf128(float128 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPXF128_H
diff --git a/libc/src/math/fromfpxf16.h b/libc/src/math/fromfpxf16.h
index f53afbcf3ffdf..516ef4248fce4 100644
--- a/libc/src/math/fromfpxf16.h
+++ b/libc/src/math/fromfpxf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPXF16_H
 #define LLVM_LIBC_SRC_MATH_FROMFPXF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 fromfpxf16(float16 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPXF16_H
diff --git a/libc/src/math/fromfpxl.h b/libc/src/math/fromfpxl.h
index 545288834b8f3..1940508f46d2f 100644
--- a/libc/src/math/fromfpxl.h
+++ b/libc/src/math/fromfpxl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_FROMFPXL_H
 #define LLVM_LIBC_SRC_MATH_FROMFPXL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double fromfpxl(long double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_FROMFPXL_H
diff --git a/libc/src/math/generic/acosf.cpp b/libc/src/math/generic/acosf.cpp
index f02edec267174..95d8bc0213cba 100644
--- a/libc/src/math/generic/acosf.cpp
+++ b/libc/src/math/generic/acosf.cpp
@@ -13,13 +13,14 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/sqrt.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <errno.h>
 
 #include "inv_trigf_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static constexpr size_t N_EXCEPTS = 4;
 
@@ -120,4 +121,4 @@ LLVM_LIBC_FUNCTION(float, acosf, (float x)) {
   return static_cast<float>(x_sign ? M_MATH_PI - r : r);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/acoshf.cpp b/libc/src/math/generic/acoshf.cpp
index 9422ec63e1ce2..6158063d30521 100644
--- a/libc/src/math/generic/acoshf.cpp
+++ b/libc/src/math/generic/acoshf.cpp
@@ -12,11 +12,12 @@
 #include "src/__support/FPUtil/PolyEval.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/sqrt.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/math/generic/common_constants.h"
 #include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, acoshf, (float x)) {
   using FPBits_t = typename fputil::FPBits<float>;
@@ -70,4 +71,4 @@ LLVM_LIBC_FUNCTION(float, acoshf, (float x)) {
       x_d + fputil::sqrt<double>(fputil::multiply_add(x_d, x_d, -1.0))));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/asinf.cpp b/libc/src/math/generic/asinf.cpp
index c4afca493a713..d6acc3a1692bc 100644
--- a/libc/src/math/generic/asinf.cpp
+++ b/libc/src/math/generic/asinf.cpp
@@ -13,6 +13,7 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/sqrt.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
@@ -20,7 +21,7 @@
 
 #include "inv_trigf_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static constexpr size_t N_EXCEPTS = 2;
 
@@ -152,4 +153,4 @@ LLVM_LIBC_FUNCTION(float, asinf, (float x)) {
   return static_cast<float>(fputil::multiply_add(c3, r, c2));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/asinhf.cpp b/libc/src/math/generic/asinhf.cpp
index 82dc2a31ebc22..1d68ac9ea13bc 100644
--- a/libc/src/math/generic/asinhf.cpp
+++ b/libc/src/math/generic/asinhf.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/FPUtil/PolyEval.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/sqrt.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/math/generic/common_constants.h"
 #include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, asinhf, (float x)) {
   using FPBits_t = typename fputil::FPBits<float>;
@@ -102,4 +103,4 @@ LLVM_LIBC_FUNCTION(float, asinhf, (float x)) {
                    fputil::sqrt<double>(fputil::multiply_add(x_d, x_d, 1.0)))));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/atan2f.cpp b/libc/src/math/generic/atan2f.cpp
index b79410dbf66ee..e4b297c00f012 100644
--- a/libc/src/math/generic/atan2f.cpp
+++ b/libc/src/math/generic/atan2f.cpp
@@ -14,9 +14,10 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -303,4 +304,4 @@ LLVM_LIBC_FUNCTION(float, atan2f, (float y, float x)) {
                               const_term);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/atanf.cpp b/libc/src/math/generic/atanf.cpp
index 9fa1a331c9c03..5e0788efbeb88 100644
--- a/libc/src/math/generic/atanf.cpp
+++ b/libc/src/math/generic/atanf.cpp
@@ -14,9 +14,10 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanf, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -117,4 +118,4 @@ LLVM_LIBC_FUNCTION(float, atanf, (float x)) {
   return static_cast<float>(r);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/atanhf.cpp b/libc/src/math/generic/atanhf.cpp
index 97fd1b2336006..a2051bd3e3e67 100644
--- a/libc/src/math/generic/atanhf.cpp
+++ b/libc/src/math/generic/atanhf.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/atanhf.h"
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanhf, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -58,4 +59,4 @@ LLVM_LIBC_FUNCTION(float, atanhf, (float x)) {
   return static_cast<float>(0.5 * log_eval((xdbl + 1.0) / (xdbl - 1.0)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/canonicalize.cpp b/libc/src/math/generic/canonicalize.cpp
index f38ca01e157f8..d93501d597376 100644
--- a/libc/src/math/generic/canonicalize.cpp
+++ b/libc/src/math/generic/canonicalize.cpp
@@ -9,11 +9,12 @@
 #include "src/math/canonicalize.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, canonicalize, (double *cx, const double *x)) {
   return fputil::canonicalize(*cx, *x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/canonicalizef.cpp b/libc/src/math/generic/canonicalizef.cpp
index dce601de14914..437cf8768458a 100644
--- a/libc/src/math/generic/canonicalizef.cpp
+++ b/libc/src/math/generic/canonicalizef.cpp
@@ -9,11 +9,12 @@
 #include "src/math/canonicalizef.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, canonicalizef, (float *cx, const float *x)) {
   return fputil::canonicalize(*cx, *x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/canonicalizef128.cpp b/libc/src/math/generic/canonicalizef128.cpp
index 0078b478238cb..477d9c740a746 100644
--- a/libc/src/math/generic/canonicalizef128.cpp
+++ b/libc/src/math/generic/canonicalizef128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/canonicalizef128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, canonicalizef128, (float128 * cx, const float128 *x)) {
   return fputil::canonicalize(*cx, *x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/canonicalizef16.cpp b/libc/src/math/generic/canonicalizef16.cpp
index 232e84f7dd68f..ff32c918793ff 100644
--- a/libc/src/math/generic/canonicalizef16.cpp
+++ b/libc/src/math/generic/canonicalizef16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/canonicalizef16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, canonicalizef16, (float16 * cx, const float16 *x)) {
   return fputil::canonicalize(*cx, *x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/canonicalizel.cpp b/libc/src/math/generic/canonicalizel.cpp
index 5310a316acdd3..fa2b846216d7b 100644
--- a/libc/src/math/generic/canonicalizel.cpp
+++ b/libc/src/math/generic/canonicalizel.cpp
@@ -9,12 +9,13 @@
 #include "src/math/canonicalizel.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, canonicalizel,
                    (long double *cx, const long double *x)) {
   return fputil::canonicalize(*cx, *x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/cbrtf.cpp b/libc/src/math/generic/cbrtf.cpp
index a1eb58d463a06..313961bf356b8 100644
--- a/libc/src/math/generic/cbrtf.cpp
+++ b/libc/src/math/generic/cbrtf.cpp
@@ -12,9 +12,10 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -154,4 +155,4 @@ LLVM_LIBC_FUNCTION(float, cbrtf, (float x)) {
   return static_cast<float>(DoubleBits(r_bits).get_val());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ceil.cpp b/libc/src/math/generic/ceil.cpp
index efd0f246a9b90..a5ac1348834d8 100644
--- a/libc/src/math/generic/ceil.cpp
+++ b/libc/src/math/generic/ceil.cpp
@@ -9,9 +9,10 @@
 #include "src/math/ceil.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ceil, (double x)) { return fputil::ceil(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ceilf.cpp b/libc/src/math/generic/ceilf.cpp
index d49b34242da4f..0fd54361648dc 100644
--- a/libc/src/math/generic/ceilf.cpp
+++ b/libc/src/math/generic/ceilf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/ceilf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ceilf, (float x)) { return fputil::ceil(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ceilf128.cpp b/libc/src/math/generic/ceilf128.cpp
index af980429f87d8..5d0cf46933cdf 100644
--- a/libc/src/math/generic/ceilf128.cpp
+++ b/libc/src/math/generic/ceilf128.cpp
@@ -9,9 +9,10 @@
 #include "src/math/ceilf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, ceilf128, (float128 x)) { return fputil::ceil(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ceilf16.cpp b/libc/src/math/generic/ceilf16.cpp
index 205d7428f66e6..1d17daf283d07 100644
--- a/libc/src/math/generic/ceilf16.cpp
+++ b/libc/src/math/generic/ceilf16.cpp
@@ -9,9 +9,10 @@
 #include "src/math/ceilf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, ceilf16, (float16 x)) { return fputil::ceil(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ceill.cpp b/libc/src/math/generic/ceill.cpp
index 7c3b680ce6442..bce9d557be78a 100644
--- a/libc/src/math/generic/ceill.cpp
+++ b/libc/src/math/generic/ceill.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ceill.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, ceill, (long double x)) {
   return fputil::ceil(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/common_constants.cpp b/libc/src/math/generic/common_constants.cpp
index 1a23d00297105..e29c083fa474a 100644
--- a/libc/src/math/generic/common_constants.cpp
+++ b/libc/src/math/generic/common_constants.cpp
@@ -8,9 +8,10 @@
 
 #include "common_constants.h"
 #include "src/__support/FPUtil/triple_double.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/number_pair.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Lookup table for (1/f) where f = 1 + n*2^(-7), n = 0..127.
 const double ONE_OVER_F[128] = {
@@ -805,4 +806,4 @@ const fputil::TripleDouble EXP2_MID2[64] = {
     {0x1.6ae7d36d7c1f7p-109, 0x1.e47120223467fp-54, 0x1.02be6e199c811p0},
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/common_constants.h b/libc/src/math/generic/common_constants.h
index 13fc8d757cb8c..dc1a90c1cb24a 100644
--- a/libc/src/math/generic/common_constants.h
+++ b/libc/src/math/generic/common_constants.h
@@ -10,9 +10,10 @@
 #define LLVM_LIBC_SRC_MATH_GENERIC_COMMON_CONSTANTS_H
 
 #include "src/__support/FPUtil/triple_double.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/number_pair.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Lookup table for (1/f) where f = 1 + n*2^(-7), n = 0..127.
 extern const double ONE_OVER_F[128];
@@ -77,6 +78,6 @@ extern const fputil::TripleDouble EXP2_MID1[64];
 // Lookup table for 2^(k * 2^-12) with k = 0..63.
 extern const fputil::TripleDouble EXP2_MID2[64];
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_COMMON_CONSTANTS_H
diff --git a/libc/src/math/generic/copysign.cpp b/libc/src/math/generic/copysign.cpp
index c5ad414bd6482..149d725af08e2 100644
--- a/libc/src/math/generic/copysign.cpp
+++ b/libc/src/math/generic/copysign.cpp
@@ -9,11 +9,12 @@
 #include "src/math/copysign.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, copysign, (double x, double y)) {
   return fputil::copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/copysignf.cpp b/libc/src/math/generic/copysignf.cpp
index 077e1ce60ec18..17cd70d37c308 100644
--- a/libc/src/math/generic/copysignf.cpp
+++ b/libc/src/math/generic/copysignf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/copysignf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, copysignf, (float x, float y)) {
   return fputil::copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/copysignf128.cpp b/libc/src/math/generic/copysignf128.cpp
index 2fe36d52d01dc..9a51c8d5eb8df 100644
--- a/libc/src/math/generic/copysignf128.cpp
+++ b/libc/src/math/generic/copysignf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/copysignf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, copysignf128, (float128 x, float128 y)) {
   return fputil::copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/copysignf16.cpp b/libc/src/math/generic/copysignf16.cpp
index 435c7e4733862..42695b3b4a6de 100644
--- a/libc/src/math/generic/copysignf16.cpp
+++ b/libc/src/math/generic/copysignf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/copysignf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, copysignf16, (float16 x, float16 y)) {
   return fputil::copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/copysignl.cpp b/libc/src/math/generic/copysignl.cpp
index b74393cee5d6a..73c47bb04ad4a 100644
--- a/libc/src/math/generic/copysignl.cpp
+++ b/libc/src/math/generic/copysignl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/copysignl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, copysignl, (long double x, long double y)) {
   return fputil::copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/cos.cpp b/libc/src/math/generic/cos.cpp
index 0eb6d9d6a6de8..dbfeec70d83ac 100644
--- a/libc/src/math/generic/cos.cpp
+++ b/libc/src/math/generic/cos.cpp
@@ -14,6 +14,7 @@
 #include "src/__support/FPUtil/dyadic_float.h"
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 #include "src/math/generic/sincos_eval.h"
@@ -48,7 +49,7 @@ LIBC_INLINE constexpr bool NO_FMA = true;
 #define LIBC_MATH_COS_SKIP_ACCURATE_PASS
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using DoubleDouble = fputil::DoubleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -194,4 +195,4 @@ LLVM_LIBC_FUNCTION(double, cos, (double x)) {
 #endif // !LIBC_MATH_COS_SKIP_ACCURATE_PASS
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/cosf.cpp b/libc/src/math/generic/cosf.cpp
index 180a44e947eaf..6a59b3763b6e8 100644
--- a/libc/src/math/generic/cosf.cpp
+++ b/libc/src/math/generic/cosf.cpp
@@ -14,12 +14,13 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Exceptional cases for cosf.
 static constexpr size_t N_EXCEPTS = 6;
@@ -134,4 +135,4 @@ LLVM_LIBC_FUNCTION(float, cosf, (float x)) {
       sin_y, -sin_k, fputil::multiply_add(cosm1_y, cos_k, cos_k)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/coshf.cpp b/libc/src/math/generic/coshf.cpp
index a8ea324c95052..c869f7d9dec5f 100644
--- a/libc/src/math/generic/coshf.cpp
+++ b/libc/src/math/generic/coshf.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, coshf, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -52,4 +53,4 @@ LLVM_LIBC_FUNCTION(float, coshf, (float x)) {
   return static_cast<float>(exp_pm_eval</*is_sinh*/ false>(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/cospif.cpp b/libc/src/math/generic/cospif.cpp
index d36468101c077..4ef1539539921 100644
--- a/libc/src/math/generic/cospif.cpp
+++ b/libc/src/math/generic/cospif.cpp
@@ -12,10 +12,11 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, cospif, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -92,4 +93,4 @@ LLVM_LIBC_FUNCTION(float, cospif, (float x)) {
       sin_y, -sin_k, fputil::multiply_add(cosm1_y, cos_k, cos_k)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/erff.cpp b/libc/src/math/generic/erff.cpp
index aa7baffc7815e..15357452759ea 100644
--- a/libc/src/math/generic/erff.cpp
+++ b/libc/src/math/generic/erff.cpp
@@ -12,9 +12,10 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Polynomials approximating erf(x)/x on ( k/8, (k + 1)/8 ) generated by Sollya
 // with:
@@ -176,4 +177,4 @@ LLVM_LIBC_FUNCTION(float, erff, (float x)) {
   return static_cast<float>(xd * fputil::multiply_add(x8, p1, p0));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp.cpp b/libc/src/math/generic/exp.cpp
index 3d060bcbd3be3..df0c2eab7155c 100644
--- a/libc/src/math/generic/exp.cpp
+++ b/libc/src/math/generic/exp.cpp
@@ -22,11 +22,12 @@
 #include "src/__support/FPUtil/triple_double.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
@@ -416,4 +417,4 @@ LLVM_LIBC_FUNCTION(double, exp, (double x)) {
   return static_cast<double>(r_f128);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp10.cpp b/libc/src/math/generic/exp10.cpp
index a4ae41407112b..d01bbd8fc01c3 100644
--- a/libc/src/math/generic/exp10.cpp
+++ b/libc/src/math/generic/exp10.cpp
@@ -22,11 +22,12 @@
 #include "src/__support/FPUtil/triple_double.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
@@ -476,4 +477,4 @@ LLVM_LIBC_FUNCTION(double, exp10, (double x)) {
   return static_cast<double>(r_f128);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp10f.cpp b/libc/src/math/generic/exp10f.cpp
index 273b583df8e50..5284c380f52ec 100644
--- a/libc/src/math/generic/exp10f.cpp
+++ b/libc/src/math/generic/exp10f.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/exp10f.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/math/generic/exp10f_impl.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, exp10f, (float x)) { return generic::exp10f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp10f_impl.h b/libc/src/math/generic/exp10f_impl.h
index ff4c1c3aec67c..fe2195c6e0473 100644
--- a/libc/src/math/generic/exp10f_impl.h
+++ b/libc/src/math/generic/exp10f_impl.h
@@ -18,11 +18,13 @@
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace generic {
 
 LIBC_INLINE float exp10f(float x) {
   using FPBits = typename fputil::FPBits<float>;
@@ -135,6 +137,7 @@ LIBC_INLINE float exp10f(float x) {
   return static_cast<float>(multiply_add(p, lo2 * rr.mh, c0 * rr.mh));
 }
 
-} // namespace LIBC_NAMESPACE::generic
+} // namespace generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_EXP10F_IMPL_H
diff --git a/libc/src/math/generic/exp2.cpp b/libc/src/math/generic/exp2.cpp
index 1a2fa3feb83e5..fbabb625af51f 100644
--- a/libc/src/math/generic/exp2.cpp
+++ b/libc/src/math/generic/exp2.cpp
@@ -22,11 +22,12 @@
 #include "src/__support/FPUtil/triple_double.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
@@ -390,4 +391,4 @@ LLVM_LIBC_FUNCTION(double, exp2, (double x)) {
   return static_cast<double>(r_f128);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp2f.cpp b/libc/src/math/generic/exp2f.cpp
index e6cb9383dfa2e..60d6510f23699 100644
--- a/libc/src/math/generic/exp2f.cpp
+++ b/libc/src/math/generic/exp2f.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/exp2f.h"
 #include "src/__support/common.h" // for LLVM_LIBC_FUNCTION
+#include "src/__support/macros/config.h"
 #include "src/math/generic/exp2f_impl.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, exp2f, (float x)) { return generic::exp2f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp2f_impl.h b/libc/src/math/generic/exp2f_impl.h
index d2342e289fcba..3f1c5ee68f081 100644
--- a/libc/src/math/generic/exp2f_impl.h
+++ b/libc/src/math/generic/exp2f_impl.h
@@ -17,6 +17,7 @@
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h"
 
@@ -24,7 +25,8 @@
 
 #include "explogxf.h"
 
-namespace LIBC_NAMESPACE::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace generic {
 
 LIBC_INLINE float exp2f(float x) {
   constexpr uint32_t EXVAL1 = 0x3b42'9d37U;
@@ -160,6 +162,7 @@ LIBC_INLINE float exp2f(float x) {
   return static_cast<float>(fputil::multiply_add(p, dx_sq * mh, c1 * mh));
 }
 
-} // namespace LIBC_NAMESPACE::generic
+} // namespace generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_EXP2F_IMPL_H
diff --git a/libc/src/math/generic/exp2m1f.cpp b/libc/src/math/generic/exp2m1f.cpp
index c60930dd782e8..2060dc34cc9bf 100644
--- a/libc/src/math/generic/exp2m1f.cpp
+++ b/libc/src/math/generic/exp2m1f.cpp
@@ -14,13 +14,14 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/macros/properties/cpu_features.h"
 #include "src/errno/libc_errno.h"
 
 #include "explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static constexpr size_t N_EXCEPTS_LO = 8;
 
@@ -180,4 +181,4 @@ LLVM_LIBC_FUNCTION(float, exp2m1f, (float x)) {
   return static_cast<float>(fputil::multiply_add(exp2_lo, mh, -1.0));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp_utils.cpp b/libc/src/math/generic/exp_utils.cpp
index ad13919578ec1..cc21637e4c7c0 100644
--- a/libc/src/math/generic/exp_utils.cpp
+++ b/libc/src/math/generic/exp_utils.cpp
@@ -7,8 +7,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "exp_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 const Exp2fDataTable exp2f_data = {
     // :tab[i] = uint(2^(i/N)) - (i << 52-BITS)
@@ -124,4 +125,4 @@ const Exp2fDataTable exp2f_data = {
     },
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/exp_utils.h b/libc/src/math/generic/exp_utils.h
index 405678c356f36..dca9eb7c2d715 100644
--- a/libc/src/math/generic/exp_utils.h
+++ b/libc/src/math/generic/exp_utils.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_MATH_GENERIC_EXP_UTILS_H
 #define LLVM_LIBC_SRC_MATH_GENERIC_EXP_UTILS_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
 #define EXP2F_TABLE_BITS 5
 #define EXP2F_POLY_ORDER 3
 #define N (1 << EXP2F_TABLE_BITS)
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct Exp2fDataTable {
   uint64_t tab[1 << EXP2F_TABLE_BITS];
@@ -28,6 +29,6 @@ struct Exp2fDataTable {
 
 extern const Exp2fDataTable exp2f_data;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_EXP_UTILS_H
diff --git a/libc/src/math/generic/expf.cpp b/libc/src/math/generic/expf.cpp
index c7ab974850a82..1d7c0478eb225 100644
--- a/libc/src/math/generic/expf.cpp
+++ b/libc/src/math/generic/expf.cpp
@@ -16,11 +16,12 @@
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, expf, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -105,4 +106,4 @@ LLVM_LIBC_FUNCTION(float, expf, (float x)) {
   return static_cast<float>(exp_hi * exp_mid * exp_lo);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/explogxf.cpp b/libc/src/math/generic/explogxf.cpp
index 87ee57850c473..9e945eca7aed6 100644
--- a/libc/src/math/generic/explogxf.cpp
+++ b/libc/src/math/generic/explogxf.cpp
@@ -7,8 +7,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "explogxf.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // N[Table[Log[2, 1 + x], {x, 0/64, 63/64, 1/64}], 40]
 alignas(64) const double LOG_P1_LOG2[LOG_P1_SIZE] = {
@@ -71,4 +72,4 @@ alignas(64) const
     double K_LOG2_EVEN[4] = {-0x1.71547652b82fep-1, -0x1.71547652b82fep-2,
                              -0x1.ec709dc3a03fdp-3, -0x1.2776c50ef9bfep-3};
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/explogxf.h b/libc/src/math/generic/explogxf.h
index f7d04f517ce57..7daed558f74b1 100644
--- a/libc/src/math/generic/explogxf.h
+++ b/libc/src/math/generic/explogxf.h
@@ -17,11 +17,12 @@
 #include "src/__support/FPUtil/PolyEval.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/cpu_features.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct ExpBase {
   // Base = e
@@ -379,6 +380,6 @@ LIBC_INLINE cpp::optional<double> ziv_test_denorm(int hi, double mid, double lo,
   return cpp::nullopt;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_EXPLOGXF_H
diff --git a/libc/src/math/generic/expm1.cpp b/libc/src/math/generic/expm1.cpp
index 150c0bbcf60da..d9485864df899 100644
--- a/libc/src/math/generic/expm1.cpp
+++ b/libc/src/math/generic/expm1.cpp
@@ -23,6 +23,7 @@
 #include "src/__support/FPUtil/triple_double.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #if ((LIBC_MATH & LIBC_MATH_SKIP_ACCURATE_PASS) != 0)
@@ -36,7 +37,7 @@
 #include <iostream>
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
@@ -507,4 +508,4 @@ LLVM_LIBC_FUNCTION(double, expm1, (double x)) {
 #endif // LIBC_MATH_EXPM1_SKIP_ACCURATE_PASS
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/expm1f.cpp b/libc/src/math/generic/expm1f.cpp
index 6b9f07476a650..b1a0fe16de077 100644
--- a/libc/src/math/generic/expm1f.cpp
+++ b/libc/src/math/generic/expm1f.cpp
@@ -17,12 +17,13 @@
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, expm1f, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -170,4 +171,4 @@ LLVM_LIBC_FUNCTION(float, expm1f, (float x)) {
   return static_cast<float>(fputil::multiply_add(exp_hi_mid, exp_lo, -1.0));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16add.cpp b/libc/src/math/generic/f16add.cpp
index ef9b43e9f46aa..e9be8a743721e 100644
--- a/libc/src/math/generic/f16add.cpp
+++ b/libc/src/math/generic/f16add.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16add.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16add, (double x, double y)) {
   return fputil::generic::add<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16addf.cpp b/libc/src/math/generic/f16addf.cpp
index f1761a193985d..ee05ff7f00531 100644
--- a/libc/src/math/generic/f16addf.cpp
+++ b/libc/src/math/generic/f16addf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16addf.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16addf, (float x, float y)) {
   return fputil::generic::add<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16addf128.cpp b/libc/src/math/generic/f16addf128.cpp
index 61c458f7d5de1..4e9038e23125a 100644
--- a/libc/src/math/generic/f16addf128.cpp
+++ b/libc/src/math/generic/f16addf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16addf128.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16addf128, (float128 x, float128 y)) {
   return fputil::generic::add<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16addl.cpp b/libc/src/math/generic/f16addl.cpp
index d32d09d0dbb83..925f08418b99d 100644
--- a/libc/src/math/generic/f16addl.cpp
+++ b/libc/src/math/generic/f16addl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16addl.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16addl, (long double x, long double y)) {
   return fputil::generic::add<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16div.cpp b/libc/src/math/generic/f16div.cpp
index 2ff0ff7865539..7df94a8ef508f 100644
--- a/libc/src/math/generic/f16div.cpp
+++ b/libc/src/math/generic/f16div.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16div.h"
 #include "src/__support/FPUtil/generic/div.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16div, (double x, double y)) {
   return fputil::generic::div<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16divf.cpp b/libc/src/math/generic/f16divf.cpp
index 45874fbac2055..3e6289eee4017 100644
--- a/libc/src/math/generic/f16divf.cpp
+++ b/libc/src/math/generic/f16divf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16divf.h"
 #include "src/__support/FPUtil/generic/div.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16divf, (float x, float y)) {
   return fputil::generic::div<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16divf128.cpp b/libc/src/math/generic/f16divf128.cpp
index 1d37ad8aa2366..8980ebe9640bd 100644
--- a/libc/src/math/generic/f16divf128.cpp
+++ b/libc/src/math/generic/f16divf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16divf128.h"
 #include "src/__support/FPUtil/generic/div.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16divf128, (float128 x, float128 y)) {
   return fputil::generic::div<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16divl.cpp b/libc/src/math/generic/f16divl.cpp
index 3fb9c7891f5d1..2a0b20041e0d3 100644
--- a/libc/src/math/generic/f16divl.cpp
+++ b/libc/src/math/generic/f16divl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16divl.h"
 #include "src/__support/FPUtil/generic/div.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16divl, (long double x, long double y)) {
   return fputil::generic::div<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16fma.cpp b/libc/src/math/generic/f16fma.cpp
index 10ee028c06930..70314b5420fad 100644
--- a/libc/src/math/generic/f16fma.cpp
+++ b/libc/src/math/generic/f16fma.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16fma.h"
 #include "src/__support/FPUtil/FMA.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16fma, (double x, double y, double z)) {
   return fputil::fma<float16>(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16fmaf.cpp b/libc/src/math/generic/f16fmaf.cpp
index 09f2712639335..bd0b56b1ab31b 100644
--- a/libc/src/math/generic/f16fmaf.cpp
+++ b/libc/src/math/generic/f16fmaf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16fmaf.h"
 #include "src/__support/FPUtil/FMA.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16fmaf, (float x, float y, float z)) {
   return fputil::fma<float16>(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16fmaf128.cpp b/libc/src/math/generic/f16fmaf128.cpp
index 5b2f801cf21fa..5c4823c47e79f 100644
--- a/libc/src/math/generic/f16fmaf128.cpp
+++ b/libc/src/math/generic/f16fmaf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16fmaf128.h"
 #include "src/__support/FPUtil/FMA.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16fmaf128, (float128 x, float128 y, float128 z)) {
   return fputil::fma<float16>(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16fmal.cpp b/libc/src/math/generic/f16fmal.cpp
index 067483629a336..4f2bf92af5bbb 100644
--- a/libc/src/math/generic/f16fmal.cpp
+++ b/libc/src/math/generic/f16fmal.cpp
@@ -9,12 +9,13 @@
 #include "src/math/f16fmal.h"
 #include "src/__support/FPUtil/FMA.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16fmal,
                    (long double x, long double y, long double z)) {
   return fputil::fma<float16>(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16sqrt.cpp b/libc/src/math/generic/f16sqrt.cpp
index 9d5f081f63315..4addb553a5851 100644
--- a/libc/src/math/generic/f16sqrt.cpp
+++ b/libc/src/math/generic/f16sqrt.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16sqrt.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16sqrt, (double x)) {
   return fputil::sqrt<float16>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16sqrtf.cpp b/libc/src/math/generic/f16sqrtf.cpp
index 1f7ee2df29e86..be43a77787fae 100644
--- a/libc/src/math/generic/f16sqrtf.cpp
+++ b/libc/src/math/generic/f16sqrtf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16sqrtf.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16sqrtf, (float x)) {
   return fputil::sqrt<float16>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16sqrtf128.cpp b/libc/src/math/generic/f16sqrtf128.cpp
index 11a1e8252788e..d33d6d2963fea 100644
--- a/libc/src/math/generic/f16sqrtf128.cpp
+++ b/libc/src/math/generic/f16sqrtf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16sqrtf128.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16sqrtf128, (float128 x)) {
   return fputil::sqrt<float16>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16sqrtl.cpp b/libc/src/math/generic/f16sqrtl.cpp
index 2aaac9a780f66..c6ce73de7fec9 100644
--- a/libc/src/math/generic/f16sqrtl.cpp
+++ b/libc/src/math/generic/f16sqrtl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16sqrtl.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16sqrtl, (long double x)) {
   return fputil::sqrt<float16>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16sub.cpp b/libc/src/math/generic/f16sub.cpp
index 114c8ad3155e1..88962b880491d 100644
--- a/libc/src/math/generic/f16sub.cpp
+++ b/libc/src/math/generic/f16sub.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16sub.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16sub, (double x, double y)) {
   return fputil::generic::sub<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16subf.cpp b/libc/src/math/generic/f16subf.cpp
index e4532a456b7b8..adc0ca4375aaf 100644
--- a/libc/src/math/generic/f16subf.cpp
+++ b/libc/src/math/generic/f16subf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16subf.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16subf, (float x, float y)) {
   return fputil::generic::sub<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16subf128.cpp b/libc/src/math/generic/f16subf128.cpp
index 1f9ff28abdf29..c3e0ba559f663 100644
--- a/libc/src/math/generic/f16subf128.cpp
+++ b/libc/src/math/generic/f16subf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16subf128.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16subf128, (float128 x, float128 y)) {
   return fputil::generic::sub<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/f16subl.cpp b/libc/src/math/generic/f16subl.cpp
index 31970af9a2366..0ade79064773d 100644
--- a/libc/src/math/generic/f16subl.cpp
+++ b/libc/src/math/generic/f16subl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/f16subl.h"
 #include "src/__support/FPUtil/generic/add_sub.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, f16subl, (long double x, long double y)) {
   return fputil::generic::sub<float16>(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fabs.cpp b/libc/src/math/generic/fabs.cpp
index 0c0b7748b1f35..472297aecb2f7 100644
--- a/libc/src/math/generic/fabs.cpp
+++ b/libc/src/math/generic/fabs.cpp
@@ -9,9 +9,10 @@
 #include "src/math/fabs.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fabs, (double x)) { return fputil::abs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fabsf.cpp b/libc/src/math/generic/fabsf.cpp
index a57f6bf914eb2..ad4fcb30c795d 100644
--- a/libc/src/math/generic/fabsf.cpp
+++ b/libc/src/math/generic/fabsf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/fabsf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fabsf, (float x)) { return fputil::abs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fabsf128.cpp b/libc/src/math/generic/fabsf128.cpp
index 615b13f862399..795d907e881f6 100644
--- a/libc/src/math/generic/fabsf128.cpp
+++ b/libc/src/math/generic/fabsf128.cpp
@@ -9,9 +9,10 @@
 #include "src/math/fabsf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fabsf128, (float128 x)) { return fputil::abs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fabsf16.cpp b/libc/src/math/generic/fabsf16.cpp
index 4de84f35da302..57671fb6067e2 100644
--- a/libc/src/math/generic/fabsf16.cpp
+++ b/libc/src/math/generic/fabsf16.cpp
@@ -9,9 +9,10 @@
 #include "src/math/fabsf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fabsf16, (float16 x)) { return fputil::abs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fabsl.cpp b/libc/src/math/generic/fabsl.cpp
index 6b912c92eca86..ea860549abd1e 100644
--- a/libc/src/math/generic/fabsl.cpp
+++ b/libc/src/math/generic/fabsl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fabsl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fabsl, (long double x)) {
   return fputil::abs(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fdim.cpp b/libc/src/math/generic/fdim.cpp
index 22d99867b423d..9ea121f327286 100644
--- a/libc/src/math/generic/fdim.cpp
+++ b/libc/src/math/generic/fdim.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fdim.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fdim, (double x, double y)) {
   return fputil::fdim(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fdimf.cpp b/libc/src/math/generic/fdimf.cpp
index 789a0c57eb1ee..2c6bf7a51dc57 100644
--- a/libc/src/math/generic/fdimf.cpp
+++ b/libc/src/math/generic/fdimf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fdimf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fdimf, (float x, float y)) {
   return fputil::fdim(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fdimf128.cpp b/libc/src/math/generic/fdimf128.cpp
index a3ea9e591610c..f8b1499b35b0b 100644
--- a/libc/src/math/generic/fdimf128.cpp
+++ b/libc/src/math/generic/fdimf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fdimf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fdimf128, (float128 x, float128 y)) {
   return fputil::fdim(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fdimf16.cpp b/libc/src/math/generic/fdimf16.cpp
index 25e1d88d7048d..6eac460a93c71 100644
--- a/libc/src/math/generic/fdimf16.cpp
+++ b/libc/src/math/generic/fdimf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fdimf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fdimf16, (float16 x, float16 y)) {
   return fputil::fdim(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fdiml.cpp b/libc/src/math/generic/fdiml.cpp
index c1091cc66b7a8..ebac58ea797ed 100644
--- a/libc/src/math/generic/fdiml.cpp
+++ b/libc/src/math/generic/fdiml.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fdiml.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fdiml, (long double x, long double y)) {
   return fputil::fdim(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/floor.cpp b/libc/src/math/generic/floor.cpp
index 60386f0c9cf81..417d6aca3ffe5 100644
--- a/libc/src/math/generic/floor.cpp
+++ b/libc/src/math/generic/floor.cpp
@@ -9,9 +9,10 @@
 #include "src/math/floor.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, floor, (double x)) { return fputil::floor(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/floorf.cpp b/libc/src/math/generic/floorf.cpp
index 85666688685dc..ca059e6d02d53 100644
--- a/libc/src/math/generic/floorf.cpp
+++ b/libc/src/math/generic/floorf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/floorf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, floorf, (float x)) { return fputil::floor(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/floorf128.cpp b/libc/src/math/generic/floorf128.cpp
index 22a8eacb45ddb..f3ad20a1dcba0 100644
--- a/libc/src/math/generic/floorf128.cpp
+++ b/libc/src/math/generic/floorf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/floorf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, floorf128, (float128 x)) {
   return fputil::floor(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/floorf16.cpp b/libc/src/math/generic/floorf16.cpp
index db0b326c0e5f6..46068c2a548a9 100644
--- a/libc/src/math/generic/floorf16.cpp
+++ b/libc/src/math/generic/floorf16.cpp
@@ -9,9 +9,10 @@
 #include "src/math/floorf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, floorf16, (float16 x)) { return fputil::floor(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/floorl.cpp b/libc/src/math/generic/floorl.cpp
index 280312797fe0a..74fbb6893822a 100644
--- a/libc/src/math/generic/floorl.cpp
+++ b/libc/src/math/generic/floorl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/floorl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, floorl, (long double x)) {
   return fputil::floor(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fma.cpp b/libc/src/math/generic/fma.cpp
index 7937766dccd71..2ea4ae9961150 100644
--- a/libc/src/math/generic/fma.cpp
+++ b/libc/src/math/generic/fma.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "src/__support/FPUtil/FMA.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fma, (double x, double y, double z)) {
   return fputil::fma<double>(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaf.cpp b/libc/src/math/generic/fmaf.cpp
index d367a069ea7d8..dad85b4e9d1e6 100644
--- a/libc/src/math/generic/fmaf.cpp
+++ b/libc/src/math/generic/fmaf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "src/__support/FPUtil/FMA.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaf, (float x, float y, float z)) {
   return fputil::fma<float>(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmax.cpp b/libc/src/math/generic/fmax.cpp
index 7feeee9dcd946..b9ac4a0d8efaf 100644
--- a/libc/src/math/generic/fmax.cpp
+++ b/libc/src/math/generic/fmax.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmax.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmax, (double x, double y)) {
   return fputil::fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaxf.cpp b/libc/src/math/generic/fmaxf.cpp
index 32410926c89a0..1c422de371f23 100644
--- a/libc/src/math/generic/fmaxf.cpp
+++ b/libc/src/math/generic/fmaxf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaxf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaxf, (float x, float y)) {
   return fputil::fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaxf128.cpp b/libc/src/math/generic/fmaxf128.cpp
index 096e4befeb79a..08a9c8fe88aef 100644
--- a/libc/src/math/generic/fmaxf128.cpp
+++ b/libc/src/math/generic/fmaxf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaxf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fmaxf128, (float128 x, float128 y)) {
   return fputil::fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaxf16.cpp b/libc/src/math/generic/fmaxf16.cpp
index c317aef3cb3b8..02c2bd80149fd 100644
--- a/libc/src/math/generic/fmaxf16.cpp
+++ b/libc/src/math/generic/fmaxf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaxf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fmaxf16, (float16 x, float16 y)) {
   return fputil::fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum.cpp b/libc/src/math/generic/fmaximum.cpp
index ac9593b325d4b..1493521affd93 100644
--- a/libc/src/math/generic/fmaximum.cpp
+++ b/libc/src/math/generic/fmaximum.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmaximum, (double x, double y)) {
   return fputil::fmaximum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_mag.cpp b/libc/src/math/generic/fmaximum_mag.cpp
index 0deb0c2835f93..a0152bf73a62d 100644
--- a/libc/src/math/generic/fmaximum_mag.cpp
+++ b/libc/src/math/generic/fmaximum_mag.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_mag.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmaximum_mag, (double x, double y)) {
   return fputil::fmaximum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_mag_num.cpp b/libc/src/math/generic/fmaximum_mag_num.cpp
index d0b1096b88bc6..de250bbd32b7b 100644
--- a/libc/src/math/generic/fmaximum_mag_num.cpp
+++ b/libc/src/math/generic/fmaximum_mag_num.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_mag_num.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmaximum_mag_num, (double x, double y)) {
   return fputil::fmaximum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_mag_numf.cpp b/libc/src/math/generic/fmaximum_mag_numf.cpp
index 672d3fd3b263a..e372f1bd1f9d3 100644
--- a/libc/src/math/generic/fmaximum_mag_numf.cpp
+++ b/libc/src/math/generic/fmaximum_mag_numf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_mag_numf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaximum_mag_numf, (float x, float y)) {
   return fputil::fmaximum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_mag_numf128.cpp b/libc/src/math/generic/fmaximum_mag_numf128.cpp
index e7d13f13a0982..09e72481d8908 100644
--- a/libc/src/math/generic/fmaximum_mag_numf128.cpp
+++ b/libc/src/math/generic/fmaximum_mag_numf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_mag_numf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fmaximum_mag_numf128, (float128 x, float128 y)) {
   return fputil::fmaximum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_mag_numf16.cpp b/libc/src/math/generic/fmaximum_mag_numf16.cpp
index 5055802c4cf85..d81b9fe790783 100644
--- a/libc/src/math/generic/fmaximum_mag_numf16.cpp
+++ b/libc/src/math/generic/fmaximum_mag_numf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_mag_numf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fmaximum_mag_numf16, (float16 x, float16 y)) {
   return fputil::fmaximum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_mag_numl.cpp b/libc/src/math/generic/fmaximum_mag_numl.cpp
index a8499ca473b36..3816bdd142697 100644
--- a/libc/src/math/generic/fmaximum_mag_numl.cpp
+++ b/libc/src/math/generic/fmaximum_mag_numl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fmaximum_mag_numl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fmaximum_mag_numl,
                    (long double x, long double y)) {
   return fputil::fmaximum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_magf.cpp b/libc/src/math/generic/fmaximum_magf.cpp
index 380aca05a5255..41099a157b2e8 100644
--- a/libc/src/math/generic/fmaximum_magf.cpp
+++ b/libc/src/math/generic/fmaximum_magf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_magf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaximum_magf, (float x, float y)) {
   return fputil::fmaximum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_magf128.cpp b/libc/src/math/generic/fmaximum_magf128.cpp
index 301938fb7ffd3..671d0fb69ee53 100644
--- a/libc/src/math/generic/fmaximum_magf128.cpp
+++ b/libc/src/math/generic/fmaximum_magf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_magf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fmaximum_magf128, (float128 x, float128 y)) {
   return fputil::fmaximum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_magf16.cpp b/libc/src/math/generic/fmaximum_magf16.cpp
index fbd5eaccf3093..79e75ab376ccd 100644
--- a/libc/src/math/generic/fmaximum_magf16.cpp
+++ b/libc/src/math/generic/fmaximum_magf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_magf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fmaximum_magf16, (float16 x, float16 y)) {
   return fputil::fmaximum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_magl.cpp b/libc/src/math/generic/fmaximum_magl.cpp
index 283a11eda9aab..1230076dadb64 100644
--- a/libc/src/math/generic/fmaximum_magl.cpp
+++ b/libc/src/math/generic/fmaximum_magl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_magl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fmaximum_magl, (long double x, long double y)) {
   return fputil::fmaximum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_num.cpp b/libc/src/math/generic/fmaximum_num.cpp
index 23553dbcae7ed..33df7daa380df 100644
--- a/libc/src/math/generic/fmaximum_num.cpp
+++ b/libc/src/math/generic/fmaximum_num.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_num.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmaximum_num, (double x, double y)) {
   return fputil::fmaximum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_numf.cpp b/libc/src/math/generic/fmaximum_numf.cpp
index f946ff43f543c..1577080ba2c25 100644
--- a/libc/src/math/generic/fmaximum_numf.cpp
+++ b/libc/src/math/generic/fmaximum_numf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_numf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaximum_numf, (float x, float y)) {
   return fputil::fmaximum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_numf128.cpp b/libc/src/math/generic/fmaximum_numf128.cpp
index f33a5e195bf25..5cfaca536320e 100644
--- a/libc/src/math/generic/fmaximum_numf128.cpp
+++ b/libc/src/math/generic/fmaximum_numf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_numf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fmaximum_numf128, (float128 x, float128 y)) {
   return fputil::fmaximum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_numf16.cpp b/libc/src/math/generic/fmaximum_numf16.cpp
index 187cfbeee6e2d..394ce8b5fe4f3 100644
--- a/libc/src/math/generic/fmaximum_numf16.cpp
+++ b/libc/src/math/generic/fmaximum_numf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_numf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fmaximum_numf16, (float16 x, float16 y)) {
   return fputil::fmaximum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximum_numl.cpp b/libc/src/math/generic/fmaximum_numl.cpp
index 503fc41409f68..eecebf6ed35cc 100644
--- a/libc/src/math/generic/fmaximum_numl.cpp
+++ b/libc/src/math/generic/fmaximum_numl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximum_numl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fmaximum_numl, (long double x, long double y)) {
   return fputil::fmaximum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximumf.cpp b/libc/src/math/generic/fmaximumf.cpp
index 3b2a60931bf63..faa00a6301894 100644
--- a/libc/src/math/generic/fmaximumf.cpp
+++ b/libc/src/math/generic/fmaximumf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximumf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaximumf, (float x, float y)) {
   return fputil::fmaximum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximumf128.cpp b/libc/src/math/generic/fmaximumf128.cpp
index 0099c913b0526..362b583822872 100644
--- a/libc/src/math/generic/fmaximumf128.cpp
+++ b/libc/src/math/generic/fmaximumf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximumf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fmaximumf128, (float128 x, float128 y)) {
   return fputil::fmaximum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximumf16.cpp b/libc/src/math/generic/fmaximumf16.cpp
index 9e194d2ecef69..aa4982d26bccb 100644
--- a/libc/src/math/generic/fmaximumf16.cpp
+++ b/libc/src/math/generic/fmaximumf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximumf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fmaximumf16, (float16 x, float16 y)) {
   return fputil::fmaximum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaximuml.cpp b/libc/src/math/generic/fmaximuml.cpp
index ecd698300458f..65e3b6935eee4 100644
--- a/libc/src/math/generic/fmaximuml.cpp
+++ b/libc/src/math/generic/fmaximuml.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaximuml.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fmaximuml, (long double x, long double y)) {
   return fputil::fmaximum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmaxl.cpp b/libc/src/math/generic/fmaxl.cpp
index 6c6250736f4f1..a5460f559eeba 100644
--- a/libc/src/math/generic/fmaxl.cpp
+++ b/libc/src/math/generic/fmaxl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmaxl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fmaxl, (long double x, long double y)) {
   return fputil::fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmin.cpp b/libc/src/math/generic/fmin.cpp
index b9f313d571635..2351874029c72 100644
--- a/libc/src/math/generic/fmin.cpp
+++ b/libc/src/math/generic/fmin.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmin.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmin, (double x, double y)) {
   return fputil::fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminf.cpp b/libc/src/math/generic/fminf.cpp
index 539fedbdd2fa2..83dd0aa66b54a 100644
--- a/libc/src/math/generic/fminf.cpp
+++ b/libc/src/math/generic/fminf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminf, (float x, float y)) {
   return fputil::fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminf128.cpp b/libc/src/math/generic/fminf128.cpp
index 084ed4c9931bc..184b7e3c21532 100644
--- a/libc/src/math/generic/fminf128.cpp
+++ b/libc/src/math/generic/fminf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fminf128, (float128 x, float128 y)) {
   return fputil::fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminf16.cpp b/libc/src/math/generic/fminf16.cpp
index 12547c33c6361..8b69273a906ec 100644
--- a/libc/src/math/generic/fminf16.cpp
+++ b/libc/src/math/generic/fminf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fminf16, (float16 x, float16 y)) {
   return fputil::fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum.cpp b/libc/src/math/generic/fminimum.cpp
index 28b257d950f43..2f14e64cd7575 100644
--- a/libc/src/math/generic/fminimum.cpp
+++ b/libc/src/math/generic/fminimum.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fminimum, (double x, double y)) {
   return fputil::fminimum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_mag.cpp b/libc/src/math/generic/fminimum_mag.cpp
index 6af99570e1ea4..8d8001df659cb 100644
--- a/libc/src/math/generic/fminimum_mag.cpp
+++ b/libc/src/math/generic/fminimum_mag.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_mag.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fminimum_mag, (double x, double y)) {
   return fputil::fminimum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_mag_num.cpp b/libc/src/math/generic/fminimum_mag_num.cpp
index fc5431ae27994..ab049b5861145 100644
--- a/libc/src/math/generic/fminimum_mag_num.cpp
+++ b/libc/src/math/generic/fminimum_mag_num.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_mag_num.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fminimum_mag_num, (double x, double y)) {
   return fputil::fminimum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_mag_numf.cpp b/libc/src/math/generic/fminimum_mag_numf.cpp
index 71179a6f03c21..2aa88c74105d4 100644
--- a/libc/src/math/generic/fminimum_mag_numf.cpp
+++ b/libc/src/math/generic/fminimum_mag_numf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_mag_numf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminimum_mag_numf, (float x, float y)) {
   return fputil::fminimum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_mag_numf128.cpp b/libc/src/math/generic/fminimum_mag_numf128.cpp
index 109ce7e4e0111..ec7ab54054e3d 100644
--- a/libc/src/math/generic/fminimum_mag_numf128.cpp
+++ b/libc/src/math/generic/fminimum_mag_numf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_mag_numf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fminimum_mag_numf128, (float128 x, float128 y)) {
   return fputil::fminimum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_mag_numf16.cpp b/libc/src/math/generic/fminimum_mag_numf16.cpp
index 1a893c6c4bbc1..5805514b83f68 100644
--- a/libc/src/math/generic/fminimum_mag_numf16.cpp
+++ b/libc/src/math/generic/fminimum_mag_numf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_mag_numf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fminimum_mag_numf16, (float16 x, float16 y)) {
   return fputil::fminimum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_mag_numl.cpp b/libc/src/math/generic/fminimum_mag_numl.cpp
index c97ce6ead0425..70fea1f5ef282 100644
--- a/libc/src/math/generic/fminimum_mag_numl.cpp
+++ b/libc/src/math/generic/fminimum_mag_numl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fminimum_mag_numl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fminimum_mag_numl,
                    (long double x, long double y)) {
   return fputil::fminimum_mag_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_magf.cpp b/libc/src/math/generic/fminimum_magf.cpp
index 834f6a4a97101..fcc2e056f2bff 100644
--- a/libc/src/math/generic/fminimum_magf.cpp
+++ b/libc/src/math/generic/fminimum_magf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_magf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminimum_magf, (float x, float y)) {
   return fputil::fminimum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_magf128.cpp b/libc/src/math/generic/fminimum_magf128.cpp
index 2828e28bb0a40..3e7e01f4239eb 100644
--- a/libc/src/math/generic/fminimum_magf128.cpp
+++ b/libc/src/math/generic/fminimum_magf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_magf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fminimum_magf128, (float128 x, float128 y)) {
   return fputil::fminimum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_magf16.cpp b/libc/src/math/generic/fminimum_magf16.cpp
index 45183a963e2d8..4417f75321c5d 100644
--- a/libc/src/math/generic/fminimum_magf16.cpp
+++ b/libc/src/math/generic/fminimum_magf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_magf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fminimum_magf16, (float16 x, float16 y)) {
   return fputil::fminimum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_magl.cpp b/libc/src/math/generic/fminimum_magl.cpp
index 50e328fd92d1f..befc4ac94c1bb 100644
--- a/libc/src/math/generic/fminimum_magl.cpp
+++ b/libc/src/math/generic/fminimum_magl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_magl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fminimum_magl, (long double x, long double y)) {
   return fputil::fminimum_mag(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_num.cpp b/libc/src/math/generic/fminimum_num.cpp
index e89c7f5acf9b1..3ff79def58075 100644
--- a/libc/src/math/generic/fminimum_num.cpp
+++ b/libc/src/math/generic/fminimum_num.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_num.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fminimum_num, (double x, double y)) {
   return fputil::fminimum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_numf.cpp b/libc/src/math/generic/fminimum_numf.cpp
index c37c8bd423a1a..c7ac99b14bd5a 100644
--- a/libc/src/math/generic/fminimum_numf.cpp
+++ b/libc/src/math/generic/fminimum_numf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_numf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminimum_numf, (float x, float y)) {
   return fputil::fminimum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_numf128.cpp b/libc/src/math/generic/fminimum_numf128.cpp
index 6b1f77bb447cf..6d957128c26fd 100644
--- a/libc/src/math/generic/fminimum_numf128.cpp
+++ b/libc/src/math/generic/fminimum_numf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_numf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fminimum_numf128, (float128 x, float128 y)) {
   return fputil::fminimum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_numf16.cpp b/libc/src/math/generic/fminimum_numf16.cpp
index 825ad3e7b63af..0af7205713c10 100644
--- a/libc/src/math/generic/fminimum_numf16.cpp
+++ b/libc/src/math/generic/fminimum_numf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_numf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fminimum_numf16, (float16 x, float16 y)) {
   return fputil::fminimum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_numl.cpp b/libc/src/math/generic/fminimum_numl.cpp
index 22045f83f2a73..8a4cff38bdd38 100644
--- a/libc/src/math/generic/fminimum_numl.cpp
+++ b/libc/src/math/generic/fminimum_numl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimum_numl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fminimum_numl, (long double x, long double y)) {
   return fputil::fminimum_num(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimumf.cpp b/libc/src/math/generic/fminimumf.cpp
index c937fb0ea01d0..57e33c184ccf1 100644
--- a/libc/src/math/generic/fminimumf.cpp
+++ b/libc/src/math/generic/fminimumf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimumf.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminimumf, (float x, float y)) {
   return fputil::fminimum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimumf128.cpp b/libc/src/math/generic/fminimumf128.cpp
index 24e02b8ff537f..3dbd18d65362e 100644
--- a/libc/src/math/generic/fminimumf128.cpp
+++ b/libc/src/math/generic/fminimumf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimumf128.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fminimumf128, (float128 x, float128 y)) {
   return fputil::fminimum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimumf16.cpp b/libc/src/math/generic/fminimumf16.cpp
index 16f738be7e58c..42ad9a55e4d60 100644
--- a/libc/src/math/generic/fminimumf16.cpp
+++ b/libc/src/math/generic/fminimumf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimumf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fminimumf16, (float16 x, float16 y)) {
   return fputil::fminimum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimuml.cpp b/libc/src/math/generic/fminimuml.cpp
index 43319503661aa..c80cb0a5fc440 100644
--- a/libc/src/math/generic/fminimuml.cpp
+++ b/libc/src/math/generic/fminimuml.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminimuml.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fminimuml, (long double x, long double y)) {
   return fputil::fminimum(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminl.cpp b/libc/src/math/generic/fminl.cpp
index 147f6c562c52c..aa15de74ebd57 100644
--- a/libc/src/math/generic/fminl.cpp
+++ b/libc/src/math/generic/fminl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminl.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fminl, (long double x, long double y)) {
   return fputil::fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmod.cpp b/libc/src/math/generic/fmod.cpp
index 69e0c8dd99169..010e66aa745ca 100644
--- a/libc/src/math/generic/fmod.cpp
+++ b/libc/src/math/generic/fmod.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmod.h"
 #include "src/__support/FPUtil/generic/FMod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmod, (double x, double y)) {
   return fputil::generic::FMod<double>::eval(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmodf.cpp b/libc/src/math/generic/fmodf.cpp
index 9a9e46e29b466..1e1ef48895cc7 100644
--- a/libc/src/math/generic/fmodf.cpp
+++ b/libc/src/math/generic/fmodf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmodf.h"
 #include "src/__support/FPUtil/generic/FMod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmodf, (float x, float y)) {
   return fputil::generic::FMod<float, uint64_t>::eval(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmodf128.cpp b/libc/src/math/generic/fmodf128.cpp
index 08a379702d889..a7633bf9c2fff 100644
--- a/libc/src/math/generic/fmodf128.cpp
+++ b/libc/src/math/generic/fmodf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmodf128.h"
 #include "src/__support/FPUtil/generic/FMod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fmodf128, (float128 x, float128 y)) {
   return fputil::generic::FMod<float128>::eval(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmodf16.cpp b/libc/src/math/generic/fmodf16.cpp
index a5bfd78113f63..2585639559496 100644
--- a/libc/src/math/generic/fmodf16.cpp
+++ b/libc/src/math/generic/fmodf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmodf16.h"
 #include "src/__support/FPUtil/generic/FMod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fmodf16, (float16 x, float16 y)) {
   return fputil::generic::FMod<float16, uint32_t>::eval(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmodl.cpp b/libc/src/math/generic/fmodl.cpp
index 23a3702890557..1af8ffc976ddd 100644
--- a/libc/src/math/generic/fmodl.cpp
+++ b/libc/src/math/generic/fmodl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmodl.h"
 #include "src/__support/FPUtil/generic/FMod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fmodl, (long double x, long double y)) {
   return fputil::generic::FMod<long double>::eval(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fmul.cpp b/libc/src/math/generic/fmul.cpp
index 40af20466a665..16fa11e93df09 100644
--- a/libc/src/math/generic/fmul.cpp
+++ b/libc/src/math/generic/fmul.cpp
@@ -12,9 +12,10 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmul, (double x, double y)) {
   auto x_bits = fputil::FPBits<double>(x);
@@ -125,4 +126,4 @@ LLVM_LIBC_FUNCTION(float, fmul, (double x, double y)) {
   return result_bits.get_val();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/frexp.cpp b/libc/src/math/generic/frexp.cpp
index a183ba70cfc3e..0efc0d48e588d 100644
--- a/libc/src/math/generic/frexp.cpp
+++ b/libc/src/math/generic/frexp.cpp
@@ -9,11 +9,12 @@
 #include "src/math/frexp.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, frexp, (double x, int *exp)) {
   return fputil::frexp(x, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/frexpf.cpp b/libc/src/math/generic/frexpf.cpp
index 4fdc869907ca0..09227badc3417 100644
--- a/libc/src/math/generic/frexpf.cpp
+++ b/libc/src/math/generic/frexpf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/frexpf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, frexpf, (float x, int *exp)) {
   return fputil::frexp(x, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/frexpf128.cpp b/libc/src/math/generic/frexpf128.cpp
index b50f37d2dab4b..eb816c4769707 100644
--- a/libc/src/math/generic/frexpf128.cpp
+++ b/libc/src/math/generic/frexpf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/frexpf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, frexpf128, (float128 x, int *exp)) {
   return fputil::frexp(x, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/frexpf16.cpp b/libc/src/math/generic/frexpf16.cpp
index 2d29c07c7217d..4571b0d0ea389 100644
--- a/libc/src/math/generic/frexpf16.cpp
+++ b/libc/src/math/generic/frexpf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/frexpf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, frexpf16, (float16 x, int *exp)) {
   return fputil::frexp(x, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/frexpl.cpp b/libc/src/math/generic/frexpl.cpp
index 0be4e744b2d34..6f2b456b5944e 100644
--- a/libc/src/math/generic/frexpl.cpp
+++ b/libc/src/math/generic/frexpl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/frexpl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, frexpl, (long double x, int *exp)) {
   return fputil::frexp(x, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfp.cpp b/libc/src/math/generic/fromfp.cpp
index ba3f0a133cbcb..f75e6596b25f7 100644
--- a/libc/src/math/generic/fromfp.cpp
+++ b/libc/src/math/generic/fromfp.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fromfp.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fromfp, (double x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpf.cpp b/libc/src/math/generic/fromfpf.cpp
index fd058a13201c9..83f0518143465 100644
--- a/libc/src/math/generic/fromfpf.cpp
+++ b/libc/src/math/generic/fromfpf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fromfpf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fromfpf, (float x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpf128.cpp b/libc/src/math/generic/fromfpf128.cpp
index 440a5da756932..bcbe86cc3e5d8 100644
--- a/libc/src/math/generic/fromfpf128.cpp
+++ b/libc/src/math/generic/fromfpf128.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fromfpf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fromfpf128,
                    (float128 x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpf16.cpp b/libc/src/math/generic/fromfpf16.cpp
index 36040049fe3aa..0166e8e08309e 100644
--- a/libc/src/math/generic/fromfpf16.cpp
+++ b/libc/src/math/generic/fromfpf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fromfpf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fromfpf16,
                    (float16 x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpl.cpp b/libc/src/math/generic/fromfpl.cpp
index ee3abeaf98f85..ab1cbefae1efb 100644
--- a/libc/src/math/generic/fromfpl.cpp
+++ b/libc/src/math/generic/fromfpl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fromfpl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fromfpl,
                    (long double x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpx.cpp b/libc/src/math/generic/fromfpx.cpp
index b9e7e4a7aa126..cf545df4290e5 100644
--- a/libc/src/math/generic/fromfpx.cpp
+++ b/libc/src/math/generic/fromfpx.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fromfpx.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fromfpx, (double x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpxf.cpp b/libc/src/math/generic/fromfpxf.cpp
index 1473499244d31..1af3c98c1080c 100644
--- a/libc/src/math/generic/fromfpxf.cpp
+++ b/libc/src/math/generic/fromfpxf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fromfpxf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fromfpxf, (float x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpxf128.cpp b/libc/src/math/generic/fromfpxf128.cpp
index 5d930d22ae5eb..bb47578a6fc8b 100644
--- a/libc/src/math/generic/fromfpxf128.cpp
+++ b/libc/src/math/generic/fromfpxf128.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fromfpxf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, fromfpxf128,
                    (float128 x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpxf16.cpp b/libc/src/math/generic/fromfpxf16.cpp
index 0854cb6613513..64a3b869b0962 100644
--- a/libc/src/math/generic/fromfpxf16.cpp
+++ b/libc/src/math/generic/fromfpxf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fromfpxf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, fromfpxf16,
                    (float16 x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fromfpxl.cpp b/libc/src/math/generic/fromfpxl.cpp
index c3db055246f22..b402aa12140f9 100644
--- a/libc/src/math/generic/fromfpxl.cpp
+++ b/libc/src/math/generic/fromfpxl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/fromfpxl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, fromfpxl,
                    (long double x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/true>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/getpayloadf16.cpp b/libc/src/math/generic/getpayloadf16.cpp
index 0923226e5c5c8..34c31acf108c0 100644
--- a/libc/src/math/generic/getpayloadf16.cpp
+++ b/libc/src/math/generic/getpayloadf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/getpayloadf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, getpayloadf16, (const float16 *x)) {
   return fputil::getpayload(*x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/hypot.cpp b/libc/src/math/generic/hypot.cpp
index a1914d0e823c8..0dfe4360bafe0 100644
--- a/libc/src/math/generic/hypot.cpp
+++ b/libc/src/math/generic/hypot.cpp
@@ -9,11 +9,12 @@
 #include "src/math/hypot.h"
 #include "src/__support/FPUtil/Hypot.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, hypot, (double x, double y)) {
   return LIBC_NAMESPACE::fputil::hypot(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/hypotf.cpp b/libc/src/math/generic/hypotf.cpp
index b09d09ad7f9c9..75c55ed846726 100644
--- a/libc/src/math/generic/hypotf.cpp
+++ b/libc/src/math/generic/hypotf.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, hypotf, (float x, float y)) {
   using DoubleBits = fputil::FPBits<double>;
@@ -70,4 +71,4 @@ LLVM_LIBC_FUNCTION(float, hypotf, (float x, float y)) {
   return static_cast<float>(result.get_val());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ilogb.cpp b/libc/src/math/generic/ilogb.cpp
index 7e4f66970c5d3..60f2af24dc225 100644
--- a/libc/src/math/generic/ilogb.cpp
+++ b/libc/src/math/generic/ilogb.cpp
@@ -9,9 +9,10 @@
 #include "src/math/ilogb.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogb, (double x)) { return fputil::intlogb<int>(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ilogbf.cpp b/libc/src/math/generic/ilogbf.cpp
index 422788cec9e04..7da2aff3de316 100644
--- a/libc/src/math/generic/ilogbf.cpp
+++ b/libc/src/math/generic/ilogbf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/ilogbf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogbf, (float x)) { return fputil::intlogb<int>(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ilogbf128.cpp b/libc/src/math/generic/ilogbf128.cpp
index 4049eccc5f36b..4abc670188a3a 100644
--- a/libc/src/math/generic/ilogbf128.cpp
+++ b/libc/src/math/generic/ilogbf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ilogbf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogbf128, (float128 x)) {
   return fputil::intlogb<int>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ilogbf16.cpp b/libc/src/math/generic/ilogbf16.cpp
index 87e43f8a5ada3..9217cdfe01651 100644
--- a/libc/src/math/generic/ilogbf16.cpp
+++ b/libc/src/math/generic/ilogbf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ilogbf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogbf16, (float16 x)) {
   return fputil::intlogb<int>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ilogbl.cpp b/libc/src/math/generic/ilogbl.cpp
index b7f7eb40c4410..12460a8b154ee 100644
--- a/libc/src/math/generic/ilogbl.cpp
+++ b/libc/src/math/generic/ilogbl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ilogbl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogbl, (long double x)) {
   return fputil::intlogb<int>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/inv_trigf_utils.cpp b/libc/src/math/generic/inv_trigf_utils.cpp
index 19c8b997dc4ed..f23028bb86b5c 100644
--- a/libc/src/math/generic/inv_trigf_utils.cpp
+++ b/libc/src/math/generic/inv_trigf_utils.cpp
@@ -7,8 +7,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "inv_trigf_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Polynomial approximation for 0 <= x <= 1:
 //   atan(x) ~ atan((i/16) + (x - (i/16)) * Q(x - i/16)
@@ -82,4 +83,4 @@ double ATAN_COEFFS[17][9] = {
      0x1.555e31a1e15e9p-6, -0x1.245240d65e629p-7, -0x1.fa9ba66478903p-11},
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/inv_trigf_utils.h b/libc/src/math/generic/inv_trigf_utils.h
index e60c367d7b46b..bdabec9c1b6bb 100644
--- a/libc/src/math/generic/inv_trigf_utils.h
+++ b/libc/src/math/generic/inv_trigf_utils.h
@@ -12,8 +12,9 @@
 #include "src/__support/FPUtil/PolyEval.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // PI and PI / 2
 constexpr double M_MATH_PI = 0x1.921fb54442d18p+1;
@@ -56,6 +57,6 @@ LIBC_INLINE double asin_eval(double xsq) {
   return fputil::multiply_add(xsq, r2, r1);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_INV_TRIGF_UTILS_H
diff --git a/libc/src/math/generic/isnan.cpp b/libc/src/math/generic/isnan.cpp
index dd7eadb2a2031..73230a4e9a299 100644
--- a/libc/src/math/generic/isnan.cpp
+++ b/libc/src/math/generic/isnan.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/isnan.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, isnan, (double x)) { return __builtin_isnan(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/isnanf.cpp b/libc/src/math/generic/isnanf.cpp
index 98a81b03f538a..a1d814eab1825 100644
--- a/libc/src/math/generic/isnanf.cpp
+++ b/libc/src/math/generic/isnanf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/isnanf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, isnanf, (float x)) { return __builtin_isnan(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/isnanl.cpp b/libc/src/math/generic/isnanl.cpp
index d61bfd52f0b7d..57ce79f3c7b47 100644
--- a/libc/src/math/generic/isnanl.cpp
+++ b/libc/src/math/generic/isnanl.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/isnanl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, isnanl, (long double x)) { return __builtin_isnan(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ldexp.cpp b/libc/src/math/generic/ldexp.cpp
index 18aae09036409..93ed328671f2c 100644
--- a/libc/src/math/generic/ldexp.cpp
+++ b/libc/src/math/generic/ldexp.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ldexp.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ldexp, (double x, int exp)) {
   return fputil::ldexp(x, exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ldexpf.cpp b/libc/src/math/generic/ldexpf.cpp
index 37f88ab2da00c..63c5d219f7a79 100644
--- a/libc/src/math/generic/ldexpf.cpp
+++ b/libc/src/math/generic/ldexpf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ldexpf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ldexpf, (float x, int exp)) {
   return fputil::ldexp(x, exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ldexpf128.cpp b/libc/src/math/generic/ldexpf128.cpp
index ed2ebd38dfae7..03b1a2d2032e2 100644
--- a/libc/src/math/generic/ldexpf128.cpp
+++ b/libc/src/math/generic/ldexpf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ldexpf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, ldexpf128, (float128 x, int exp)) {
   return fputil::ldexp(x, exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ldexpf16.cpp b/libc/src/math/generic/ldexpf16.cpp
index ed15c4572edf5..caa344b41476b 100644
--- a/libc/src/math/generic/ldexpf16.cpp
+++ b/libc/src/math/generic/ldexpf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ldexpf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, ldexpf16, (float16 x, int exp)) {
   return fputil::ldexp(x, exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ldexpl.cpp b/libc/src/math/generic/ldexpl.cpp
index 8b29009fa1aa4..9e1de5c5cf4a7 100644
--- a/libc/src/math/generic/ldexpl.cpp
+++ b/libc/src/math/generic/ldexpl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ldexpl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, ldexpl, (long double x, int exp)) {
   return fputil::ldexp(x, exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llogb.cpp b/libc/src/math/generic/llogb.cpp
index 917bc38c03792..3850ac00d98d9 100644
--- a/libc/src/math/generic/llogb.cpp
+++ b/libc/src/math/generic/llogb.cpp
@@ -9,9 +9,10 @@
 #include "src/math/llogb.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, llogb, (double x)) { return fputil::intlogb<long>(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llogbf.cpp b/libc/src/math/generic/llogbf.cpp
index ca1c03db5c2e4..fedad95cc48ad 100644
--- a/libc/src/math/generic/llogbf.cpp
+++ b/libc/src/math/generic/llogbf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/llogbf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, llogbf, (float x)) { return fputil::intlogb<long>(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llogbf128.cpp b/libc/src/math/generic/llogbf128.cpp
index 5ae4af302110c..9106731d3415a 100644
--- a/libc/src/math/generic/llogbf128.cpp
+++ b/libc/src/math/generic/llogbf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llogbf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, llogbf128, (float128 x)) {
   return fputil::intlogb<long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llogbf16.cpp b/libc/src/math/generic/llogbf16.cpp
index b7a21b95604d7..c792e9034d88f 100644
--- a/libc/src/math/generic/llogbf16.cpp
+++ b/libc/src/math/generic/llogbf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llogbf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, llogbf16, (float16 x)) {
   return fputil::intlogb<long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llogbl.cpp b/libc/src/math/generic/llogbl.cpp
index a092997b92449..7ee3ac55653b6 100644
--- a/libc/src/math/generic/llogbl.cpp
+++ b/libc/src/math/generic/llogbl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llogbl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, llogbl, (long double x)) {
   return fputil::intlogb<long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llrint.cpp b/libc/src/math/generic/llrint.cpp
index 87755e83fecec..f6e8cab93ec39 100644
--- a/libc/src/math/generic/llrint.cpp
+++ b/libc/src/math/generic/llrint.cpp
@@ -9,8 +9,9 @@
 #include "src/math/llrint.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrint, (double x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<double,
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(long long, llrint, (double x)) {
       x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llrintf.cpp b/libc/src/math/generic/llrintf.cpp
index 836e7cb6cdfb0..b5180de9a9bf9 100644
--- a/libc/src/math/generic/llrintf.cpp
+++ b/libc/src/math/generic/llrintf.cpp
@@ -9,8 +9,9 @@
 #include "src/math/llrintf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrintf, (float x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<float,
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(long long, llrintf, (float x)) {
       x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llrintf128.cpp b/libc/src/math/generic/llrintf128.cpp
index e5a4c50a26e8c..af489852eb73f 100644
--- a/libc/src/math/generic/llrintf128.cpp
+++ b/libc/src/math/generic/llrintf128.cpp
@@ -9,8 +9,9 @@
 #include "src/math/llrintf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrintf128, (float128 x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<float128,
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(long long, llrintf128, (float128 x)) {
       x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llrintf16.cpp b/libc/src/math/generic/llrintf16.cpp
index 0bed21ad17bb8..c6b31c7352262 100644
--- a/libc/src/math/generic/llrintf16.cpp
+++ b/libc/src/math/generic/llrintf16.cpp
@@ -9,8 +9,9 @@
 #include "src/math/llrintf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrintf16, (float16 x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<float16,
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(long long, llrintf16, (float16 x)) {
       x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llrintl.cpp b/libc/src/math/generic/llrintl.cpp
index 104e3d4ce9204..35ae609d019fe 100644
--- a/libc/src/math/generic/llrintl.cpp
+++ b/libc/src/math/generic/llrintl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/llrintl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrintl, (long double x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<
       long double, long long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llround.cpp b/libc/src/math/generic/llround.cpp
index 41bee8520ac2e..40b2614396618 100644
--- a/libc/src/math/generic/llround.cpp
+++ b/libc/src/math/generic/llround.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llround.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llround, (double x)) {
   return fputil::round_to_signed_integer<double, long long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llroundf.cpp b/libc/src/math/generic/llroundf.cpp
index 67105e8d1f6bc..259c769a49c9c 100644
--- a/libc/src/math/generic/llroundf.cpp
+++ b/libc/src/math/generic/llroundf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llroundf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llroundf, (float x)) {
   return fputil::round_to_signed_integer<float, long long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llroundf128.cpp b/libc/src/math/generic/llroundf128.cpp
index 25791631dd7e7..2df24f5221cc3 100644
--- a/libc/src/math/generic/llroundf128.cpp
+++ b/libc/src/math/generic/llroundf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llroundf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llroundf128, (float128 x)) {
   return fputil::round_to_signed_integer<float128, long long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llroundf16.cpp b/libc/src/math/generic/llroundf16.cpp
index 9485674d54bcb..d3f691ed0c6fd 100644
--- a/libc/src/math/generic/llroundf16.cpp
+++ b/libc/src/math/generic/llroundf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llroundf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llroundf16, (float16 x)) {
   return fputil::round_to_signed_integer<float16, long long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/llroundl.cpp b/libc/src/math/generic/llroundl.cpp
index 98cfb3690659c..49b41c810365e 100644
--- a/libc/src/math/generic/llroundl.cpp
+++ b/libc/src/math/generic/llroundl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/llroundl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llroundl, (long double x)) {
   return fputil::round_to_signed_integer<long double, long long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log.cpp b/libc/src/math/generic/log.cpp
index 6de0d90be80e1..57c70e31730bf 100644
--- a/libc/src/math/generic/log.cpp
+++ b/libc/src/math/generic/log.cpp
@@ -15,12 +15,13 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "common_constants.h"
 #include "log_range_reduction.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // 128-bit precision dyadic floating point numbers.
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -837,4 +838,4 @@ LLVM_LIBC_FUNCTION(double, log, (double x)) {
   return log_accurate(x_e, index, u);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log10.cpp b/libc/src/math/generic/log10.cpp
index fb839c111e6a0..b99b22b024fe3 100644
--- a/libc/src/math/generic/log10.cpp
+++ b/libc/src/math/generic/log10.cpp
@@ -15,12 +15,13 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "common_constants.h"
 #include "log_range_reduction.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // 128-bit precision dyadic floating point numbers.
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -898,4 +899,4 @@ LLVM_LIBC_FUNCTION(double, log10, (double x)) {
   return log10_accurate(x_e, index, u);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log10f.cpp b/libc/src/math/generic/log10f.cpp
index 1b6979d4414a9..f7dd85cc08bf0 100644
--- a/libc/src/math/generic/log10f.cpp
+++ b/libc/src/math/generic/log10f.cpp
@@ -15,6 +15,7 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h"
 
@@ -54,7 +55,7 @@
 // Dept. of Comp. Sci., Rutgets U., Technical Report DCS-TR-758, Nov. 2021.
 // https://arxiv.org/pdf/2111.12852.pdf.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Lookup table for -log10(r) where r is defined in common_constants.cpp.
 static constexpr double LOG10_R[128] = {
@@ -215,4 +216,4 @@ LLVM_LIBC_FUNCTION(float, log10f, (float x)) {
   return static_cast<float>(r);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log1p.cpp b/libc/src/math/generic/log1p.cpp
index 2b187080a057b..f301a5aba3a57 100644
--- a/libc/src/math/generic/log1p.cpp
+++ b/libc/src/math/generic/log1p.cpp
@@ -15,11 +15,12 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "common_constants.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // 128-bit precision dyadic floating point numbers.
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -1041,4 +1042,4 @@ LLVM_LIBC_FUNCTION(double, log1p, (double x)) {
   return log1p_accurate(x_e, idx, v_dd);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log1pf.cpp b/libc/src/math/generic/log1pf.cpp
index e3c7d95418b1f..869cb077cc434 100644
--- a/libc/src/math/generic/log1pf.cpp
+++ b/libc/src/math/generic/log1pf.cpp
@@ -15,6 +15,7 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h"
 
@@ -30,7 +31,7 @@
 // generated with Sollya using the following command:
 //   fpminimax(log(1 + x)/x, 7, [|D...|], [-2^-6; 2^-6]);
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace internal {
 
@@ -153,4 +154,4 @@ LLVM_LIBC_FUNCTION(float, log1pf, (float x)) {
   return static_cast<float>(r);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log2.cpp b/libc/src/math/generic/log2.cpp
index c68bc60e8468b..7d868e2f6f619 100644
--- a/libc/src/math/generic/log2.cpp
+++ b/libc/src/math/generic/log2.cpp
@@ -15,12 +15,13 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "common_constants.h"
 #include "log_range_reduction.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // 128-bit precision dyadic floating point numbers.
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -959,4 +960,4 @@ LLVM_LIBC_FUNCTION(double, log2, (double x)) {
   return log2_accurate(x_e, index, u);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log2f.cpp b/libc/src/math/generic/log2f.cpp
index c9f7b2121519d..9cad02d796b18 100644
--- a/libc/src/math/generic/log2f.cpp
+++ b/libc/src/math/generic/log2f.cpp
@@ -14,6 +14,7 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 // This is a correctly-rounded algorithm for log2(x) in single precision with
@@ -51,7 +52,7 @@
 // Dept. of Comp. Sci., Rutgets U., Technical Report DCS-TR-758, Nov. 2021.
 // https://arxiv.org/pdf/2111.12852.pdf.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log2f, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -120,4 +121,4 @@ LLVM_LIBC_FUNCTION(float, log2f, (float x)) {
   return static_cast<float>(r);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/log_range_reduction.h b/libc/src/math/generic/log_range_reduction.h
index d12da47a2cfae..8c94230ee7577 100644
--- a/libc/src/math/generic/log_range_reduction.h
+++ b/libc/src/math/generic/log_range_reduction.h
@@ -11,9 +11,10 @@
 
 #include "common_constants.h"
 #include "src/__support/FPUtil/dyadic_float.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/uint128.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Struct to store -log*(r) for 4 range reduction steps.
 struct LogRR {
@@ -87,6 +88,6 @@ log_range_reduction(double m_x, const LogRR &log_table,
                                      static_cast<uint64_t>(vv4 >> 64)}));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_LOG_RANGE_REDUCTION_H
diff --git a/libc/src/math/generic/logb.cpp b/libc/src/math/generic/logb.cpp
index 8cd6edce05c23..4b8fde966aab1 100644
--- a/libc/src/math/generic/logb.cpp
+++ b/libc/src/math/generic/logb.cpp
@@ -9,9 +9,10 @@
 #include "src/math/logb.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, logb, (double x)) { return fputil::logb(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/logbf.cpp b/libc/src/math/generic/logbf.cpp
index 9f9f7fbcfbb88..0dc0251afe290 100644
--- a/libc/src/math/generic/logbf.cpp
+++ b/libc/src/math/generic/logbf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/logbf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, logbf, (float x)) { return fputil::logb(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/logbf128.cpp b/libc/src/math/generic/logbf128.cpp
index 090433d1fb860..af8348736c9f4 100644
--- a/libc/src/math/generic/logbf128.cpp
+++ b/libc/src/math/generic/logbf128.cpp
@@ -9,9 +9,10 @@
 #include "src/math/logbf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, logbf128, (float128 x)) { return fputil::logb(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/logbf16.cpp b/libc/src/math/generic/logbf16.cpp
index 52eb9ac6a342d..6e286a266a137 100644
--- a/libc/src/math/generic/logbf16.cpp
+++ b/libc/src/math/generic/logbf16.cpp
@@ -9,9 +9,10 @@
 #include "src/math/logbf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, logbf16, (float16 x)) { return fputil::logb(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/logbl.cpp b/libc/src/math/generic/logbl.cpp
index f18c3727a3168..dcab957f2c9c5 100644
--- a/libc/src/math/generic/logbl.cpp
+++ b/libc/src/math/generic/logbl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/logbl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, logbl, (long double x)) {
   return fputil::logb(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/logf.cpp b/libc/src/math/generic/logf.cpp
index 5296ba6bc13cf..f8ecf320568ac 100644
--- a/libc/src/math/generic/logf.cpp
+++ b/libc/src/math/generic/logf.cpp
@@ -14,6 +14,7 @@
 #include "src/__support/FPUtil/except_value_utils.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h"
 
@@ -49,7 +50,7 @@
 // USA, January 16-22, 2022.
 // https://people.cs.rutgers.edu/~sn349/papers/rlibmall-popl-2022.pdf
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, logf, (float x)) {
   constexpr double LOG_2 = 0x1.62e42fefa39efp-1;
@@ -170,4 +171,4 @@ LLVM_LIBC_FUNCTION(float, logf, (float x)) {
   return static_cast<float>(r);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lrint.cpp b/libc/src/math/generic/lrint.cpp
index 59fde7b5018d3..eae9bc13d6311 100644
--- a/libc/src/math/generic/lrint.cpp
+++ b/libc/src/math/generic/lrint.cpp
@@ -9,12 +9,13 @@
 #include "src/math/lrint.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrint, (double x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<double,
                                                                      long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lrintf.cpp b/libc/src/math/generic/lrintf.cpp
index e92014c79bdc4..e08c87c713e9e 100644
--- a/libc/src/math/generic/lrintf.cpp
+++ b/libc/src/math/generic/lrintf.cpp
@@ -9,12 +9,13 @@
 #include "src/math/lrintf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrintf, (float x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<float,
                                                                      long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lrintf128.cpp b/libc/src/math/generic/lrintf128.cpp
index 8e06062fc5802..15ecded1a3722 100644
--- a/libc/src/math/generic/lrintf128.cpp
+++ b/libc/src/math/generic/lrintf128.cpp
@@ -9,12 +9,13 @@
 #include "src/math/lrintf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrintf128, (float128 x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<float128,
                                                                      long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lrintf16.cpp b/libc/src/math/generic/lrintf16.cpp
index d49be281a686b..92af687444446 100644
--- a/libc/src/math/generic/lrintf16.cpp
+++ b/libc/src/math/generic/lrintf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/lrintf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrintf16, (float16 x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<float16,
                                                                      long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lrintl.cpp b/libc/src/math/generic/lrintl.cpp
index b363aacb39bb3..d881aeea1727b 100644
--- a/libc/src/math/generic/lrintl.cpp
+++ b/libc/src/math/generic/lrintl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/lrintl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrintl, (long double x)) {
   return fputil::round_to_signed_integer_using_current_rounding_mode<
       long double, long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lround.cpp b/libc/src/math/generic/lround.cpp
index a22d8723bdbac..b208457000846 100644
--- a/libc/src/math/generic/lround.cpp
+++ b/libc/src/math/generic/lround.cpp
@@ -9,11 +9,12 @@
 #include "src/math/lround.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lround, (double x)) {
   return fputil::round_to_signed_integer<double, long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lroundf.cpp b/libc/src/math/generic/lroundf.cpp
index 40c1323fafd62..1e1a948ac7972 100644
--- a/libc/src/math/generic/lroundf.cpp
+++ b/libc/src/math/generic/lroundf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/lroundf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lroundf, (float x)) {
   return fputil::round_to_signed_integer<float, long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lroundf128.cpp b/libc/src/math/generic/lroundf128.cpp
index f93c475038256..89b15f525f903 100644
--- a/libc/src/math/generic/lroundf128.cpp
+++ b/libc/src/math/generic/lroundf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/lroundf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lroundf128, (float128 x)) {
   return fputil::round_to_signed_integer<float128, long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lroundf16.cpp b/libc/src/math/generic/lroundf16.cpp
index db8113d7bfb5e..d25bc8467f061 100644
--- a/libc/src/math/generic/lroundf16.cpp
+++ b/libc/src/math/generic/lroundf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/lroundf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lroundf16, (float16 x)) {
   return fputil::round_to_signed_integer<float16, long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/lroundl.cpp b/libc/src/math/generic/lroundl.cpp
index c0c3bde4e285a..efcf3da3ff15f 100644
--- a/libc/src/math/generic/lroundl.cpp
+++ b/libc/src/math/generic/lroundl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/lroundl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lroundl, (long double x)) {
   return fputil::round_to_signed_integer<long double, long>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/modf.cpp b/libc/src/math/generic/modf.cpp
index d465d194cc64c..ce56aa0bcf544 100644
--- a/libc/src/math/generic/modf.cpp
+++ b/libc/src/math/generic/modf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/modf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, modf, (double x, double *iptr)) {
   return fputil::modf(x, *iptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/modff.cpp b/libc/src/math/generic/modff.cpp
index daa6697cb62da..c86a4fb279c7f 100644
--- a/libc/src/math/generic/modff.cpp
+++ b/libc/src/math/generic/modff.cpp
@@ -9,11 +9,12 @@
 #include "src/math/modff.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, modff, (float x, float *iptr)) {
   return fputil::modf(x, *iptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/modff128.cpp b/libc/src/math/generic/modff128.cpp
index 6aef5f510a953..6f519a6901105 100644
--- a/libc/src/math/generic/modff128.cpp
+++ b/libc/src/math/generic/modff128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/modff128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, modff128, (float128 x, float128 *iptr)) {
   return fputil::modf(x, *iptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/modff16.cpp b/libc/src/math/generic/modff16.cpp
index 50cc5b5783ade..853fc55e26bab 100644
--- a/libc/src/math/generic/modff16.cpp
+++ b/libc/src/math/generic/modff16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/modff16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, modff16, (float16 x, float16 *iptr)) {
   return fputil::modf(x, *iptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/modfl.cpp b/libc/src/math/generic/modfl.cpp
index 3271da2953dbd..8c9ab486b5aa3 100644
--- a/libc/src/math/generic/modfl.cpp
+++ b/libc/src/math/generic/modfl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/modfl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, modfl, (long double x, long double *iptr)) {
   return fputil::modf(x, *iptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nan.cpp b/libc/src/math/generic/nan.cpp
index c0d7fbf4ba483..f92cd3ff5eb50 100644
--- a/libc/src/math/generic/nan.cpp
+++ b/libc/src/math/generic/nan.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/nan.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nan, (const char *arg)) {
   auto result = internal::strtonan<double>(arg);
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(double, nan, (const char *arg)) {
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nanf.cpp b/libc/src/math/generic/nanf.cpp
index 2751a81ac4619..7287182406acd 100644
--- a/libc/src/math/generic/nanf.cpp
+++ b/libc/src/math/generic/nanf.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/nanf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nanf, (const char *arg)) {
   auto result = internal::strtonan<float>(arg);
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(float, nanf, (const char *arg)) {
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nanf128.cpp b/libc/src/math/generic/nanf128.cpp
index f087c9f074fde..3d8581afa0371 100644
--- a/libc/src/math/generic/nanf128.cpp
+++ b/libc/src/math/generic/nanf128.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/nanf128.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, nanf128, (const char *arg)) {
   auto result = internal::strtonan<float128>(arg);
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(float128, nanf128, (const char *arg)) {
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nanf16.cpp b/libc/src/math/generic/nanf16.cpp
index c42cd25fe3ef0..27d9d165f4a85 100644
--- a/libc/src/math/generic/nanf16.cpp
+++ b/libc/src/math/generic/nanf16.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/nanf16.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, nanf16, (const char *arg)) {
   auto result = internal::strtonan<float16>(arg);
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(float16, nanf16, (const char *arg)) {
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nanl.cpp b/libc/src/math/generic/nanl.cpp
index 76dcb56b47b2d..4f698cb3c88d0 100644
--- a/libc/src/math/generic/nanl.cpp
+++ b/libc/src/math/generic/nanl.cpp
@@ -8,10 +8,11 @@
 
 #include "src/math/nanl.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, nanl, (const char *arg)) {
   auto result = internal::strtonan<long double>(arg);
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(long double, nanl, (const char *arg)) {
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nearbyint.cpp b/libc/src/math/generic/nearbyint.cpp
index 20cbf6c0e701a..5662d6698e704 100644
--- a/libc/src/math/generic/nearbyint.cpp
+++ b/libc/src/math/generic/nearbyint.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nearbyint.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nearbyint, (double x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nearbyintf.cpp b/libc/src/math/generic/nearbyintf.cpp
index 5fb103388d262..9b8db08215d88 100644
--- a/libc/src/math/generic/nearbyintf.cpp
+++ b/libc/src/math/generic/nearbyintf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nearbyintf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nearbyintf, (float x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nearbyintf128.cpp b/libc/src/math/generic/nearbyintf128.cpp
index fca3587f5b58a..95038b8bf1267 100644
--- a/libc/src/math/generic/nearbyintf128.cpp
+++ b/libc/src/math/generic/nearbyintf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nearbyintf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, nearbyintf128, (float128 x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nearbyintf16.cpp b/libc/src/math/generic/nearbyintf16.cpp
index efd31e9143f57..1e6229b8227b0 100644
--- a/libc/src/math/generic/nearbyintf16.cpp
+++ b/libc/src/math/generic/nearbyintf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nearbyintf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, nearbyintf16, (float16 x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nearbyintl.cpp b/libc/src/math/generic/nearbyintl.cpp
index 9cbff0169b9b1..79ee73c853ab5 100644
--- a/libc/src/math/generic/nearbyintl.cpp
+++ b/libc/src/math/generic/nearbyintl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nearbyintl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, nearbyintl, (long double x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextafter.cpp b/libc/src/math/generic/nextafter.cpp
index 57a58b10be911..ff35c86930eab 100644
--- a/libc/src/math/generic/nextafter.cpp
+++ b/libc/src/math/generic/nextafter.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextafter.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nextafter, (double x, double y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextafterf.cpp b/libc/src/math/generic/nextafterf.cpp
index dd09fb7f900cf..fd8ca02895b67 100644
--- a/libc/src/math/generic/nextafterf.cpp
+++ b/libc/src/math/generic/nextafterf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextafterf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nextafterf, (float x, float y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextafterf128.cpp b/libc/src/math/generic/nextafterf128.cpp
index 905c89022ba10..c774f10b88ccd 100644
--- a/libc/src/math/generic/nextafterf128.cpp
+++ b/libc/src/math/generic/nextafterf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextafterf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, nextafterf128, (float128 x, float128 y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextafterf16.cpp b/libc/src/math/generic/nextafterf16.cpp
index 144b3fc614614..70adc9c0800d3 100644
--- a/libc/src/math/generic/nextafterf16.cpp
+++ b/libc/src/math/generic/nextafterf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextafterf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, nextafterf16, (float16 x, float16 y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextafterl.cpp b/libc/src/math/generic/nextafterl.cpp
index e12ad040b5659..5dafd63b77560 100644
--- a/libc/src/math/generic/nextafterl.cpp
+++ b/libc/src/math/generic/nextafterl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextafterl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, nextafterl, (long double x, long double y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextdown.cpp b/libc/src/math/generic/nextdown.cpp
index 51dee483b70e6..90a91435f6129 100644
--- a/libc/src/math/generic/nextdown.cpp
+++ b/libc/src/math/generic/nextdown.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextdown.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nextdown, (double x)) {
   return fputil::nextupdown</*IsDown=*/true>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextdownf.cpp b/libc/src/math/generic/nextdownf.cpp
index 857b412d64c3c..282ebfd139c67 100644
--- a/libc/src/math/generic/nextdownf.cpp
+++ b/libc/src/math/generic/nextdownf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextdownf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nextdownf, (float x)) {
   return fputil::nextupdown</*IsDown=*/true>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextdownf128.cpp b/libc/src/math/generic/nextdownf128.cpp
index 2585a13df3a3c..1557e3315be9b 100644
--- a/libc/src/math/generic/nextdownf128.cpp
+++ b/libc/src/math/generic/nextdownf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextdownf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, nextdownf128, (float128 x)) {
   return fputil::nextupdown</*IsDown=*/true>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextdownf16.cpp b/libc/src/math/generic/nextdownf16.cpp
index 9fdaa9dafdd8b..2573fbf7267a6 100644
--- a/libc/src/math/generic/nextdownf16.cpp
+++ b/libc/src/math/generic/nextdownf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextdownf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, nextdownf16, (float16 x)) {
   return fputil::nextupdown</*IsDown=*/true>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextdownl.cpp b/libc/src/math/generic/nextdownl.cpp
index 06a09c9daea59..476c5f30e66f9 100644
--- a/libc/src/math/generic/nextdownl.cpp
+++ b/libc/src/math/generic/nextdownl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextdownl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, nextdownl, (long double x)) {
   return fputil::nextupdown</*IsDown=*/true>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nexttoward.cpp b/libc/src/math/generic/nexttoward.cpp
index ce3e4e6a69ad2..7102a0afe38f3 100644
--- a/libc/src/math/generic/nexttoward.cpp
+++ b/libc/src/math/generic/nexttoward.cpp
@@ -9,8 +9,9 @@
 #include "src/math/nexttoward.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nexttoward, (double x, long double y)) {
   // We can reuse the nextafter implementation because the internal nextafter is
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(double, nexttoward, (double x, long double y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nexttowardf.cpp b/libc/src/math/generic/nexttowardf.cpp
index 3b0762c50160a..095a7af8c2611 100644
--- a/libc/src/math/generic/nexttowardf.cpp
+++ b/libc/src/math/generic/nexttowardf.cpp
@@ -9,8 +9,9 @@
 #include "src/math/nexttowardf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nexttowardf, (float x, long double y)) {
   // We can reuse the nextafter implementation because the internal nextafter is
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(float, nexttowardf, (float x, long double y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nexttowardf16.cpp b/libc/src/math/generic/nexttowardf16.cpp
index d1d78e8f22d3e..75218b1dcf812 100644
--- a/libc/src/math/generic/nexttowardf16.cpp
+++ b/libc/src/math/generic/nexttowardf16.cpp
@@ -9,8 +9,9 @@
 #include "src/math/nexttowardf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, nexttowardf16, (float16 x, long double y)) {
   // We can reuse the nextafter implementation because the internal nextafter is
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(float16, nexttowardf16, (float16 x, long double y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nexttowardl.cpp b/libc/src/math/generic/nexttowardl.cpp
index e9f7f83907603..b20868956dbc8 100644
--- a/libc/src/math/generic/nexttowardl.cpp
+++ b/libc/src/math/generic/nexttowardl.cpp
@@ -9,8 +9,9 @@
 #include "src/math/nexttowardl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, nexttowardl, (long double x, long double y)) {
   // We can reuse the nextafter implementation because the internal nextafter is
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(long double, nexttowardl, (long double x, long double y)) {
   return fputil::nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextup.cpp b/libc/src/math/generic/nextup.cpp
index d75a336eefcc8..ac068240875d1 100644
--- a/libc/src/math/generic/nextup.cpp
+++ b/libc/src/math/generic/nextup.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextup.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nextup, (double x)) {
   return fputil::nextupdown</*IsDown=*/false>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextupf.cpp b/libc/src/math/generic/nextupf.cpp
index 3b18dae4488d4..10a4b032b66dd 100644
--- a/libc/src/math/generic/nextupf.cpp
+++ b/libc/src/math/generic/nextupf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextupf.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nextupf, (float x)) {
   return fputil::nextupdown</*IsDown=*/false>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextupf128.cpp b/libc/src/math/generic/nextupf128.cpp
index 7d862c30976cb..c380f0d60916f 100644
--- a/libc/src/math/generic/nextupf128.cpp
+++ b/libc/src/math/generic/nextupf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextupf128.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, nextupf128, (float128 x)) {
   return fputil::nextupdown</*IsDown=*/false>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextupf16.cpp b/libc/src/math/generic/nextupf16.cpp
index 5d3d52c94068f..5588480c58d0a 100644
--- a/libc/src/math/generic/nextupf16.cpp
+++ b/libc/src/math/generic/nextupf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextupf16.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, nextupf16, (float16 x)) {
   return fputil::nextupdown</*IsDown=*/false>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/nextupl.cpp b/libc/src/math/generic/nextupl.cpp
index ccc52445eec5c..e4ef195738811 100644
--- a/libc/src/math/generic/nextupl.cpp
+++ b/libc/src/math/generic/nextupl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/nextupl.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, nextupl, (long double x)) {
   return fputil::nextupdown</*IsDown=*/false>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/powf.cpp b/libc/src/math/generic/powf.cpp
index 13c04240f59c2..845ac2521e090 100644
--- a/libc/src/math/generic/powf.cpp
+++ b/libc/src/math/generic/powf.cpp
@@ -19,6 +19,7 @@
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/FPUtil/sqrt.h" // Speedup for powf(x, 1/2) = sqrtf(x)
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
 #include "exp10f_impl.h" // Speedup for powf(10, y) = exp10f(y)
@@ -26,7 +27,7 @@
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
@@ -856,4 +857,4 @@ LLVM_LIBC_FUNCTION(float, powf, (float x, float y)) {
          0.0f;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/range_reduction.h b/libc/src/math/generic/range_reduction.h
index 8a75af5877962..9ea446d89bed5 100644
--- a/libc/src/math/generic/range_reduction.h
+++ b/libc/src/math/generic/range_reduction.h
@@ -13,8 +13,9 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace generic {
 
@@ -84,6 +85,6 @@ LIBC_INLINE int64_t large_range_reduction(double x, int x_exp, double &y) {
 
 } // namespace generic
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_RANGE_REDUCTION_H
diff --git a/libc/src/math/generic/range_reduction_double_common.h b/libc/src/math/generic/range_reduction_double_common.h
index 150118fba0ba0..2b1c4e8df0c3d 100644
--- a/libc/src/math/generic/range_reduction_double_common.h
+++ b/libc/src/math/generic/range_reduction_double_common.h
@@ -16,8 +16,9 @@
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace generic {
 
@@ -225,6 +226,6 @@ LIBC_INLINE constexpr Float128 SIN_K_PI_OVER_128_F128[65] = {
 
 } // namespace generic
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_RANGE_REDUCTION_DOUBLE_COMMON_H
diff --git a/libc/src/math/generic/range_reduction_double_fma.h b/libc/src/math/generic/range_reduction_double_fma.h
index c136de957d2f0..7448b5f63dfde 100644
--- a/libc/src/math/generic/range_reduction_double_fma.h
+++ b/libc/src/math/generic/range_reduction_double_fma.h
@@ -14,8 +14,9 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace fma {
 
@@ -490,6 +491,6 @@ LIBC_INLINE unsigned range_reduction_small(double x, DoubleDouble &u) {
 
 } // namespace fma
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_RANGE_REDUCTION_DOUBLE_FMA_H
diff --git a/libc/src/math/generic/range_reduction_double_nofma.h b/libc/src/math/generic/range_reduction_double_nofma.h
index b9d34d6d9f1a8..445a45d3f9796 100644
--- a/libc/src/math/generic/range_reduction_double_nofma.h
+++ b/libc/src/math/generic/range_reduction_double_nofma.h
@@ -14,8 +14,9 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace nofma {
 
@@ -488,6 +489,6 @@ LIBC_INLINE unsigned range_reduction_small(double x, DoubleDouble &u) {
 
 } // namespace nofma
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_RANGE_REDUCTION_DOUBLE_NOFMA_H
diff --git a/libc/src/math/generic/range_reduction_fma.h b/libc/src/math/generic/range_reduction_fma.h
index 97b9e3d0f89db..537d5729dc42c 100644
--- a/libc/src/math/generic/range_reduction_fma.h
+++ b/libc/src/math/generic/range_reduction_fma.h
@@ -12,8 +12,9 @@
 #include "src/__support/FPUtil/FMA.h"
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/nearest_integer.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace fma {
 
@@ -86,6 +87,6 @@ LIBC_INLINE int64_t large_range_reduction(double x, int x_exp, double &y) {
 
 } // namespace fma
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_RANGE_REDUCTION_FMA_H
diff --git a/libc/src/math/generic/remainder.cpp b/libc/src/math/generic/remainder.cpp
index 3703a32057751..a22ffc45ead67 100644
--- a/libc/src/math/generic/remainder.cpp
+++ b/libc/src/math/generic/remainder.cpp
@@ -9,12 +9,13 @@
 #include "src/math/remainder.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, remainder, (double x, double y)) {
   int quotient;
   return fputil::remquo(x, y, quotient);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remainderf.cpp b/libc/src/math/generic/remainderf.cpp
index 5e8c5e9996b69..44e32e9047393 100644
--- a/libc/src/math/generic/remainderf.cpp
+++ b/libc/src/math/generic/remainderf.cpp
@@ -9,12 +9,13 @@
 #include "src/math/remainderf.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, remainderf, (float x, float y)) {
   int quotient;
   return fputil::remquo(x, y, quotient);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remainderf16.cpp b/libc/src/math/generic/remainderf16.cpp
index 35177228acdbf..2b6488294fb74 100644
--- a/libc/src/math/generic/remainderf16.cpp
+++ b/libc/src/math/generic/remainderf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/remainderf16.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, remainderf16, (float16 x, float16 y)) {
   int quotient;
   return fputil::remquo(x, y, quotient);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remainderl.cpp b/libc/src/math/generic/remainderl.cpp
index def5d4b6fdb98..a61a13e27e417 100644
--- a/libc/src/math/generic/remainderl.cpp
+++ b/libc/src/math/generic/remainderl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/remainderl.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, remainderl, (long double x, long double y)) {
   int quotient;
   return fputil::remquo(x, y, quotient);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remquo.cpp b/libc/src/math/generic/remquo.cpp
index bd88742e5a5c2..45deb81993bc3 100644
--- a/libc/src/math/generic/remquo.cpp
+++ b/libc/src/math/generic/remquo.cpp
@@ -9,11 +9,12 @@
 #include "src/math/remquo.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, remquo, (double x, double y, int *exp)) {
   return fputil::remquo(x, y, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remquof.cpp b/libc/src/math/generic/remquof.cpp
index b59606f6266fa..f3616ab7bf497 100644
--- a/libc/src/math/generic/remquof.cpp
+++ b/libc/src/math/generic/remquof.cpp
@@ -9,11 +9,12 @@
 #include "src/math/remquof.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, remquof, (float x, float y, int *exp)) {
   return fputil::remquo(x, y, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remquof128.cpp b/libc/src/math/generic/remquof128.cpp
index e195c7b51b5ff..cf8f564b5c52b 100644
--- a/libc/src/math/generic/remquof128.cpp
+++ b/libc/src/math/generic/remquof128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/remquof128.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, remquof128, (float128 x, float128 y, int *exp)) {
   return fputil::remquo(x, y, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remquof16.cpp b/libc/src/math/generic/remquof16.cpp
index a373bfa58651b..3a5baadb3ce3a 100644
--- a/libc/src/math/generic/remquof16.cpp
+++ b/libc/src/math/generic/remquof16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/remquof16.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, remquof16, (float16 x, float16 y, int *exp)) {
   return fputil::remquo(x, y, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/remquol.cpp b/libc/src/math/generic/remquol.cpp
index 7a08af36a4753..980f50cbcdeba 100644
--- a/libc/src/math/generic/remquol.cpp
+++ b/libc/src/math/generic/remquol.cpp
@@ -9,12 +9,13 @@
 #include "src/math/remquol.h"
 #include "src/__support/FPUtil/DivisionAndRemainderOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, remquol,
                    (long double x, long double y, int *exp)) {
   return fputil::remquo(x, y, *exp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/rint.cpp b/libc/src/math/generic/rint.cpp
index e3189ea48b569..f7837df133484 100644
--- a/libc/src/math/generic/rint.cpp
+++ b/libc/src/math/generic/rint.cpp
@@ -9,11 +9,12 @@
 #include "src/math/rint.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, rint, (double x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/rintf.cpp b/libc/src/math/generic/rintf.cpp
index 259a46f376537..29a2845cc85d4 100644
--- a/libc/src/math/generic/rintf.cpp
+++ b/libc/src/math/generic/rintf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/rintf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, rintf, (float x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/rintf128.cpp b/libc/src/math/generic/rintf128.cpp
index ba9912d6f8538..f3b8afa1fd08f 100644
--- a/libc/src/math/generic/rintf128.cpp
+++ b/libc/src/math/generic/rintf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/rintf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, rintf128, (float128 x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/rintf16.cpp b/libc/src/math/generic/rintf16.cpp
index e0caa7ad2550e..69b89de31bf40 100644
--- a/libc/src/math/generic/rintf16.cpp
+++ b/libc/src/math/generic/rintf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/rintf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, rintf16, (float16 x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/rintl.cpp b/libc/src/math/generic/rintl.cpp
index 5110f238cb05f..007d29a144e98 100644
--- a/libc/src/math/generic/rintl.cpp
+++ b/libc/src/math/generic/rintl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/rintl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, rintl, (long double x)) {
   return fputil::round_using_current_rounding_mode(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/round.cpp b/libc/src/math/generic/round.cpp
index ca8f19f35f7fe..d8b171a2ef092 100644
--- a/libc/src/math/generic/round.cpp
+++ b/libc/src/math/generic/round.cpp
@@ -9,9 +9,10 @@
 #include "src/math/round.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, round, (double x)) { return fputil::round(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundeven.cpp b/libc/src/math/generic/roundeven.cpp
index 5f2adf9b5fce6..e6f599991bc0f 100644
--- a/libc/src/math/generic/roundeven.cpp
+++ b/libc/src/math/generic/roundeven.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundeven.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, roundeven, (double x)) {
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundevenf.cpp b/libc/src/math/generic/roundevenf.cpp
index 353bec74ecf02..0b63a093edf6c 100644
--- a/libc/src/math/generic/roundevenf.cpp
+++ b/libc/src/math/generic/roundevenf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundevenf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, roundevenf, (float x)) {
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundevenf128.cpp b/libc/src/math/generic/roundevenf128.cpp
index 259388c86fd33..354076b4a68f8 100644
--- a/libc/src/math/generic/roundevenf128.cpp
+++ b/libc/src/math/generic/roundevenf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundevenf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, roundevenf128, (float128 x)) {
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundevenf16.cpp b/libc/src/math/generic/roundevenf16.cpp
index 9ecf79ce6f6c2..8a27d81b895ae 100644
--- a/libc/src/math/generic/roundevenf16.cpp
+++ b/libc/src/math/generic/roundevenf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundevenf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, roundevenf16, (float16 x)) {
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundevenl.cpp b/libc/src/math/generic/roundevenl.cpp
index f8f429faeec8a..6ffe80a0f1d12 100644
--- a/libc/src/math/generic/roundevenl.cpp
+++ b/libc/src/math/generic/roundevenl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundevenl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, roundevenl, (long double x)) {
   return fputil::round_using_specific_rounding_mode(x, FP_INT_TONEAREST);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundf.cpp b/libc/src/math/generic/roundf.cpp
index 9627390ea8b8d..68be4b1a51987 100644
--- a/libc/src/math/generic/roundf.cpp
+++ b/libc/src/math/generic/roundf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/roundf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, roundf, (float x)) { return fputil::round(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundf128.cpp b/libc/src/math/generic/roundf128.cpp
index 5b35d746d4407..88a545e78dcdb 100644
--- a/libc/src/math/generic/roundf128.cpp
+++ b/libc/src/math/generic/roundf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, roundf128, (float128 x)) {
   return fputil::round(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundf16.cpp b/libc/src/math/generic/roundf16.cpp
index 75a255d7798d5..06f9a79cc21f3 100644
--- a/libc/src/math/generic/roundf16.cpp
+++ b/libc/src/math/generic/roundf16.cpp
@@ -9,9 +9,10 @@
 #include "src/math/roundf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, roundf16, (float16 x)) { return fputil::round(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/roundl.cpp b/libc/src/math/generic/roundl.cpp
index c734225844079..0f7b29e1907cf 100644
--- a/libc/src/math/generic/roundl.cpp
+++ b/libc/src/math/generic/roundl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/roundl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, roundl, (long double x)) {
   return fputil::round(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/scalblnf16.cpp b/libc/src/math/generic/scalblnf16.cpp
index 844a071d754a6..7f43841291e43 100644
--- a/libc/src/math/generic/scalblnf16.cpp
+++ b/libc/src/math/generic/scalblnf16.cpp
@@ -11,15 +11,16 @@
 #include "src/__support/common.h"
 
 #include "hdr/float_macros.h"
+#include "src/__support/macros/config.h"
 
 #if FLT_RADIX != 2
 #error "FLT_RADIX != 2 is not supported."
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, scalblnf16, (float16 x, long n)) {
   return fputil::ldexp(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/scalbn.cpp b/libc/src/math/generic/scalbn.cpp
index 207cce1550bc0..c1ee994197f52 100644
--- a/libc/src/math/generic/scalbn.cpp
+++ b/libc/src/math/generic/scalbn.cpp
@@ -10,15 +10,16 @@
 #include "hdr/float_macros.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #if FLT_RADIX != 2
 #error "FLT_RADIX != 2 is not supported."
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, scalbn, (double x, int n)) {
   return fputil::ldexp(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/scalbnf.cpp b/libc/src/math/generic/scalbnf.cpp
index e478088d3ce5a..4281b0093c54b 100644
--- a/libc/src/math/generic/scalbnf.cpp
+++ b/libc/src/math/generic/scalbnf.cpp
@@ -10,15 +10,16 @@
 #include "hdr/float_macros.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #if FLT_RADIX != 2
 #error "FLT_RADIX != 2 is not supported."
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, scalbnf, (float x, int n)) {
   return fputil::ldexp(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/scalbnf128.cpp b/libc/src/math/generic/scalbnf128.cpp
index 5fd59611d53de..e3e284613cdc5 100644
--- a/libc/src/math/generic/scalbnf128.cpp
+++ b/libc/src/math/generic/scalbnf128.cpp
@@ -10,15 +10,16 @@
 #include "hdr/float_macros.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #if FLT_RADIX != 2
 #error "FLT_RADIX != 2 is not supported."
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, scalbnf128, (float128 x, int n)) {
   return fputil::ldexp(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/scalbnf16.cpp b/libc/src/math/generic/scalbnf16.cpp
index a42fdfffd569f..641e2d0da0013 100644
--- a/libc/src/math/generic/scalbnf16.cpp
+++ b/libc/src/math/generic/scalbnf16.cpp
@@ -11,15 +11,16 @@
 #include "src/__support/common.h"
 
 #include "hdr/float_macros.h"
+#include "src/__support/macros/config.h"
 
 #if FLT_RADIX != 2
 #error "FLT_RADIX != 2 is not supported."
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, scalbnf16, (float16 x, int n)) {
   return fputil::ldexp(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/scalbnl.cpp b/libc/src/math/generic/scalbnl.cpp
index 1225a7ebaf572..3015c3c6c7f41 100644
--- a/libc/src/math/generic/scalbnl.cpp
+++ b/libc/src/math/generic/scalbnl.cpp
@@ -10,15 +10,16 @@
 #include "hdr/float_macros.h"
 #include "src/__support/FPUtil/ManipulationFunctions.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #if FLT_RADIX != 2
 #error "FLT_RADIX != 2 is not supported."
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, scalbnl, (long double x, int n)) {
   return fputil::ldexp(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/setpayloadf16.cpp b/libc/src/math/generic/setpayloadf16.cpp
index 98fc239765d81..1d1445eb22432 100644
--- a/libc/src/math/generic/setpayloadf16.cpp
+++ b/libc/src/math/generic/setpayloadf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/setpayloadf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, setpayloadf16, (float16 * res, float16 pl)) {
   return static_cast<int>(fputil::setpayload</*IsSignaling=*/false>(*res, pl));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/setpayloadsigf16.cpp b/libc/src/math/generic/setpayloadsigf16.cpp
index c79620f6dfbe2..5ba9fcdb0fe18 100644
--- a/libc/src/math/generic/setpayloadsigf16.cpp
+++ b/libc/src/math/generic/setpayloadsigf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/setpayloadsigf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, setpayloadsigf16, (float16 * res, float16 pl)) {
   return static_cast<int>(fputil::setpayload</*IsSignaling=*/true>(*res, pl));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sin.cpp b/libc/src/math/generic/sin.cpp
index e7a43245408bf..5a4b5a3056ea4 100644
--- a/libc/src/math/generic/sin.cpp
+++ b/libc/src/math/generic/sin.cpp
@@ -15,6 +15,7 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 #include "src/math/generic/sincos_eval.h"
@@ -49,7 +50,7 @@ LIBC_INLINE constexpr bool NO_FMA = true;
 #define LIBC_MATH_SIN_SKIP_ACCURATE_PASS
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using DoubleDouble = fputil::DoubleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -204,4 +205,4 @@ LLVM_LIBC_FUNCTION(double, sin, (double x)) {
 #endif // !LIBC_MATH_SIN_SKIP_ACCURATE_PASS
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sincos.cpp b/libc/src/math/generic/sincos.cpp
index ed70e380b72e8..de107e6004b44 100644
--- a/libc/src/math/generic/sincos.cpp
+++ b/libc/src/math/generic/sincos.cpp
@@ -16,6 +16,7 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 #include "src/math/generic/sincos_eval.h"
@@ -50,7 +51,7 @@ LIBC_INLINE constexpr bool NO_FMA = true;
 #define LIBC_MATH_SINCOS_SKIP_ACCURATE_PASS
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using DoubleDouble = fputil::DoubleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -244,4 +245,4 @@ LLVM_LIBC_FUNCTION(void, sincos, (double x, double *sin_x, double *cos_x)) {
 #endif // !LIBC_MATH_SINCOS_SKIP_ACCURATE_PASS
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sincos_eval.h b/libc/src/math/generic/sincos_eval.h
index 5b4f3b8563cff..e491467c5663f 100644
--- a/libc/src/math/generic/sincos_eval.h
+++ b/libc/src/math/generic/sincos_eval.h
@@ -14,8 +14,9 @@
 #include "src/__support/FPUtil/dyadic_float.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace generic {
 
@@ -119,6 +120,6 @@ LIBC_INLINE void sincos_eval(const Float128 &u, Float128 &sin_u,
 
 } // namespace generic
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_SINCOSF_EVAL_H
diff --git a/libc/src/math/generic/sincosf.cpp b/libc/src/math/generic/sincosf.cpp
index 9ebf0b6868967..3bf8e9772231d 100644
--- a/libc/src/math/generic/sincosf.cpp
+++ b/libc/src/math/generic/sincosf.cpp
@@ -13,12 +13,13 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Exceptional values
 static constexpr int N_EXCEPTS = 6;
@@ -199,4 +200,4 @@ LLVM_LIBC_FUNCTION(void, sincosf, (float x, float *sinp, float *cosp)) {
       sin_y, -sin_k, fputil::multiply_add(cosm1_y, cos_k, cos_k)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sincosf_utils.h b/libc/src/math/generic/sincosf_utils.h
index f20fb6a05a324..726a5ab9b64be 100644
--- a/libc/src/math/generic/sincosf_utils.h
+++ b/libc/src/math/generic/sincosf_utils.h
@@ -11,6 +11,7 @@
 
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/PolyEval.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
 #if defined(LIBC_TARGET_CPU_HAS_FMA)
@@ -28,7 +29,7 @@ using LIBC_NAMESPACE::generic::large_range_reduction;
 using LIBC_NAMESPACE::generic::small_range_reduction;
 #endif // LIBC_TARGET_CPU_HAS_FMA
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Lookup table for sin(k * pi / 32) with k = 0, ..., 63.
 // Table is generated with Sollya as follow:
@@ -119,6 +120,6 @@ LIBC_INLINE void sincospif_eval(double xd, double &sin_k, double &cos_k,
   sincosf_poly_eval(k, y, sin_k, cos_k, sin_y, cosm1_y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GENERIC_SINCOSF_UTILS_H
diff --git a/libc/src/math/generic/sinf.cpp b/libc/src/math/generic/sinf.cpp
index ff555bcb12198..43c2c2a8d883d 100644
--- a/libc/src/math/generic/sinf.cpp
+++ b/libc/src/math/generic/sinf.cpp
@@ -15,6 +15,7 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
@@ -26,7 +27,7 @@
 #include "range_reduction.h"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinf, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -155,4 +156,4 @@ LLVM_LIBC_FUNCTION(float, sinf, (float x)) {
       sin_y, cos_k, fputil::multiply_add(cosm1_y, sin_k, sin_k)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sinhf.cpp b/libc/src/math/generic/sinhf.cpp
index 780c9a1f8d6ac..371dd6e67e66e 100644
--- a/libc/src/math/generic/sinhf.cpp
+++ b/libc/src/math/generic/sinhf.cpp
@@ -9,10 +9,11 @@
 #include "src/math/sinhf.h"
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinhf, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -72,4 +73,4 @@ LLVM_LIBC_FUNCTION(float, sinhf, (float x)) {
   return static_cast<float>(exp_pm_eval</*is_sinh*/ true>(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sinpif.cpp b/libc/src/math/generic/sinpif.cpp
index 05bdad3ab4d0e..f572ded06b25a 100644
--- a/libc/src/math/generic/sinpif.cpp
+++ b/libc/src/math/generic/sinpif.cpp
@@ -13,9 +13,10 @@
 #include "src/__support/FPUtil/PolyEval.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinpif, (float x)) {
   using FPBits = typename fputil::FPBits<float>;
@@ -108,4 +109,4 @@ LLVM_LIBC_FUNCTION(float, sinpif, (float x)) {
       sin_y, cos_k, fputil::multiply_add(cosm1_y, sin_k, sin_k)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sqrt.cpp b/libc/src/math/generic/sqrt.cpp
index f33b0a2cdcf74..791975e1be2d5 100644
--- a/libc/src/math/generic/sqrt.cpp
+++ b/libc/src/math/generic/sqrt.cpp
@@ -9,9 +9,10 @@
 #include "src/math/sqrt.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sqrt, (double x)) { return fputil::sqrt<double>(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sqrtf.cpp b/libc/src/math/generic/sqrtf.cpp
index 26a53e9077c1c..69e0c34770055 100644
--- a/libc/src/math/generic/sqrtf.cpp
+++ b/libc/src/math/generic/sqrtf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/sqrtf.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sqrtf, (float x)) { return fputil::sqrt<float>(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sqrtf128.cpp b/libc/src/math/generic/sqrtf128.cpp
index 70e28ddb692d4..f87066b6f6403 100644
--- a/libc/src/math/generic/sqrtf128.cpp
+++ b/libc/src/math/generic/sqrtf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/sqrtf128.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, sqrtf128, (float128 x)) {
   return fputil::sqrt<float128>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/sqrtl.cpp b/libc/src/math/generic/sqrtl.cpp
index 9f0cc87853823..2368182740ca8 100644
--- a/libc/src/math/generic/sqrtl.cpp
+++ b/libc/src/math/generic/sqrtl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/sqrtl.h"
 #include "src/__support/FPUtil/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, sqrtl, (long double x)) {
   return fputil::sqrt<long double>(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/tan.cpp b/libc/src/math/generic/tan.cpp
index d153cc53acc80..a3bc972ef9c59 100644
--- a/libc/src/math/generic/tan.cpp
+++ b/libc/src/math/generic/tan.cpp
@@ -17,6 +17,7 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/rounding_mode.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
@@ -52,7 +53,7 @@ LIBC_INLINE constexpr bool NO_FMA = true;
 #define LIBC_MATH_TAN_SKIP_ACCURATE_PASS
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using DoubleDouble = fputil::DoubleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
@@ -316,4 +317,4 @@ LLVM_LIBC_FUNCTION(double, tan, (double x)) {
 #endif // !LIBC_MATH_TAN_SKIP_ACCURATE_PASS
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/tanf.cpp b/libc/src/math/generic/tanf.cpp
index b2882b57b29c8..01d8c9855d461 100644
--- a/libc/src/math/generic/tanf.cpp
+++ b/libc/src/math/generic/tanf.cpp
@@ -15,12 +15,13 @@
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"            // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Exceptional cases for tanf.
 constexpr size_t N_EXCEPTS = 6;
@@ -139,4 +140,4 @@ LLVM_LIBC_FUNCTION(float, tanf, (float x)) {
       multiply_add(sin_y, -sin_k, multiply_add(cosm1_y, cos_k, cos_k)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/tanhf.cpp b/libc/src/math/generic/tanhf.cpp
index 0efd0cefebe57..32153c3e1c943 100644
--- a/libc/src/math/generic/tanhf.cpp
+++ b/libc/src/math/generic/tanhf.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/FPUtil/PolyEval.h"
 #include "src/__support/FPUtil/multiply_add.h"
 #include "src/__support/FPUtil/nearest_integer.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/__support/macros/properties/cpu_features.h"
 #include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // 2^6 * log2(e)
 constexpr double LOG2_E_EXP2_6 = ExpBase::LOG2_B * 2.0;
@@ -116,4 +117,4 @@ LLVM_LIBC_FUNCTION(float, tanhf, (float x)) {
   return static_cast<float>((r - mh) / (r + mh));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/totalorderf16.cpp b/libc/src/math/generic/totalorderf16.cpp
index e43beb33d2fd3..743aa5a55db55 100644
--- a/libc/src/math/generic/totalorderf16.cpp
+++ b/libc/src/math/generic/totalorderf16.cpp
@@ -9,11 +9,12 @@
 #include "src/math/totalorderf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, totalorderf16, (const float16 *x, const float16 *y)) {
   return static_cast<int>(fputil::totalorder(*x, *y));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/totalordermagf16.cpp b/libc/src/math/generic/totalordermagf16.cpp
index 09d04fbeb2d2c..0d2e9e174f522 100644
--- a/libc/src/math/generic/totalordermagf16.cpp
+++ b/libc/src/math/generic/totalordermagf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/totalordermagf16.h"
 #include "src/__support/FPUtil/BasicOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, totalordermagf16,
                    (const float16 *x, const float16 *y)) {
   return static_cast<int>(fputil::totalordermag(*x, *y));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/trunc.cpp b/libc/src/math/generic/trunc.cpp
index d171ab1f092fd..0bf2ac5962e7b 100644
--- a/libc/src/math/generic/trunc.cpp
+++ b/libc/src/math/generic/trunc.cpp
@@ -9,9 +9,10 @@
 #include "src/math/trunc.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, trunc, (double x)) { return fputil::trunc(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/truncf.cpp b/libc/src/math/generic/truncf.cpp
index 93bfb7f2882a5..371cb9f8229a6 100644
--- a/libc/src/math/generic/truncf.cpp
+++ b/libc/src/math/generic/truncf.cpp
@@ -9,9 +9,10 @@
 #include "src/math/truncf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, truncf, (float x)) { return fputil::trunc(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/truncf128.cpp b/libc/src/math/generic/truncf128.cpp
index ecf05fa73b35c..200dbf1286af9 100644
--- a/libc/src/math/generic/truncf128.cpp
+++ b/libc/src/math/generic/truncf128.cpp
@@ -9,11 +9,12 @@
 #include "src/math/truncf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, truncf128, (float128 x)) {
   return fputil::trunc(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/truncf16.cpp b/libc/src/math/generic/truncf16.cpp
index 65bd57d810323..ea7695dc95f0b 100644
--- a/libc/src/math/generic/truncf16.cpp
+++ b/libc/src/math/generic/truncf16.cpp
@@ -9,9 +9,10 @@
 #include "src/math/truncf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, truncf16, (float16 x)) { return fputil::trunc(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/truncl.cpp b/libc/src/math/generic/truncl.cpp
index 3429129183100..83b0827d4a192 100644
--- a/libc/src/math/generic/truncl.cpp
+++ b/libc/src/math/generic/truncl.cpp
@@ -9,11 +9,12 @@
 #include "src/math/truncl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, truncl, (long double x)) {
   return fputil::trunc(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfp.cpp b/libc/src/math/generic/ufromfp.cpp
index 15800d67fd8d3..f460a4314a35a 100644
--- a/libc/src/math/generic/ufromfp.cpp
+++ b/libc/src/math/generic/ufromfp.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ufromfp.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ufromfp, (double x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpf.cpp b/libc/src/math/generic/ufromfpf.cpp
index 898446ec45aa2..07be4e90375e9 100644
--- a/libc/src/math/generic/ufromfpf.cpp
+++ b/libc/src/math/generic/ufromfpf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ufromfpf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ufromfpf, (float x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpf128.cpp b/libc/src/math/generic/ufromfpf128.cpp
index cc728f35551ca..1a532cf047b2e 100644
--- a/libc/src/math/generic/ufromfpf128.cpp
+++ b/libc/src/math/generic/ufromfpf128.cpp
@@ -9,12 +9,13 @@
 #include "src/math/ufromfpf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, ufromfpf128,
                    (float128 x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpf16.cpp b/libc/src/math/generic/ufromfpf16.cpp
index bf041f463115a..314c5257a46b7 100644
--- a/libc/src/math/generic/ufromfpf16.cpp
+++ b/libc/src/math/generic/ufromfpf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/ufromfpf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, ufromfpf16,
                    (float16 x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpl.cpp b/libc/src/math/generic/ufromfpl.cpp
index bd353e9ebbb56..050950aa626ac 100644
--- a/libc/src/math/generic/ufromfpl.cpp
+++ b/libc/src/math/generic/ufromfpl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/ufromfpl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, ufromfpl,
                    (long double x, int rnd, unsigned int width)) {
   return fputil::fromfp</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpx.cpp b/libc/src/math/generic/ufromfpx.cpp
index 5ad95ff3061eb..178049bb75bc9 100644
--- a/libc/src/math/generic/ufromfpx.cpp
+++ b/libc/src/math/generic/ufromfpx.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ufromfpx.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ufromfpx, (double x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpxf.cpp b/libc/src/math/generic/ufromfpxf.cpp
index 7c878489e8d25..8f3cd5075b484 100644
--- a/libc/src/math/generic/ufromfpxf.cpp
+++ b/libc/src/math/generic/ufromfpxf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/ufromfpxf.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ufromfpxf, (float x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpxf128.cpp b/libc/src/math/generic/ufromfpxf128.cpp
index 57c290365e693..9d6348ce42810 100644
--- a/libc/src/math/generic/ufromfpxf128.cpp
+++ b/libc/src/math/generic/ufromfpxf128.cpp
@@ -9,12 +9,13 @@
 #include "src/math/ufromfpxf128.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float128, ufromfpxf128,
                    (float128 x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpxf16.cpp b/libc/src/math/generic/ufromfpxf16.cpp
index aeb7aa8d76b63..b1f42a8d55ecc 100644
--- a/libc/src/math/generic/ufromfpxf16.cpp
+++ b/libc/src/math/generic/ufromfpxf16.cpp
@@ -9,12 +9,13 @@
 #include "src/math/ufromfpxf16.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float16, ufromfpxf16,
                    (float16 x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/ufromfpxl.cpp b/libc/src/math/generic/ufromfpxl.cpp
index 9a8ba7aa5b91d..637721eb0a2ca 100644
--- a/libc/src/math/generic/ufromfpxl.cpp
+++ b/libc/src/math/generic/ufromfpxl.cpp
@@ -9,12 +9,13 @@
 #include "src/math/ufromfpxl.h"
 #include "src/__support/FPUtil/NearestIntegerOperations.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, ufromfpxl,
                    (long double x, int rnd, unsigned int width)) {
   return fputil::fromfpx</*IsSigned=*/false>(x, rnd, width);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/getpayloadf16.h b/libc/src/math/getpayloadf16.h
index 1349dfd370239..565454edd8189 100644
--- a/libc/src/math/getpayloadf16.h
+++ b/libc/src/math/getpayloadf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_GETPAYLOADF16_H
 #define LLVM_LIBC_SRC_MATH_GETPAYLOADF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 getpayloadf16(const float16 *x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_GETPAYLOADF16_H
diff --git a/libc/src/math/hypot.h b/libc/src/math/hypot.h
index 981473f9e8d5b..b78792be07b2b 100644
--- a/libc/src/math/hypot.h
+++ b/libc/src/math/hypot.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_HYPOT_H
 #define LLVM_LIBC_SRC_MATH_HYPOT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double hypot(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_HYPOT_H
diff --git a/libc/src/math/hypotf.h b/libc/src/math/hypotf.h
index 1d290b421f151..2c10c465f2e5f 100644
--- a/libc/src/math/hypotf.h
+++ b/libc/src/math/hypotf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_HYPOTF_H
 #define LLVM_LIBC_SRC_MATH_HYPOTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float hypotf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_HYPOTF_H
diff --git a/libc/src/math/ilogb.h b/libc/src/math/ilogb.h
index e851a6a4c4d55..5b43107de23e3 100644
--- a/libc/src/math/ilogb.h
+++ b/libc/src/math/ilogb.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ILOGB_H
 #define LLVM_LIBC_SRC_MATH_ILOGB_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int ilogb(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ILOGB_H
diff --git a/libc/src/math/ilogbf.h b/libc/src/math/ilogbf.h
index edea34618ac02..36197ecd50b10 100644
--- a/libc/src/math/ilogbf.h
+++ b/libc/src/math/ilogbf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ILOGBF_H
 #define LLVM_LIBC_SRC_MATH_ILOGBF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int ilogbf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ILOGBF_H
diff --git a/libc/src/math/ilogbf128.h b/libc/src/math/ilogbf128.h
index d8fe3b970973c..9ea5e89fdf993 100644
--- a/libc/src/math/ilogbf128.h
+++ b/libc/src/math/ilogbf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_ILOGBF128_H
 #define LLVM_LIBC_SRC_MATH_ILOGBF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int ilogbf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ILOGBF128_H
diff --git a/libc/src/math/ilogbf16.h b/libc/src/math/ilogbf16.h
index 4884a140cb4f6..a712cd78dc0fc 100644
--- a/libc/src/math/ilogbf16.h
+++ b/libc/src/math/ilogbf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_ILOGBF16_H
 #define LLVM_LIBC_SRC_MATH_ILOGBF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int ilogbf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ILOGBF16_H
diff --git a/libc/src/math/ilogbl.h b/libc/src/math/ilogbl.h
index 1b4782f3445ca..5f089e24e266b 100644
--- a/libc/src/math/ilogbl.h
+++ b/libc/src/math/ilogbl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ILOGBL_H
 #define LLVM_LIBC_SRC_MATH_ILOGBL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int ilogbl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ILOGBL_H
diff --git a/libc/src/math/isnan.h b/libc/src/math/isnan.h
index eda8e7eb30f39..e9776fdb8a94c 100644
--- a/libc/src/math/isnan.h
+++ b/libc/src/math/isnan.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ISNAN_H
 #define LLVM_LIBC_SRC_MATH_ISNAN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isnan(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ISNAN_H
diff --git a/libc/src/math/isnanf.h b/libc/src/math/isnanf.h
index a12d39ee5af97..bdf74d3b05f97 100644
--- a/libc/src/math/isnanf.h
+++ b/libc/src/math/isnanf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ISNANF_H
 #define LLVM_LIBC_SRC_MATH_ISNANF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isnanf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ISNANF_H
diff --git a/libc/src/math/isnanl.h b/libc/src/math/isnanl.h
index 9fbfca03cb15e..ade6a8849ac49 100644
--- a/libc/src/math/isnanl.h
+++ b/libc/src/math/isnanl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ISNANL_H
 #define LLVM_LIBC_SRC_MATH_ISNANL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int isnanl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ISNANL_H
diff --git a/libc/src/math/ldexp.h b/libc/src/math/ldexp.h
index 7a8bcc34bf581..e7897d245f299 100644
--- a/libc/src/math/ldexp.h
+++ b/libc/src/math/ldexp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LDEXP_H
 #define LLVM_LIBC_SRC_MATH_LDEXP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double ldexp(double x, int exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LDEXP_H
diff --git a/libc/src/math/ldexpf.h b/libc/src/math/ldexpf.h
index c06b487171cd2..363a1b70ad6fa 100644
--- a/libc/src/math/ldexpf.h
+++ b/libc/src/math/ldexpf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LDEXPF_H
 #define LLVM_LIBC_SRC_MATH_LDEXPF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float ldexpf(float x, int exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LDEXPF_H
diff --git a/libc/src/math/ldexpf128.h b/libc/src/math/ldexpf128.h
index 7aa6ded3c8e4c..74c3ef612166e 100644
--- a/libc/src/math/ldexpf128.h
+++ b/libc/src/math/ldexpf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LDEXPF128_H
 #define LLVM_LIBC_SRC_MATH_LDEXPF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 ldexpf128(float128 x, int exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LDEXPF128_H
diff --git a/libc/src/math/ldexpf16.h b/libc/src/math/ldexpf16.h
index 7303610b18dff..877e48ba5781b 100644
--- a/libc/src/math/ldexpf16.h
+++ b/libc/src/math/ldexpf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LDEXPF16_H
 #define LLVM_LIBC_SRC_MATH_LDEXPF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 ldexpf16(float16 x, int exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LDEXPF16_H
diff --git a/libc/src/math/ldexpl.h b/libc/src/math/ldexpl.h
index f2df0c86cad22..16a480d202d0d 100644
--- a/libc/src/math/ldexpl.h
+++ b/libc/src/math/ldexpl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LDEXPL_H
 #define LLVM_LIBC_SRC_MATH_LDEXPL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double ldexpl(long double x, int exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LDEXPL_H
diff --git a/libc/src/math/llogb.h b/libc/src/math/llogb.h
index b51f89fc0416e..f9454891ae16c 100644
--- a/libc/src/math/llogb.h
+++ b/libc/src/math/llogb.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLOGB_H
 #define LLVM_LIBC_SRC_MATH_LLOGB_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long llogb(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLOGB_H
diff --git a/libc/src/math/llogbf.h b/libc/src/math/llogbf.h
index af4aa8a5b15c0..4415562f9f3fd 100644
--- a/libc/src/math/llogbf.h
+++ b/libc/src/math/llogbf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLOGBF_H
 #define LLVM_LIBC_SRC_MATH_LLOGBF_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long llogbf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLOGBF_H
diff --git a/libc/src/math/llogbf128.h b/libc/src/math/llogbf128.h
index ce7c872a63db4..1ad4932020257 100644
--- a/libc/src/math/llogbf128.h
+++ b/libc/src/math/llogbf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLOGBF128_H
 #define LLVM_LIBC_SRC_MATH_LLOGBF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long llogbf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLOGBF128_H
diff --git a/libc/src/math/llogbf16.h b/libc/src/math/llogbf16.h
index 267ae410a31d8..4672328f1ce34 100644
--- a/libc/src/math/llogbf16.h
+++ b/libc/src/math/llogbf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLOGBF16_H
 #define LLVM_LIBC_SRC_MATH_LLOGBF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long llogbf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLOGBF16_H
diff --git a/libc/src/math/llogbl.h b/libc/src/math/llogbl.h
index 3c323a3af2a93..bf502a1c0bc3b 100644
--- a/libc/src/math/llogbl.h
+++ b/libc/src/math/llogbl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLOGBL_H
 #define LLVM_LIBC_SRC_MATH_LLOGBL_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long llogbl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLOGBL_H
diff --git a/libc/src/math/llrint.h b/libc/src/math/llrint.h
index 69c881ea844f9..7ad5bbdc1f66f 100644
--- a/libc/src/math/llrint.h
+++ b/libc/src/math/llrint.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLRINT_H
 #define LLVM_LIBC_SRC_MATH_LLRINT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llrint(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLRINT_H
diff --git a/libc/src/math/llrintf.h b/libc/src/math/llrintf.h
index 023e84aa05092..89334b5a85c00 100644
--- a/libc/src/math/llrintf.h
+++ b/libc/src/math/llrintf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLRINTF_H
 #define LLVM_LIBC_SRC_MATH_LLRINTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llrintf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLRINTF_H
diff --git a/libc/src/math/llrintf128.h b/libc/src/math/llrintf128.h
index ac9c249342cc7..ff2e9a2248bba 100644
--- a/libc/src/math/llrintf128.h
+++ b/libc/src/math/llrintf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLRINTF128_H
 #define LLVM_LIBC_SRC_MATH_LLRINTF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long long llrintf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLRINTF128_H
diff --git a/libc/src/math/llrintf16.h b/libc/src/math/llrintf16.h
index 90ad0e9e2ea2a..5c053038c8ae4 100644
--- a/libc/src/math/llrintf16.h
+++ b/libc/src/math/llrintf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLRINTF16_H
 #define LLVM_LIBC_SRC_MATH_LLRINTF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long long llrintf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLRINTF16_H
diff --git a/libc/src/math/llrintl.h b/libc/src/math/llrintl.h
index 4dbcc60589812..0c0d7d31ef9da 100644
--- a/libc/src/math/llrintl.h
+++ b/libc/src/math/llrintl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLRINTL_H
 #define LLVM_LIBC_SRC_MATH_LLRINTL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llrintl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLRINTL_H
diff --git a/libc/src/math/llround.h b/libc/src/math/llround.h
index 265b4fd92e0e8..3843e120adcbe 100644
--- a/libc/src/math/llround.h
+++ b/libc/src/math/llround.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLROUND_H
 #define LLVM_LIBC_SRC_MATH_LLROUND_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llround(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLROUND_H
diff --git a/libc/src/math/llroundf.h b/libc/src/math/llroundf.h
index 2141ca91da46b..7f61889554080 100644
--- a/libc/src/math/llroundf.h
+++ b/libc/src/math/llroundf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLROUNDF_H
 #define LLVM_LIBC_SRC_MATH_LLROUNDF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llroundf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLROUNDF_H
diff --git a/libc/src/math/llroundf128.h b/libc/src/math/llroundf128.h
index 3245dfafc4d5a..59d4d8da582ed 100644
--- a/libc/src/math/llroundf128.h
+++ b/libc/src/math/llroundf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLROUNDF128_H
 #define LLVM_LIBC_SRC_MATH_LLROUNDF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long long llroundf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLROUNDF128_H
diff --git a/libc/src/math/llroundf16.h b/libc/src/math/llroundf16.h
index 379c45446ab27..5ab6f2fab8645 100644
--- a/libc/src/math/llroundf16.h
+++ b/libc/src/math/llroundf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLROUNDF16_H
 #define LLVM_LIBC_SRC_MATH_LLROUNDF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long long llroundf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLROUNDF16_H
diff --git a/libc/src/math/llroundl.h b/libc/src/math/llroundl.h
index 9cb4251f72fe5..325cac368c9e3 100644
--- a/libc/src/math/llroundl.h
+++ b/libc/src/math/llroundl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LLROUNDL_H
 #define LLVM_LIBC_SRC_MATH_LLROUNDL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llroundl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LLROUNDL_H
diff --git a/libc/src/math/log.h b/libc/src/math/log.h
index 67f5d7f89279b..ce6296fdb64fe 100644
--- a/libc/src/math/log.h
+++ b/libc/src/math/log.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG_H
 #define LLVM_LIBC_SRC_MATH_LOG_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double log(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG_H
diff --git a/libc/src/math/log10.h b/libc/src/math/log10.h
index 3d8249aaee2d6..025163acc8902 100644
--- a/libc/src/math/log10.h
+++ b/libc/src/math/log10.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG10_H
 #define LLVM_LIBC_SRC_MATH_LOG10_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double log10(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG10_H
diff --git a/libc/src/math/log10f.h b/libc/src/math/log10f.h
index ca3eadc8866b1..59a799957db0e 100644
--- a/libc/src/math/log10f.h
+++ b/libc/src/math/log10f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG10F_H
 #define LLVM_LIBC_SRC_MATH_LOG10F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float log10f(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG10F_H
diff --git a/libc/src/math/log1p.h b/libc/src/math/log1p.h
index 48eb9ca885265..84b3d8fdb9f1c 100644
--- a/libc/src/math/log1p.h
+++ b/libc/src/math/log1p.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG1P_H
 #define LLVM_LIBC_SRC_MATH_LOG1P_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double log1p(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG1P_H
diff --git a/libc/src/math/log1pf.h b/libc/src/math/log1pf.h
index 854f76fce9f75..364c1e8ee74d9 100644
--- a/libc/src/math/log1pf.h
+++ b/libc/src/math/log1pf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG1PF_H
 #define LLVM_LIBC_SRC_MATH_LOG1PF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float log1pf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG1PF_H
diff --git a/libc/src/math/log2.h b/libc/src/math/log2.h
index 49f05493cf166..a278954989e97 100644
--- a/libc/src/math/log2.h
+++ b/libc/src/math/log2.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG2_H
 #define LLVM_LIBC_SRC_MATH_LOG2_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double log2(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG2_H
diff --git a/libc/src/math/log2f.h b/libc/src/math/log2f.h
index 04b7743edc0aa..dc35c93bfd71e 100644
--- a/libc/src/math/log2f.h
+++ b/libc/src/math/log2f.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOG2F_H
 #define LLVM_LIBC_SRC_MATH_LOG2F_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float log2f(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOG2F_H
diff --git a/libc/src/math/logb.h b/libc/src/math/logb.h
index e24dd4320de65..13207e2470038 100644
--- a/libc/src/math/logb.h
+++ b/libc/src/math/logb.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOGB_H
 #define LLVM_LIBC_SRC_MATH_LOGB_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double logb(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOGB_H
diff --git a/libc/src/math/logbf.h b/libc/src/math/logbf.h
index e8d5018056286..83e117e025a6b 100644
--- a/libc/src/math/logbf.h
+++ b/libc/src/math/logbf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOGBF_H
 #define LLVM_LIBC_SRC_MATH_LOGBF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float logbf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOGBF_H
diff --git a/libc/src/math/logbf128.h b/libc/src/math/logbf128.h
index 7823bbd615b89..9ce23978707be 100644
--- a/libc/src/math/logbf128.h
+++ b/libc/src/math/logbf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOGBF128_H
 #define LLVM_LIBC_SRC_MATH_LOGBF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 logbf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOGBF128_H
diff --git a/libc/src/math/logbf16.h b/libc/src/math/logbf16.h
index 8082e06c33d52..f602098d8294a 100644
--- a/libc/src/math/logbf16.h
+++ b/libc/src/math/logbf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOGBF16_H
 #define LLVM_LIBC_SRC_MATH_LOGBF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 logbf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOGBF16_H
diff --git a/libc/src/math/logbl.h b/libc/src/math/logbl.h
index bc32993a4bdc2..02114c4d412ab 100644
--- a/libc/src/math/logbl.h
+++ b/libc/src/math/logbl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOGBL_H
 #define LLVM_LIBC_SRC_MATH_LOGBL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double logbl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOGBL_H
diff --git a/libc/src/math/logf.h b/libc/src/math/logf.h
index b69be468ab455..163f369f4a77f 100644
--- a/libc/src/math/logf.h
+++ b/libc/src/math/logf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LOGF_H
 #define LLVM_LIBC_SRC_MATH_LOGF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float logf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LOGF_H
diff --git a/libc/src/math/lrint.h b/libc/src/math/lrint.h
index e40f860f1a35e..f8988dc9cdc6d 100644
--- a/libc/src/math/lrint.h
+++ b/libc/src/math/lrint.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LRINT_H
 #define LLVM_LIBC_SRC_MATH_LRINT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long lrint(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LRINT_H
diff --git a/libc/src/math/lrintf.h b/libc/src/math/lrintf.h
index 93b2c8cd265df..cbb1818036371 100644
--- a/libc/src/math/lrintf.h
+++ b/libc/src/math/lrintf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LRINTF_H
 #define LLVM_LIBC_SRC_MATH_LRINTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long lrintf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LRINTF_H
diff --git a/libc/src/math/lrintf128.h b/libc/src/math/lrintf128.h
index 8f3f5ceabd3c2..ae710e9b00448 100644
--- a/libc/src/math/lrintf128.h
+++ b/libc/src/math/lrintf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LRINTF128_H
 #define LLVM_LIBC_SRC_MATH_LRINTF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long lrintf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LRINTF128_H
diff --git a/libc/src/math/lrintf16.h b/libc/src/math/lrintf16.h
index f31fba4cc6a46..3f2ae90c6f2af 100644
--- a/libc/src/math/lrintf16.h
+++ b/libc/src/math/lrintf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LRINTF16_H
 #define LLVM_LIBC_SRC_MATH_LRINTF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long lrintf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LRINTF16_H
diff --git a/libc/src/math/lrintl.h b/libc/src/math/lrintl.h
index c17901d220d18..fa6e0197aeb1e 100644
--- a/libc/src/math/lrintl.h
+++ b/libc/src/math/lrintl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LRINTL_H
 #define LLVM_LIBC_SRC_MATH_LRINTL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long lrintl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LRINTL_H
diff --git a/libc/src/math/lround.h b/libc/src/math/lround.h
index 4a67cc9693ba7..951f900f24262 100644
--- a/libc/src/math/lround.h
+++ b/libc/src/math/lround.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LROUND_H
 #define LLVM_LIBC_SRC_MATH_LROUND_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long lround(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LROUND_H
diff --git a/libc/src/math/lroundf.h b/libc/src/math/lroundf.h
index 9d4f4e82b7894..9488cc6597718 100644
--- a/libc/src/math/lroundf.h
+++ b/libc/src/math/lroundf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LROUNDF_H
 #define LLVM_LIBC_SRC_MATH_LROUNDF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long lroundf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LROUNDF_H
diff --git a/libc/src/math/lroundf128.h b/libc/src/math/lroundf128.h
index 663b3732655b2..4191db5792095 100644
--- a/libc/src/math/lroundf128.h
+++ b/libc/src/math/lroundf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LROUNDF128_H
 #define LLVM_LIBC_SRC_MATH_LROUNDF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long lroundf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LROUNDF128_H
diff --git a/libc/src/math/lroundf16.h b/libc/src/math/lroundf16.h
index 57201e7063a9e..9ad782dfe0d82 100644
--- a/libc/src/math/lroundf16.h
+++ b/libc/src/math/lroundf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_LROUNDF16_H
 #define LLVM_LIBC_SRC_MATH_LROUNDF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long lroundf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LROUNDF16_H
diff --git a/libc/src/math/lroundl.h b/libc/src/math/lroundl.h
index 86673dc597fd3..159c67e827be6 100644
--- a/libc/src/math/lroundl.h
+++ b/libc/src/math/lroundl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_LROUNDL_H
 #define LLVM_LIBC_SRC_MATH_LROUNDL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long lroundl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_LROUNDL_H
diff --git a/libc/src/math/modf.h b/libc/src/math/modf.h
index 91453a01f02fc..2c56d597a5e0e 100644
--- a/libc/src/math/modf.h
+++ b/libc/src/math/modf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_MODF_H
 #define LLVM_LIBC_SRC_MATH_MODF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double modf(double x, double *iptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_MODF_H
diff --git a/libc/src/math/modff.h b/libc/src/math/modff.h
index 85bf2aacbc17c..79e7d9bb04a6c 100644
--- a/libc/src/math/modff.h
+++ b/libc/src/math/modff.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_MODFF_H
 #define LLVM_LIBC_SRC_MATH_MODFF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float modff(float x, float *iptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_MODFF_H
diff --git a/libc/src/math/modff128.h b/libc/src/math/modff128.h
index 48e614be95b98..32c98423a050c 100644
--- a/libc/src/math/modff128.h
+++ b/libc/src/math/modff128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_MODFF128_H
 #define LLVM_LIBC_SRC_MATH_MODFF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 modff128(float128 x, float128 *iptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_MODFF128_H
diff --git a/libc/src/math/modff16.h b/libc/src/math/modff16.h
index a3017c5a92a64..ce097440572b2 100644
--- a/libc/src/math/modff16.h
+++ b/libc/src/math/modff16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_MODFF16_H
 #define LLVM_LIBC_SRC_MATH_MODFF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 modff16(float16 x, float16 *iptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_MODFF16_H
diff --git a/libc/src/math/modfl.h b/libc/src/math/modfl.h
index 5ea2c6d98c0af..c1e16272417c9 100644
--- a/libc/src/math/modfl.h
+++ b/libc/src/math/modfl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_MODFL_H
 #define LLVM_LIBC_SRC_MATH_MODFL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double modfl(long double x, long double *iptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_MODFL_H
diff --git a/libc/src/math/nan.h b/libc/src/math/nan.h
index 463940b01a272..36fed1b2f75d5 100644
--- a/libc/src/math/nan.h
+++ b/libc/src/math/nan.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NAN_H
 #define LLVM_LIBC_SRC_MATH_NAN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double nan(const char *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NAN_H
diff --git a/libc/src/math/nanf.h b/libc/src/math/nanf.h
index f05d60e3a9671..3b72ed287c749 100644
--- a/libc/src/math/nanf.h
+++ b/libc/src/math/nanf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NANF_H
 #define LLVM_LIBC_SRC_MATH_NANF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float nanf(const char *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NANF_H
diff --git a/libc/src/math/nanf128.h b/libc/src/math/nanf128.h
index b06d14e2f945e..1c1323adcd781 100644
--- a/libc/src/math/nanf128.h
+++ b/libc/src/math/nanf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NANF128_H
 #define LLVM_LIBC_SRC_MATH_NANF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 nanf128(const char *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NANF128_H
diff --git a/libc/src/math/nanf16.h b/libc/src/math/nanf16.h
index c2db4bac0a155..1721bcc0f95f7 100644
--- a/libc/src/math/nanf16.h
+++ b/libc/src/math/nanf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NANF16_H
 #define LLVM_LIBC_SRC_MATH_NANF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 nanf16(const char *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NANF16_H
diff --git a/libc/src/math/nanl.h b/libc/src/math/nanl.h
index d8bbce7cc1bcc..a4a03770caf60 100644
--- a/libc/src/math/nanl.h
+++ b/libc/src/math/nanl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NANL_H
 #define LLVM_LIBC_SRC_MATH_NANL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double nanl(const char *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NANL_H
diff --git a/libc/src/math/nearbyint.h b/libc/src/math/nearbyint.h
index df292a252583f..469bd99e1e613 100644
--- a/libc/src/math/nearbyint.h
+++ b/libc/src/math/nearbyint.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEARBYINT_H
 #define LLVM_LIBC_SRC_MATH_NEARBYINT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double nearbyint(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEARBYINT_H
diff --git a/libc/src/math/nearbyintf.h b/libc/src/math/nearbyintf.h
index 3860dc03bcf58..d89a76233a81f 100644
--- a/libc/src/math/nearbyintf.h
+++ b/libc/src/math/nearbyintf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEARBYINTF_H
 #define LLVM_LIBC_SRC_MATH_NEARBYINTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float nearbyintf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEARBYINTF_H
diff --git a/libc/src/math/nearbyintf128.h b/libc/src/math/nearbyintf128.h
index d12754a481009..9c4fdd5963dac 100644
--- a/libc/src/math/nearbyintf128.h
+++ b/libc/src/math/nearbyintf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEARBYINTF128_H
 #define LLVM_LIBC_SRC_MATH_NEARBYINTF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 nearbyintf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEARBYINTF128_H
diff --git a/libc/src/math/nearbyintf16.h b/libc/src/math/nearbyintf16.h
index 3e6f3fb3d493c..2241e43c911ff 100644
--- a/libc/src/math/nearbyintf16.h
+++ b/libc/src/math/nearbyintf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEARBYINTF16_H
 #define LLVM_LIBC_SRC_MATH_NEARBYINTF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 nearbyintf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEARBYINTF16_H
diff --git a/libc/src/math/nearbyintl.h b/libc/src/math/nearbyintl.h
index e22cae6386e69..3fed5d8ce5241 100644
--- a/libc/src/math/nearbyintl.h
+++ b/libc/src/math/nearbyintl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEARBYINTL_H
 #define LLVM_LIBC_SRC_MATH_NEARBYINTL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double nearbyintl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEARBYINTL_H
diff --git a/libc/src/math/nextafter.h b/libc/src/math/nextafter.h
index fc4c9eb182aa4..636dbd527cd83 100644
--- a/libc/src/math/nextafter.h
+++ b/libc/src/math/nextafter.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTAFTER_H
 #define LLVM_LIBC_SRC_MATH_NEXTAFTER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double nextafter(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTAFTER_H
diff --git a/libc/src/math/nextafterf.h b/libc/src/math/nextafterf.h
index de7870df5d766..70ab76e80277c 100644
--- a/libc/src/math/nextafterf.h
+++ b/libc/src/math/nextafterf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTAFTERF_H
 #define LLVM_LIBC_SRC_MATH_NEXTAFTERF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float nextafterf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTAFTERF_H
diff --git a/libc/src/math/nextafterf128.h b/libc/src/math/nextafterf128.h
index a404d33810ec2..99b15d6cf43b9 100644
--- a/libc/src/math/nextafterf128.h
+++ b/libc/src/math/nextafterf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTAFTERF128_H
 #define LLVM_LIBC_SRC_MATH_NEXTAFTERF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 nextafterf128(float128 x, float128 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTAFTERF128_H
diff --git a/libc/src/math/nextafterf16.h b/libc/src/math/nextafterf16.h
index 293569ef40c53..ab4e0fd870318 100644
--- a/libc/src/math/nextafterf16.h
+++ b/libc/src/math/nextafterf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTAFTERF16_H
 #define LLVM_LIBC_SRC_MATH_NEXTAFTERF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 nextafterf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTAFTERF16_H
diff --git a/libc/src/math/nextafterl.h b/libc/src/math/nextafterl.h
index 1b94e242c776e..a697f799042d8 100644
--- a/libc/src/math/nextafterl.h
+++ b/libc/src/math/nextafterl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTAFTERL_H
 #define LLVM_LIBC_SRC_MATH_NEXTAFTERL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double nextafterl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTAFTERL_H
diff --git a/libc/src/math/nextdown.h b/libc/src/math/nextdown.h
index 8049b170ee721..21f33e383bca1 100644
--- a/libc/src/math/nextdown.h
+++ b/libc/src/math/nextdown.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTDOWN_H
 #define LLVM_LIBC_SRC_MATH_NEXTDOWN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double nextdown(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTDOWN_H
diff --git a/libc/src/math/nextdownf.h b/libc/src/math/nextdownf.h
index 0a2f23480574d..f689287a6f286 100644
--- a/libc/src/math/nextdownf.h
+++ b/libc/src/math/nextdownf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTDOWNF_H
 #define LLVM_LIBC_SRC_MATH_NEXTDOWNF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float nextdownf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTDOWNF_H
diff --git a/libc/src/math/nextdownf128.h b/libc/src/math/nextdownf128.h
index 0a3043bb431d8..60ba251f67d55 100644
--- a/libc/src/math/nextdownf128.h
+++ b/libc/src/math/nextdownf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTDOWNF128_H
 #define LLVM_LIBC_SRC_MATH_NEXTDOWNF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 nextdownf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTDOWNF128_H
diff --git a/libc/src/math/nextdownf16.h b/libc/src/math/nextdownf16.h
index 19137574ac92f..5183db2db2a2c 100644
--- a/libc/src/math/nextdownf16.h
+++ b/libc/src/math/nextdownf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTDOWNF16_H
 #define LLVM_LIBC_SRC_MATH_NEXTDOWNF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 nextdownf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTDOWNF16_H
diff --git a/libc/src/math/nextdownl.h b/libc/src/math/nextdownl.h
index 9cb274a89b1c5..581557932d4dd 100644
--- a/libc/src/math/nextdownl.h
+++ b/libc/src/math/nextdownl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTDOWNL_H
 #define LLVM_LIBC_SRC_MATH_NEXTDOWNL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double nextdownl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTDOWNL_H
diff --git a/libc/src/math/nexttoward.h b/libc/src/math/nexttoward.h
index 6a5bece995768..cfa6af9246cda 100644
--- a/libc/src/math/nexttoward.h
+++ b/libc/src/math/nexttoward.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTTOWARD_H
 #define LLVM_LIBC_SRC_MATH_NEXTTOWARD_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double nexttoward(double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTTOWARD_H
diff --git a/libc/src/math/nexttowardf.h b/libc/src/math/nexttowardf.h
index 7a0eb2a61b4d4..ee34548684ded 100644
--- a/libc/src/math/nexttowardf.h
+++ b/libc/src/math/nexttowardf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTTOWARDF_H
 #define LLVM_LIBC_SRC_MATH_NEXTTOWARDF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float nexttowardf(float x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTTOWARDF_H
diff --git a/libc/src/math/nexttowardf16.h b/libc/src/math/nexttowardf16.h
index 604eb32c25778..5975926049249 100644
--- a/libc/src/math/nexttowardf16.h
+++ b/libc/src/math/nexttowardf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTTOWARDF16_H
 #define LLVM_LIBC_SRC_MATH_NEXTTOWARDF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 nexttowardf16(float16 x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTTOWARDF16_H
diff --git a/libc/src/math/nexttowardl.h b/libc/src/math/nexttowardl.h
index be1d8b298185d..180ffb5ea48f2 100644
--- a/libc/src/math/nexttowardl.h
+++ b/libc/src/math/nexttowardl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTTOWARDL_H
 #define LLVM_LIBC_SRC_MATH_NEXTTOWARDL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double nexttowardl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTTOWARDL_H
diff --git a/libc/src/math/nextup.h b/libc/src/math/nextup.h
index 97ae82270b06e..37b81fde2c31c 100644
--- a/libc/src/math/nextup.h
+++ b/libc/src/math/nextup.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTUP_H
 #define LLVM_LIBC_SRC_MATH_NEXTUP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double nextup(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTUP_H
diff --git a/libc/src/math/nextupf.h b/libc/src/math/nextupf.h
index ffc0fa168a108..9963dbd8b2d59 100644
--- a/libc/src/math/nextupf.h
+++ b/libc/src/math/nextupf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTUPF_H
 #define LLVM_LIBC_SRC_MATH_NEXTUPF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float nextupf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTUPF_H
diff --git a/libc/src/math/nextupf128.h b/libc/src/math/nextupf128.h
index b4429922e4beb..755c08d891d64 100644
--- a/libc/src/math/nextupf128.h
+++ b/libc/src/math/nextupf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTUPF128_H
 #define LLVM_LIBC_SRC_MATH_NEXTUPF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 nextupf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTUPF128_H
diff --git a/libc/src/math/nextupf16.h b/libc/src/math/nextupf16.h
index b2973e4afc256..d80a1057a8ed1 100644
--- a/libc/src/math/nextupf16.h
+++ b/libc/src/math/nextupf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTUPF16_H
 #define LLVM_LIBC_SRC_MATH_NEXTUPF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 nextupf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTUPF16_H
diff --git a/libc/src/math/nextupl.h b/libc/src/math/nextupl.h
index cbc6a168e4bea..d9c5c525a60ba 100644
--- a/libc/src/math/nextupl.h
+++ b/libc/src/math/nextupl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_NEXTUPL_H
 #define LLVM_LIBC_SRC_MATH_NEXTUPL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double nextupl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NEXTUPL_H
diff --git a/libc/src/math/nvptx/acos.cpp b/libc/src/math/nvptx/acos.cpp
index da2c7952feba5..7049f9fb31c55 100644
--- a/libc/src/math/nvptx/acos.cpp
+++ b/libc/src/math/nvptx/acos.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, acos, (double x)) { return __nv_acos(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/acosf.cpp b/libc/src/math/nvptx/acosf.cpp
index 8a4125f03b8cd..cf70a0f3b923d 100644
--- a/libc/src/math/nvptx/acosf.cpp
+++ b/libc/src/math/nvptx/acosf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, acosf, (float x)) { return __nv_acosf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/acosh.cpp b/libc/src/math/nvptx/acosh.cpp
index 06f6e2922f569..2628aa997d0b7 100644
--- a/libc/src/math/nvptx/acosh.cpp
+++ b/libc/src/math/nvptx/acosh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, acosh, (double x)) { return __nv_acosh(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/acoshf.cpp b/libc/src/math/nvptx/acoshf.cpp
index 00e8053a50783..b8f57fdc05c29 100644
--- a/libc/src/math/nvptx/acoshf.cpp
+++ b/libc/src/math/nvptx/acoshf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, acoshf, (float x)) { return __nv_acoshf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/asin.cpp b/libc/src/math/nvptx/asin.cpp
index 74d92fded72b9..417b67ac7da0a 100644
--- a/libc/src/math/nvptx/asin.cpp
+++ b/libc/src/math/nvptx/asin.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, asin, (double x)) { return __nv_asin(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/asinf.cpp b/libc/src/math/nvptx/asinf.cpp
index 30544bc1313d6..ea819bdfd00ed 100644
--- a/libc/src/math/nvptx/asinf.cpp
+++ b/libc/src/math/nvptx/asinf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, asinf, (float x)) { return __nv_asinf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/asinh.cpp b/libc/src/math/nvptx/asinh.cpp
index 0e5dbb47e667e..49dcd227bb4bd 100644
--- a/libc/src/math/nvptx/asinh.cpp
+++ b/libc/src/math/nvptx/asinh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, asinh, (double x)) { return __nv_asinh(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/asinhf.cpp b/libc/src/math/nvptx/asinhf.cpp
index 6648108646cd3..af8afe7590edf 100644
--- a/libc/src/math/nvptx/asinhf.cpp
+++ b/libc/src/math/nvptx/asinhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, asinhf, (float x)) { return __nv_asinhf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/atan.cpp b/libc/src/math/nvptx/atan.cpp
index 3af793a53ae5e..e94ef5787ca45 100644
--- a/libc/src/math/nvptx/atan.cpp
+++ b/libc/src/math/nvptx/atan.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atan, (double x)) { return __nv_atan(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/atan2.cpp b/libc/src/math/nvptx/atan2.cpp
index 0c54e0e048996..d12c4cb205d51 100644
--- a/libc/src/math/nvptx/atan2.cpp
+++ b/libc/src/math/nvptx/atan2.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atan2, (double x, double y)) {
   return __nv_atan2(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/atan2f.cpp b/libc/src/math/nvptx/atan2f.cpp
index c3327d92c97e9..f39f3227b1d57 100644
--- a/libc/src/math/nvptx/atan2f.cpp
+++ b/libc/src/math/nvptx/atan2f.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atan2f, (float x, float y)) {
   return __nv_atan2f(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/atanf.cpp b/libc/src/math/nvptx/atanf.cpp
index 5595262977323..f66ade7a438f3 100644
--- a/libc/src/math/nvptx/atanf.cpp
+++ b/libc/src/math/nvptx/atanf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanf, (float x)) { return __nv_atanf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/atanh.cpp b/libc/src/math/nvptx/atanh.cpp
index 6699d959df187..a206d517af11f 100644
--- a/libc/src/math/nvptx/atanh.cpp
+++ b/libc/src/math/nvptx/atanh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atanh, (double x)) { return __nv_atanh(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/atanhf.cpp b/libc/src/math/nvptx/atanhf.cpp
index 526b7b3e37122..06f68833b3d26 100644
--- a/libc/src/math/nvptx/atanhf.cpp
+++ b/libc/src/math/nvptx/atanhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanhf, (float x)) { return __nv_atanhf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/ceil.cpp b/libc/src/math/nvptx/ceil.cpp
index ad1407d61f620..8834c7b560a1b 100644
--- a/libc/src/math/nvptx/ceil.cpp
+++ b/libc/src/math/nvptx/ceil.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/ceil.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ceil, (double x)) { return __builtin_ceil(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/ceilf.cpp b/libc/src/math/nvptx/ceilf.cpp
index c4fc58d936038..5d26a30c849cd 100644
--- a/libc/src/math/nvptx/ceilf.cpp
+++ b/libc/src/math/nvptx/ceilf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/ceilf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ceilf, (float x)) { return __builtin_ceilf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/copysign.cpp b/libc/src/math/nvptx/copysign.cpp
index 6f804bdb90a1f..06ef36fb3595f 100644
--- a/libc/src/math/nvptx/copysign.cpp
+++ b/libc/src/math/nvptx/copysign.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/copysign.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, copysign, (double x, double y)) {
   return __builtin_copysign(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/copysignf.cpp b/libc/src/math/nvptx/copysignf.cpp
index 4d7e132462ac9..aea94f3577d8f 100644
--- a/libc/src/math/nvptx/copysignf.cpp
+++ b/libc/src/math/nvptx/copysignf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/copysignf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, copysignf, (float x, float y)) {
   return __builtin_copysignf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/cos.cpp b/libc/src/math/nvptx/cos.cpp
index 185ad3cf92159..873fd50041b18 100644
--- a/libc/src/math/nvptx/cos.cpp
+++ b/libc/src/math/nvptx/cos.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, cos, (double x)) { return __nv_cos(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/cosf.cpp b/libc/src/math/nvptx/cosf.cpp
index 3d34de4be51bc..82b3bb759ba0b 100644
--- a/libc/src/math/nvptx/cosf.cpp
+++ b/libc/src/math/nvptx/cosf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, cosf, (float x)) { return __nv_cosf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/cosh.cpp b/libc/src/math/nvptx/cosh.cpp
index 179864c5f910d..434e8c56bbf7d 100644
--- a/libc/src/math/nvptx/cosh.cpp
+++ b/libc/src/math/nvptx/cosh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, cosh, (double x)) { return __nv_cosh(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/coshf.cpp b/libc/src/math/nvptx/coshf.cpp
index 9147499db97cf..87d6b16ba8a3a 100644
--- a/libc/src/math/nvptx/coshf.cpp
+++ b/libc/src/math/nvptx/coshf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, coshf, (float x)) { return __nv_coshf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/declarations.h b/libc/src/math/nvptx/declarations.h
index cf8f6e09e492a..7bfa934c0142d 100644
--- a/libc/src/math/nvptx/declarations.h
+++ b/libc/src/math/nvptx/declarations.h
@@ -9,7 +9,9 @@
 #ifndef LLVM_LIBC_SRC_MATH_NVPTX_DECLARATIONS_H
 #define LLVM_LIBC_SRC_MATH_NVPTX_DECLARATIONS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" {
 double __nv_acos(double);
@@ -86,6 +88,6 @@ double __nv_tgamma(double);
 float __nv_tgammaf(float);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NVPTX_DECLARATIONS_H
diff --git a/libc/src/math/nvptx/erf.cpp b/libc/src/math/nvptx/erf.cpp
index 5ea0177d5cd34..c7ca7d42fe8a8 100644
--- a/libc/src/math/nvptx/erf.cpp
+++ b/libc/src/math/nvptx/erf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, erf, (double x)) { return __nv_erf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/erff.cpp b/libc/src/math/nvptx/erff.cpp
index 03fdceace8e9e..1c64e07c3370d 100644
--- a/libc/src/math/nvptx/erff.cpp
+++ b/libc/src/math/nvptx/erff.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, erff, (float x)) { return __nv_erff(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/exp.cpp b/libc/src/math/nvptx/exp.cpp
index 6bbe87ba2e783..dcbadcf2ae8d4 100644
--- a/libc/src/math/nvptx/exp.cpp
+++ b/libc/src/math/nvptx/exp.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, exp, (double x)) { return __nv_exp(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/exp10.cpp b/libc/src/math/nvptx/exp10.cpp
index 11bb734fd1131..0972a3c4ae462 100644
--- a/libc/src/math/nvptx/exp10.cpp
+++ b/libc/src/math/nvptx/exp10.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, exp10, (double x)) { return __nv_exp10(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/exp10f.cpp b/libc/src/math/nvptx/exp10f.cpp
index 4e3121a0b46e2..0709771fc99a8 100644
--- a/libc/src/math/nvptx/exp10f.cpp
+++ b/libc/src/math/nvptx/exp10f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, exp10f, (float x)) { return __nv_exp10f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/exp2.cpp b/libc/src/math/nvptx/exp2.cpp
index 35fc27b3a26a6..3465e5b608fa9 100644
--- a/libc/src/math/nvptx/exp2.cpp
+++ b/libc/src/math/nvptx/exp2.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, exp2, (double x)) { return __nv_exp2(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/exp2f.cpp b/libc/src/math/nvptx/exp2f.cpp
index 8d137346fe00e..05257648c2e0e 100644
--- a/libc/src/math/nvptx/exp2f.cpp
+++ b/libc/src/math/nvptx/exp2f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, exp2f, (float x)) { return __nv_exp2f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/expf.cpp b/libc/src/math/nvptx/expf.cpp
index a6362bd734611..2b802e5c3555f 100644
--- a/libc/src/math/nvptx/expf.cpp
+++ b/libc/src/math/nvptx/expf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, expf, (float x)) { return __nv_expf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/expm1.cpp b/libc/src/math/nvptx/expm1.cpp
index 0331903b8fd86..91845cffc5fd5 100644
--- a/libc/src/math/nvptx/expm1.cpp
+++ b/libc/src/math/nvptx/expm1.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, expm1, (double x)) { return __nv_expm1(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/expm1f.cpp b/libc/src/math/nvptx/expm1f.cpp
index 7b74c548f3df6..31e67af084fdb 100644
--- a/libc/src/math/nvptx/expm1f.cpp
+++ b/libc/src/math/nvptx/expm1f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, expm1f, (float x)) { return __nv_expm1f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fabs.cpp b/libc/src/math/nvptx/fabs.cpp
index c0d063d50ae53..bb37596b9d563 100644
--- a/libc/src/math/nvptx/fabs.cpp
+++ b/libc/src/math/nvptx/fabs.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/fabs.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fabs, (double x)) { return __builtin_fabs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fabsf.cpp b/libc/src/math/nvptx/fabsf.cpp
index 398ffd0c74c07..2698618f3f1e1 100644
--- a/libc/src/math/nvptx/fabsf.cpp
+++ b/libc/src/math/nvptx/fabsf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/fabsf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fabsf, (float x)) { return __builtin_fabsf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fdim.cpp b/libc/src/math/nvptx/fdim.cpp
index 2f1ff51800266..edf4009273234 100644
--- a/libc/src/math/nvptx/fdim.cpp
+++ b/libc/src/math/nvptx/fdim.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fdim, (double x, double y)) {
   return __nv_fdim(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fdimf.cpp b/libc/src/math/nvptx/fdimf.cpp
index c24e6be72482a..017143aaebc8b 100644
--- a/libc/src/math/nvptx/fdimf.cpp
+++ b/libc/src/math/nvptx/fdimf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fdimf, (float x, float y)) {
   return __nv_fdimf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/floor.cpp b/libc/src/math/nvptx/floor.cpp
index eada89c178d75..564efa9a7da38 100644
--- a/libc/src/math/nvptx/floor.cpp
+++ b/libc/src/math/nvptx/floor.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/floor.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, floor, (double x)) { return __builtin_floor(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/floorf.cpp b/libc/src/math/nvptx/floorf.cpp
index a5611c515a88d..6717c8f60c992 100644
--- a/libc/src/math/nvptx/floorf.cpp
+++ b/libc/src/math/nvptx/floorf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/floorf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, floorf, (float x)) { return __builtin_floorf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fma.cpp b/libc/src/math/nvptx/fma.cpp
index 41a6ddf60dbc3..c4a117e42a3aa 100644
--- a/libc/src/math/nvptx/fma.cpp
+++ b/libc/src/math/nvptx/fma.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fma.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fma, (double x, double y, double z)) {
   return __builtin_fma(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fmaf.cpp b/libc/src/math/nvptx/fmaf.cpp
index c948e32f77eb9..c088bd5b30fea 100644
--- a/libc/src/math/nvptx/fmaf.cpp
+++ b/libc/src/math/nvptx/fmaf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fmaf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaf, (float x, float y, float z)) {
   return __builtin_fmaf(x, y, z);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fmax.cpp b/libc/src/math/nvptx/fmax.cpp
index 3ba65d7eccd36..a2496fecb01c4 100644
--- a/libc/src/math/nvptx/fmax.cpp
+++ b/libc/src/math/nvptx/fmax.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmax.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmax, (double x, double y)) {
   return __builtin_fmax(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fmaxf.cpp b/libc/src/math/nvptx/fmaxf.cpp
index e977082b39f40..586fd32fee59b 100644
--- a/libc/src/math/nvptx/fmaxf.cpp
+++ b/libc/src/math/nvptx/fmaxf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmaxf, (float x, float y)) {
   return __builtin_fmaxf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fmin.cpp b/libc/src/math/nvptx/fmin.cpp
index 0d6f3521dcb70..694eb664b599b 100644
--- a/libc/src/math/nvptx/fmin.cpp
+++ b/libc/src/math/nvptx/fmin.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fmin.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmin, (double x, double y)) {
   return __builtin_fmin(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fminf.cpp b/libc/src/math/nvptx/fminf.cpp
index 42744abfb3b02..2060b71b0841f 100644
--- a/libc/src/math/nvptx/fminf.cpp
+++ b/libc/src/math/nvptx/fminf.cpp
@@ -9,11 +9,12 @@
 #include "src/math/fminf.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fminf, (float x, float y)) {
   return __builtin_fminf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fmod.cpp b/libc/src/math/nvptx/fmod.cpp
index 0654cdd2abe08..49d19c4decb96 100644
--- a/libc/src/math/nvptx/fmod.cpp
+++ b/libc/src/math/nvptx/fmod.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fmod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, fmod, (double x, double y)) {
   return __builtin_fmod(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/fmodf.cpp b/libc/src/math/nvptx/fmodf.cpp
index b689046468fbe..8fbcb0cc2ad9e 100644
--- a/libc/src/math/nvptx/fmodf.cpp
+++ b/libc/src/math/nvptx/fmodf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/fmodf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, fmodf, (float x, float y)) {
   return __builtin_fmodf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/frexp.cpp b/libc/src/math/nvptx/frexp.cpp
index 2423961f7c61e..edba8d712aedb 100644
--- a/libc/src/math/nvptx/frexp.cpp
+++ b/libc/src/math/nvptx/frexp.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, frexp, (double x, int *p)) {
   return __nv_frexp(x, p);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/frexpf.cpp b/libc/src/math/nvptx/frexpf.cpp
index f1ea29068777b..04619412c160f 100644
--- a/libc/src/math/nvptx/frexpf.cpp
+++ b/libc/src/math/nvptx/frexpf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, frexpf, (float x, int *p)) {
   return __nv_frexpf(x, p);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/hypot.cpp b/libc/src/math/nvptx/hypot.cpp
index 28bf04aa4a2bd..a7bacd6b1a85a 100644
--- a/libc/src/math/nvptx/hypot.cpp
+++ b/libc/src/math/nvptx/hypot.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, hypot, (double x, double y)) {
   return __nv_hypot(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/hypotf.cpp b/libc/src/math/nvptx/hypotf.cpp
index c506aab1acc0b..49e85a11a0c16 100644
--- a/libc/src/math/nvptx/hypotf.cpp
+++ b/libc/src/math/nvptx/hypotf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, hypotf, (float x, float y)) {
   return __nv_hypotf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/ilogb.cpp b/libc/src/math/nvptx/ilogb.cpp
index fc75e2fd847a8..3d552c2130af1 100644
--- a/libc/src/math/nvptx/ilogb.cpp
+++ b/libc/src/math/nvptx/ilogb.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogb, (double x)) { return __nv_ilogb(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/ilogbf.cpp b/libc/src/math/nvptx/ilogbf.cpp
index 3d14fcfa878fb..a78926f95d6da 100644
--- a/libc/src/math/nvptx/ilogbf.cpp
+++ b/libc/src/math/nvptx/ilogbf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ilogbf, (float x)) { return __nv_ilogbf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/ldexp.cpp b/libc/src/math/nvptx/ldexp.cpp
index 761dc4816b7a4..0adc7c3f57f00 100644
--- a/libc/src/math/nvptx/ldexp.cpp
+++ b/libc/src/math/nvptx/ldexp.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, ldexp, (double x, int y)) {
   return __nv_ldexp(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/ldexpf.cpp b/libc/src/math/nvptx/ldexpf.cpp
index 2d4c556a27140..eb7dd42853153 100644
--- a/libc/src/math/nvptx/ldexpf.cpp
+++ b/libc/src/math/nvptx/ldexpf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, ldexpf, (float x, int y)) {
   return __nv_ldexpf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/llrint.cpp b/libc/src/math/nvptx/llrint.cpp
index 307420a9b8b26..21129fe80a0c1 100644
--- a/libc/src/math/nvptx/llrint.cpp
+++ b/libc/src/math/nvptx/llrint.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrint, (double x)) {
   return static_cast<long long>(__builtin_rint(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/llrintf.cpp b/libc/src/math/nvptx/llrintf.cpp
index 23404990fb1bd..a6f9f43876010 100644
--- a/libc/src/math/nvptx/llrintf.cpp
+++ b/libc/src/math/nvptx/llrintf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llrintf, (float x)) {
   return static_cast<long long>(__builtin_rintf(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log.cpp b/libc/src/math/nvptx/log.cpp
index 26b6dfa607b94..fd556ac1e165a 100644
--- a/libc/src/math/nvptx/log.cpp
+++ b/libc/src/math/nvptx/log.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log, (double x)) { return __nv_log(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log10.cpp b/libc/src/math/nvptx/log10.cpp
index ff27025395672..fbbf214167c1f 100644
--- a/libc/src/math/nvptx/log10.cpp
+++ b/libc/src/math/nvptx/log10.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log10, (double x)) { return __nv_log10(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log10f.cpp b/libc/src/math/nvptx/log10f.cpp
index af903b60a7ce6..c2f24df043ab5 100644
--- a/libc/src/math/nvptx/log10f.cpp
+++ b/libc/src/math/nvptx/log10f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log10f, (float x)) { return __nv_log10f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log1p.cpp b/libc/src/math/nvptx/log1p.cpp
index 47bc96b0d8812..2ffd0fee57170 100644
--- a/libc/src/math/nvptx/log1p.cpp
+++ b/libc/src/math/nvptx/log1p.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log1p, (double x)) { return __nv_log1p(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log1pf.cpp b/libc/src/math/nvptx/log1pf.cpp
index bfa4f7f22d54c..2de4f27ff20c0 100644
--- a/libc/src/math/nvptx/log1pf.cpp
+++ b/libc/src/math/nvptx/log1pf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log1pf, (float x)) { return __nv_log1pf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log2.cpp b/libc/src/math/nvptx/log2.cpp
index 86a980de65d4d..54e2da0c9efa6 100644
--- a/libc/src/math/nvptx/log2.cpp
+++ b/libc/src/math/nvptx/log2.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, log2, (double x)) { return __nv_log2(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/log2f.cpp b/libc/src/math/nvptx/log2f.cpp
index 5ce46291610dd..c2a6054c797ff 100644
--- a/libc/src/math/nvptx/log2f.cpp
+++ b/libc/src/math/nvptx/log2f.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, log2f, (float x)) { return __nv_log2f(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/logb.cpp b/libc/src/math/nvptx/logb.cpp
index b620b16184fc9..f6998bd194887 100644
--- a/libc/src/math/nvptx/logb.cpp
+++ b/libc/src/math/nvptx/logb.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, logb, (double x)) { return __nv_logb(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/logbf.cpp b/libc/src/math/nvptx/logbf.cpp
index f19f0320db9d4..f72c04f988b6a 100644
--- a/libc/src/math/nvptx/logbf.cpp
+++ b/libc/src/math/nvptx/logbf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, logbf, (float x)) { return __nv_logbf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/logf.cpp b/libc/src/math/nvptx/logf.cpp
index 6deb482c0ace3..1a5bc1e8fc1b1 100644
--- a/libc/src/math/nvptx/logf.cpp
+++ b/libc/src/math/nvptx/logf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, logf, (float x)) { return __nv_logf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/lrint.cpp b/libc/src/math/nvptx/lrint.cpp
index b335b4f06393c..715b552575789 100644
--- a/libc/src/math/nvptx/lrint.cpp
+++ b/libc/src/math/nvptx/lrint.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrint, (double x)) {
   return static_cast<long>(__builtin_rint(x));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/lrintf.cpp b/libc/src/math/nvptx/lrintf.cpp
index 312a9469fade0..3ed05f6ca34cc 100644
--- a/libc/src/math/nvptx/lrintf.cpp
+++ b/libc/src/math/nvptx/lrintf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, lrintf, (float x)) { return __nv_lrintf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/nearbyint.cpp b/libc/src/math/nvptx/nearbyint.cpp
index 9c7b600df7082..7d78c7241d023 100644
--- a/libc/src/math/nvptx/nearbyint.cpp
+++ b/libc/src/math/nvptx/nearbyint.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/nearbyint.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nearbyint, (double x)) {
   return __builtin_nearbyint(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/nearbyintf.cpp b/libc/src/math/nvptx/nearbyintf.cpp
index 7fbe9f4f0e0be..4bd20dc58fb89 100644
--- a/libc/src/math/nvptx/nearbyintf.cpp
+++ b/libc/src/math/nvptx/nearbyintf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/nearbyintf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nearbyintf, (float x)) {
   return __builtin_nearbyintf(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/nextafter.cpp b/libc/src/math/nvptx/nextafter.cpp
index 171aaad6f7cc1..3dc910042192d 100644
--- a/libc/src/math/nvptx/nextafter.cpp
+++ b/libc/src/math/nvptx/nextafter.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, nextafter, (double x, double y)) {
   return __nv_nextafter(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/nextafterf.cpp b/libc/src/math/nvptx/nextafterf.cpp
index a45937c0dc8ba..162b85ef76c1f 100644
--- a/libc/src/math/nvptx/nextafterf.cpp
+++ b/libc/src/math/nvptx/nextafterf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, nextafterf, (float x, float y)) {
   return __nv_nextafterf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/nvptx.h b/libc/src/math/nvptx/nvptx.h
index 5f9b32f311eab..2035b766e6227 100644
--- a/libc/src/math/nvptx/nvptx.h
+++ b/libc/src/math/nvptx/nvptx.h
@@ -12,8 +12,9 @@
 #include "declarations.h"
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 LIBC_INLINE double acos(double x) { return __nv_acos(x); }
 LIBC_INLINE float acosf(float x) { return __nv_acosf(x); }
@@ -97,6 +98,6 @@ LIBC_INLINE double tgamma(double x) { return __nv_tgamma(x); }
 LIBC_INLINE float tgammaf(float x) { return __nv_tgammaf(x); }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_NVPTX_NVPTX_H
diff --git a/libc/src/math/nvptx/pow.cpp b/libc/src/math/nvptx/pow.cpp
index 7de3c9e7e5448..c51dd56f55387 100644
--- a/libc/src/math/nvptx/pow.cpp
+++ b/libc/src/math/nvptx/pow.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, pow, (double x, double y)) { return __nv_pow(x, y); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/powf.cpp b/libc/src/math/nvptx/powf.cpp
index f9f7dbae63ac5..9c577c78a4a87 100644
--- a/libc/src/math/nvptx/powf.cpp
+++ b/libc/src/math/nvptx/powf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, powf, (float x, float y)) { return __nv_powf(x, y); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/powi.cpp b/libc/src/math/nvptx/powi.cpp
index b7871ab9da92e..16214bd9cc27a 100644
--- a/libc/src/math/nvptx/powi.cpp
+++ b/libc/src/math/nvptx/powi.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/powi.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "declarations.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, powi, (double x, int y)) { return __nv_powi(x, y); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/powif.cpp b/libc/src/math/nvptx/powif.cpp
index 0143745479cec..5d26fdc87daca 100644
--- a/libc/src/math/nvptx/powif.cpp
+++ b/libc/src/math/nvptx/powif.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/powif.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "declarations.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, powif, (float x, int y)) { return __nv_powif(x, y); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/remainder.cpp b/libc/src/math/nvptx/remainder.cpp
index 89b235f9c22af..9027204312e00 100644
--- a/libc/src/math/nvptx/remainder.cpp
+++ b/libc/src/math/nvptx/remainder.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/remainder.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, remainder, (double x, double y)) {
   return __builtin_remainder(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/remainderf.cpp b/libc/src/math/nvptx/remainderf.cpp
index 9fee6f856dc8b..50df3b2ce25c1 100644
--- a/libc/src/math/nvptx/remainderf.cpp
+++ b/libc/src/math/nvptx/remainderf.cpp
@@ -8,11 +8,12 @@
 
 #include "src/math/remainderf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, remainderf, (float x, float y)) {
   return __builtin_remainderf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/remquo.cpp b/libc/src/math/nvptx/remquo.cpp
index da69a20f8f4f8..aae1831bce61a 100644
--- a/libc/src/math/nvptx/remquo.cpp
+++ b/libc/src/math/nvptx/remquo.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, remquo, (double x, double y, int *quo)) {
   return __nv_remquo(x, y, quo);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/remquof.cpp b/libc/src/math/nvptx/remquof.cpp
index dcfba5d7b5fa9..d7ce3c0f03b52 100644
--- a/libc/src/math/nvptx/remquof.cpp
+++ b/libc/src/math/nvptx/remquof.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, remquof, (float x, float y, int *quo)) {
   return __nv_remquof(x, y, quo);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/rint.cpp b/libc/src/math/nvptx/rint.cpp
index 44d494a8ed57a..ac6837a4abc37 100644
--- a/libc/src/math/nvptx/rint.cpp
+++ b/libc/src/math/nvptx/rint.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/rint.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, rint, (double x)) { return __builtin_rint(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/rintf.cpp b/libc/src/math/nvptx/rintf.cpp
index daf98d9436051..94093471a8d92 100644
--- a/libc/src/math/nvptx/rintf.cpp
+++ b/libc/src/math/nvptx/rintf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/rintf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, rintf, (float x)) { return __builtin_rintf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/round.cpp b/libc/src/math/nvptx/round.cpp
index 9d8b5582f0407..0d2765f2e959f 100644
--- a/libc/src/math/nvptx/round.cpp
+++ b/libc/src/math/nvptx/round.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/round.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, round, (double x)) { return __builtin_round(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/roundf.cpp b/libc/src/math/nvptx/roundf.cpp
index 8743e4eb7fb8d..86e8ba3ac83d6 100644
--- a/libc/src/math/nvptx/roundf.cpp
+++ b/libc/src/math/nvptx/roundf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/roundf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, roundf, (float x)) { return __builtin_roundf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/scalbn.cpp b/libc/src/math/nvptx/scalbn.cpp
index 80374db4c1c93..ecadc345a3534 100644
--- a/libc/src/math/nvptx/scalbn.cpp
+++ b/libc/src/math/nvptx/scalbn.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, scalbn, (double x, int y)) {
   return __nv_scalbn(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/scalbnf.cpp b/libc/src/math/nvptx/scalbnf.cpp
index 24fa3a5ed698a..35ff69964fffa 100644
--- a/libc/src/math/nvptx/scalbnf.cpp
+++ b/libc/src/math/nvptx/scalbnf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, scalbnf, (float x, int y)) {
   return __nv_scalbnf(x, y);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sin.cpp b/libc/src/math/nvptx/sin.cpp
index 1bff129a0151c..0e86f9c77e599 100644
--- a/libc/src/math/nvptx/sin.cpp
+++ b/libc/src/math/nvptx/sin.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sin, (double x)) { return __nv_sin(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sincos.cpp b/libc/src/math/nvptx/sincos.cpp
index 73f92cfb7c348..5a77234e2d74e 100644
--- a/libc/src/math/nvptx/sincos.cpp
+++ b/libc/src/math/nvptx/sincos.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, sincos, (double x, double *sinptr, double *cosptr)) {
   return __nv_sincos(x, sinptr, cosptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sincosf.cpp b/libc/src/math/nvptx/sincosf.cpp
index d053aa38151b6..e4039ada837b9 100644
--- a/libc/src/math/nvptx/sincosf.cpp
+++ b/libc/src/math/nvptx/sincosf.cpp
@@ -10,11 +10,12 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, sincosf, (float x, float *sinptr, float *cosptr)) {
   return __nv_sincosf(x, sinptr, cosptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sinf.cpp b/libc/src/math/nvptx/sinf.cpp
index 9abd5cb4d5c62..14e722fbad196 100644
--- a/libc/src/math/nvptx/sinf.cpp
+++ b/libc/src/math/nvptx/sinf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinf, (float x)) { return __nv_sinf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sinh.cpp b/libc/src/math/nvptx/sinh.cpp
index dc6a1e16c6341..701811d9a9921 100644
--- a/libc/src/math/nvptx/sinh.cpp
+++ b/libc/src/math/nvptx/sinh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sinh, (double x)) { return __nv_sinh(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sinhf.cpp b/libc/src/math/nvptx/sinhf.cpp
index c9ab470ed823c..2c6ac21fffa17 100644
--- a/libc/src/math/nvptx/sinhf.cpp
+++ b/libc/src/math/nvptx/sinhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sinhf, (float x)) { return __nv_sinhf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sqrt.cpp b/libc/src/math/nvptx/sqrt.cpp
index 60ca5af4987b6..ed83b6e5c6cae 100644
--- a/libc/src/math/nvptx/sqrt.cpp
+++ b/libc/src/math/nvptx/sqrt.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/sqrt.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, sqrt, (double x)) { return __builtin_sqrt(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/sqrtf.cpp b/libc/src/math/nvptx/sqrtf.cpp
index e17f942a4d5fc..851922c316452 100644
--- a/libc/src/math/nvptx/sqrtf.cpp
+++ b/libc/src/math/nvptx/sqrtf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/sqrtf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, sqrtf, (float x)) { return __builtin_sqrtf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/tan.cpp b/libc/src/math/nvptx/tan.cpp
index deb03dca250a5..2d3f1fe51ea4a 100644
--- a/libc/src/math/nvptx/tan.cpp
+++ b/libc/src/math/nvptx/tan.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, tan, (double x)) { return __nv_tan(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/tanf.cpp b/libc/src/math/nvptx/tanf.cpp
index 5739e4a1624de..bdf51d9a619a1 100644
--- a/libc/src/math/nvptx/tanf.cpp
+++ b/libc/src/math/nvptx/tanf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, tanf, (float x)) { return __nv_tanf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/tanh.cpp b/libc/src/math/nvptx/tanh.cpp
index eabee2cbaf068..8255889e7d2b3 100644
--- a/libc/src/math/nvptx/tanh.cpp
+++ b/libc/src/math/nvptx/tanh.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, tanh, (double x)) { return __nv_tanh(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/tanhf.cpp b/libc/src/math/nvptx/tanhf.cpp
index 582424cb9490a..a22524a0fa426 100644
--- a/libc/src/math/nvptx/tanhf.cpp
+++ b/libc/src/math/nvptx/tanhf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, tanhf, (float x)) { return __nv_tanhf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/tgamma.cpp b/libc/src/math/nvptx/tgamma.cpp
index f92193831f9bb..29f0334f72749 100644
--- a/libc/src/math/nvptx/tgamma.cpp
+++ b/libc/src/math/nvptx/tgamma.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, tgamma, (double x)) { return __nv_tgamma(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/tgammaf.cpp b/libc/src/math/nvptx/tgammaf.cpp
index 833994455d575..d7de80b36d294 100644
--- a/libc/src/math/nvptx/tgammaf.cpp
+++ b/libc/src/math/nvptx/tgammaf.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/common.h"
 
 #include "declarations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, tgammaf, (float x)) { return __nv_tgammaf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/trunc.cpp b/libc/src/math/nvptx/trunc.cpp
index 773600f0f2501..f60caa2a71d78 100644
--- a/libc/src/math/nvptx/trunc.cpp
+++ b/libc/src/math/nvptx/trunc.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/trunc.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, trunc, (double x)) { return __builtin_trunc(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/nvptx/truncf.cpp b/libc/src/math/nvptx/truncf.cpp
index 534797a3e5860..a6c9b8f188f02 100644
--- a/libc/src/math/nvptx/truncf.cpp
+++ b/libc/src/math/nvptx/truncf.cpp
@@ -8,9 +8,10 @@
 
 #include "src/math/truncf.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, truncf, (float x)) { return __builtin_truncf(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/pow.h b/libc/src/math/pow.h
index dd9b4a6556837..a861920cc36c6 100644
--- a/libc/src/math/pow.h
+++ b/libc/src/math/pow.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_POW_H
 #define LLVM_LIBC_SRC_MATH_POW_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double pow(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_POW_H
diff --git a/libc/src/math/powf.h b/libc/src/math/powf.h
index 6582dc335d613..61c474a6b173e 100644
--- a/libc/src/math/powf.h
+++ b/libc/src/math/powf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_POWF_H
 #define LLVM_LIBC_SRC_MATH_POWF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float powf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_POWF_H
diff --git a/libc/src/math/powi.h b/libc/src/math/powi.h
index 1ee7140f06489..a70fab62b85cb 100644
--- a/libc/src/math/powi.h
+++ b/libc/src/math/powi.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_POWI_H
 #define LLVM_LIBC_SRC_MATH_POWI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double powi(double x, int y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_POW_H
diff --git a/libc/src/math/powif.h b/libc/src/math/powif.h
index 417012a34fecc..ee6716f2a1846 100644
--- a/libc/src/math/powif.h
+++ b/libc/src/math/powif.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_POWIF_H
 #define LLVM_LIBC_SRC_MATH_POWIF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float powif(float x, int y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_POW_H
diff --git a/libc/src/math/remainder.h b/libc/src/math/remainder.h
index f1f89542013d7..5bf2af92543cf 100644
--- a/libc/src/math/remainder.h
+++ b/libc/src/math/remainder.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMAINDER_H
 #define LLVM_LIBC_SRC_MATH_REMAINDER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double remainder(double x, double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMAINDER_H
diff --git a/libc/src/math/remainderf.h b/libc/src/math/remainderf.h
index 31a9bbe86b56c..4997ebccc9290 100644
--- a/libc/src/math/remainderf.h
+++ b/libc/src/math/remainderf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMAINDERF_H
 #define LLVM_LIBC_SRC_MATH_REMAINDERF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float remainderf(float x, float y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMAINDERF_H
diff --git a/libc/src/math/remainderf16.h b/libc/src/math/remainderf16.h
index e23eead4bae2c..75f39e55f9884 100644
--- a/libc/src/math/remainderf16.h
+++ b/libc/src/math/remainderf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMAINDERF16_H
 #define LLVM_LIBC_SRC_MATH_REMAINDERF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 remainderf16(float16 x, float16 y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMAINDERF16_H
diff --git a/libc/src/math/remainderl.h b/libc/src/math/remainderl.h
index 584af37f5f37c..e0df705b0ed27 100644
--- a/libc/src/math/remainderl.h
+++ b/libc/src/math/remainderl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMAINDERL_H
 #define LLVM_LIBC_SRC_MATH_REMAINDERL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double remainderl(long double x, long double y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMAINDERL_H
diff --git a/libc/src/math/remquo.h b/libc/src/math/remquo.h
index 7590e7df5ddb8..c16ec957e144f 100644
--- a/libc/src/math/remquo.h
+++ b/libc/src/math/remquo.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMQUO_H
 #define LLVM_LIBC_SRC_MATH_REMQUO_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double remquo(double x, double y, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMQUO_H
diff --git a/libc/src/math/remquof.h b/libc/src/math/remquof.h
index 8b8e8772706fd..b63f773b6435f 100644
--- a/libc/src/math/remquof.h
+++ b/libc/src/math/remquof.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMQUOF_H
 #define LLVM_LIBC_SRC_MATH_REMQUOF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float remquof(float x, float y, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMQUOF_H
diff --git a/libc/src/math/remquof128.h b/libc/src/math/remquof128.h
index e9db1ef5c5b51..49e99a9a8bb2c 100644
--- a/libc/src/math/remquof128.h
+++ b/libc/src/math/remquof128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMQUOF128_H
 #define LLVM_LIBC_SRC_MATH_REMQUOF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 remquof128(float128 x, float128 y, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMQUOF128_H
diff --git a/libc/src/math/remquof16.h b/libc/src/math/remquof16.h
index fee848c955a01..310c3db712cde 100644
--- a/libc/src/math/remquof16.h
+++ b/libc/src/math/remquof16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMQUOF16_H
 #define LLVM_LIBC_SRC_MATH_REMQUOF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 remquof16(float16 x, float16 y, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMQUOF16_H
diff --git a/libc/src/math/remquol.h b/libc/src/math/remquol.h
index ba9b09929cc2f..de5adf49827d8 100644
--- a/libc/src/math/remquol.h
+++ b/libc/src/math/remquol.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_REMQUOL_H
 #define LLVM_LIBC_SRC_MATH_REMQUOL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double remquol(long double x, long double y, int *exp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_REMQUOL_H
diff --git a/libc/src/math/rint.h b/libc/src/math/rint.h
index 3cd676bfb724e..1080c4df8e00b 100644
--- a/libc/src/math/rint.h
+++ b/libc/src/math/rint.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_RINT_H
 #define LLVM_LIBC_SRC_MATH_RINT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double rint(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_RINT_H
diff --git a/libc/src/math/rintf.h b/libc/src/math/rintf.h
index d0246a32cdd30..b371b8c3468d8 100644
--- a/libc/src/math/rintf.h
+++ b/libc/src/math/rintf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_RINTF_H
 #define LLVM_LIBC_SRC_MATH_RINTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float rintf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_RINTF_H
diff --git a/libc/src/math/rintf128.h b/libc/src/math/rintf128.h
index 2d9248974f024..2edafcb73fd85 100644
--- a/libc/src/math/rintf128.h
+++ b/libc/src/math/rintf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_RINTF128_H
 #define LLVM_LIBC_SRC_MATH_RINTF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 rintf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_RINTF128_H
diff --git a/libc/src/math/rintf16.h b/libc/src/math/rintf16.h
index 5ea9587ef3cf6..839f2dd0f3c00 100644
--- a/libc/src/math/rintf16.h
+++ b/libc/src/math/rintf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_RINTF16_H
 #define LLVM_LIBC_SRC_MATH_RINTF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 rintf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_RINTF16_H
diff --git a/libc/src/math/rintl.h b/libc/src/math/rintl.h
index bddfa183f7ae7..fed476973b5da 100644
--- a/libc/src/math/rintl.h
+++ b/libc/src/math/rintl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_RINTL_H
 #define LLVM_LIBC_SRC_MATH_RINTL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double rintl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_RINTL_H
diff --git a/libc/src/math/round.h b/libc/src/math/round.h
index 3e6a3b34c9a46..c2cd3bf921f0c 100644
--- a/libc/src/math/round.h
+++ b/libc/src/math/round.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUND_H
 #define LLVM_LIBC_SRC_MATH_ROUND_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double round(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUND_H
diff --git a/libc/src/math/roundeven.h b/libc/src/math/roundeven.h
index 9c76b1fe334ab..a996a03f73b58 100644
--- a/libc/src/math/roundeven.h
+++ b/libc/src/math/roundeven.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDEVEN_H
 #define LLVM_LIBC_SRC_MATH_ROUNDEVEN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double roundeven(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDEVEN_H
diff --git a/libc/src/math/roundevenf.h b/libc/src/math/roundevenf.h
index 447e7fd940c18..bdeca6712ea7a 100644
--- a/libc/src/math/roundevenf.h
+++ b/libc/src/math/roundevenf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDEVENF_H
 #define LLVM_LIBC_SRC_MATH_ROUNDEVENF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float roundevenf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDEVENF_H
diff --git a/libc/src/math/roundevenf128.h b/libc/src/math/roundevenf128.h
index 589839d090756..ca2ef3703e8ae 100644
--- a/libc/src/math/roundevenf128.h
+++ b/libc/src/math/roundevenf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDEVENF128_H
 #define LLVM_LIBC_SRC_MATH_ROUNDEVENF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 roundevenf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDEVENF128_H
diff --git a/libc/src/math/roundevenf16.h b/libc/src/math/roundevenf16.h
index 382e2e39cff3f..8f5fe22eeacb0 100644
--- a/libc/src/math/roundevenf16.h
+++ b/libc/src/math/roundevenf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDEVENF16_H
 #define LLVM_LIBC_SRC_MATH_ROUNDEVENF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 roundevenf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDEVENF16_H
diff --git a/libc/src/math/roundevenl.h b/libc/src/math/roundevenl.h
index a2f3397e4479a..c53fb0863d72f 100644
--- a/libc/src/math/roundevenl.h
+++ b/libc/src/math/roundevenl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDEVENL_H
 #define LLVM_LIBC_SRC_MATH_ROUNDEVENL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double roundevenl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDEVENL_H
diff --git a/libc/src/math/roundf.h b/libc/src/math/roundf.h
index d6ca186ed16e1..21dbaa810d2bf 100644
--- a/libc/src/math/roundf.h
+++ b/libc/src/math/roundf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDF_H
 #define LLVM_LIBC_SRC_MATH_ROUNDF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float roundf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDF_H
diff --git a/libc/src/math/roundf128.h b/libc/src/math/roundf128.h
index e4aca17d7eb63..ef56d04a1696d 100644
--- a/libc/src/math/roundf128.h
+++ b/libc/src/math/roundf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDF128_H
 #define LLVM_LIBC_SRC_MATH_ROUNDF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 roundf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDF128_H
diff --git a/libc/src/math/roundf16.h b/libc/src/math/roundf16.h
index e52f2aeb87e6d..30772639747a5 100644
--- a/libc/src/math/roundf16.h
+++ b/libc/src/math/roundf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDF16_H
 #define LLVM_LIBC_SRC_MATH_ROUNDF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 roundf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDF16_H
diff --git a/libc/src/math/roundl.h b/libc/src/math/roundl.h
index 0abe87a055061..8a9fed47aaa5c 100644
--- a/libc/src/math/roundl.h
+++ b/libc/src/math/roundl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_ROUNDL_H
 #define LLVM_LIBC_SRC_MATH_ROUNDL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double roundl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_ROUNDL_H
diff --git a/libc/src/math/scalblnf16.h b/libc/src/math/scalblnf16.h
index be93fab1bf68a..d47a78cd1448b 100644
--- a/libc/src/math/scalblnf16.h
+++ b/libc/src/math/scalblnf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_SCALBLNF16_H
 #define LLVM_LIBC_SRC_MATH_SCALBLNF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 scalblnf16(float16 x, long n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SCALBLNF16_H
diff --git a/libc/src/math/scalbn.h b/libc/src/math/scalbn.h
index 9fc1dc4d93fbd..d4669d22df43e 100644
--- a/libc/src/math/scalbn.h
+++ b/libc/src/math/scalbn.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SCALBN_H
 #define LLVM_LIBC_SRC_MATH_SCALBN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double scalbn(double x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SCALBN_H
diff --git a/libc/src/math/scalbnf.h b/libc/src/math/scalbnf.h
index 6b5a5f9cab7f0..d298eeb562a4e 100644
--- a/libc/src/math/scalbnf.h
+++ b/libc/src/math/scalbnf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SCALBNF_H
 #define LLVM_LIBC_SRC_MATH_SCALBNF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float scalbnf(float x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SCALBNF_H
diff --git a/libc/src/math/scalbnf128.h b/libc/src/math/scalbnf128.h
index bd3b560fb7cc4..b96d954c69e30 100644
--- a/libc/src/math/scalbnf128.h
+++ b/libc/src/math/scalbnf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_SCALBNF128_H
 #define LLVM_LIBC_SRC_MATH_SCALBNF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 scalbnf128(float128 x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SCALBNF128_H
diff --git a/libc/src/math/scalbnf16.h b/libc/src/math/scalbnf16.h
index 95e4862f38070..e554a517a2f81 100644
--- a/libc/src/math/scalbnf16.h
+++ b/libc/src/math/scalbnf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_SCALBNF16_H
 #define LLVM_LIBC_SRC_MATH_SCALBNF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 scalbnf16(float16 x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SCALBNF16_H
diff --git a/libc/src/math/scalbnl.h b/libc/src/math/scalbnl.h
index 876f147dde4f3..ff023049c2db9 100644
--- a/libc/src/math/scalbnl.h
+++ b/libc/src/math/scalbnl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SCALBNL_H
 #define LLVM_LIBC_SRC_MATH_SCALBNL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double scalbnl(long double x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SCALBNL_H
diff --git a/libc/src/math/setpayloadf16.h b/libc/src/math/setpayloadf16.h
index 8705e2804fa99..6bdf64a1330be 100644
--- a/libc/src/math/setpayloadf16.h
+++ b/libc/src/math/setpayloadf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_SETPAYLOADF16_H
 #define LLVM_LIBC_SRC_MATH_SETPAYLOADF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int setpayloadf16(float16 *res, float16 pl);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SETPAYLOADF16_H
diff --git a/libc/src/math/setpayloadsigf16.h b/libc/src/math/setpayloadsigf16.h
index ee9bc38ab9423..0c5e7737c991b 100644
--- a/libc/src/math/setpayloadsigf16.h
+++ b/libc/src/math/setpayloadsigf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_SETPAYLOADSIGF16_H
 #define LLVM_LIBC_SRC_MATH_SETPAYLOADSIGF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int setpayloadsigf16(float16 *res, float16 pl);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SETPAYLOADSIGF16_H
diff --git a/libc/src/math/sin.h b/libc/src/math/sin.h
index 50ecdc74fb2d9..2a4362d1ba287 100644
--- a/libc/src/math/sin.h
+++ b/libc/src/math/sin.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SIN_H
 #define LLVM_LIBC_SRC_MATH_SIN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double sin(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SIN_H
diff --git a/libc/src/math/sincos.h b/libc/src/math/sincos.h
index 6235a7c5c0454..580bdbb9a6b3e 100644
--- a/libc/src/math/sincos.h
+++ b/libc/src/math/sincos.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SINCOS_H
 #define LLVM_LIBC_SRC_MATH_SINCOS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 void sincos(double x, double *sinx, double *cosx);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SINCOS_H
diff --git a/libc/src/math/sincosf.h b/libc/src/math/sincosf.h
index 56539f52ce0e6..28dbc652f1367 100644
--- a/libc/src/math/sincosf.h
+++ b/libc/src/math/sincosf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SINCOSF_H
 #define LLVM_LIBC_SRC_MATH_SINCOSF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 void sincosf(float x, float *sinx, float *cosx);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SINCOSF_H
diff --git a/libc/src/math/sinf.h b/libc/src/math/sinf.h
index aa0b753e74ae3..c4f8c889086fe 100644
--- a/libc/src/math/sinf.h
+++ b/libc/src/math/sinf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SINF_H
 #define LLVM_LIBC_SRC_MATH_SINF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float sinf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SINF_H
diff --git a/libc/src/math/sinh.h b/libc/src/math/sinh.h
index bf1b1f1d815c1..b87471c2bfcc2 100644
--- a/libc/src/math/sinh.h
+++ b/libc/src/math/sinh.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SINH_H
 #define LLVM_LIBC_SRC_MATH_SINH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double sinh(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SINH_H
diff --git a/libc/src/math/sinhf.h b/libc/src/math/sinhf.h
index 65cb39f9e3926..f69a194c1f6d9 100644
--- a/libc/src/math/sinhf.h
+++ b/libc/src/math/sinhf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SINHF_H
 #define LLVM_LIBC_SRC_MATH_SINHF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float sinhf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SINHF_H
diff --git a/libc/src/math/sinpif.h b/libc/src/math/sinpif.h
index 63d481945f470..038fb1935d15f 100644
--- a/libc/src/math/sinpif.h
+++ b/libc/src/math/sinpif.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SINPIF_H
 #define LLVM_LIBC_SRC_MATH_SINPIF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float sinpif(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SINPIF_H
diff --git a/libc/src/math/sqrt.h b/libc/src/math/sqrt.h
index d003e3f0964de..566944a95f40a 100644
--- a/libc/src/math/sqrt.h
+++ b/libc/src/math/sqrt.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SQRT_H
 #define LLVM_LIBC_SRC_MATH_SQRT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double sqrt(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SQRT_H
diff --git a/libc/src/math/sqrtf.h b/libc/src/math/sqrtf.h
index fe4192a550386..db39ab73ee678 100644
--- a/libc/src/math/sqrtf.h
+++ b/libc/src/math/sqrtf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SQRTF_H
 #define LLVM_LIBC_SRC_MATH_SQRTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float sqrtf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SQRTF_H
diff --git a/libc/src/math/sqrtf128.h b/libc/src/math/sqrtf128.h
index 9da9eb69374cb..81f4c12eff90d 100644
--- a/libc/src/math/sqrtf128.h
+++ b/libc/src/math/sqrtf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_SQRTF128_H
 #define LLVM_LIBC_SRC_MATH_SQRTF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 sqrtf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SQRTF128_H
diff --git a/libc/src/math/sqrtl.h b/libc/src/math/sqrtl.h
index e632c1925ddc2..52b208d655d69 100644
--- a/libc/src/math/sqrtl.h
+++ b/libc/src/math/sqrtl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_SQRTL_H
 #define LLVM_LIBC_SRC_MATH_SQRTL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double sqrtl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_SQRTL_H
diff --git a/libc/src/math/tan.h b/libc/src/math/tan.h
index 5d0121f158f11..462c60f1f9aed 100644
--- a/libc/src/math/tan.h
+++ b/libc/src/math/tan.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TAN_H
 #define LLVM_LIBC_SRC_MATH_TAN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double tan(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TAN_H
diff --git a/libc/src/math/tanf.h b/libc/src/math/tanf.h
index e0f06a8ba64cf..0d4b9e79ac32c 100644
--- a/libc/src/math/tanf.h
+++ b/libc/src/math/tanf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TANF_H
 #define LLVM_LIBC_SRC_MATH_TANF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float tanf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TANF_H
diff --git a/libc/src/math/tanh.h b/libc/src/math/tanh.h
index 66561eef403dd..eadde36c394c5 100644
--- a/libc/src/math/tanh.h
+++ b/libc/src/math/tanh.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TANH_H
 #define LLVM_LIBC_SRC_MATH_TANH_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double tanh(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TANH_H
diff --git a/libc/src/math/tanhf.h b/libc/src/math/tanhf.h
index ff9d02efaffb7..a0bd1e926a30a 100644
--- a/libc/src/math/tanhf.h
+++ b/libc/src/math/tanhf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TANHF_H
 #define LLVM_LIBC_SRC_MATH_TANHF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float tanhf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TANHF_H
diff --git a/libc/src/math/tgamma.h b/libc/src/math/tgamma.h
index 24590ed1a4676..9210a4bb8e7f4 100644
--- a/libc/src/math/tgamma.h
+++ b/libc/src/math/tgamma.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TGAMMA_H
 #define LLVM_LIBC_SRC_MATH_TGAMMA_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double tgamma(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TGAMMA_H
diff --git a/libc/src/math/tgammaf.h b/libc/src/math/tgammaf.h
index d28e4c325152a..0524deefcf552 100644
--- a/libc/src/math/tgammaf.h
+++ b/libc/src/math/tgammaf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TGAMMAF_H
 #define LLVM_LIBC_SRC_MATH_TGAMMAF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float tgammaf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TGAMMAF_H
diff --git a/libc/src/math/totalorderf16.h b/libc/src/math/totalorderf16.h
index f5390140c4dc2..db787c96dc3ea 100644
--- a/libc/src/math/totalorderf16.h
+++ b/libc/src/math/totalorderf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_TOTALORDERF16_H
 #define LLVM_LIBC_SRC_MATH_TOTALORDERF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int totalorderf16(const float16 *x, const float16 *y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TOTALORDERF16_H
diff --git a/libc/src/math/totalordermagf16.h b/libc/src/math/totalordermagf16.h
index 8c6621b9783df..eed8bf3586cac 100644
--- a/libc/src/math/totalordermagf16.h
+++ b/libc/src/math/totalordermagf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H
 #define LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int totalordermagf16(const float16 *x, const float16 *y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H
diff --git a/libc/src/math/trunc.h b/libc/src/math/trunc.h
index d766aff923dc9..d4fb8788fca69 100644
--- a/libc/src/math/trunc.h
+++ b/libc/src/math/trunc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TRUNC_H
 #define LLVM_LIBC_SRC_MATH_TRUNC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double trunc(double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TRUNC_H
diff --git a/libc/src/math/truncf.h b/libc/src/math/truncf.h
index e666d778154a3..3cdf2ee8006d1 100644
--- a/libc/src/math/truncf.h
+++ b/libc/src/math/truncf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TRUNCF_H
 #define LLVM_LIBC_SRC_MATH_TRUNCF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float truncf(float x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TRUNCF_H
diff --git a/libc/src/math/truncf128.h b/libc/src/math/truncf128.h
index 5eb6116551d1c..df3899c35e668 100644
--- a/libc/src/math/truncf128.h
+++ b/libc/src/math/truncf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_TRUNCF128_H
 #define LLVM_LIBC_SRC_MATH_TRUNCF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 truncf128(float128 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TRUNCF128_H
diff --git a/libc/src/math/truncf16.h b/libc/src/math/truncf16.h
index 6d65980461c49..db03c68fd631a 100644
--- a/libc/src/math/truncf16.h
+++ b/libc/src/math/truncf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_TRUNCF16_H
 #define LLVM_LIBC_SRC_MATH_TRUNCF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 truncf16(float16 x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TRUNCF16_H
diff --git a/libc/src/math/truncl.h b/libc/src/math/truncl.h
index 38f414f65fcc0..6b4d22d92dd88 100644
--- a/libc/src/math/truncl.h
+++ b/libc/src/math/truncl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_TRUNCL_H
 #define LLVM_LIBC_SRC_MATH_TRUNCL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double truncl(long double x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_TRUNCL_H
diff --git a/libc/src/math/ufromfp.h b/libc/src/math/ufromfp.h
index f4667486440c2..6b40623fc5e70 100644
--- a/libc/src/math/ufromfp.h
+++ b/libc/src/math/ufromfp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFP_H
 #define LLVM_LIBC_SRC_MATH_UFROMFP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double ufromfp(double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFP_H
diff --git a/libc/src/math/ufromfpf.h b/libc/src/math/ufromfpf.h
index 40c6773d143e8..d272cecc3cae8 100644
--- a/libc/src/math/ufromfpf.h
+++ b/libc/src/math/ufromfpf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPF_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float ufromfpf(float x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPF_H
diff --git a/libc/src/math/ufromfpf128.h b/libc/src/math/ufromfpf128.h
index 785fa82becbcd..b38ef691fa165 100644
--- a/libc/src/math/ufromfpf128.h
+++ b/libc/src/math/ufromfpf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPF128_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 ufromfpf128(float128 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPF128_H
diff --git a/libc/src/math/ufromfpf16.h b/libc/src/math/ufromfpf16.h
index 07a38bd232fc7..c863a2d4eb493 100644
--- a/libc/src/math/ufromfpf16.h
+++ b/libc/src/math/ufromfpf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPF16_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 ufromfpf16(float16 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPF16_H
diff --git a/libc/src/math/ufromfpl.h b/libc/src/math/ufromfpl.h
index f05a77dc2f103..c7b93317fa68e 100644
--- a/libc/src/math/ufromfpl.h
+++ b/libc/src/math/ufromfpl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPL_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double ufromfpl(long double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPL_H
diff --git a/libc/src/math/ufromfpx.h b/libc/src/math/ufromfpx.h
index 79c413af968a5..00a3c5f5b435d 100644
--- a/libc/src/math/ufromfpx.h
+++ b/libc/src/math/ufromfpx.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPX_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double ufromfpx(double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPX_H
diff --git a/libc/src/math/ufromfpxf.h b/libc/src/math/ufromfpxf.h
index f6bd8f7d59959..1740ac33dec77 100644
--- a/libc/src/math/ufromfpxf.h
+++ b/libc/src/math/ufromfpxf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPXF_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPXF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float ufromfpxf(float x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPXF_H
diff --git a/libc/src/math/ufromfpxf128.h b/libc/src/math/ufromfpxf128.h
index f3b43ff54f37c..5008b7ae9b460 100644
--- a/libc/src/math/ufromfpxf128.h
+++ b/libc/src/math/ufromfpxf128.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPXF128_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPXF128_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float128 ufromfpxf128(float128 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPXF128_H
diff --git a/libc/src/math/ufromfpxf16.h b/libc/src/math/ufromfpxf16.h
index 988092bde319c..9e03353d3e588 100644
--- a/libc/src/math/ufromfpxf16.h
+++ b/libc/src/math/ufromfpxf16.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPXF16_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPXF16_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 float16 ufromfpxf16(float16 x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPXF16_H
diff --git a/libc/src/math/ufromfpxl.h b/libc/src/math/ufromfpxl.h
index 180b8f93d2187..13ff93607f73a 100644
--- a/libc/src/math/ufromfpxl.h
+++ b/libc/src/math/ufromfpxl.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_MATH_UFROMFPXL_H
 #define LLVM_LIBC_SRC_MATH_UFROMFPXL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double ufromfpxl(long double x, int rnd, unsigned int width);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_MATH_UFROMFPXL_H
diff --git a/libc/src/network/htonl.cpp b/libc/src/network/htonl.cpp
index 862d5e3a0bc41..ec3c02e2894f2 100644
--- a/libc/src/network/htonl.cpp
+++ b/libc/src/network/htonl.cpp
@@ -9,11 +9,12 @@
 #include "src/network/htonl.h"
 #include "src/__support/common.h"
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uint32_t, htonl, (uint32_t hostlong)) {
   return Endian::to_big_endian(hostlong);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/network/htonl.h b/libc/src/network/htonl.h
index c7743dfad7ba3..14217310a2271 100644
--- a/libc/src/network/htonl.h
+++ b/libc/src/network/htonl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_NETWORK_HTONL_H
 #define LLVM_LIBC_SRC_NETWORK_HTONL_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uint32_t htonl(uint32_t hostlong);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_NETWORK_HTONL_H
diff --git a/libc/src/network/htons.cpp b/libc/src/network/htons.cpp
index e844454d5687f..78416b3a7d1f0 100644
--- a/libc/src/network/htons.cpp
+++ b/libc/src/network/htons.cpp
@@ -9,11 +9,12 @@
 #include "src/network/htons.h"
 #include "src/__support/common.h"
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uint16_t, htons, (uint16_t hostshort)) {
   return Endian::to_big_endian(hostshort);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/network/htons.h b/libc/src/network/htons.h
index e0a379f94e526..8f5c68a0a60a8 100644
--- a/libc/src/network/htons.h
+++ b/libc/src/network/htons.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_NETWORK_HTONS_H
 #define LLVM_LIBC_SRC_NETWORK_HTONS_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uint16_t htons(uint16_t hostshort);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_NETWORK_HTONS_H
diff --git a/libc/src/network/ntohl.cpp b/libc/src/network/ntohl.cpp
index c00f4a5ae09c9..974b574432ff3 100644
--- a/libc/src/network/ntohl.cpp
+++ b/libc/src/network/ntohl.cpp
@@ -9,8 +9,9 @@
 #include "src/network/ntohl.h"
 #include "src/__support/common.h"
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uint32_t, ntohl, (uint32_t netlong)) {
   if constexpr (Endian::IS_LITTLE)
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(uint32_t, ntohl, (uint32_t netlong)) {
     return netlong;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/network/ntohl.h b/libc/src/network/ntohl.h
index 2fc4ef059c587..c325951948062 100644
--- a/libc/src/network/ntohl.h
+++ b/libc/src/network/ntohl.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_NETWORK_NTOHL_H
 #define LLVM_LIBC_SRC_NETWORK_NTOHL_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uint32_t ntohl(uint32_t netlong);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_NETWORK_NTOHL_H
diff --git a/libc/src/network/ntohs.cpp b/libc/src/network/ntohs.cpp
index 572b6860fa6b9..bb1779f3dcb30 100644
--- a/libc/src/network/ntohs.cpp
+++ b/libc/src/network/ntohs.cpp
@@ -9,8 +9,9 @@
 #include "src/network/ntohs.h"
 #include "src/__support/common.h"
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uint16_t, ntohs, (uint16_t netshort)) {
   if constexpr (Endian::IS_LITTLE)
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(uint16_t, ntohs, (uint16_t netshort)) {
     return netshort;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/network/ntohs.h b/libc/src/network/ntohs.h
index a84c52eeb9c2f..f55591415f764 100644
--- a/libc/src/network/ntohs.h
+++ b/libc/src/network/ntohs.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_NETWORK_NTOHS_H
 #define LLVM_LIBC_SRC_NETWORK_NTOHS_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uint16_t ntohs(uint16_t netshort);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_NETWORK_NTOHS_H
diff --git a/libc/src/pthread/pthread_atfork.cpp b/libc/src/pthread/pthread_atfork.cpp
index 57191b8534771..d3f3c259992ec 100644
--- a/libc/src/pthread/pthread_atfork.cpp
+++ b/libc/src/pthread/pthread_atfork.cpp
@@ -9,12 +9,13 @@
 #include "pthread_atfork.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/fork_callbacks.h"
 
 #include <errno.h>
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_atfork,
                    (__atfork_callback_t prepare, __atfork_callback_t parent,
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, pthread_atfork,
   return register_atfork_callbacks(prepare, parent, child) ? 0 : ENOMEM;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_atfork.h b/libc/src/pthread/pthread_atfork.h
index 8b89d6895647b..4292e2ad46be5 100644
--- a/libc/src/pthread/pthread_atfork.h
+++ b/libc/src/pthread/pthread_atfork.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATFORK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATFORK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_atfork(__atfork_callback_t prepare, __atfork_callback_t parent,
                    __atfork_callback_t child);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATFORK_H
diff --git a/libc/src/pthread/pthread_attr_destroy.cpp b/libc/src/pthread/pthread_attr_destroy.cpp
index a5bde84256fc6..090cc23d81218 100644
--- a/libc/src/pthread/pthread_attr_destroy.cpp
+++ b/libc/src/pthread/pthread_attr_destroy.cpp
@@ -9,14 +9,15 @@
 #include "pthread_attr_destroy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_destroy, (pthread_attr_t *)) {
   // There is nothing to cleanup.
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_destroy.h b/libc/src/pthread/pthread_attr_destroy.h
index 532a0f45f7cd5..a5e7e62fa3bec 100644
--- a/libc/src/pthread/pthread_attr_destroy.h
+++ b/libc/src/pthread/pthread_attr_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_DESTROY_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_destroy(pthread_attr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_DESTROY_H
diff --git a/libc/src/pthread/pthread_attr_getdetachstate.cpp b/libc/src/pthread/pthread_attr_getdetachstate.cpp
index 4bff85d45c17c..ec755138b093e 100644
--- a/libc/src/pthread/pthread_attr_getdetachstate.cpp
+++ b/libc/src/pthread/pthread_attr_getdetachstate.cpp
@@ -9,10 +9,11 @@
 #include "pthread_attr_getdetachstate.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_getdetachstate,
                    (const pthread_attr_t *attr, int *detachstate)) {
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_getdetachstate,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_getdetachstate.h b/libc/src/pthread/pthread_attr_getdetachstate.h
index 57a47b73bd50b..e1c89baf315d8 100644
--- a/libc/src/pthread/pthread_attr_getdetachstate.h
+++ b/libc/src/pthread/pthread_attr_getdetachstate.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETDETACHSTATE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETDETACHSTATE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detach_state);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETDETACHSTATE_H
diff --git a/libc/src/pthread/pthread_attr_getguardsize.cpp b/libc/src/pthread/pthread_attr_getguardsize.cpp
index 8f28db8d9c96c..b7c50859fa533 100644
--- a/libc/src/pthread/pthread_attr_getguardsize.cpp
+++ b/libc/src/pthread/pthread_attr_getguardsize.cpp
@@ -9,10 +9,11 @@
 #include "pthread_attr_getguardsize.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_getguardsize,
                    (const pthread_attr_t *__restrict attr,
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_getguardsize,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_getguardsize.h b/libc/src/pthread/pthread_attr_getguardsize.h
index ef2e75828f9e2..e5f9cbf752aef 100644
--- a/libc/src/pthread/pthread_attr_getguardsize.h
+++ b/libc/src/pthread/pthread_attr_getguardsize.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETGUARDSIZE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETGUARDSIZE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_getguardsize(const pthread_attr_t *__restrict attr,
                               size_t *__restrict guardsize);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETGUARDSIZE_H
diff --git a/libc/src/pthread/pthread_attr_getstack.cpp b/libc/src/pthread/pthread_attr_getstack.cpp
index 8788fbc1ffdd3..6166e442d4723 100644
--- a/libc/src/pthread/pthread_attr_getstack.cpp
+++ b/libc/src/pthread/pthread_attr_getstack.cpp
@@ -10,11 +10,12 @@
 #include "pthread_attr_getstacksize.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_getstack,
                    (const pthread_attr_t *__restrict attr,
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_getstack,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_getstack.h b/libc/src/pthread/pthread_attr_getstack.h
index 22ac24a89e422..f28c734c80791 100644
--- a/libc/src/pthread/pthread_attr_getstack.h
+++ b/libc/src/pthread/pthread_attr_getstack.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETSTACK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETSTACK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_getstack(const pthread_attr_t *__restrict attr,
                           void **__restrict stack,
                           size_t *__restrict stacksize);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETSTACK_H
diff --git a/libc/src/pthread/pthread_attr_getstacksize.cpp b/libc/src/pthread/pthread_attr_getstacksize.cpp
index ecc4787951dfa..230ca78502707 100644
--- a/libc/src/pthread/pthread_attr_getstacksize.cpp
+++ b/libc/src/pthread/pthread_attr_getstacksize.cpp
@@ -9,10 +9,11 @@
 #include "pthread_attr_getstacksize.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_getstacksize,
                    (const pthread_attr_t *__restrict attr,
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_getstacksize,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_getstacksize.h b/libc/src/pthread/pthread_attr_getstacksize.h
index 3136f08ffb711..078da78f55e9a 100644
--- a/libc/src/pthread/pthread_attr_getstacksize.h
+++ b/libc/src/pthread/pthread_attr_getstacksize.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETSTACKSIZE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETSTACKSIZE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_getstacksize(const pthread_attr_t *__restrict attr,
                               size_t *__restrict stacksize);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_GETSTACKSIZE_H
diff --git a/libc/src/pthread/pthread_attr_init.cpp b/libc/src/pthread/pthread_attr_init.cpp
index 13d302c18f98a..1fc6430058f68 100644
--- a/libc/src/pthread/pthread_attr_init.cpp
+++ b/libc/src/pthread/pthread_attr_init.cpp
@@ -9,11 +9,12 @@
 #include "pthread_attr_init.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h" // For thread::DEFAULT_*
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_init, (pthread_attr_t * attr)) {
   *attr = pthread_attr_t{
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_init, (pthread_attr_t * attr)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_init.h b/libc/src/pthread/pthread_attr_init.h
index 3a2ad3d2b8b81..69969980725b8 100644
--- a/libc/src/pthread/pthread_attr_init.h
+++ b/libc/src/pthread/pthread_attr_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_INIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_init(pthread_attr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_INIT_H
diff --git a/libc/src/pthread/pthread_attr_setdetachstate.cpp b/libc/src/pthread/pthread_attr_setdetachstate.cpp
index 029b4d514ef43..3aa72d217f28b 100644
--- a/libc/src/pthread/pthread_attr_setdetachstate.cpp
+++ b/libc/src/pthread/pthread_attr_setdetachstate.cpp
@@ -9,11 +9,12 @@
 #include "pthread_attr_setdetachstate.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_setdetachstate,
                    (pthread_attr_t * attr, int detachstate)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_setdetachstate,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_setdetachstate.h b/libc/src/pthread/pthread_attr_setdetachstate.h
index 2b994d9e99d30..06e1aa6503d45 100644
--- a/libc/src/pthread/pthread_attr_setdetachstate.h
+++ b/libc/src/pthread/pthread_attr_setdetachstate.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETDETACHSTATE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETDETACHSTATE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_setdetachstate(pthread_attr_t *attr, int detach_state);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETDETACHSTATE_H
diff --git a/libc/src/pthread/pthread_attr_setguardsize.cpp b/libc/src/pthread/pthread_attr_setguardsize.cpp
index 98855b20cb0fb..389ee773fc5db 100644
--- a/libc/src/pthread/pthread_attr_setguardsize.cpp
+++ b/libc/src/pthread/pthread_attr_setguardsize.cpp
@@ -9,12 +9,13 @@
 #include "pthread_attr_setguardsize.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <linux/param.h> // For EXEC_PAGESIZE.
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_setguardsize,
                    (pthread_attr_t *__restrict attr, size_t guardsize)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_setguardsize,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_setguardsize.h b/libc/src/pthread/pthread_attr_setguardsize.h
index 64d896af02666..f418355d7c58a 100644
--- a/libc/src/pthread/pthread_attr_setguardsize.h
+++ b/libc/src/pthread/pthread_attr_setguardsize.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETGUARDSIZE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETGUARDSIZE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETGUARDSIZE_H
diff --git a/libc/src/pthread/pthread_attr_setstack.cpp b/libc/src/pthread/pthread_attr_setstack.cpp
index dde4e3fd70ed2..f4f2d1450633e 100644
--- a/libc/src/pthread/pthread_attr_setstack.cpp
+++ b/libc/src/pthread/pthread_attr_setstack.cpp
@@ -10,13 +10,14 @@
 #include "pthread_attr_setstacksize.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h" // For STACK_ALIGNMENT
 
 #include <errno.h>
 #include <pthread.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_setstack,
                    (pthread_attr_t *__restrict attr, void *stack,
@@ -35,4 +36,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_setstack,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_setstack.h b/libc/src/pthread/pthread_attr_setstack.h
index fe2a7f4fbd061..9ae2cfaf6b965 100644
--- a/libc/src/pthread/pthread_attr_setstack.h
+++ b/libc/src/pthread/pthread_attr_setstack.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETSTACK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETSTACK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_setstack(pthread_attr_t *attr, void *stack, size_t stacksize);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETSTACK_H
diff --git a/libc/src/pthread/pthread_attr_setstacksize.cpp b/libc/src/pthread/pthread_attr_setstacksize.cpp
index 642a888aba706..f327d3365b5d8 100644
--- a/libc/src/pthread/pthread_attr_setstacksize.cpp
+++ b/libc/src/pthread/pthread_attr_setstacksize.cpp
@@ -9,11 +9,12 @@
 #include "pthread_attr_setstacksize.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_attr_setstacksize,
                    (pthread_attr_t *__restrict attr, size_t stacksize)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, pthread_attr_setstacksize,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_attr_setstacksize.h b/libc/src/pthread/pthread_attr_setstacksize.h
index f5940948949b8..06418564179b0 100644
--- a/libc/src/pthread/pthread_attr_setstacksize.h
+++ b/libc/src/pthread/pthread_attr_setstacksize.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETSTACKSIZE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETSTACKSIZE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ATTR_SETSTACKSIZE_H
diff --git a/libc/src/pthread/pthread_condattr_destroy.cpp b/libc/src/pthread/pthread_condattr_destroy.cpp
index 41994c6941ffe..f0b9fd1c167cb 100644
--- a/libc/src/pthread/pthread_condattr_destroy.cpp
+++ b/libc/src/pthread/pthread_condattr_destroy.cpp
@@ -9,10 +9,11 @@
 #include "pthread_condattr_destroy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_condattr_destroy,
                    (pthread_condattr_t * attr [[gnu::unused]])) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_condattr_destroy,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_condattr_destroy.h b/libc/src/pthread/pthread_condattr_destroy.h
index 2910fa9f96168..15794979b5ba0 100644
--- a/libc/src/pthread/pthread_condattr_destroy.h
+++ b/libc/src/pthread/pthread_condattr_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_DESTROY_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_condattr_destroy(pthread_condattr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_DESTROY_H
diff --git a/libc/src/pthread/pthread_condattr_getclock.cpp b/libc/src/pthread/pthread_condattr_getclock.cpp
index a3a3963f4f429..75fd9308c7b8d 100644
--- a/libc/src/pthread/pthread_condattr_getclock.cpp
+++ b/libc/src/pthread/pthread_condattr_getclock.cpp
@@ -9,11 +9,12 @@
 #include "pthread_condattr_getclock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>   // pthread_condattr_t
 #include <sys/types.h> // clockid_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_condattr_getclock,
                    (const pthread_condattr_t *__restrict attr,
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, pthread_condattr_getclock,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_condattr_getclock.h b/libc/src/pthread/pthread_condattr_getclock.h
index d5878c4f45b53..52025b3040c1a 100644
--- a/libc/src/pthread/pthread_condattr_getclock.h
+++ b/libc/src/pthread/pthread_condattr_getclock.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_GETCLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_GETCLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>   // pthread_condattr_t
 #include <sys/types.h> // clockid_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_condattr_getclock(const pthread_condattr_t *__restrict attr,
                               clockid_t *__restrict clock_id);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_GETCLOCK_H
diff --git a/libc/src/pthread/pthread_condattr_getpshared.cpp b/libc/src/pthread/pthread_condattr_getpshared.cpp
index 0c5fdc115c25d..8692149718238 100644
--- a/libc/src/pthread/pthread_condattr_getpshared.cpp
+++ b/libc/src/pthread/pthread_condattr_getpshared.cpp
@@ -9,10 +9,11 @@
 #include "pthread_condattr_getpshared.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_condattr_getpshared,
                    (const pthread_condattr_t *__restrict attr,
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_condattr_getpshared,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_condattr_getpshared.h b/libc/src/pthread/pthread_condattr_getpshared.h
index 3d7a0c1d357c6..2b1eb10af2101 100644
--- a/libc/src/pthread/pthread_condattr_getpshared.h
+++ b/libc/src/pthread/pthread_condattr_getpshared.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_PSHARED_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_PSHARED_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_condattr_getpshared(const pthread_condattr_t *__restrict attr,
                                 int *__restrict pshared);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_PSHARED_H
diff --git a/libc/src/pthread/pthread_condattr_init.cpp b/libc/src/pthread/pthread_condattr_init.cpp
index 54633b2e3a5ea..12005b8a9d30f 100644
--- a/libc/src/pthread/pthread_condattr_init.cpp
+++ b/libc/src/pthread/pthread_condattr_init.cpp
@@ -9,11 +9,12 @@
 #include "pthread_condattr_init.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h> // pthread_condattr_t, PTHREAD_PROCESS_PRIVATE
 #include <time.h>    // CLOCK_REALTIME
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_condattr_init, (pthread_condattr_t * attr)) {
   attr->clock = CLOCK_REALTIME;
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_condattr_init, (pthread_condattr_t * attr)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_condattr_init.h b/libc/src/pthread/pthread_condattr_init.h
index 9f3c06bb6f4ae..8f681544f6203 100644
--- a/libc/src/pthread/pthread_condattr_init.h
+++ b/libc/src/pthread/pthread_condattr_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_INIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_condattr_init(pthread_condattr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_INIT_H
diff --git a/libc/src/pthread/pthread_condattr_setclock.cpp b/libc/src/pthread/pthread_condattr_setclock.cpp
index 6eca8b30ef7f8..5c0144523f93e 100644
--- a/libc/src/pthread/pthread_condattr_setclock.cpp
+++ b/libc/src/pthread/pthread_condattr_setclock.cpp
@@ -9,13 +9,14 @@
 #include "pthread_condattr_setclock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>     // EINVAL
 #include <pthread.h>   // pthread_condattr_t
 #include <sys/types.h> // clockid_t
 #include <time.h>      // CLOCK_MONOTONIC, CLOCK_REALTIME
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_condattr_setclock,
                    (pthread_condattr_t * attr, clockid_t clock)) {
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, pthread_condattr_setclock,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_condattr_setclock.h b/libc/src/pthread/pthread_condattr_setclock.h
index 328766fe78833..e9fd77a2d5d5a 100644
--- a/libc/src/pthread/pthread_condattr_setclock.h
+++ b/libc/src/pthread/pthread_condattr_setclock.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_SETCLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_SETCLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 #include <sys/types.h> // clockid_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_SETCLOCK_H
diff --git a/libc/src/pthread/pthread_condattr_setpshared.cpp b/libc/src/pthread/pthread_condattr_setpshared.cpp
index 7f1560acad843..536aeadac5d44 100644
--- a/libc/src/pthread/pthread_condattr_setpshared.cpp
+++ b/libc/src/pthread/pthread_condattr_setpshared.cpp
@@ -9,11 +9,12 @@
 #include "pthread_condattr_setpshared.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h> // EINVAL
 #include <pthread.h> // pthread_condattr_t, PTHREAD_PROCESS_SHARED, PTHREAD_PROCESS_PRIVATE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_condattr_setpshared,
                    (pthread_condattr_t * attr, int pshared)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, pthread_condattr_setpshared,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_condattr_setpshared.h b/libc/src/pthread/pthread_condattr_setpshared.h
index 8083bdec78cc4..7a55466660563 100644
--- a/libc/src/pthread/pthread_condattr_setpshared.h
+++ b/libc/src/pthread/pthread_condattr_setpshared.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_SETPSHARED_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_SETPSHARED_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_condattr_setpshared(pthread_condattr_t *attr, int pshared);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CONDATTR_SETPSHARED_H
diff --git a/libc/src/pthread/pthread_create.cpp b/libc/src/pthread/pthread_create.cpp
index 8b406cd09326a..1fb4b50109401 100644
--- a/libc/src/pthread/pthread_create.cpp
+++ b/libc/src/pthread/pthread_create.cpp
@@ -16,13 +16,14 @@
 #include "pthread_attr_getstack.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/threads/thread.h"
 
 #include <errno.h>
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -84,4 +85,4 @@ LLVM_LIBC_FUNCTION(int, pthread_create,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_create.h b/libc/src/pthread/pthread_create.h
index 75466e39df7e1..d6c3c9c2b211c 100644
--- a/libc/src/pthread/pthread_create.h
+++ b/libc/src/pthread/pthread_create.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_CREATE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_CREATE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_create(pthread_t *__restrict thread,
                    const pthread_attr_t *__restrict attr,
                    __pthread_start_t func, void *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_CREATE_H
diff --git a/libc/src/pthread/pthread_detach.cpp b/libc/src/pthread/pthread_detach.cpp
index e8b69b6576265..b3c96678de536 100644
--- a/libc/src/pthread/pthread_detach.cpp
+++ b/libc/src/pthread/pthread_detach.cpp
@@ -9,11 +9,12 @@
 #include "pthread_detach.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_detach, (pthread_t th)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_detach.h b/libc/src/pthread/pthread_detach.h
index d54fdf854de39..471a3581a22ca 100644
--- a/libc/src/pthread/pthread_detach.h
+++ b/libc/src/pthread/pthread_detach.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_DETACH_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_DETACH_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_detach(pthread_t thread);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_DETACH_H
diff --git a/libc/src/pthread/pthread_equal.cpp b/libc/src/pthread/pthread_equal.cpp
index f154e9ba9a421..7d2873897f8d9 100644
--- a/libc/src/pthread/pthread_equal.cpp
+++ b/libc/src/pthread/pthread_equal.cpp
@@ -9,11 +9,12 @@
 #include "pthread_equal.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_equal, (pthread_t lhs, pthread_t rhs)) {
   return *lhs_internal == *rhs_internal;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_equal.h b/libc/src/pthread/pthread_equal.h
index 448fb8fc07d1d..a64990a4bb7ce 100644
--- a/libc/src/pthread/pthread_equal.h
+++ b/libc/src/pthread/pthread_equal.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_EQUAL_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_EQUAL_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_equal(pthread_t lhs, pthread_t rhs);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_EQUAL_H
diff --git a/libc/src/pthread/pthread_exit.cpp b/libc/src/pthread/pthread_exit.cpp
index acba665d0fa4f..7e3bbee8b20e6 100644
--- a/libc/src/pthread/pthread_exit.cpp
+++ b/libc/src/pthread/pthread_exit.cpp
@@ -9,11 +9,12 @@
 #include "pthread_exit.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(void, pthread_exit, (void *retval)) {
   LIBC_NAMESPACE::thread_exit(ThreadReturnValue(retval), ThreadStyle::POSIX);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_exit.h b/libc/src/pthread/pthread_exit.h
index 6617dab84c69e..9aa9e0a0b16e5 100644
--- a/libc/src/pthread/pthread_exit.h
+++ b/libc/src/pthread/pthread_exit.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_EXIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_EXIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void pthread_exit(void *retval);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_EXIT_H
diff --git a/libc/src/pthread/pthread_getname_np.cpp b/libc/src/pthread/pthread_getname_np.cpp
index 3de8c2e92f7a0..8df3ae2458621 100644
--- a/libc/src/pthread/pthread_getname_np.cpp
+++ b/libc/src/pthread/pthread_getname_np.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/CPP/span.h"
 #include "src/__support/CPP/stringstream.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, pthread_getname_np,
   return thread->get_name(name_stream);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_getname_np.h b/libc/src/pthread/pthread_getname_np.h
index a51573749ba87..417bc2263c383 100644
--- a/libc/src/pthread/pthread_getname_np.h
+++ b/libc/src/pthread/pthread_getname_np.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_GETNAME_NP_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_GETNAME_NP_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_getname_np(pthread_t, char *, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_GETNAME_NP_H
diff --git a/libc/src/pthread/pthread_getspecific.cpp b/libc/src/pthread/pthread_getspecific.cpp
index 3893b52efd6e9..eddc026db62e1 100644
--- a/libc/src/pthread/pthread_getspecific.cpp
+++ b/libc/src/pthread/pthread_getspecific.cpp
@@ -9,15 +9,16 @@
 #include "pthread_getspecific.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, pthread_getspecific, (pthread_key_t key)) {
   return get_tss_value(key);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_getspecific.h b/libc/src/pthread/pthread_getspecific.h
index 28439838bd65b..f4914886f1432 100644
--- a/libc/src/pthread/pthread_getspecific.h
+++ b/libc/src/pthread/pthread_getspecific.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_GETSPECIFIC_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_GETSPECIFIC_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *pthread_getspecific(pthread_key_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_GETSPECIFIC_H
diff --git a/libc/src/pthread/pthread_join.cpp b/libc/src/pthread/pthread_join.cpp
index 8d4c2dd46c474..78f99655e501e 100644
--- a/libc/src/pthread/pthread_join.cpp
+++ b/libc/src/pthread/pthread_join.cpp
@@ -9,11 +9,12 @@
 #include "pthread_join.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_join, (pthread_t th, void **retval)) {
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_join.h b/libc/src/pthread/pthread_join.h
index 506efaead40ff..e430ec3c4db0b 100644
--- a/libc/src/pthread/pthread_join.h
+++ b/libc/src/pthread/pthread_join.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_JOIN_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_JOIN_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_join(pthread_t thread, void **retval);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_JOIN_H
diff --git a/libc/src/pthread/pthread_key_create.cpp b/libc/src/pthread/pthread_key_create.cpp
index 81c1f39954a5b..0583baca22f4d 100644
--- a/libc/src/pthread/pthread_key_create.cpp
+++ b/libc/src/pthread/pthread_key_create.cpp
@@ -9,12 +9,13 @@
 #include "pthread_key_create.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_key_create,
                    (pthread_key_t * key, __pthread_tss_dtor_t dtor)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, pthread_key_create,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_key_create.h b/libc/src/pthread/pthread_key_create.h
index f12c9088e7c86..23a861cd878e7 100644
--- a/libc/src/pthread/pthread_key_create.h
+++ b/libc/src/pthread/pthread_key_create.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_KEY_CREATE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_KEY_CREATE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_key_create(pthread_key_t *key, __pthread_tss_dtor_t dtor);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_KEY_CREATE_H
diff --git a/libc/src/pthread/pthread_key_delete.cpp b/libc/src/pthread/pthread_key_delete.cpp
index 18a4cc7e18665..20484fa9bdf82 100644
--- a/libc/src/pthread/pthread_key_delete.cpp
+++ b/libc/src/pthread/pthread_key_delete.cpp
@@ -9,12 +9,13 @@
 #include "pthread_key_delete.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_key_delete, (pthread_key_t key)) {
   if (LIBC_NAMESPACE::tss_key_delete(key))
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_key_delete, (pthread_key_t key)) {
     return EINVAL;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_key_delete.h b/libc/src/pthread/pthread_key_delete.h
index 5b7e40bb373a6..62572eeda3860 100644
--- a/libc/src/pthread/pthread_key_delete.h
+++ b/libc/src/pthread/pthread_key_delete.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_KEY_DELETE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_KEY_DELETE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_key_delete(pthread_key_t key);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_KEY_DELETE_H
diff --git a/libc/src/pthread/pthread_mutex_destroy.cpp b/libc/src/pthread/pthread_mutex_destroy.cpp
index 65f4b7901f4f1..4603ebed394ad 100644
--- a/libc/src/pthread/pthread_mutex_destroy.cpp
+++ b/libc/src/pthread/pthread_mutex_destroy.cpp
@@ -9,11 +9,12 @@
 #include "pthread_mutex_destroy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutex_destroy, (pthread_mutex_t * mutex)) {
   auto *m = reinterpret_cast<Mutex *>(mutex);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutex_destroy, (pthread_mutex_t * mutex)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutex_destroy.h b/libc/src/pthread/pthread_mutex_destroy.h
index 2df303eb2d6ca..ebbed187d5c16 100644
--- a/libc/src/pthread/pthread_mutex_destroy.h
+++ b/libc/src/pthread/pthread_mutex_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_DESTROY_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutex_destroy(pthread_mutex_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_DESTROY_H
diff --git a/libc/src/pthread/pthread_mutex_init.cpp b/libc/src/pthread/pthread_mutex_init.cpp
index 3914669b1c73e..0281f732473d9 100644
--- a/libc/src/pthread/pthread_mutex_init.cpp
+++ b/libc/src/pthread/pthread_mutex_init.cpp
@@ -10,12 +10,13 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(Mutex) <= sizeof(pthread_mutex_t),
               "The public pthread_mutex_t type cannot accommodate the internal "
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutex_init,
   return err == MutexError::NONE ? 0 : EAGAIN;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutex_init.h b/libc/src/pthread/pthread_mutex_init.h
index e6b5a0ac7eef9..8e3ba60303ec6 100644
--- a/libc/src/pthread/pthread_mutex_init.h
+++ b/libc/src/pthread/pthread_mutex_init.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_INIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutex_init(pthread_mutex_t *mutex,
                        const pthread_mutexattr_t *__restrict attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_INIT_H
diff --git a/libc/src/pthread/pthread_mutex_lock.cpp b/libc/src/pthread/pthread_mutex_lock.cpp
index efc6f75e43429..1537454873c12 100644
--- a/libc/src/pthread/pthread_mutex_lock.cpp
+++ b/libc/src/pthread/pthread_mutex_lock.cpp
@@ -9,11 +9,12 @@
 #include "pthread_mutex_lock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The implementation currently handles only plain mutexes.
 LLVM_LIBC_FUNCTION(int, pthread_mutex_lock, (pthread_mutex_t * mutex)) {
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutex_lock, (pthread_mutex_t * mutex)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutex_lock.h b/libc/src/pthread/pthread_mutex_lock.h
index c5a835e4fc870..a83ae2cb334b4 100644
--- a/libc/src/pthread/pthread_mutex_lock.h
+++ b/libc/src/pthread/pthread_mutex_lock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_LOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_LOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutex_lock(pthread_mutex_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_LOCK_H
diff --git a/libc/src/pthread/pthread_mutex_unlock.cpp b/libc/src/pthread/pthread_mutex_unlock.cpp
index b0819bd5fcd89..de4d2cbe9efb5 100644
--- a/libc/src/pthread/pthread_mutex_unlock.cpp
+++ b/libc/src/pthread/pthread_mutex_unlock.cpp
@@ -9,11 +9,12 @@
 #include "pthread_mutex_unlock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The implementation currently handles only plain mutexes.
 LLVM_LIBC_FUNCTION(int, pthread_mutex_unlock, (pthread_mutex_t * mutex)) {
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutex_unlock, (pthread_mutex_t * mutex)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutex_unlock.h b/libc/src/pthread/pthread_mutex_unlock.h
index 303ec001d2378..a3d661a06c4be 100644
--- a/libc/src/pthread/pthread_mutex_unlock.h
+++ b/libc/src/pthread/pthread_mutex_unlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_UNLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_UNLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutex_unlock(pthread_mutex_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEX_UNLOCK_H
diff --git a/libc/src/pthread/pthread_mutexattr.h b/libc/src/pthread/pthread_mutexattr.h
index 292ceebe049f9..be719b9d14997 100644
--- a/libc/src/pthread/pthread_mutexattr.h
+++ b/libc/src/pthread/pthread_mutexattr.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 enum class PThreadMutexAttrPos : unsigned int {
   TYPE_SHIFT = 0,
@@ -48,6 +49,6 @@ LIBC_INLINE int get_mutexattr_pshared(pthread_mutexattr_t attr) {
          unsigned(PThreadMutexAttrPos::PSHARED_SHIFT);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_H
diff --git a/libc/src/pthread/pthread_mutexattr_destroy.cpp b/libc/src/pthread/pthread_mutexattr_destroy.cpp
index 9722d2b551cd7..3b2551afd11b5 100644
--- a/libc/src/pthread/pthread_mutexattr_destroy.cpp
+++ b/libc/src/pthread/pthread_mutexattr_destroy.cpp
@@ -10,13 +10,14 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_destroy, (pthread_mutexattr_t *)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_destroy.h b/libc/src/pthread/pthread_mutexattr_destroy.h
index 32a8b949fad8e..815145a0199e8 100644
--- a/libc/src/pthread/pthread_mutexattr_destroy.h
+++ b/libc/src/pthread/pthread_mutexattr_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_DESTROY_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_DESTROY_H
diff --git a/libc/src/pthread/pthread_mutexattr_getpshared.cpp b/libc/src/pthread/pthread_mutexattr_getpshared.cpp
index a89af08464e2f..2d83a5229e9ec 100644
--- a/libc/src/pthread/pthread_mutexattr_getpshared.cpp
+++ b/libc/src/pthread/pthread_mutexattr_getpshared.cpp
@@ -10,10 +10,11 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_getpshared,
                    (const pthread_mutexattr_t *__restrict attr,
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_getpshared,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_getpshared.h b/libc/src/pthread/pthread_mutexattr_getpshared.h
index 843fa36583d67..31b204acf036f 100644
--- a/libc/src/pthread/pthread_mutexattr_getpshared.h
+++ b/libc/src/pthread/pthread_mutexattr_getpshared.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETPSHARED_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETPSHARED_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict attr,
                                  int *__restrict pshared);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETPSHARED_H
diff --git a/libc/src/pthread/pthread_mutexattr_getrobust.cpp b/libc/src/pthread/pthread_mutexattr_getrobust.cpp
index 9c54b075dd944..508b502a58008 100644
--- a/libc/src/pthread/pthread_mutexattr_getrobust.cpp
+++ b/libc/src/pthread/pthread_mutexattr_getrobust.cpp
@@ -10,10 +10,11 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_getrobust,
                    (const pthread_mutexattr_t *__restrict attr,
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_getrobust,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_getrobust.h b/libc/src/pthread/pthread_mutexattr_getrobust.h
index 5ef2b929d7049..c968f540e2060 100644
--- a/libc/src/pthread/pthread_mutexattr_getrobust.h
+++ b/libc/src/pthread/pthread_mutexattr_getrobust.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETROBUST_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETROBUST_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_getrobust(const pthread_mutexattr_t *__restrict attr,
                                 int *__restrict robust);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETROBUST_H
diff --git a/libc/src/pthread/pthread_mutexattr_gettype.cpp b/libc/src/pthread/pthread_mutexattr_gettype.cpp
index c54396eff6fd8..3747bf5ce73e9 100644
--- a/libc/src/pthread/pthread_mutexattr_gettype.cpp
+++ b/libc/src/pthread/pthread_mutexattr_gettype.cpp
@@ -10,10 +10,11 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_gettype,
                    (const pthread_mutexattr_t *__restrict attr,
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_gettype,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_gettype.h b/libc/src/pthread/pthread_mutexattr_gettype.h
index b0e7c6e8e6a0c..67562b371c377 100644
--- a/libc/src/pthread/pthread_mutexattr_gettype.h
+++ b/libc/src/pthread/pthread_mutexattr_gettype.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETTYPE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETTYPE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict attr,
                               int *__restrict type);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_GETTYPE_H
diff --git a/libc/src/pthread/pthread_mutexattr_init.cpp b/libc/src/pthread/pthread_mutexattr_init.cpp
index 439d198249a1e..7f0ce0b60f535 100644
--- a/libc/src/pthread/pthread_mutexattr_init.cpp
+++ b/libc/src/pthread/pthread_mutexattr_init.cpp
@@ -10,8 +10,9 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_init, (pthread_mutexattr_t * attr)) {
   // Set the default attributes and mark the attribute object as initiliazed
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_init, (pthread_mutexattr_t * attr)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_init.h b/libc/src/pthread/pthread_mutexattr_init.h
index 13de2e5925102..fdcd3471e6f28 100644
--- a/libc/src/pthread/pthread_mutexattr_init.h
+++ b/libc/src/pthread/pthread_mutexattr_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_INIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_init(pthread_mutexattr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_INIT_H
diff --git a/libc/src/pthread/pthread_mutexattr_setpshared.cpp b/libc/src/pthread/pthread_mutexattr_setpshared.cpp
index f654d337bac25..b290de764c91b 100644
--- a/libc/src/pthread/pthread_mutexattr_setpshared.cpp
+++ b/libc/src/pthread/pthread_mutexattr_setpshared.cpp
@@ -10,11 +10,12 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_setpshared,
                    (pthread_mutexattr_t *__restrict attr, int pshared)) {
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_setpshared,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_setpshared.h b/libc/src/pthread/pthread_mutexattr_setpshared.h
index 0726b7792fedb..6a04cd9ae433a 100644
--- a/libc/src/pthread/pthread_mutexattr_setpshared.h
+++ b/libc/src/pthread/pthread_mutexattr_setpshared.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETPSHARED_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETPSHARED_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_setpshared(pthread_mutexattr_t *__restrict attr,
                                  int pshared);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETPSHARED_H
diff --git a/libc/src/pthread/pthread_mutexattr_setrobust.cpp b/libc/src/pthread/pthread_mutexattr_setrobust.cpp
index 15fdac61e438d..e572827486c07 100644
--- a/libc/src/pthread/pthread_mutexattr_setrobust.cpp
+++ b/libc/src/pthread/pthread_mutexattr_setrobust.cpp
@@ -10,11 +10,12 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_setrobust,
                    (pthread_mutexattr_t *__restrict attr, int robust)) {
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_setrobust,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_setrobust.h b/libc/src/pthread/pthread_mutexattr_setrobust.h
index 8361a14e38f68..62f0d052cb389 100644
--- a/libc/src/pthread/pthread_mutexattr_setrobust.h
+++ b/libc/src/pthread/pthread_mutexattr_setrobust.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETROBUST_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETROBUST_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_setrobust(pthread_mutexattr_t *__restrict attr,
                                 int robust);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETROBUST_H
diff --git a/libc/src/pthread/pthread_mutexattr_settype.cpp b/libc/src/pthread/pthread_mutexattr_settype.cpp
index d5514a1cbf832..27e8ff859ba34 100644
--- a/libc/src/pthread/pthread_mutexattr_settype.cpp
+++ b/libc/src/pthread/pthread_mutexattr_settype.cpp
@@ -10,11 +10,12 @@
 #include "pthread_mutexattr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_mutexattr_settype,
                    (pthread_mutexattr_t *__restrict attr, int type)) {
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, pthread_mutexattr_settype,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_mutexattr_settype.h b/libc/src/pthread/pthread_mutexattr_settype.h
index 8ad3285bacf30..1507919c164d6 100644
--- a/libc/src/pthread/pthread_mutexattr_settype.h
+++ b/libc/src/pthread/pthread_mutexattr_settype.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETTYPE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETTYPE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_mutexattr_settype(pthread_mutexattr_t *__restrict attr, int type);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_MUTEXATTR_SETTYPE_H
diff --git a/libc/src/pthread/pthread_once.cpp b/libc/src/pthread/pthread_once.cpp
index 0e0045e9c5407..d78644a8dab26 100644
--- a/libc/src/pthread/pthread_once.cpp
+++ b/libc/src/pthread/pthread_once.cpp
@@ -8,11 +8,12 @@
 
 #include "pthread_once.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/callonce.h"
 
 #include <pthread.h> // For pthread_once_t and __pthread_once_func_t definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_once,
                    (pthread_once_t * flag, __pthread_once_func_t func)) {
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, pthread_once,
                   reinterpret_cast<CallOnceCallback *>(func));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_once.h b/libc/src/pthread/pthread_once.h
index 25ee70a99c4d4..0e9af00a37d20 100644
--- a/libc/src/pthread/pthread_once.h
+++ b/libc/src/pthread/pthread_once.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_ONCE_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_ONCE_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_once(pthread_once_t *flag, __pthread_once_func_t func);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_ONCE_H
diff --git a/libc/src/pthread/pthread_rwlock_destroy.cpp b/libc/src/pthread/pthread_rwlock_destroy.cpp
index d82bb376bda2c..345076aae4348 100644
--- a/libc/src/pthread/pthread_rwlock_destroy.cpp
+++ b/libc/src/pthread/pthread_rwlock_destroy.cpp
@@ -9,12 +9,13 @@
 #include "src/pthread/pthread_rwlock_destroy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlock_destroy, (pthread_rwlock_t * rwlock)) {
   if (!rwlock)
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_destroy, (pthread_rwlock_t * rwlock)) {
   return static_cast<int>(res);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_destroy.h b/libc/src/pthread/pthread_rwlock_destroy.h
index f845e806d6e60..892a049689343 100644
--- a/libc/src/pthread/pthread_rwlock_destroy.h
+++ b/libc/src/pthread/pthread_rwlock_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_DESTROY_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_DESTROY_H
diff --git a/libc/src/pthread/pthread_rwlock_init.cpp b/libc/src/pthread/pthread_rwlock_init.cpp
index b1b58aac6c6ff..d1a31625d0dab 100644
--- a/libc/src/pthread/pthread_rwlock_init.cpp
+++ b/libc/src/pthread/pthread_rwlock_init.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/CPP/new.h"
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(
     sizeof(RwLock) == sizeof(pthread_rwlock_t) &&
@@ -64,4 +65,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_init,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_init.h b/libc/src/pthread/pthread_rwlock_init.h
index 78d2934882c1d..dbd64436fb500 100644
--- a/libc/src/pthread/pthread_rwlock_init.h
+++ b/libc/src/pthread/pthread_rwlock_init.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_INIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_init(pthread_rwlock_t *rwlock,
                         const pthread_rwlockattr_t *__restrict attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_INIT_H
diff --git a/libc/src/pthread/pthread_rwlock_rdlock.cpp b/libc/src/pthread/pthread_rwlock_rdlock.cpp
index e9aee5da4e7e4..16d82301c54a9 100644
--- a/libc/src/pthread/pthread_rwlock_rdlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_rdlock.cpp
@@ -9,12 +9,13 @@
 #include "src/pthread/pthread_rwlock_rdlock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(
     sizeof(RwLock) == sizeof(pthread_rwlock_t) &&
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_rdlock, (pthread_rwlock_t * rwlock)) {
   return static_cast<int>(rw->read_lock());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_rdlock.h b/libc/src/pthread/pthread_rwlock_rdlock.h
index 79027739f4b7c..f5c0c26c6ff89 100644
--- a/libc/src/pthread/pthread_rwlock_rdlock.h
+++ b/libc/src/pthread/pthread_rwlock_rdlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_RDLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_RDLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_RDLOCK_H
diff --git a/libc/src/pthread/pthread_rwlock_timedrdlock.cpp b/libc/src/pthread/pthread_rwlock_timedrdlock.cpp
index 6ce69ea738a93..905541014a4a4 100644
--- a/libc/src/pthread/pthread_rwlock_timedrdlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_timedrdlock.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/threads/linux/rwlock.h"
 #include "src/__support/time/linux/abs_timeout.h"
@@ -17,7 +18,7 @@
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(
     sizeof(RwLock) == sizeof(pthread_rwlock_t) &&
@@ -46,4 +47,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_timedrdlock,
   __builtin_unreachable();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_timedrdlock.h b/libc/src/pthread/pthread_rwlock_timedrdlock.h
index dfa43f25ba706..d6c67dcfd6370 100644
--- a/libc/src/pthread/pthread_rwlock_timedrdlock.h
+++ b/libc/src/pthread/pthread_rwlock_timedrdlock.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TIMEDRDLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TIMEDRDLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict rwlock,
                                const struct timespec *__restrict abs_timeout);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TIMEDRDLOCK_H
diff --git a/libc/src/pthread/pthread_rwlock_timedwrlock.cpp b/libc/src/pthread/pthread_rwlock_timedwrlock.cpp
index ad3f913eb15aa..f77ac40f22b89 100644
--- a/libc/src/pthread/pthread_rwlock_timedwrlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_timedwrlock.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/threads/linux/rwlock.h"
 #include "src/__support/time/linux/abs_timeout.h"
@@ -17,7 +18,7 @@
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlock_timedwrlock,
                    (pthread_rwlock_t *__restrict rwlock,
@@ -40,4 +41,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_timedwrlock,
   __builtin_unreachable();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_timedwrlock.h b/libc/src/pthread/pthread_rwlock_timedwrlock.h
index a39d8de8d330f..995d80c2f5734 100644
--- a/libc/src/pthread/pthread_rwlock_timedwrlock.h
+++ b/libc/src/pthread/pthread_rwlock_timedwrlock.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TIMEDWRLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TIMEDWRLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict rwlock,
                                const struct timespec *__restrict abs_timeout);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TIMEDWRLOCK_H
diff --git a/libc/src/pthread/pthread_rwlock_tryrdlock.cpp b/libc/src/pthread/pthread_rwlock_tryrdlock.cpp
index 9dc1bf09bc830..da59a576b8274 100644
--- a/libc/src/pthread/pthread_rwlock_tryrdlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_tryrdlock.cpp
@@ -9,12 +9,13 @@
 #include "src/pthread/pthread_rwlock_tryrdlock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(
     sizeof(RwLock) == sizeof(pthread_rwlock_t) &&
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_tryrdlock, (pthread_rwlock_t * rwlock)) {
   return static_cast<int>(rw->try_read_lock());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_tryrdlock.h b/libc/src/pthread/pthread_rwlock_tryrdlock.h
index b07ab5b152b1a..10ef7afbc160e 100644
--- a/libc/src/pthread/pthread_rwlock_tryrdlock.h
+++ b/libc/src/pthread/pthread_rwlock_tryrdlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TRYRDLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TRYRDLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TRYRDLOCK_H
diff --git a/libc/src/pthread/pthread_rwlock_trywrlock.cpp b/libc/src/pthread/pthread_rwlock_trywrlock.cpp
index e4ace3cb350af..ccd1bd49c402c 100644
--- a/libc/src/pthread/pthread_rwlock_trywrlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_trywrlock.cpp
@@ -9,12 +9,13 @@
 #include "src/pthread/pthread_rwlock_trywrlock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(
     sizeof(RwLock) == sizeof(pthread_rwlock_t) &&
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_trywrlock, (pthread_rwlock_t * rwlock)) {
   return static_cast<int>(rw->try_write_lock());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_trywrlock.h b/libc/src/pthread/pthread_rwlock_trywrlock.h
index fc146c6db859f..df185b087ce6f 100644
--- a/libc/src/pthread/pthread_rwlock_trywrlock.h
+++ b/libc/src/pthread/pthread_rwlock_trywrlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TRYWRLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TRYWRLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_TRYWRLOCK_H
diff --git a/libc/src/pthread/pthread_rwlock_unlock.cpp b/libc/src/pthread/pthread_rwlock_unlock.cpp
index 21cedf42a8d50..77c50a8e65fdf 100644
--- a/libc/src/pthread/pthread_rwlock_unlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_unlock.cpp
@@ -9,12 +9,13 @@
 #include "src/pthread/pthread_rwlock_unlock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlock_unlock, (pthread_rwlock_t * rwlock)) {
   if (!rwlock)
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_unlock, (pthread_rwlock_t * rwlock)) {
   return static_cast<int>(rw->unlock());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_unlock.h b/libc/src/pthread/pthread_rwlock_unlock.h
index b9a72f1e06992..d416f8d32f9f0 100644
--- a/libc/src/pthread/pthread_rwlock_unlock.h
+++ b/libc/src/pthread/pthread_rwlock_unlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_UNLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_UNLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_unlock(pthread_rwlock_t *rwlock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_UNLOCK_H
diff --git a/libc/src/pthread/pthread_rwlock_wrlock.cpp b/libc/src/pthread/pthread_rwlock_wrlock.cpp
index 5d3868a58f4e9..c2561c81f4bd0 100644
--- a/libc/src/pthread/pthread_rwlock_wrlock.cpp
+++ b/libc/src/pthread/pthread_rwlock_wrlock.cpp
@@ -9,12 +9,13 @@
 #include "src/pthread/pthread_rwlock_wrlock.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/rwlock.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(
     sizeof(RwLock) == sizeof(pthread_rwlock_t) &&
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_wrlock, (pthread_rwlock_t * rwlock)) {
   return static_cast<int>(rw->write_lock());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlock_wrlock.h b/libc/src/pthread/pthread_rwlock_wrlock.h
index ba77c1f1f09ac..662c3478baf07 100644
--- a/libc/src/pthread/pthread_rwlock_wrlock.h
+++ b/libc/src/pthread/pthread_rwlock_wrlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_WRLOCK_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_WRLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCK_WRLOCK_H
diff --git a/libc/src/pthread/pthread_rwlockattr_destroy.cpp b/libc/src/pthread/pthread_rwlockattr_destroy.cpp
index e3ca75112f0ef..b86cd1188fe29 100644
--- a/libc/src/pthread/pthread_rwlockattr_destroy.cpp
+++ b/libc/src/pthread/pthread_rwlockattr_destroy.cpp
@@ -9,10 +9,11 @@
 #include "pthread_rwlockattr_destroy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h> // pthread_rwlockattr_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_destroy,
                    (pthread_rwlockattr_t * attr [[gnu::unused]])) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_destroy,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlockattr_destroy.h b/libc/src/pthread/pthread_rwlockattr_destroy.h
index 5904d6b004187..1de3d9ef58867 100644
--- a/libc/src/pthread/pthread_rwlockattr_destroy.h
+++ b/libc/src/pthread/pthread_rwlockattr_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_DESTROY_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlockattr_destroy(pthread_rwlockattr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_DESTROY_H
diff --git a/libc/src/pthread/pthread_rwlockattr_getkind_np.cpp b/libc/src/pthread/pthread_rwlockattr_getkind_np.cpp
index 0c821797b42ca..9c034cf50b3bf 100644
--- a/libc/src/pthread/pthread_rwlockattr_getkind_np.cpp
+++ b/libc/src/pthread/pthread_rwlockattr_getkind_np.cpp
@@ -9,10 +9,11 @@
 #include "pthread_rwlockattr_getkind_np.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h> // pthread_rwlockattr_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_getkind_np,
                    (const pthread_rwlockattr_t *__restrict attr,
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_getkind_np,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlockattr_getkind_np.h b/libc/src/pthread/pthread_rwlockattr_getkind_np.h
index 51f633cd559d4..5feeeb265f96f 100644
--- a/libc/src/pthread/pthread_rwlockattr_getkind_np.h
+++ b/libc/src/pthread/pthread_rwlockattr_getkind_np.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_GETKIND_NP_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_GETKIND_NP_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *__restrict attr,
                                   int *__restrict pref);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_GETKIND_NP_H
diff --git a/libc/src/pthread/pthread_rwlockattr_getpshared.cpp b/libc/src/pthread/pthread_rwlockattr_getpshared.cpp
index 0dad230a2bde2..0943e3374ed00 100644
--- a/libc/src/pthread/pthread_rwlockattr_getpshared.cpp
+++ b/libc/src/pthread/pthread_rwlockattr_getpshared.cpp
@@ -9,10 +9,11 @@
 #include "pthread_rwlockattr_getpshared.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h> // pthread_rwlockattr_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_getpshared,
                    (const pthread_rwlockattr_t *attr, int *pshared)) {
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_getpshared,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlockattr_getpshared.h b/libc/src/pthread/pthread_rwlockattr_getpshared.h
index 64843e59aae69..77fd767594b81 100644
--- a/libc/src/pthread/pthread_rwlockattr_getpshared.h
+++ b/libc/src/pthread/pthread_rwlockattr_getpshared.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_GETPSHARED_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_GETPSHARED_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *attr,
                                   int *pshared);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_GETPSHARED_H
diff --git a/libc/src/pthread/pthread_rwlockattr_init.cpp b/libc/src/pthread/pthread_rwlockattr_init.cpp
index bbc89555c6c1c..3ff1041d11c87 100644
--- a/libc/src/pthread/pthread_rwlockattr_init.cpp
+++ b/libc/src/pthread/pthread_rwlockattr_init.cpp
@@ -9,10 +9,11 @@
 #include "pthread_rwlockattr_init.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <pthread.h> // pthread_rwlockattr_t, PTHREAD_PROCESS_PRIVATE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_init,
                    (pthread_rwlockattr_t * attr)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_init,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlockattr_init.h b/libc/src/pthread/pthread_rwlockattr_init.h
index 30ae499fb65dc..c2e525fcf0388 100644
--- a/libc/src/pthread/pthread_rwlockattr_init.h
+++ b/libc/src/pthread/pthread_rwlockattr_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_INIT_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlockattr_init(pthread_rwlockattr_t *attr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_INIT_H
diff --git a/libc/src/pthread/pthread_rwlockattr_setkind_np.cpp b/libc/src/pthread/pthread_rwlockattr_setkind_np.cpp
index 47fbf2a851e50..45dbb05c7ab89 100644
--- a/libc/src/pthread/pthread_rwlockattr_setkind_np.cpp
+++ b/libc/src/pthread/pthread_rwlockattr_setkind_np.cpp
@@ -9,11 +9,12 @@
 #include "pthread_rwlockattr_setkind_np.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <pthread.h> // pthread_rwlockattr_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_setkind_np,
                    (pthread_rwlockattr_t * attr, int pref)) {
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_setkind_np,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlockattr_setkind_np.h b/libc/src/pthread/pthread_rwlockattr_setkind_np.h
index 00ef8e1bbe009..cea5566f9f865 100644
--- a/libc/src/pthread/pthread_rwlockattr_setkind_np.h
+++ b/libc/src/pthread/pthread_rwlockattr_setkind_np.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_SETKIND_NP_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_SETKIND_NP_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *attr, int pref);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_SETKIND_NP_H
diff --git a/libc/src/pthread/pthread_rwlockattr_setpshared.cpp b/libc/src/pthread/pthread_rwlockattr_setpshared.cpp
index 6bcba7c1b4935..8088b68fdf33f 100644
--- a/libc/src/pthread/pthread_rwlockattr_setpshared.cpp
+++ b/libc/src/pthread/pthread_rwlockattr_setpshared.cpp
@@ -9,11 +9,12 @@
 #include "pthread_rwlockattr_setpshared.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h> // EINVAL
 #include <pthread.h> // pthread_rwlockattr_t, PTHREAD_PROCESS_SHARED, PTHREAD_PROCESS_PRIVATE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_setpshared,
                    (pthread_rwlockattr_t * attr, int pshared)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlockattr_setpshared,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_rwlockattr_setpshared.h b/libc/src/pthread/pthread_rwlockattr_setpshared.h
index 393c07d1eecbc..69058655453c4 100644
--- a/libc/src/pthread/pthread_rwlockattr_setpshared.h
+++ b/libc/src/pthread/pthread_rwlockattr_setpshared.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_SETPSHARED_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_SETPSHARED_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *attr, int pshared);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_RWLOCKATTR_SETPSHARED_H
diff --git a/libc/src/pthread/pthread_self.cpp b/libc/src/pthread/pthread_self.cpp
index 3e74f964c9af2..c3169ec1ca5c4 100644
--- a/libc/src/pthread/pthread_self.cpp
+++ b/libc/src/pthread/pthread_self.cpp
@@ -9,11 +9,12 @@
 #include "pthread_self.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h> // For pthread_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(pthread_t, pthread_self, ()) {
   return th;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_self.h b/libc/src/pthread/pthread_self.h
index 058072e45ed28..4edb5661b79e2 100644
--- a/libc/src/pthread/pthread_self.h
+++ b/libc/src/pthread/pthread_self.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_SELF_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_SELF_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pthread_t pthread_self();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_SELF_H
diff --git a/libc/src/pthread/pthread_setname_np.cpp b/libc/src/pthread/pthread_setname_np.cpp
index e211d7e082740..785a96a09df02 100644
--- a/libc/src/pthread/pthread_setname_np.cpp
+++ b/libc/src/pthread/pthread_setname_np.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(pthread_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between pthread_t and internal Thread.");
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_setname_np, (pthread_t th, const char *name)) {
   return thread->set_name(cpp::string_view(name));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_setname_np.h b/libc/src/pthread/pthread_setname_np.h
index e240425ae2b46..6dc6bfb9d30a3 100644
--- a/libc/src/pthread/pthread_setname_np.h
+++ b/libc/src/pthread/pthread_setname_np.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_SETNAME_NP_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_SETNAME_NP_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_setname_np(pthread_t, const char *name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_SETNAME_NP_H
diff --git a/libc/src/pthread/pthread_setspecific.cpp b/libc/src/pthread/pthread_setspecific.cpp
index e9b23d8483a8f..5587a2d937abb 100644
--- a/libc/src/pthread/pthread_setspecific.cpp
+++ b/libc/src/pthread/pthread_setspecific.cpp
@@ -9,12 +9,13 @@
 #include "pthread_setspecific.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <errno.h>
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pthread_setspecific,
                    (pthread_key_t key, const void *data)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, pthread_setspecific,
     return EINVAL;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/pthread/pthread_setspecific.h b/libc/src/pthread/pthread_setspecific.h
index af9a890fd0aeb..2a85968ba7b5b 100644
--- a/libc/src/pthread/pthread_setspecific.h
+++ b/libc/src/pthread/pthread_setspecific.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_PTHREAD_PTHREAD_SETSPECIFIC_H
 #define LLVM_LIBC_SRC_PTHREAD_PTHREAD_SETSPECIFIC_H
 
+#include "src/__support/macros/config.h"
 #include <pthread.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int pthread_setspecific(pthread_key_t, const void *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_PTHREAD_PTHREAD_SETSPECIFIC_H
diff --git a/libc/src/sched/linux/sched_get_priority_max.cpp b/libc/src/sched/linux/sched_get_priority_max.cpp
index 0b6537ecd84c6..77a82c77405f3 100644
--- a/libc/src/sched/linux/sched_get_priority_max.cpp
+++ b/libc/src/sched/linux/sched_get_priority_max.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_get_priority_max, (int policy)) {
   int ret =
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, sched_get_priority_max, (int policy)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_get_priority_min.cpp b/libc/src/sched/linux/sched_get_priority_min.cpp
index 1240a500887ee..fca66a15edb55 100644
--- a/libc/src/sched/linux/sched_get_priority_min.cpp
+++ b/libc/src/sched/linux/sched_get_priority_min.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_get_priority_min, (int policy)) {
   int ret =
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, sched_get_priority_min, (int policy)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_getaffinity.cpp b/libc/src/sched/linux/sched_getaffinity.cpp
index 476576178fa48..7b1fd8c5aa2af 100644
--- a/libc/src/sched/linux/sched_getaffinity.cpp
+++ b/libc/src/sched/linux/sched_getaffinity.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sched.h>
 #include <stdint.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_getaffinity,
                    (pid_t tid, size_t cpuset_size, cpu_set_t *mask)) {
@@ -36,4 +37,4 @@ LLVM_LIBC_FUNCTION(int, sched_getaffinity,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_getcpucount.cpp b/libc/src/sched/linux/sched_getcpucount.cpp
index a816d92e4c0b5..dbda4b2c789ad 100644
--- a/libc/src/sched/linux/sched_getcpucount.cpp
+++ b/libc/src/sched/linux/sched_getcpucount.cpp
@@ -9,11 +9,12 @@
 #include "src/sched/sched_getcpucount.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <sched.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, __sched_getcpucount,
                    (size_t cpuset_size, const cpu_set_t *mask)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, __sched_getcpucount,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_getparam.cpp b/libc/src/sched/linux/sched_getparam.cpp
index 64a62c5fd5e84..75756a65f0ede 100644
--- a/libc/src/sched/linux/sched_getparam.cpp
+++ b/libc/src/sched/linux/sched_getparam.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_getparam,
                    (pid_t tid, struct sched_param *param)) {
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, sched_getparam,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_getscheduler.cpp b/libc/src/sched/linux/sched_getscheduler.cpp
index 992a11d292591..545cda8e7484b 100644
--- a/libc/src/sched/linux/sched_getscheduler.cpp
+++ b/libc/src/sched/linux/sched_getscheduler.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_getscheduler, (pid_t tid)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_sched_getscheduler, tid);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, sched_getscheduler, (pid_t tid)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_rr_get_interval.cpp b/libc/src/sched/linux/sched_rr_get_interval.cpp
index 5dcac203bb418..1f0ef69dfc893 100644
--- a/libc/src/sched/linux/sched_rr_get_interval.cpp
+++ b/libc/src/sched/linux/sched_rr_get_interval.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
@@ -18,7 +19,7 @@
 #include <linux/time_types.h> // For __kernel_timespec.
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_rr_get_interval,
                    (pid_t tid, struct timespec *tp)) {
@@ -53,4 +54,4 @@ LLVM_LIBC_FUNCTION(int, sched_rr_get_interval,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_setaffinity.cpp b/libc/src/sched/linux/sched_setaffinity.cpp
index 509894258e126..cad48c26bf938 100644
--- a/libc/src/sched/linux/sched_setaffinity.cpp
+++ b/libc/src/sched/linux/sched_setaffinity.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sched.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_setaffinity,
                    (pid_t tid, size_t cpuset_size, const cpu_set_t *mask)) {
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, sched_setaffinity,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_setparam.cpp b/libc/src/sched/linux/sched_setparam.cpp
index 79acf78ef887e..e78e78a707e05 100644
--- a/libc/src/sched/linux/sched_setparam.cpp
+++ b/libc/src/sched/linux/sched_setparam.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_setparam,
                    (pid_t tid, const struct sched_param *param)) {
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, sched_setparam,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_setscheduler.cpp b/libc/src/sched/linux/sched_setscheduler.cpp
index 1c18526a3c814..b6b6f667b3f9e 100644
--- a/libc/src/sched/linux/sched_setscheduler.cpp
+++ b/libc/src/sched/linux/sched_setscheduler.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_setscheduler,
                    (pid_t tid, int policy, const struct sched_param *param)) {
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, sched_setscheduler,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/linux/sched_yield.cpp b/libc/src/sched/linux/sched_yield.cpp
index 6878a375aa092..3de9d0ba35717 100644
--- a/libc/src/sched/linux/sched_yield.cpp
+++ b/libc/src/sched/linux/sched_yield.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sched_yield, ()) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_sched_yield);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, sched_yield, ()) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sched/sched_get_priority_max.h b/libc/src/sched/sched_get_priority_max.h
index 01611dae7bd12..e37bec723b847 100644
--- a/libc/src/sched/sched_get_priority_max.h
+++ b/libc/src/sched/sched_get_priority_max.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_GET_PRIORITY_MAX_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_GET_PRIORITY_MAX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_get_priority_max(int policy);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_GET_PRIORITY_MAX_H
diff --git a/libc/src/sched/sched_get_priority_min.h b/libc/src/sched/sched_get_priority_min.h
index f4b5d5487887c..691d8482e1c7a 100644
--- a/libc/src/sched/sched_get_priority_min.h
+++ b/libc/src/sched/sched_get_priority_min.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_GET_PRIORITY_MIN_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_GET_PRIORITY_MIN_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_get_priority_min(int policy);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_GET_PRIORITY_MIN_H
diff --git a/libc/src/sched/sched_getaffinity.h b/libc/src/sched/sched_getaffinity.h
index 2f29b7e2a0b9e..52ec5bca6b22a 100644
--- a/libc/src/sched/sched_getaffinity.h
+++ b/libc/src/sched/sched_getaffinity.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_GETAFFINITY_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_GETAFFINITY_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_getaffinity(pid_t tid, size_t cpuset_size, cpu_set_t *mask);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_GETAFFINITY_H
diff --git a/libc/src/sched/sched_getcpucount.h b/libc/src/sched/sched_getcpucount.h
index a0c696fd1f4ae..8f35301ca6c0d 100644
--- a/libc/src/sched/sched_getcpucount.h
+++ b/libc/src/sched/sched_getcpucount.h
@@ -9,15 +9,16 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_GETCPUCOUNT_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_GETCPUCOUNT_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This function is for internal use in the CPU_COUNT macro, but since that's a
 // macro and will be applied to client files, this must be a public entrypoint.
 int __sched_getcpucount(size_t cpuset_size, const cpu_set_t *mask);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_GETCPUCOUNT_H
diff --git a/libc/src/sched/sched_getparam.h b/libc/src/sched/sched_getparam.h
index 09bed7012e3fd..e1b23656d5859 100644
--- a/libc/src/sched/sched_getparam.h
+++ b/libc/src/sched/sched_getparam.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_GETPARAM_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_GETPARAM_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_getparam(pid_t tid, struct sched_param *param);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_GETPARAM_H
diff --git a/libc/src/sched/sched_getscheduler.h b/libc/src/sched/sched_getscheduler.h
index 6e4fe060a6c4e..d29e902180ea8 100644
--- a/libc/src/sched/sched_getscheduler.h
+++ b/libc/src/sched/sched_getscheduler.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_GETSCHEDULER_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_GETSCHEDULER_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_getscheduler(pid_t tid);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_GETSCHEDULER_H
diff --git a/libc/src/sched/sched_rr_get_interval.h b/libc/src/sched/sched_rr_get_interval.h
index f9eb2d9a2220d..ff093298a3bb3 100644
--- a/libc/src/sched/sched_rr_get_interval.h
+++ b/libc/src/sched/sched_rr_get_interval.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_RR_GET_INTERVAL_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_RR_GET_INTERVAL_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_rr_get_interval(pid_t tid, struct timespec *tp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_RR_GET_INTERVAL_H
diff --git a/libc/src/sched/sched_setaffinity.h b/libc/src/sched/sched_setaffinity.h
index 5da6dd43e7d5d..cb2303dd813e2 100644
--- a/libc/src/sched/sched_setaffinity.h
+++ b/libc/src/sched/sched_setaffinity.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_SETAFFINITY_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_SETAFFINITY_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_setaffinity(pid_t pid, size_t cpuset_size, const cpu_set_t *mask);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_SETAFFINITY_H
diff --git a/libc/src/sched/sched_setparam.h b/libc/src/sched/sched_setparam.h
index c371bc0bc7531..e4691a7912000 100644
--- a/libc/src/sched/sched_setparam.h
+++ b/libc/src/sched/sched_setparam.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_SETPARAM_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_SETPARAM_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_setparam(pid_t tid, const struct sched_param *param);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_SETPARAM_H
diff --git a/libc/src/sched/sched_setscheduler.h b/libc/src/sched/sched_setscheduler.h
index 8e0cb0d0629ae..e745002c0d961 100644
--- a/libc/src/sched/sched_setscheduler.h
+++ b/libc/src/sched/sched_setscheduler.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_SETSCHEDULER_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_SETSCHEDULER_H
 
+#include "src/__support/macros/config.h"
 #include <sched.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_setscheduler(pid_t tid, int policy, const struct sched_param *param);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_SETSCHEDULER_H
diff --git a/libc/src/sched/sched_yield.h b/libc/src/sched/sched_yield.h
index 493646a84edbb..c48fdd765e06d 100644
--- a/libc/src/sched/sched_yield.h
+++ b/libc/src/sched/sched_yield.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SCHED_SCHED_YIELD_H
 #define LLVM_LIBC_SRC_SCHED_SCHED_YIELD_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int sched_yield(void);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SCHED_SCHED_YIELD_H
diff --git a/libc/src/search/hcreate.cpp b/libc/src/search/hcreate.cpp
index 4bf638b5920e9..ac816a902e221 100644
--- a/libc/src/search/hcreate.cpp
+++ b/libc/src/search/hcreate.cpp
@@ -9,10 +9,11 @@
 #include "src/search/hcreate.h"
 #include "src/__support/HashTable/randomness.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/search/hsearch/global.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(int, hcreate, (size_t capacity)) {
   // We follow FreeBSD's implementation here. If the global_hash_table is
   // already initialized, this function will do nothing and return 1.
@@ -31,4 +32,4 @@ LLVM_LIBC_FUNCTION(int, hcreate, (size_t capacity)) {
   return 1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hcreate.h b/libc/src/search/hcreate.h
index 2ac37fb030c26..2f5a9c71b1a54 100644
--- a/libc/src/search/hcreate.h
+++ b/libc/src/search/hcreate.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HCREATE_H
 #define LLVM_LIBC_SRC_SEARCH_HCREATE_H
 
+#include "src/__support/macros/config.h"
 #include <search.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 int hcreate(size_t capacity);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HCREATE_H
diff --git a/libc/src/search/hcreate_r.cpp b/libc/src/search/hcreate_r.cpp
index 612a45cd0c688..17acd808c19a6 100644
--- a/libc/src/search/hcreate_r.cpp
+++ b/libc/src/search/hcreate_r.cpp
@@ -9,9 +9,10 @@
 #include "src/search/hcreate_r.h"
 #include "src/__support/HashTable/randomness.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(int, hcreate_r,
                    (size_t capacity, struct hsearch_data *htab)) {
   if (htab == nullptr) {
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, hcreate_r,
   return 1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hcreate_r.h b/libc/src/search/hcreate_r.h
index e81895ef815c9..9606077b3e830 100644
--- a/libc/src/search/hcreate_r.h
+++ b/libc/src/search/hcreate_r.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HCREATE_R_H
 #define LLVM_LIBC_SRC_SEARCH_HCREATE_R_H
 
+#include "src/__support/macros/config.h"
 #include <search.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 int hcreate_r(size_t capacity, struct hsearch_data *htab);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HCREATE_R_H
diff --git a/libc/src/search/hdestroy.cpp b/libc/src/search/hdestroy.cpp
index 3c5ea7b7af033..c794b2a1ccb9c 100644
--- a/libc/src/search/hdestroy.cpp
+++ b/libc/src/search/hdestroy.cpp
@@ -8,9 +8,10 @@
 
 #include "src/search/hdestroy.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "src/search/hsearch/global.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(void, hdestroy, (void)) {
   // HashTable::deallocate will check for nullptr. It will be a no-op if
   // global_hash_table is null.
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(void, hdestroy, (void)) {
   internal::global_hash_table = nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hdestroy.h b/libc/src/search/hdestroy.h
index b81e309a6bc80..c2b9a876c38f3 100644
--- a/libc/src/search/hdestroy.h
+++ b/libc/src/search/hdestroy.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HDESTROY_H
 #define LLVM_LIBC_SRC_SEARCH_HDESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <search.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 void hdestroy(void);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HDESTROY_H
diff --git a/libc/src/search/hdestroy_r.cpp b/libc/src/search/hdestroy_r.cpp
index e2fda93931f78..7eff5bb6fff9d 100644
--- a/libc/src/search/hdestroy_r.cpp
+++ b/libc/src/search/hdestroy_r.cpp
@@ -8,9 +8,10 @@
 
 #include "src/search/hdestroy_r.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(void, hdestroy_r, (struct hsearch_data * htab)) {
   if (htab == nullptr) {
     libc_errno = EINVAL;
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(void, hdestroy_r, (struct hsearch_data * htab)) {
   htab->__opaque = nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hdestroy_r.h b/libc/src/search/hdestroy_r.h
index 503af41794448..c9a4ddf018f38 100644
--- a/libc/src/search/hdestroy_r.h
+++ b/libc/src/search/hdestroy_r.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HDESTROY_R_H
 #define LLVM_LIBC_SRC_SEARCH_HDESTROY_R_H
 
+#include "src/__support/macros/config.h"
 #include <search.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 void hdestroy_r(struct hsearch_data *htab);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HDESTROY_R_H
diff --git a/libc/src/search/hsearch.cpp b/libc/src/search/hsearch.cpp
index a30803c5a0de7..c18b5d3d7f547 100644
--- a/libc/src/search/hsearch.cpp
+++ b/libc/src/search/hsearch.cpp
@@ -9,10 +9,11 @@
 #include "src/search/hsearch.h"
 #include "src/__support/HashTable/randomness.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/search/hsearch/global.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(ENTRY *, hsearch, (ENTRY item, ACTION action)) {
   ENTRY *result = nullptr;
   if (internal::global_hash_table == nullptr) {
@@ -46,4 +47,4 @@ LLVM_LIBC_FUNCTION(ENTRY *, hsearch, (ENTRY item, ACTION action)) {
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hsearch.h b/libc/src/search/hsearch.h
index 32dc073a49b83..4d039850f25d0 100644
--- a/libc/src/search/hsearch.h
+++ b/libc/src/search/hsearch.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HSEARCH_H
 #define LLVM_LIBC_SRC_SEARCH_HSEARCH_H
 
+#include "src/__support/macros/config.h"
 #include <search.h> // ENTRY, ACTION
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 ENTRY *hsearch(ENTRY item, ACTION action);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HSEARCH_H
diff --git a/libc/src/search/hsearch/global.cpp b/libc/src/search/hsearch/global.cpp
index b6782ada50de4..8dc64a05a1490 100644
--- a/libc/src/search/hsearch/global.cpp
+++ b/libc/src/search/hsearch/global.cpp
@@ -6,8 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 struct HashTable *global_hash_table = nullptr;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hsearch/global.h b/libc/src/search/hsearch/global.h
index 9579195a2f3e7..2ca532c167007 100644
--- a/libc/src/search/hsearch/global.h
+++ b/libc/src/search/hsearch/global.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HSEARCH_GLOBAL_H
 #define LLVM_LIBC_SRC_SEARCH_HSEARCH_GLOBAL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 extern struct HashTable *global_hash_table;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HSEARCH_GLOBAL_H
diff --git a/libc/src/search/hsearch_r.cpp b/libc/src/search/hsearch_r.cpp
index a2c3a86eded6e..f93e608a190b1 100644
--- a/libc/src/search/hsearch_r.cpp
+++ b/libc/src/search/hsearch_r.cpp
@@ -8,9 +8,10 @@
 
 #include "src/search/hsearch_r.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(int, hsearch_r,
                    (ENTRY item, ACTION action, ENTRY **retval,
                     struct hsearch_data *htab)) {
@@ -40,4 +41,4 @@ LLVM_LIBC_FUNCTION(int, hsearch_r,
   return 1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/hsearch_r.h b/libc/src/search/hsearch_r.h
index d36094c2eba58..6e9511035f6f2 100644
--- a/libc/src/search/hsearch_r.h
+++ b/libc/src/search/hsearch_r.h
@@ -9,11 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_HSEARCH_R_H
 #define LLVM_LIBC_SRC_SEARCH_HSEARCH_R_H
 
+#include "src/__support/macros/config.h"
 #include <search.h> // ENTRY, ACTION
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 int hsearch_r(ENTRY item, ACTION action, ENTRY **retval,
               struct hsearch_data *htab);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_HSEARCH_R_H
diff --git a/libc/src/search/insque.cpp b/libc/src/search/insque.cpp
index 7b7d7c787af13..61a4171b5ce11 100644
--- a/libc/src/search/insque.cpp
+++ b/libc/src/search/insque.cpp
@@ -9,11 +9,12 @@
 #include "src/search/insque.h"
 #include "src/__support/common.h"
 #include "src/__support/intrusive_list.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, insque, (void *elem, void *prev)) {
   internal::IntrusiveList::insert(elem, prev);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/insque.h b/libc/src/search/insque.h
index e0fb69ed1df7c..8c6c6b0e37801 100644
--- a/libc/src/search/insque.h
+++ b/libc/src/search/insque.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_INSQUE_H
 #define LLVM_LIBC_SRC_SEARCH_INSQUE_H
 
+#include "src/__support/macros/config.h"
 #include <search.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void insque(void *elem, void *prev);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_INSQUE_H
diff --git a/libc/src/search/remque.cpp b/libc/src/search/remque.cpp
index f1d9859eedb51..97425dfbb57d9 100644
--- a/libc/src/search/remque.cpp
+++ b/libc/src/search/remque.cpp
@@ -9,11 +9,12 @@
 #include "src/search/remque.h"
 #include "src/__support/common.h"
 #include "src/__support/intrusive_list.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, remque, (void *elem)) {
   internal::IntrusiveList::remove(elem);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/search/remque.h b/libc/src/search/remque.h
index 51f225c004740..d06957978a874 100644
--- a/libc/src/search/remque.h
+++ b/libc/src/search/remque.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SEARCH_REMQUE_H
 #define LLVM_LIBC_SRC_SEARCH_REMQUE_H
 
+#include "src/__support/macros/config.h"
 #include <search.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void remque(void *elem);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SEARCH_REMQUE_H
diff --git a/libc/src/setjmp/arm/longjmp.cpp b/libc/src/setjmp/arm/longjmp.cpp
index a088b5800fd14..f36c79df66064 100644
--- a/libc/src/setjmp/arm/longjmp.cpp
+++ b/libc/src/setjmp/arm/longjmp.cpp
@@ -9,8 +9,9 @@
 
 #include "src/setjmp/longjmp.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #if defined(__thumb__) && __ARM_ARCH_ISA_THUMB == 1
 
@@ -71,4 +72,4 @@ LLVM_LIBC_FUNCTION(void, longjmp, (__jmp_buf * buf, int val)) {
 
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/setjmp/arm/setjmp.cpp b/libc/src/setjmp/arm/setjmp.cpp
index 287e09c4a08ba..dc4252a350509 100644
--- a/libc/src/setjmp/arm/setjmp.cpp
+++ b/libc/src/setjmp/arm/setjmp.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/setjmp/setjmp_impl.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #if defined(__thumb__) && __ARM_ARCH_ISA_THUMB == 1
 
@@ -61,4 +62,4 @@ LLVM_LIBC_FUNCTION(int, setjmp, (__jmp_buf * buf)) {
 
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/setjmp/longjmp.h b/libc/src/setjmp/longjmp.h
index 3697d62968c27..29c5c9e1fbc92 100644
--- a/libc/src/setjmp/longjmp.h
+++ b/libc/src/setjmp/longjmp.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SETJMP_LONGJMP_H
 #define LLVM_LIBC_SRC_SETJMP_LONGJMP_H
 
+#include "src/__support/macros/config.h"
 #include <setjmp.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void longjmp(__jmp_buf *buf, int val);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SETJMP_LONGJMP_H
diff --git a/libc/src/setjmp/riscv/longjmp.cpp b/libc/src/setjmp/riscv/longjmp.cpp
index 034c31e723d6d..0f9537ccc4151 100644
--- a/libc/src/setjmp/riscv/longjmp.cpp
+++ b/libc/src/setjmp/riscv/longjmp.cpp
@@ -8,6 +8,7 @@
 
 #include "src/setjmp/longjmp.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #include <setjmp.h>
@@ -27,7 +28,7 @@
 #define LOAD_FP(reg, val) LOAD_IMPL(fld, reg, val)
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, longjmp, (__jmp_buf * buf, int val)) {
   LOAD(ra, buf->__pc);
@@ -66,4 +67,4 @@ LLVM_LIBC_FUNCTION(void, longjmp, (__jmp_buf * buf, int val)) {
   LIBC_INLINE_ASM("add a0, %0, zero\n\t" : : "r"(val) :);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/setjmp/riscv/setjmp.cpp b/libc/src/setjmp/riscv/setjmp.cpp
index 04d6b5ec6ee5f..12def578b56f3 100644
--- a/libc/src/setjmp/riscv/setjmp.cpp
+++ b/libc/src/setjmp/riscv/setjmp.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/setjmp/setjmp_impl.h"
 
 #include <setjmp.h>
@@ -26,7 +27,7 @@
 #define STORE_FP(reg, val) STORE_IMPL(fsd, reg, val)
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, setjmp, (__jmp_buf * buf)) {
   STORE(ra, buf->__pc);
@@ -64,4 +65,4 @@ LLVM_LIBC_FUNCTION(int, setjmp, (__jmp_buf * buf)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/setjmp/setjmp_impl.h b/libc/src/setjmp/setjmp_impl.h
index 52c835c7414c7..50d7a6b44503b 100644
--- a/libc/src/setjmp/setjmp_impl.h
+++ b/libc/src/setjmp/setjmp_impl.h
@@ -11,12 +11,13 @@
 
 // This header has the _impl prefix in its name to avoid conflict with the
 // public header setjmp.h which is also included. here.
+#include "src/__support/macros/config.h"
 #include <setjmp.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int setjmp(__jmp_buf *buf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SETJMP_SETJMP_IMPL_H
diff --git a/libc/src/setjmp/x86_64/longjmp.cpp b/libc/src/setjmp/x86_64/longjmp.cpp
index 32340463e9f37..f479c7bc96c97 100644
--- a/libc/src/setjmp/x86_64/longjmp.cpp
+++ b/libc/src/setjmp/x86_64/longjmp.cpp
@@ -8,12 +8,13 @@
 
 #include "src/setjmp/longjmp.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_X86_64)
 #error "Invalid file include"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, longjmp, (__jmp_buf * buf, int val)) {
   register __UINT64_TYPE__ rbx __asm__("rbx");
@@ -41,4 +42,4 @@ LLVM_LIBC_FUNCTION(void, longjmp, (__jmp_buf * buf, int val)) {
   LIBC_INLINE_ASM("jmp *%0\n\t" : : "m"(buf->rip));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/setjmp/x86_64/setjmp.cpp b/libc/src/setjmp/x86_64/setjmp.cpp
index 8b6981d4cc34a..6a1cc7a83936a 100644
--- a/libc/src/setjmp/x86_64/setjmp.cpp
+++ b/libc/src/setjmp/x86_64/setjmp.cpp
@@ -7,13 +7,14 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/setjmp/setjmp_impl.h"
 
 #if !defined(LIBC_TARGET_ARCH_IS_X86_64)
 #error "Invalid file include"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, setjmp, (__jmp_buf * buf)) {
   register __UINT64_TYPE__ rbx __asm__("rbx");
@@ -53,4 +54,4 @@ LLVM_LIBC_FUNCTION(int, setjmp, (__jmp_buf * buf)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/kill.h b/libc/src/signal/kill.h
index a6d18935459ca..46048f2dbe044 100644
--- a/libc/src/signal/kill.h
+++ b/libc/src/signal/kill.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SIGNAL_KILL_H
 #define LLVM_LIBC_SRC_SIGNAL_KILL_H
 
+#include "src/__support/macros/config.h"
 #include <signal.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int kill(pid_t pid, int sig);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_KILL_H
diff --git a/libc/src/signal/linux/__restore.cpp b/libc/src/signal/linux/__restore.cpp
index 36fa375d672e1..d3b4240f3e6ac 100644
--- a/libc/src/signal/linux/__restore.cpp
+++ b/libc/src/signal/linux/__restore.cpp
@@ -11,10 +11,11 @@
 // make any stack allocations so we must ensure this.
 
 #include "src/__support/OSUtil/syscall.h"
+#include "src/__support/macros/config.h"
 
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" void __restore_rt()
     __attribute__((no_sanitize("all"),
@@ -24,4 +25,4 @@ extern "C" void __restore_rt() {
   LIBC_NAMESPACE::syscall_impl<long>(SYS_rt_sigreturn);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/kill.cpp b/libc/src/signal/linux/kill.cpp
index a02b3b1d14003..ed117858f51ef 100644
--- a/libc/src/signal/linux/kill.cpp
+++ b/libc/src/signal/linux/kill.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
 #include <signal.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, kill, (pid_t pid, int sig)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_kill, pid, sig);
@@ -31,4 +32,4 @@ LLVM_LIBC_FUNCTION(int, kill, (pid_t pid, int sig)) {
   return ret; // always 0
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/raise.cpp b/libc/src/signal/linux/raise.cpp
index 2250df5478444..4a8913941db11 100644
--- a/libc/src/signal/linux/raise.cpp
+++ b/libc/src/signal/linux/raise.cpp
@@ -10,9 +10,10 @@
 
 #include "hdr/types/sigset_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/signal/linux/signal_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, raise, (int sig)) {
   sigset_t sigset;
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, raise, (int sig)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/sigaction.cpp b/libc/src/signal/linux/sigaction.cpp
index 7b220e5c37f6f..65ec36741683c 100644
--- a/libc/src/signal/linux/sigaction.cpp
+++ b/libc/src/signal/linux/sigaction.cpp
@@ -10,10 +10,11 @@
 
 #include "hdr/types/sigset_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TOOD: Some architectures will have their signal trampoline functions in the
 // vdso, use those when available.
@@ -46,4 +47,4 @@ LLVM_LIBC_FUNCTION(int, sigaction,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/sigaddset.cpp b/libc/src/signal/linux/sigaddset.cpp
index 8fc5d43180e28..628883e13b887 100644
--- a/libc/src/signal/linux/sigaddset.cpp
+++ b/libc/src/signal/linux/sigaddset.cpp
@@ -10,10 +10,11 @@
 
 #include "hdr/types/sigset_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sigaddset, (sigset_t * set, int signum)) {
   if (set != nullptr && add_signal(*set, signum))
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, sigaddset, (sigset_t * set, int signum)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/sigaltstack.cpp b/libc/src/signal/linux/sigaltstack.cpp
index 47e0b23f4bad5..2e142a473fea7 100644
--- a/libc/src/signal/linux/sigaltstack.cpp
+++ b/libc/src/signal/linux/sigaltstack.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/signal/sigaltstack.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
@@ -15,7 +16,7 @@
 #include <signal.h>
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sigaltstack,
                    (const stack_t *__restrict ss, stack_t *__restrict oss)) {
@@ -42,4 +43,4 @@ LLVM_LIBC_FUNCTION(int, sigaltstack,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/sigdelset.cpp b/libc/src/signal/linux/sigdelset.cpp
index 997f4574c05d0..2e964051ebde7 100644
--- a/libc/src/signal/linux/sigdelset.cpp
+++ b/libc/src/signal/linux/sigdelset.cpp
@@ -10,10 +10,11 @@
 
 #include "hdr/types/sigset_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sigdelset, (sigset_t * set, int signum)) {
   if (set != nullptr && delete_signal(*set, signum))
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, sigdelset, (sigset_t * set, int signum)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/sigemptyset.cpp b/libc/src/signal/linux/sigemptyset.cpp
index d08191e8ce4e0..d347477695e6c 100644
--- a/libc/src/signal/linux/sigemptyset.cpp
+++ b/libc/src/signal/linux/sigemptyset.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/signal/sigemptyset.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
@@ -14,7 +15,7 @@
 
 #include <signal.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sigemptyset, (sigset_t * set)) {
   if (!set) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, sigemptyset, (sigset_t * set)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/sigfillset.cpp b/libc/src/signal/linux/sigfillset.cpp
index d98bbf7f619cc..3e9897a03bb73 100644
--- a/libc/src/signal/linux/sigfillset.cpp
+++ b/libc/src/signal/linux/sigfillset.cpp
@@ -10,10 +10,11 @@
 
 #include "hdr/types/sigset_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sigfillset, (sigset_t * set)) {
   if (!set) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, sigfillset, (sigset_t * set)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/signal.cpp b/libc/src/signal/linux/signal.cpp
index 0d5463553eb78..241258faf2e81 100644
--- a/libc/src/signal/linux/signal.cpp
+++ b/libc/src/signal/linux/signal.cpp
@@ -9,9 +9,10 @@
 #include "src/signal/signal.h"
 #include "hdr/signal_macros.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/signal/sigaction.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(sighandler_t, signal, (int signum, sighandler_t handler)) {
   struct sigaction action, old;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(sighandler_t, signal, (int signum, sighandler_t handler)) {
              : old.sa_handler;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/linux/signal_utils.h b/libc/src/signal/linux/signal_utils.h
index 3fd0cc0b7b459..81021276d784c 100644
--- a/libc/src/signal/linux/signal_utils.h
+++ b/libc/src/signal/linux/signal_utils.h
@@ -12,12 +12,13 @@
 #include "hdr/types/sigset_t.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <signal.h> // sigaction
 #include <stddef.h>
 #include <sys/syscall.h>          // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The POSIX definition of struct sigaction and the sigaction data structure
 // expected by the rt_sigaction syscall differ in their definition. So, we
@@ -106,6 +107,6 @@ LIBC_INLINE int restore_signals(const sigset_t &set) {
                                            &set, nullptr, sizeof(sigset_t));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_LINUX_SIGNAL_UTILS_H
diff --git a/libc/src/signal/linux/sigprocmask.cpp b/libc/src/signal/linux/sigprocmask.cpp
index 0e94efb6400c0..8838379ae5d30 100644
--- a/libc/src/signal/linux/sigprocmask.cpp
+++ b/libc/src/signal/linux/sigprocmask.cpp
@@ -11,12 +11,13 @@
 #include "hdr/types/sigset_t.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/signal/linux/signal_utils.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sigprocmask,
                    (int how, const sigset_t *__restrict set,
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, sigprocmask,
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/signal/raise.h b/libc/src/signal/raise.h
index ee4f3c9f826a9..8e6894c1a9053 100644
--- a/libc/src/signal/raise.h
+++ b/libc/src/signal/raise.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SIGNAL_RAISE_H
 #define LLVM_LIBC_SRC_SIGNAL_RAISE_H
 
+#include "src/__support/macros/config.h"
 #include <signal.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int raise(int sig);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_RAISE_H
diff --git a/libc/src/signal/sigaction.h b/libc/src/signal/sigaction.h
index 15b689b7dacc7..363be84a1cc2b 100644
--- a/libc/src/signal/sigaction.h
+++ b/libc/src/signal/sigaction.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_SIGNAL_SIGACTION_H
 
 #include "hdr/types/struct_sigaction.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigaction(int signal, const struct sigaction *__restrict libc_new,
               struct sigaction *__restrict libc_old);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGACTION_H
diff --git a/libc/src/signal/sigaddset.h b/libc/src/signal/sigaddset.h
index c703b46bc6059..057afaaf08d82 100644
--- a/libc/src/signal/sigaddset.h
+++ b/libc/src/signal/sigaddset.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SIGNAL_SIGADDSET_H
 
 #include "hdr/types/sigset_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigaddset(sigset_t *set, int signum);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGADDSET_H
diff --git a/libc/src/signal/sigaltstack.h b/libc/src/signal/sigaltstack.h
index 705bd368ce47b..fc6ec356e5ef8 100644
--- a/libc/src/signal/sigaltstack.h
+++ b/libc/src/signal/sigaltstack.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SIGNAL_SIGALTSTACK_H
 #define LLVM_LIBC_SRC_SIGNAL_SIGALTSTACK_H
 
+#include "src/__support/macros/config.h"
 #include <signal.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigaltstack(const stack_t *__restrict ss, stack_t *__restrict oss);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGALTSTACK_H
diff --git a/libc/src/signal/sigdelset.h b/libc/src/signal/sigdelset.h
index 7bdb6e6d18fdd..27f831a8deab0 100644
--- a/libc/src/signal/sigdelset.h
+++ b/libc/src/signal/sigdelset.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SIGNAL_SIGDELSET_H
 
 #include "hdr/types/sigset_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigdelset(sigset_t *set, int signum);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGDELSET_H
diff --git a/libc/src/signal/sigemptyset.h b/libc/src/signal/sigemptyset.h
index 661fd33b888e0..886537644fe9a 100644
--- a/libc/src/signal/sigemptyset.h
+++ b/libc/src/signal/sigemptyset.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SIGNAL_SIGEMPTYSET_H
 
 #include "hdr/types/sigset_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigemptyset(sigset_t *set);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGEMPTYSET_H
diff --git a/libc/src/signal/sigfillset.h b/libc/src/signal/sigfillset.h
index 2849aacf953b1..fdd1580979ecb 100644
--- a/libc/src/signal/sigfillset.h
+++ b/libc/src/signal/sigfillset.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SIGNAL_SIGFILLSET_H
 
 #include "hdr/types/sigset_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigfillset(sigset_t *set);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGFILLSET_H
diff --git a/libc/src/signal/signal.h b/libc/src/signal/signal.h
index 15bb5f01232ee..2037305f8c11e 100644
--- a/libc/src/signal/signal.h
+++ b/libc/src/signal/signal.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_SIGNAL_SIGNAL_H
 #define LLVM_LIBC_SRC_SIGNAL_SIGNAL_H
 
+#include "src/__support/macros/config.h"
 #include <signal.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using sighandler_t = __sighandler_t;
 
 sighandler_t signal(int signum, sighandler_t handler);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGNAL_H
diff --git a/libc/src/signal/sigprocmask.h b/libc/src/signal/sigprocmask.h
index 8569578eb68ca..9b12846268eac 100644
--- a/libc/src/signal/sigprocmask.h
+++ b/libc/src/signal/sigprocmask.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_SIGNAL_SIGPROCMASK_H
 
 #include "hdr/types/sigset_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int sigprocmask(int how, const sigset_t *__restrict set,
                 sigset_t *__restrict oldset);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SIGNAL_SIGPROCMASK_H
diff --git a/libc/src/spawn/file_actions.h b/libc/src/spawn/file_actions.h
index 7113256bf49cb..80b92959c6a43 100644
--- a/libc/src/spawn/file_actions.h
+++ b/libc/src/spawn/file_actions.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_FILE_ACTIONS_H
 #define LLVM_LIBC_SRC_SPAWN_FILE_ACTIONS_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h> // For mode_t
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct BaseSpawnFileAction {
   enum ActionType {
@@ -67,6 +68,6 @@ struct SpawnFileDup2Action : public BaseSpawnFileAction {
         newfd(new_fdesc) {}
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_FILE_ACTIONS_H
diff --git a/libc/src/spawn/linux/posix_spawn.cpp b/libc/src/spawn/linux/posix_spawn.cpp
index 0a0467df4959e..4c0469b3ce384 100644
--- a/libc/src/spawn/linux/posix_spawn.cpp
+++ b/libc/src/spawn/linux/posix_spawn.cpp
@@ -11,6 +11,7 @@
 #include "src/__support/CPP/optional.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/spawn/file_actions.h"
 
 #include <fcntl.h>
@@ -18,7 +19,7 @@
 #include <spawn.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -145,4 +146,4 @@ LLVM_LIBC_FUNCTION(int, posix_spawn,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/spawn/posix_spawn.h b/libc/src/spawn/posix_spawn.h
index 354b94c2d2d73..d521c2a53fc85 100644
--- a/libc/src/spawn/posix_spawn.h
+++ b/libc/src/spawn/posix_spawn.h
@@ -9,15 +9,16 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_H
 #define LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_spawn(pid_t *__restrict pid, const char *__restrict path,
                 const posix_spawn_file_actions_t *file_actions,
                 const posix_spawnattr_t *__restrict attr,
                 char *const *__restrict argv, char *const *__restrict envp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_H
diff --git a/libc/src/spawn/posix_spawn_file_actions_addclose.cpp b/libc/src/spawn/posix_spawn_file_actions_addclose.cpp
index 9b3c4885dfd77..e43af8f665f95 100644
--- a/libc/src/spawn/posix_spawn_file_actions_addclose.cpp
+++ b/libc/src/spawn/posix_spawn_file_actions_addclose.cpp
@@ -11,11 +11,12 @@
 #include "file_actions.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_addclose,
                    (posix_spawn_file_actions_t *__restrict actions, int fd)) {
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_addclose,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/spawn/posix_spawn_file_actions_addclose.h b/libc/src/spawn/posix_spawn_file_actions_addclose.h
index c84965180fa7a..8d4c4eda39846 100644
--- a/libc/src/spawn/posix_spawn_file_actions_addclose.h
+++ b/libc/src/spawn/posix_spawn_file_actions_addclose.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE_H
 #define LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_spawn_file_actions_addclose(
     posix_spawn_file_actions_t *__restrict actions, int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE_H
diff --git a/libc/src/spawn/posix_spawn_file_actions_adddup2.cpp b/libc/src/spawn/posix_spawn_file_actions_adddup2.cpp
index caa558e2a9a5f..9f28ffa48bee0 100644
--- a/libc/src/spawn/posix_spawn_file_actions_adddup2.cpp
+++ b/libc/src/spawn/posix_spawn_file_actions_adddup2.cpp
@@ -11,11 +11,12 @@
 #include "file_actions.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_adddup2,
                    (posix_spawn_file_actions_t * actions, int fd, int newfd)) {
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_adddup2,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/spawn/posix_spawn_file_actions_adddup2.h b/libc/src/spawn/posix_spawn_file_actions_adddup2.h
index 7a7f3a5fb5bfd..1cbf3dc595794 100644
--- a/libc/src/spawn/posix_spawn_file_actions_adddup2.h
+++ b/libc/src/spawn/posix_spawn_file_actions_adddup2.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2_H
 #define LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *actions,
                                      int fd, int newfd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2_H
diff --git a/libc/src/spawn/posix_spawn_file_actions_addopen.cpp b/libc/src/spawn/posix_spawn_file_actions_addopen.cpp
index c544f04bd54ae..7f9286099573e 100644
--- a/libc/src/spawn/posix_spawn_file_actions_addopen.cpp
+++ b/libc/src/spawn/posix_spawn_file_actions_addopen.cpp
@@ -11,11 +11,12 @@
 #include "file_actions.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_addopen,
                    (posix_spawn_file_actions_t *__restrict actions, int fd,
@@ -34,4 +35,4 @@ LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_addopen,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/spawn/posix_spawn_file_actions_addopen.h b/libc/src/spawn/posix_spawn_file_actions_addopen.h
index 121213abe50f8..d51434ced4350 100644
--- a/libc/src/spawn/posix_spawn_file_actions_addopen.h
+++ b/libc/src/spawn/posix_spawn_file_actions_addopen.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN_H
 #define LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_spawn_file_actions_addopen(
     posix_spawn_file_actions_t *__restrict actions, int fd,
     const char *__restrict path, int oflag, mode_t mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN_H
diff --git a/libc/src/spawn/posix_spawn_file_actions_destroy.cpp b/libc/src/spawn/posix_spawn_file_actions_destroy.cpp
index 73e0ac828cd69..155e4c6a3b2be 100644
--- a/libc/src/spawn/posix_spawn_file_actions_destroy.cpp
+++ b/libc/src/spawn/posix_spawn_file_actions_destroy.cpp
@@ -11,11 +11,12 @@
 #include "file_actions.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <errno.h>
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_destroy,
                    (posix_spawn_file_actions_t * actions)) {
@@ -49,4 +50,4 @@ LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_destroy,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/spawn/posix_spawn_file_actions_destroy.h b/libc/src/spawn/posix_spawn_file_actions_destroy.h
index 28b9b05b9e79a..7bbcfc3a51ea7 100644
--- a/libc/src/spawn/posix_spawn_file_actions_destroy.h
+++ b/libc/src/spawn/posix_spawn_file_actions_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_DESTROY_H
 #define LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *actions);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_DESTROY_H
diff --git a/libc/src/spawn/posix_spawn_file_actions_init.cpp b/libc/src/spawn/posix_spawn_file_actions_init.cpp
index 04e5610c717c6..14242fcf11779 100644
--- a/libc/src/spawn/posix_spawn_file_actions_init.cpp
+++ b/libc/src/spawn/posix_spawn_file_actions_init.cpp
@@ -9,10 +9,11 @@
 #include "posix_spawn_file_actions_init.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_init,
                    (posix_spawn_file_actions_t * actions)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, posix_spawn_file_actions_init,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/spawn/posix_spawn_file_actions_init.h b/libc/src/spawn/posix_spawn_file_actions_init.h
index d7b228fff08d0..79451400ed001 100644
--- a/libc/src/spawn/posix_spawn_file_actions_init.h
+++ b/libc/src/spawn/posix_spawn_file_actions_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_INIT_H
 #define LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <spawn.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_spawn_file_actions_init(posix_spawn_file_actions_t *actions);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SPAWN_POSIX_SPAWN_FILE_ACTIONS_INIT_H
diff --git a/libc/src/stdbit/stdc_bit_ceil_uc.cpp b/libc/src/stdbit/stdc_bit_ceil_uc.cpp
index 675ae4a0edb02..8febabf0415df 100644
--- a/libc/src/stdbit/stdc_bit_ceil_uc.cpp
+++ b/libc/src/stdbit/stdc_bit_ceil_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned char, stdc_bit_ceil_uc, (unsigned char value)) {
   return cpp::bit_ceil(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_ceil_uc.h b/libc/src/stdbit/stdc_bit_ceil_uc.h
index 204261e410812..211073c246bb1 100644
--- a/libc/src/stdbit/stdc_bit_ceil_uc.h
+++ b/libc/src/stdbit/stdc_bit_ceil_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned char stdc_bit_ceil_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UC_H
diff --git a/libc/src/stdbit/stdc_bit_ceil_ui.cpp b/libc/src/stdbit/stdc_bit_ceil_ui.cpp
index a8ac9726179bc..257adcdb94a4c 100644
--- a/libc/src/stdbit/stdc_bit_ceil_ui.cpp
+++ b/libc/src/stdbit/stdc_bit_ceil_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_ceil_ui, (unsigned value)) {
   return cpp::bit_ceil(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_ceil_ui.h b/libc/src/stdbit/stdc_bit_ceil_ui.h
index db66c336e3662..d2da377accfce 100644
--- a/libc/src/stdbit/stdc_bit_ceil_ui.h
+++ b/libc/src/stdbit/stdc_bit_ceil_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_ceil_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UI_H
diff --git a/libc/src/stdbit/stdc_bit_ceil_ul.cpp b/libc/src/stdbit/stdc_bit_ceil_ul.cpp
index 18a9c38b5b4cf..7b2455958cb88 100644
--- a/libc/src/stdbit/stdc_bit_ceil_ul.cpp
+++ b/libc/src/stdbit/stdc_bit_ceil_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long, stdc_bit_ceil_ul, (unsigned long value)) {
   return cpp::bit_ceil(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_ceil_ul.h b/libc/src/stdbit/stdc_bit_ceil_ul.h
index f8393a42fcbfc..fe22d79fbe65f 100644
--- a/libc/src/stdbit/stdc_bit_ceil_ul.h
+++ b/libc/src/stdbit/stdc_bit_ceil_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long stdc_bit_ceil_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_UL_H
diff --git a/libc/src/stdbit/stdc_bit_ceil_ull.cpp b/libc/src/stdbit/stdc_bit_ceil_ull.cpp
index 0989f36ab7685..dd94da4855248 100644
--- a/libc/src/stdbit/stdc_bit_ceil_ull.cpp
+++ b/libc/src/stdbit/stdc_bit_ceil_ull.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long long, stdc_bit_ceil_ull,
                    (unsigned long long value)) {
   return cpp::bit_ceil(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_ceil_ull.h b/libc/src/stdbit/stdc_bit_ceil_ull.h
index e65f537efb172..80a6d3c474b51 100644
--- a/libc/src/stdbit/stdc_bit_ceil_ull.h
+++ b/libc/src/stdbit/stdc_bit_ceil_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long long stdc_bit_ceil_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_ULL_H
diff --git a/libc/src/stdbit/stdc_bit_ceil_us.cpp b/libc/src/stdbit/stdc_bit_ceil_us.cpp
index f86a216bb840e..4d35e18bb5d4a 100644
--- a/libc/src/stdbit/stdc_bit_ceil_us.cpp
+++ b/libc/src/stdbit/stdc_bit_ceil_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short, stdc_bit_ceil_us, (unsigned short value)) {
   return cpp::bit_ceil(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_ceil_us.h b/libc/src/stdbit/stdc_bit_ceil_us.h
index 16a14e51b7433..6001e7afdcd1f 100644
--- a/libc/src/stdbit/stdc_bit_ceil_us.h
+++ b/libc/src/stdbit/stdc_bit_ceil_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short stdc_bit_ceil_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_CEIL_US_H
diff --git a/libc/src/stdbit/stdc_bit_floor_uc.cpp b/libc/src/stdbit/stdc_bit_floor_uc.cpp
index 6cb04c9eb43e6..54959ecd3cf4f 100644
--- a/libc/src/stdbit/stdc_bit_floor_uc.cpp
+++ b/libc/src/stdbit/stdc_bit_floor_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned char, stdc_bit_floor_uc, (unsigned char value)) {
   return cpp::bit_floor(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_floor_uc.h b/libc/src/stdbit/stdc_bit_floor_uc.h
index d6f53c5f69979..baa4af8904be8 100644
--- a/libc/src/stdbit/stdc_bit_floor_uc.h
+++ b/libc/src/stdbit/stdc_bit_floor_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned char stdc_bit_floor_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UC_H
diff --git a/libc/src/stdbit/stdc_bit_floor_ui.cpp b/libc/src/stdbit/stdc_bit_floor_ui.cpp
index 149b63f190cf3..a3458bc4061e8 100644
--- a/libc/src/stdbit/stdc_bit_floor_ui.cpp
+++ b/libc/src/stdbit/stdc_bit_floor_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_floor_ui, (unsigned value)) {
   return cpp::bit_floor(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_floor_ui.h b/libc/src/stdbit/stdc_bit_floor_ui.h
index fcc606386f86d..aaf9c7383fa27 100644
--- a/libc/src/stdbit/stdc_bit_floor_ui.h
+++ b/libc/src/stdbit/stdc_bit_floor_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_floor_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UI_H
diff --git a/libc/src/stdbit/stdc_bit_floor_ul.cpp b/libc/src/stdbit/stdc_bit_floor_ul.cpp
index a29a044545684..3f28bee5b638f 100644
--- a/libc/src/stdbit/stdc_bit_floor_ul.cpp
+++ b/libc/src/stdbit/stdc_bit_floor_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long, stdc_bit_floor_ul, (unsigned long value)) {
   return cpp::bit_floor(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_floor_ul.h b/libc/src/stdbit/stdc_bit_floor_ul.h
index 08327aa60c906..20ab34e0ed83d 100644
--- a/libc/src/stdbit/stdc_bit_floor_ul.h
+++ b/libc/src/stdbit/stdc_bit_floor_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long stdc_bit_floor_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_UL_H
diff --git a/libc/src/stdbit/stdc_bit_floor_ull.cpp b/libc/src/stdbit/stdc_bit_floor_ull.cpp
index d1084b6357322..5470045d261d4 100644
--- a/libc/src/stdbit/stdc_bit_floor_ull.cpp
+++ b/libc/src/stdbit/stdc_bit_floor_ull.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long long, stdc_bit_floor_ull,
                    (unsigned long long value)) {
   return cpp::bit_floor(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_floor_ull.h b/libc/src/stdbit/stdc_bit_floor_ull.h
index 8f360b23855ad..4c49a07480767 100644
--- a/libc/src/stdbit/stdc_bit_floor_ull.h
+++ b/libc/src/stdbit/stdc_bit_floor_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long long stdc_bit_floor_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_ULL_H
diff --git a/libc/src/stdbit/stdc_bit_floor_us.cpp b/libc/src/stdbit/stdc_bit_floor_us.cpp
index d1357a980e3a8..a4f3929344525 100644
--- a/libc/src/stdbit/stdc_bit_floor_us.cpp
+++ b/libc/src/stdbit/stdc_bit_floor_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short, stdc_bit_floor_us, (unsigned short value)) {
   return cpp::bit_floor(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_floor_us.h b/libc/src/stdbit/stdc_bit_floor_us.h
index fcd0b9e3c549a..1494013c715e8 100644
--- a/libc/src/stdbit/stdc_bit_floor_us.h
+++ b/libc/src/stdbit/stdc_bit_floor_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short stdc_bit_floor_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_FLOOR_US_H
diff --git a/libc/src/stdbit/stdc_bit_width_uc.cpp b/libc/src/stdbit/stdc_bit_width_uc.cpp
index 2c361c1bbb1cf..71894bfd799cd 100644
--- a/libc/src/stdbit/stdc_bit_width_uc.cpp
+++ b/libc/src/stdbit/stdc_bit_width_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_width_uc, (unsigned char value)) {
   return static_cast<unsigned>(cpp::bit_width(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_width_uc.h b/libc/src/stdbit/stdc_bit_width_uc.h
index 70c038aaf1dfe..869cce2a6458a 100644
--- a/libc/src/stdbit/stdc_bit_width_uc.h
+++ b/libc/src/stdbit/stdc_bit_width_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_width_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UC_H
diff --git a/libc/src/stdbit/stdc_bit_width_ui.cpp b/libc/src/stdbit/stdc_bit_width_ui.cpp
index b94452b09bd50..c073e752fd2f9 100644
--- a/libc/src/stdbit/stdc_bit_width_ui.cpp
+++ b/libc/src/stdbit/stdc_bit_width_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_width_ui, (unsigned value)) {
   return static_cast<unsigned>(cpp::bit_width(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_width_ui.h b/libc/src/stdbit/stdc_bit_width_ui.h
index 9e8de3d6ef46e..71cfb36c5db0c 100644
--- a/libc/src/stdbit/stdc_bit_width_ui.h
+++ b/libc/src/stdbit/stdc_bit_width_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_width_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UI_H
diff --git a/libc/src/stdbit/stdc_bit_width_ul.cpp b/libc/src/stdbit/stdc_bit_width_ul.cpp
index 80044314e4b21..69630d95cc620 100644
--- a/libc/src/stdbit/stdc_bit_width_ul.cpp
+++ b/libc/src/stdbit/stdc_bit_width_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_width_ul, (unsigned long value)) {
   return static_cast<unsigned>(cpp::bit_width(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_width_ul.h b/libc/src/stdbit/stdc_bit_width_ul.h
index 447a2918e2f2b..e13e3be79ed26 100644
--- a/libc/src/stdbit/stdc_bit_width_ul.h
+++ b/libc/src/stdbit/stdc_bit_width_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_width_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_UL_H
diff --git a/libc/src/stdbit/stdc_bit_width_ull.cpp b/libc/src/stdbit/stdc_bit_width_ull.cpp
index 006fa20b2de5e..b720b45d1620a 100644
--- a/libc/src/stdbit/stdc_bit_width_ull.cpp
+++ b/libc/src/stdbit/stdc_bit_width_ull.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_width_ull, (unsigned long long value)) {
   return static_cast<unsigned>(cpp::bit_width(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_width_ull.h b/libc/src/stdbit/stdc_bit_width_ull.h
index bc51897f448fc..91c935a185ba0 100644
--- a/libc/src/stdbit/stdc_bit_width_ull.h
+++ b/libc/src/stdbit/stdc_bit_width_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_width_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_ULL_H
diff --git a/libc/src/stdbit/stdc_bit_width_us.cpp b/libc/src/stdbit/stdc_bit_width_us.cpp
index 3d9f72bf5d060..ba004817b84a2 100644
--- a/libc/src/stdbit/stdc_bit_width_us.cpp
+++ b/libc/src/stdbit/stdc_bit_width_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_bit_width_us, (unsigned short value)) {
   return static_cast<unsigned>(cpp::bit_width(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_bit_width_us.h b/libc/src/stdbit/stdc_bit_width_us.h
index 02cd37426eb4c..3d9bfe9242bac 100644
--- a/libc/src/stdbit/stdc_bit_width_us.h
+++ b/libc/src/stdbit/stdc_bit_width_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_bit_width_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_BIT_WIDTH_US_H
diff --git a/libc/src/stdbit/stdc_count_ones_uc.cpp b/libc/src/stdbit/stdc_count_ones_uc.cpp
index 1e998ff521b7d..9df8bcda9ca0a 100644
--- a/libc/src/stdbit/stdc_count_ones_uc.cpp
+++ b/libc/src/stdbit/stdc_count_ones_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_ones_uc, (unsigned char value)) {
   return static_cast<unsigned>(cpp::popcount(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_ones_uc.h b/libc/src/stdbit/stdc_count_ones_uc.h
index eed3ee5f181b6..c982d0b04ed16 100644
--- a/libc/src/stdbit/stdc_count_ones_uc.h
+++ b/libc/src/stdbit/stdc_count_ones_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_ones_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UC_H
diff --git a/libc/src/stdbit/stdc_count_ones_ui.cpp b/libc/src/stdbit/stdc_count_ones_ui.cpp
index e457dd793db33..9b012e281cb7e 100644
--- a/libc/src/stdbit/stdc_count_ones_ui.cpp
+++ b/libc/src/stdbit/stdc_count_ones_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_ones_ui, (unsigned value)) {
   return static_cast<unsigned>(cpp::popcount(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_ones_ui.h b/libc/src/stdbit/stdc_count_ones_ui.h
index 1f7ccb9c502f6..f5bc2db004292 100644
--- a/libc/src/stdbit/stdc_count_ones_ui.h
+++ b/libc/src/stdbit/stdc_count_ones_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_ones_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UI_H
diff --git a/libc/src/stdbit/stdc_count_ones_ul.cpp b/libc/src/stdbit/stdc_count_ones_ul.cpp
index ed86653fc7ee2..ac30c9ecac74c 100644
--- a/libc/src/stdbit/stdc_count_ones_ul.cpp
+++ b/libc/src/stdbit/stdc_count_ones_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_ones_ul, (unsigned long value)) {
   return static_cast<unsigned>(cpp::popcount(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_ones_ul.h b/libc/src/stdbit/stdc_count_ones_ul.h
index bde349a2fb94f..014a15569f6dd 100644
--- a/libc/src/stdbit/stdc_count_ones_ul.h
+++ b/libc/src/stdbit/stdc_count_ones_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_ones_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_UL_H
diff --git a/libc/src/stdbit/stdc_count_ones_ull.cpp b/libc/src/stdbit/stdc_count_ones_ull.cpp
index c5ecc3cda6477..d27d0d3e11660 100644
--- a/libc/src/stdbit/stdc_count_ones_ull.cpp
+++ b/libc/src/stdbit/stdc_count_ones_ull.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_ones_ull, (unsigned long long value)) {
   return static_cast<unsigned>(cpp::popcount(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_ones_ull.h b/libc/src/stdbit/stdc_count_ones_ull.h
index 830239f8874b0..652e8d1856562 100644
--- a/libc/src/stdbit/stdc_count_ones_ull.h
+++ b/libc/src/stdbit/stdc_count_ones_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_ones_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_ULL_H
diff --git a/libc/src/stdbit/stdc_count_ones_us.cpp b/libc/src/stdbit/stdc_count_ones_us.cpp
index 465c5c374e7c6..9b925bad6093d 100644
--- a/libc/src/stdbit/stdc_count_ones_us.cpp
+++ b/libc/src/stdbit/stdc_count_ones_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_ones_us, (unsigned short value)) {
   return static_cast<unsigned>(cpp::popcount(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_ones_us.h b/libc/src/stdbit/stdc_count_ones_us.h
index 08fd4e76eaae6..24485ddb75cbe 100644
--- a/libc/src/stdbit/stdc_count_ones_us.h
+++ b/libc/src/stdbit/stdc_count_ones_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_ones_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ONES_US_H
diff --git a/libc/src/stdbit/stdc_count_zeros_uc.cpp b/libc/src/stdbit/stdc_count_zeros_uc.cpp
index 309ebb55e0fac..ab5f0f39fed08 100644
--- a/libc/src/stdbit/stdc_count_zeros_uc.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_uc.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_count_zeros_uc.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_uc, (unsigned char value)) {
   return static_cast<unsigned>(count_zeros(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_zeros_uc.h b/libc/src/stdbit/stdc_count_zeros_uc.h
index 34b4636ee3f9e..12f754bed34cd 100644
--- a/libc/src/stdbit/stdc_count_zeros_uc.h
+++ b/libc/src/stdbit/stdc_count_zeros_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_zeros_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UC_H
diff --git a/libc/src/stdbit/stdc_count_zeros_ui.cpp b/libc/src/stdbit/stdc_count_zeros_ui.cpp
index 31ea907b24de8..28efc544bb888 100644
--- a/libc/src/stdbit/stdc_count_zeros_ui.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_ui.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_count_zeros_ui.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_ui, (unsigned value)) {
   return static_cast<unsigned>(count_zeros(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_zeros_ui.h b/libc/src/stdbit/stdc_count_zeros_ui.h
index 48e8630f6f097..df3562ff59cec 100644
--- a/libc/src/stdbit/stdc_count_zeros_ui.h
+++ b/libc/src/stdbit/stdc_count_zeros_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_zeros_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UI_H
diff --git a/libc/src/stdbit/stdc_count_zeros_ul.cpp b/libc/src/stdbit/stdc_count_zeros_ul.cpp
index f5df5c49f1312..25c9b8d7782ff 100644
--- a/libc/src/stdbit/stdc_count_zeros_ul.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_ul.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_count_zeros_ul.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_ul, (unsigned long value)) {
   return static_cast<unsigned>(count_zeros(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_zeros_ul.h b/libc/src/stdbit/stdc_count_zeros_ul.h
index b88387741adef..962eed53fea5b 100644
--- a/libc/src/stdbit/stdc_count_zeros_ul.h
+++ b/libc/src/stdbit/stdc_count_zeros_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_zeros_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_UL_H
diff --git a/libc/src/stdbit/stdc_count_zeros_ull.cpp b/libc/src/stdbit/stdc_count_zeros_ull.cpp
index 6a9c8f04a799f..c0d641e94754f 100644
--- a/libc/src/stdbit/stdc_count_zeros_ull.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_ull.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_count_zeros_ull.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_ull, (unsigned long long value)) {
   return static_cast<unsigned>(count_zeros(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_zeros_ull.h b/libc/src/stdbit/stdc_count_zeros_ull.h
index e15b33011ab7f..3db13a16fa68e 100644
--- a/libc/src/stdbit/stdc_count_zeros_ull.h
+++ b/libc/src/stdbit/stdc_count_zeros_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_zeros_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_ULL_H
diff --git a/libc/src/stdbit/stdc_count_zeros_us.cpp b/libc/src/stdbit/stdc_count_zeros_us.cpp
index c08186ec6e87c..fb352b049933c 100644
--- a/libc/src/stdbit/stdc_count_zeros_us.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_us.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_count_zeros_us.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_us, (unsigned short value)) {
   return static_cast<unsigned>(count_zeros(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_count_zeros_us.h b/libc/src/stdbit/stdc_count_zeros_us.h
index d422377f076bc..9e0f252a52b46 100644
--- a/libc/src/stdbit/stdc_count_zeros_us.h
+++ b/libc/src/stdbit/stdc_count_zeros_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_count_zeros_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_COUNT_ZEROS_US_H
diff --git a/libc/src/stdbit/stdc_first_leading_one_uc.cpp b/libc/src/stdbit/stdc_first_leading_one_uc.cpp
index 2e28ed3bb6f82..0d73f5c8e8f4d 100644
--- a/libc/src/stdbit/stdc_first_leading_one_uc.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_uc.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_first_leading_one_uc.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_uc, (unsigned char value)) {
   return static_cast<unsigned>(first_leading_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_one_uc.h b/libc/src/stdbit/stdc_first_leading_one_uc.h
index 58892c3f0ff29..bc1025b797ccb 100644
--- a/libc/src/stdbit/stdc_first_leading_one_uc.h
+++ b/libc/src/stdbit/stdc_first_leading_one_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_one_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UC_H
diff --git a/libc/src/stdbit/stdc_first_leading_one_ui.cpp b/libc/src/stdbit/stdc_first_leading_one_ui.cpp
index a07a39b09d9f4..cd33a1943c7ae 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ui.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_ui.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_first_leading_one_ui.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_ui, (unsigned value)) {
   return static_cast<unsigned>(first_leading_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_one_ui.h b/libc/src/stdbit/stdc_first_leading_one_ui.h
index 613adf4e1ff76..f1687aca659a3 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ui.h
+++ b/libc/src/stdbit/stdc_first_leading_one_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_one_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UI_H
diff --git a/libc/src/stdbit/stdc_first_leading_one_ul.cpp b/libc/src/stdbit/stdc_first_leading_one_ul.cpp
index 4350fb7826b49..a7a74535f3f0d 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ul.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_ul.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_first_leading_one_ul.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_ul, (unsigned long value)) {
   return static_cast<unsigned>(first_leading_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_one_ul.h b/libc/src/stdbit/stdc_first_leading_one_ul.h
index 47c179f3fbacd..53e02f274daf3 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ul.h
+++ b/libc/src/stdbit/stdc_first_leading_one_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_one_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_UL_H
diff --git a/libc/src/stdbit/stdc_first_leading_one_ull.cpp b/libc/src/stdbit/stdc_first_leading_one_ull.cpp
index 57a5ae368e11a..07d73300df8f5 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ull.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_ull.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_leading_one_ull.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(first_leading_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_one_ull.h b/libc/src/stdbit/stdc_first_leading_one_ull.h
index 344d03f7100f4..96dc8c42688a4 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ull.h
+++ b/libc/src/stdbit/stdc_first_leading_one_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_one_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_ULL_H
diff --git a/libc/src/stdbit/stdc_first_leading_one_us.cpp b/libc/src/stdbit/stdc_first_leading_one_us.cpp
index f14433b13f350..4c88abdac2ffd 100644
--- a/libc/src/stdbit/stdc_first_leading_one_us.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_us.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_leading_one_us.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_us,
                    (unsigned short value)) {
   return static_cast<unsigned>(first_leading_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_one_us.h b/libc/src/stdbit/stdc_first_leading_one_us.h
index 9d5feaf1e92f0..c213c3df3b792 100644
--- a/libc/src/stdbit/stdc_first_leading_one_us.h
+++ b/libc/src/stdbit/stdc_first_leading_one_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_one_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ONE_US_H
diff --git a/libc/src/stdbit/stdc_first_leading_zero_uc.cpp b/libc/src/stdbit/stdc_first_leading_zero_uc.cpp
index 6e2164256f172..03371357ee251 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_uc.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_uc.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_leading_zero_uc.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_uc,
                    (unsigned char value)) {
   return static_cast<unsigned>(first_leading_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_zero_uc.h b/libc/src/stdbit/stdc_first_leading_zero_uc.h
index 63ecd20acc618..e20cf307c05c0 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_uc.h
+++ b/libc/src/stdbit/stdc_first_leading_zero_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_zero_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UC_H
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ui.cpp b/libc/src/stdbit/stdc_first_leading_zero_ui.cpp
index cb733a94c0d84..c9e55e67a3738 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ui.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_ui.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_first_leading_zero_ui.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_ui, (unsigned value)) {
   return static_cast<unsigned>(first_leading_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ui.h b/libc/src/stdbit/stdc_first_leading_zero_ui.h
index d8d5d9345010f..204901ebf0a9a 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ui.h
+++ b/libc/src/stdbit/stdc_first_leading_zero_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_zero_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UI_H
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ul.cpp b/libc/src/stdbit/stdc_first_leading_zero_ul.cpp
index 8a3930a271ed9..cb5231cbf3439 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ul.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_ul.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_leading_zero_ul.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_ul,
                    (unsigned long value)) {
   return static_cast<unsigned>(first_leading_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ul.h b/libc/src/stdbit/stdc_first_leading_zero_ul.h
index 8df1b55c2c3aa..f0d2b3285bffc 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ul.h
+++ b/libc/src/stdbit/stdc_first_leading_zero_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_zero_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_UL_H
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ull.cpp b/libc/src/stdbit/stdc_first_leading_zero_ull.cpp
index 5a69197a82996..65591433c0309 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ull.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_ull.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_leading_zero_ull.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(first_leading_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ull.h b/libc/src/stdbit/stdc_first_leading_zero_ull.h
index 9aec5e7e55453..6cdb1790b5dec 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ull.h
+++ b/libc/src/stdbit/stdc_first_leading_zero_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_zero_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_ULL_H
diff --git a/libc/src/stdbit/stdc_first_leading_zero_us.cpp b/libc/src/stdbit/stdc_first_leading_zero_us.cpp
index 6482c8654db3b..25c3d892d38cc 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_us.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_us.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_leading_zero_us.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_us,
                    (unsigned short value)) {
   return static_cast<unsigned>(first_leading_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_leading_zero_us.h b/libc/src/stdbit/stdc_first_leading_zero_us.h
index 8587378069ce1..eacd406c8f645 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_us.h
+++ b/libc/src/stdbit/stdc_first_leading_zero_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_leading_zero_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_LEADING_ZERO_US_H
diff --git a/libc/src/stdbit/stdc_first_trailing_one_uc.cpp b/libc/src/stdbit/stdc_first_trailing_one_uc.cpp
index d3e8825eef00f..cd880241aa6bf 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_uc.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_uc.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_one_uc.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_uc,
                    (unsigned char value)) {
   return static_cast<unsigned>(first_trailing_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_one_uc.h b/libc/src/stdbit/stdc_first_trailing_one_uc.h
index d733ce850de0f..b54ca47bf7f7c 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_uc.h
+++ b/libc/src/stdbit/stdc_first_trailing_one_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_one_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UC_H
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ui.cpp b/libc/src/stdbit/stdc_first_trailing_one_ui.cpp
index 842bd69950501..03233d5fefcb3 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ui.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_ui.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_first_trailing_one_ui.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_ui, (unsigned value)) {
   return static_cast<unsigned>(first_trailing_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ui.h b/libc/src/stdbit/stdc_first_trailing_one_ui.h
index 6a6a5046709ae..be3eaf81312cd 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ui.h
+++ b/libc/src/stdbit/stdc_first_trailing_one_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_one_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UI_H
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ul.cpp b/libc/src/stdbit/stdc_first_trailing_one_ul.cpp
index 0497d1d77811e..0e5080d622b34 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ul.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_ul.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_one_ul.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_ul,
                    (unsigned long value)) {
   return static_cast<unsigned>(first_trailing_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ul.h b/libc/src/stdbit/stdc_first_trailing_one_ul.h
index 09b6a9bbbe34a..c0ad0da50fb3b 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ul.h
+++ b/libc/src/stdbit/stdc_first_trailing_one_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_one_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_UL_H
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ull.cpp b/libc/src/stdbit/stdc_first_trailing_one_ull.cpp
index 6e062dd27cdd6..3336983cbfcd0 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ull.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_ull.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_one_ull.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(first_trailing_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ull.h b/libc/src/stdbit/stdc_first_trailing_one_ull.h
index 3e12a1d745669..7cf961cc4abef 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ull.h
+++ b/libc/src/stdbit/stdc_first_trailing_one_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_one_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_ULL_H
diff --git a/libc/src/stdbit/stdc_first_trailing_one_us.cpp b/libc/src/stdbit/stdc_first_trailing_one_us.cpp
index e90158f102049..01cf247441dc8 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_us.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_us.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_one_us.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_us,
                    (unsigned short value)) {
   return static_cast<unsigned>(first_trailing_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_one_us.h b/libc/src/stdbit/stdc_first_trailing_one_us.h
index f380898fc68cd..24b1db50717d3 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_us.h
+++ b/libc/src/stdbit/stdc_first_trailing_one_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_one_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ONE_US_H
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_uc.cpp b/libc/src/stdbit/stdc_first_trailing_zero_uc.cpp
index a6939f6286b34..617839b18cf95 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_uc.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_zero_uc.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_zero_uc.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_zero_uc,
                    (unsigned char value)) {
   return static_cast<unsigned>(first_trailing_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_uc.h b/libc/src/stdbit/stdc_first_trailing_zero_uc.h
index 242472ae34f2e..39f61df52844b 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_uc.h
+++ b/libc/src/stdbit/stdc_first_trailing_zero_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_zero_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UC_H
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_ui.cpp b/libc/src/stdbit/stdc_first_trailing_zero_ui.cpp
index 7a50b696afff7..c852f5133a6ad 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_ui.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_zero_ui.cpp
@@ -9,12 +9,13 @@
 #include "src/stdbit/stdc_first_trailing_zero_ui.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_zero_ui, (unsigned value)) {
   return static_cast<unsigned>(first_trailing_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_ui.h b/libc/src/stdbit/stdc_first_trailing_zero_ui.h
index cc308f762b2b6..d43399b13f7a5 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_ui.h
+++ b/libc/src/stdbit/stdc_first_trailing_zero_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_zero_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UI_H
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_ul.cpp b/libc/src/stdbit/stdc_first_trailing_zero_ul.cpp
index 88acbabdf2d9f..42dccdf9b7465 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_ul.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_zero_ul.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_zero_ul.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_zero_ul,
                    (unsigned long value)) {
   return static_cast<unsigned>(first_trailing_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_ul.h b/libc/src/stdbit/stdc_first_trailing_zero_ul.h
index 8241337334174..f6c9fdffb5841 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_ul.h
+++ b/libc/src/stdbit/stdc_first_trailing_zero_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_zero_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_UL_H
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_ull.cpp b/libc/src/stdbit/stdc_first_trailing_zero_ull.cpp
index 92df8f284e8b5..4282eb489fa7e 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_ull.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_zero_ull.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_zero_ull.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_zero_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(first_trailing_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_ull.h b/libc/src/stdbit/stdc_first_trailing_zero_ull.h
index 3737fc1be2d43..ddd8b2e605aa6 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_ull.h
+++ b/libc/src/stdbit/stdc_first_trailing_zero_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_zero_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_ULL_H
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_us.cpp b/libc/src/stdbit/stdc_first_trailing_zero_us.cpp
index 86caa20dd3bd6..c49c985dc35bf 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_us.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_zero_us.cpp
@@ -9,13 +9,14 @@
 #include "src/stdbit/stdc_first_trailing_zero_us.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_zero_us,
                    (unsigned short value)) {
   return static_cast<unsigned>(first_trailing_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_us.h b/libc/src/stdbit/stdc_first_trailing_zero_us.h
index 608b052296964..8b958889bef3a 100644
--- a/libc/src/stdbit/stdc_first_trailing_zero_us.h
+++ b/libc/src/stdbit/stdc_first_trailing_zero_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_first_trailing_zero_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_FIRST_TRAILING_ZERO_US_H
diff --git a/libc/src/stdbit/stdc_has_single_bit_uc.cpp b/libc/src/stdbit/stdc_has_single_bit_uc.cpp
index e5acdc2a71b4b..cf3011a87445a 100644
--- a/libc/src/stdbit/stdc_has_single_bit_uc.cpp
+++ b/libc/src/stdbit/stdc_has_single_bit_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(bool, stdc_has_single_bit_uc, (unsigned char value)) {
   return cpp::has_single_bit(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_has_single_bit_uc.h b/libc/src/stdbit/stdc_has_single_bit_uc.h
index 028d4ee710505..89b09b48d0dac 100644
--- a/libc/src/stdbit/stdc_has_single_bit_uc.h
+++ b/libc/src/stdbit/stdc_has_single_bit_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 bool stdc_has_single_bit_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UC_H
diff --git a/libc/src/stdbit/stdc_has_single_bit_ui.cpp b/libc/src/stdbit/stdc_has_single_bit_ui.cpp
index 37578882324aa..06de58380633f 100644
--- a/libc/src/stdbit/stdc_has_single_bit_ui.cpp
+++ b/libc/src/stdbit/stdc_has_single_bit_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(bool, stdc_has_single_bit_ui, (unsigned value)) {
   return cpp::has_single_bit(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_has_single_bit_ui.h b/libc/src/stdbit/stdc_has_single_bit_ui.h
index 1e8cd9afaee88..e7dab6a0ed072 100644
--- a/libc/src/stdbit/stdc_has_single_bit_ui.h
+++ b/libc/src/stdbit/stdc_has_single_bit_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 bool stdc_has_single_bit_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UI_H
diff --git a/libc/src/stdbit/stdc_has_single_bit_ul.cpp b/libc/src/stdbit/stdc_has_single_bit_ul.cpp
index 85133ab81cc60..b2e586fac3445 100644
--- a/libc/src/stdbit/stdc_has_single_bit_ul.cpp
+++ b/libc/src/stdbit/stdc_has_single_bit_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(bool, stdc_has_single_bit_ul, (unsigned long value)) {
   return cpp::has_single_bit(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_has_single_bit_ul.h b/libc/src/stdbit/stdc_has_single_bit_ul.h
index 9b924fca9f065..4614cc053793f 100644
--- a/libc/src/stdbit/stdc_has_single_bit_ul.h
+++ b/libc/src/stdbit/stdc_has_single_bit_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 bool stdc_has_single_bit_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_UL_H
diff --git a/libc/src/stdbit/stdc_has_single_bit_ull.cpp b/libc/src/stdbit/stdc_has_single_bit_ull.cpp
index 4491cf2b98b6d..45aeda82b9085 100644
--- a/libc/src/stdbit/stdc_has_single_bit_ull.cpp
+++ b/libc/src/stdbit/stdc_has_single_bit_ull.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(bool, stdc_has_single_bit_ull, (unsigned long long value)) {
   return cpp::has_single_bit(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_has_single_bit_ull.h b/libc/src/stdbit/stdc_has_single_bit_ull.h
index d4802bc287274..84d4702cbc0f8 100644
--- a/libc/src/stdbit/stdc_has_single_bit_ull.h
+++ b/libc/src/stdbit/stdc_has_single_bit_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 bool stdc_has_single_bit_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_ULL_H
diff --git a/libc/src/stdbit/stdc_has_single_bit_us.cpp b/libc/src/stdbit/stdc_has_single_bit_us.cpp
index 7a42ae553aa2e..e915293530ca4 100644
--- a/libc/src/stdbit/stdc_has_single_bit_us.cpp
+++ b/libc/src/stdbit/stdc_has_single_bit_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(bool, stdc_has_single_bit_us, (unsigned short value)) {
   return cpp::has_single_bit(value);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_has_single_bit_us.h b/libc/src/stdbit/stdc_has_single_bit_us.h
index 201ff4954c3b7..d0fc5190ff8c7 100644
--- a/libc/src/stdbit/stdc_has_single_bit_us.h
+++ b/libc/src/stdbit/stdc_has_single_bit_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 bool stdc_has_single_bit_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_HAS_SINGLE_BIT_US_H
diff --git a/libc/src/stdbit/stdc_leading_ones_uc.cpp b/libc/src/stdbit/stdc_leading_ones_uc.cpp
index 69322d957dbf2..020bd40fcaa73 100644
--- a/libc/src/stdbit/stdc_leading_ones_uc.cpp
+++ b/libc/src/stdbit/stdc_leading_ones_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_ones_uc, (unsigned char value)) {
   return static_cast<unsigned>(cpp::countl_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_ones_uc.h b/libc/src/stdbit/stdc_leading_ones_uc.h
index fc4d2bdf623a6..7daaf673a4158 100644
--- a/libc/src/stdbit/stdc_leading_ones_uc.h
+++ b/libc/src/stdbit/stdc_leading_ones_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_ones_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UC_H
diff --git a/libc/src/stdbit/stdc_leading_ones_ui.cpp b/libc/src/stdbit/stdc_leading_ones_ui.cpp
index 2a73c2ccfa49b..2c51755ad6e62 100644
--- a/libc/src/stdbit/stdc_leading_ones_ui.cpp
+++ b/libc/src/stdbit/stdc_leading_ones_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_ones_ui, (unsigned value)) {
   return static_cast<unsigned>(cpp::countl_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_ones_ui.h b/libc/src/stdbit/stdc_leading_ones_ui.h
index c381eb50e9732..93b042cf8f44f 100644
--- a/libc/src/stdbit/stdc_leading_ones_ui.h
+++ b/libc/src/stdbit/stdc_leading_ones_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_ones_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UI_H
diff --git a/libc/src/stdbit/stdc_leading_ones_ul.cpp b/libc/src/stdbit/stdc_leading_ones_ul.cpp
index 5b2f61d43b027..50570a5897a24 100644
--- a/libc/src/stdbit/stdc_leading_ones_ul.cpp
+++ b/libc/src/stdbit/stdc_leading_ones_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_ones_ul, (unsigned long value)) {
   return static_cast<unsigned>(cpp::countl_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_ones_ul.h b/libc/src/stdbit/stdc_leading_ones_ul.h
index 3441edf861361..d4cf91c1f4dc2 100644
--- a/libc/src/stdbit/stdc_leading_ones_ul.h
+++ b/libc/src/stdbit/stdc_leading_ones_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_ones_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_UL_H
diff --git a/libc/src/stdbit/stdc_leading_ones_ull.cpp b/libc/src/stdbit/stdc_leading_ones_ull.cpp
index 05660b9fed653..aff91a40d5443 100644
--- a/libc/src/stdbit/stdc_leading_ones_ull.cpp
+++ b/libc/src/stdbit/stdc_leading_ones_ull.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_ones_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(cpp::countl_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_ones_ull.h b/libc/src/stdbit/stdc_leading_ones_ull.h
index 167eb732794d7..e459e4ba57fce 100644
--- a/libc/src/stdbit/stdc_leading_ones_ull.h
+++ b/libc/src/stdbit/stdc_leading_ones_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_ones_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_ULL_H
diff --git a/libc/src/stdbit/stdc_leading_ones_us.cpp b/libc/src/stdbit/stdc_leading_ones_us.cpp
index d93327db739b5..34db4ec295ccd 100644
--- a/libc/src/stdbit/stdc_leading_ones_us.cpp
+++ b/libc/src/stdbit/stdc_leading_ones_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_ones_us, (unsigned short value)) {
   return static_cast<unsigned>(cpp::countl_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_ones_us.h b/libc/src/stdbit/stdc_leading_ones_us.h
index 2a552d784b195..206756b633643 100644
--- a/libc/src/stdbit/stdc_leading_ones_us.h
+++ b/libc/src/stdbit/stdc_leading_ones_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_ones_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ONES_US_H
diff --git a/libc/src/stdbit/stdc_leading_zeros_uc.cpp b/libc/src/stdbit/stdc_leading_zeros_uc.cpp
index dbd2d7662c44f..d9b1628488a3e 100644
--- a/libc/src/stdbit/stdc_leading_zeros_uc.cpp
+++ b/libc/src/stdbit/stdc_leading_zeros_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_zeros_uc, (unsigned char value)) {
   return static_cast<unsigned>(cpp::countl_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_zeros_uc.h b/libc/src/stdbit/stdc_leading_zeros_uc.h
index 1edca66e13448..6bc1f3006bd76 100644
--- a/libc/src/stdbit/stdc_leading_zeros_uc.h
+++ b/libc/src/stdbit/stdc_leading_zeros_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_zeros_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UC_H
diff --git a/libc/src/stdbit/stdc_leading_zeros_ui.cpp b/libc/src/stdbit/stdc_leading_zeros_ui.cpp
index 99bc0eb70f33b..05a1a50412c91 100644
--- a/libc/src/stdbit/stdc_leading_zeros_ui.cpp
+++ b/libc/src/stdbit/stdc_leading_zeros_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_zeros_ui, (unsigned value)) {
   return static_cast<unsigned>(cpp::countl_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_zeros_ui.h b/libc/src/stdbit/stdc_leading_zeros_ui.h
index 14113d486b54a..ce7f266b97d96 100644
--- a/libc/src/stdbit/stdc_leading_zeros_ui.h
+++ b/libc/src/stdbit/stdc_leading_zeros_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_zeros_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UI_H
diff --git a/libc/src/stdbit/stdc_leading_zeros_ul.cpp b/libc/src/stdbit/stdc_leading_zeros_ul.cpp
index 0d5ff886fe991..e560889973939 100644
--- a/libc/src/stdbit/stdc_leading_zeros_ul.cpp
+++ b/libc/src/stdbit/stdc_leading_zeros_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_zeros_ul, (unsigned long value)) {
   return static_cast<unsigned>(cpp::countl_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_zeros_ul.h b/libc/src/stdbit/stdc_leading_zeros_ul.h
index 5bac6df1b14dc..a4c671f753ef2 100644
--- a/libc/src/stdbit/stdc_leading_zeros_ul.h
+++ b/libc/src/stdbit/stdc_leading_zeros_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_zeros_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_UL_H
diff --git a/libc/src/stdbit/stdc_leading_zeros_ull.cpp b/libc/src/stdbit/stdc_leading_zeros_ull.cpp
index b23cea7c3ee44..0bf3f13398675 100644
--- a/libc/src/stdbit/stdc_leading_zeros_ull.cpp
+++ b/libc/src/stdbit/stdc_leading_zeros_ull.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_zeros_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(cpp::countl_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_zeros_ull.h b/libc/src/stdbit/stdc_leading_zeros_ull.h
index e13624345fc78..a59fe2eff6108 100644
--- a/libc/src/stdbit/stdc_leading_zeros_ull.h
+++ b/libc/src/stdbit/stdc_leading_zeros_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_zeros_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_ULL_H
diff --git a/libc/src/stdbit/stdc_leading_zeros_us.cpp b/libc/src/stdbit/stdc_leading_zeros_us.cpp
index 424fdc7282563..00ac7c3e1e277 100644
--- a/libc/src/stdbit/stdc_leading_zeros_us.cpp
+++ b/libc/src/stdbit/stdc_leading_zeros_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_leading_zeros_us, (unsigned short value)) {
   return static_cast<unsigned>(cpp::countl_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_leading_zeros_us.h b/libc/src/stdbit/stdc_leading_zeros_us.h
index 6a3969002daf5..1ee4732d95017 100644
--- a/libc/src/stdbit/stdc_leading_zeros_us.h
+++ b/libc/src/stdbit/stdc_leading_zeros_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_leading_zeros_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_LEADING_ZEROS_US_H
diff --git a/libc/src/stdbit/stdc_trailing_ones_uc.cpp b/libc/src/stdbit/stdc_trailing_ones_uc.cpp
index eabb21367e285..302a766db0805 100644
--- a/libc/src/stdbit/stdc_trailing_ones_uc.cpp
+++ b/libc/src/stdbit/stdc_trailing_ones_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_ones_uc, (unsigned char value)) {
   return static_cast<unsigned>(cpp::countr_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_ones_uc.h b/libc/src/stdbit/stdc_trailing_ones_uc.h
index 9736e21e1f280..8eced3b12d335 100644
--- a/libc/src/stdbit/stdc_trailing_ones_uc.h
+++ b/libc/src/stdbit/stdc_trailing_ones_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_ones_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UC_H
diff --git a/libc/src/stdbit/stdc_trailing_ones_ui.cpp b/libc/src/stdbit/stdc_trailing_ones_ui.cpp
index 87eb54fe5f026..8ad6e78c50bf9 100644
--- a/libc/src/stdbit/stdc_trailing_ones_ui.cpp
+++ b/libc/src/stdbit/stdc_trailing_ones_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_ones_ui, (unsigned value)) {
   return static_cast<unsigned>(cpp::countr_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_ones_ui.h b/libc/src/stdbit/stdc_trailing_ones_ui.h
index aad7fcf0daf55..de7c9312291e7 100644
--- a/libc/src/stdbit/stdc_trailing_ones_ui.h
+++ b/libc/src/stdbit/stdc_trailing_ones_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_ones_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UI_H
diff --git a/libc/src/stdbit/stdc_trailing_ones_ul.cpp b/libc/src/stdbit/stdc_trailing_ones_ul.cpp
index 6d358a21ac337..af398a1573812 100644
--- a/libc/src/stdbit/stdc_trailing_ones_ul.cpp
+++ b/libc/src/stdbit/stdc_trailing_ones_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_ones_ul, (unsigned long value)) {
   return static_cast<unsigned>(cpp::countr_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_ones_ul.h b/libc/src/stdbit/stdc_trailing_ones_ul.h
index 80589501b1ed2..64da53869b162 100644
--- a/libc/src/stdbit/stdc_trailing_ones_ul.h
+++ b/libc/src/stdbit/stdc_trailing_ones_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_ones_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_UL_H
diff --git a/libc/src/stdbit/stdc_trailing_ones_ull.cpp b/libc/src/stdbit/stdc_trailing_ones_ull.cpp
index fb5fffe07817d..ef6927e2f1564 100644
--- a/libc/src/stdbit/stdc_trailing_ones_ull.cpp
+++ b/libc/src/stdbit/stdc_trailing_ones_ull.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_ones_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(cpp::countr_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_ones_ull.h b/libc/src/stdbit/stdc_trailing_ones_ull.h
index 3d3f0b306789a..f93bd572fedfc 100644
--- a/libc/src/stdbit/stdc_trailing_ones_ull.h
+++ b/libc/src/stdbit/stdc_trailing_ones_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_ones_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_ULL_H
diff --git a/libc/src/stdbit/stdc_trailing_ones_us.cpp b/libc/src/stdbit/stdc_trailing_ones_us.cpp
index ee7ff4f78d489..3a54d8ed74672 100644
--- a/libc/src/stdbit/stdc_trailing_ones_us.cpp
+++ b/libc/src/stdbit/stdc_trailing_ones_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_ones_us, (unsigned short value)) {
   return static_cast<unsigned>(cpp::countr_one(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_ones_us.h b/libc/src/stdbit/stdc_trailing_ones_us.h
index b783cd22ad2de..3dad46046f2d3 100644
--- a/libc/src/stdbit/stdc_trailing_ones_us.h
+++ b/libc/src/stdbit/stdc_trailing_ones_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_ones_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ONES_US_H
diff --git a/libc/src/stdbit/stdc_trailing_zeros_uc.cpp b/libc/src/stdbit/stdc_trailing_zeros_uc.cpp
index 36924c5a053ad..fcc05d4bcce00 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_uc.cpp
+++ b/libc/src/stdbit/stdc_trailing_zeros_uc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_zeros_uc, (unsigned char value)) {
   return static_cast<unsigned>(cpp::countr_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_zeros_uc.h b/libc/src/stdbit/stdc_trailing_zeros_uc.h
index 866201e5acea8..114c05cbdac11 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_uc.h
+++ b/libc/src/stdbit/stdc_trailing_zeros_uc.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UC_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_zeros_uc(unsigned char value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UC_H
diff --git a/libc/src/stdbit/stdc_trailing_zeros_ui.cpp b/libc/src/stdbit/stdc_trailing_zeros_ui.cpp
index a264fd97f251f..94bca3e991593 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_ui.cpp
+++ b/libc/src/stdbit/stdc_trailing_zeros_ui.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_zeros_ui, (unsigned value)) {
   return static_cast<unsigned>(cpp::countr_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_zeros_ui.h b/libc/src/stdbit/stdc_trailing_zeros_ui.h
index 0642e312f4fe7..0d8f5ee334751 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_ui.h
+++ b/libc/src/stdbit/stdc_trailing_zeros_ui.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UI_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_zeros_ui(unsigned value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UI_H
diff --git a/libc/src/stdbit/stdc_trailing_zeros_ul.cpp b/libc/src/stdbit/stdc_trailing_zeros_ul.cpp
index 8e0c36cb09965..407eb85ddd73e 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_ul.cpp
+++ b/libc/src/stdbit/stdc_trailing_zeros_ul.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_zeros_ul, (unsigned long value)) {
   return static_cast<unsigned>(cpp::countr_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_zeros_ul.h b/libc/src/stdbit/stdc_trailing_zeros_ul.h
index e10b4474753a0..368cd67e2330c 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_ul.h
+++ b/libc/src/stdbit/stdc_trailing_zeros_ul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_zeros_ul(unsigned long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_UL_H
diff --git a/libc/src/stdbit/stdc_trailing_zeros_ull.cpp b/libc/src/stdbit/stdc_trailing_zeros_ull.cpp
index 77cb20cb1ba45..eba3dff88f4f1 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_ull.cpp
+++ b/libc/src/stdbit/stdc_trailing_zeros_ull.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_zeros_ull,
                    (unsigned long long value)) {
   return static_cast<unsigned>(cpp::countr_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_zeros_ull.h b/libc/src/stdbit/stdc_trailing_zeros_ull.h
index f95169d29f45e..896c33b3ac104 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_ull.h
+++ b/libc/src/stdbit/stdc_trailing_zeros_ull.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_ULL_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_ULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_zeros_ull(unsigned long long value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_ULL_H
diff --git a/libc/src/stdbit/stdc_trailing_zeros_us.cpp b/libc/src/stdbit/stdc_trailing_zeros_us.cpp
index a5b9f4a7d8498..82eba56c5fc68 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_us.cpp
+++ b/libc/src/stdbit/stdc_trailing_zeros_us.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned, stdc_trailing_zeros_us, (unsigned short value)) {
   return static_cast<unsigned>(cpp::countr_zero(value));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdbit/stdc_trailing_zeros_us.h b/libc/src/stdbit/stdc_trailing_zeros_us.h
index ddbdf0d647abd..0241192a8a972 100644
--- a/libc/src/stdbit/stdc_trailing_zeros_us.h
+++ b/libc/src/stdbit/stdc_trailing_zeros_us.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_US_H
 #define LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_US_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned stdc_trailing_zeros_us(unsigned short value);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDBIT_STDC_TRAILING_ZEROS_US_H
diff --git a/libc/src/stdfix/abshk.cpp b/libc/src/stdfix/abshk.cpp
index d76a5e64e6107..384988997c8c7 100644
--- a/libc/src/stdfix/abshk.cpp
+++ b/libc/src/stdfix/abshk.cpp
@@ -9,11 +9,12 @@
 #include "abshk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(short accum, abshk, (short accum x)) {
   return fixed_point::abs(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/abshk.h b/libc/src/stdfix/abshk.h
index 13c9300caab88..060abed151332 100644
--- a/libc/src/stdfix/abshk.h
+++ b/libc/src/stdfix/abshk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ABSHK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 short accum abshk(short accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ABSHK_H
diff --git a/libc/src/stdfix/abshr.cpp b/libc/src/stdfix/abshr.cpp
index db887046b662c..d4289800fef0b 100644
--- a/libc/src/stdfix/abshr.cpp
+++ b/libc/src/stdfix/abshr.cpp
@@ -9,11 +9,12 @@
 #include "abshr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(short fract, abshr, (short fract x)) {
   return fixed_point::abs(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/abshr.h b/libc/src/stdfix/abshr.h
index 5acd0cfc4a60d..162c4396c2e63 100644
--- a/libc/src/stdfix/abshr.h
+++ b/libc/src/stdfix/abshr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ABSHR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 short fract abshr(short fract x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ABSHR_H
diff --git a/libc/src/stdfix/absk.cpp b/libc/src/stdfix/absk.cpp
index ca231d95a0ab7..8c18175fa97d3 100644
--- a/libc/src/stdfix/absk.cpp
+++ b/libc/src/stdfix/absk.cpp
@@ -9,9 +9,10 @@
 #include "absk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(accum, absk, (accum x)) { return fixed_point::abs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/absk.h b/libc/src/stdfix/absk.h
index 73dfcac0ac8e7..266a4faeba763 100644
--- a/libc/src/stdfix/absk.h
+++ b/libc/src/stdfix/absk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ABSK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 accum absk(accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ABSK_H
diff --git a/libc/src/stdfix/abslk.cpp b/libc/src/stdfix/abslk.cpp
index 5e085198ce428..c24d21671a110 100644
--- a/libc/src/stdfix/abslk.cpp
+++ b/libc/src/stdfix/abslk.cpp
@@ -9,11 +9,12 @@
 #include "abslk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long accum, abslk, (long accum x)) {
   return fixed_point::abs(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/abslk.h b/libc/src/stdfix/abslk.h
index 7de116fa22793..a1ee8ca02fdcd 100644
--- a/libc/src/stdfix/abslk.h
+++ b/libc/src/stdfix/abslk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ABSLK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long accum abslk(long accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ABSLK_H
diff --git a/libc/src/stdfix/abslr.cpp b/libc/src/stdfix/abslr.cpp
index 0f8969510a505..3f84fc725e51c 100644
--- a/libc/src/stdfix/abslr.cpp
+++ b/libc/src/stdfix/abslr.cpp
@@ -9,11 +9,12 @@
 #include "abslr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long fract, abslr, (long fract x)) {
   return fixed_point::abs(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/abslr.h b/libc/src/stdfix/abslr.h
index bf5b585bbbb66..961409ada5a8a 100644
--- a/libc/src/stdfix/abslr.h
+++ b/libc/src/stdfix/abslr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ABSLR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long fract abslr(long fract x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ABSLR_H
diff --git a/libc/src/stdfix/absr.cpp b/libc/src/stdfix/absr.cpp
index dbbecb4947da9..42f639d63f5a7 100644
--- a/libc/src/stdfix/absr.cpp
+++ b/libc/src/stdfix/absr.cpp
@@ -9,9 +9,10 @@
 #include "absr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(fract, absr, (fract x)) { return fixed_point::abs(x); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/absr.h b/libc/src/stdfix/absr.h
index b5ead7ce14e2a..0b47ab1f2e7fd 100644
--- a/libc/src/stdfix/absr.h
+++ b/libc/src/stdfix/absr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ABSR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 fract absr(fract x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ABSR_H
diff --git a/libc/src/stdfix/exphk.cpp b/libc/src/stdfix/exphk.cpp
index 19a972b390c71..0b17a4075e8f3 100644
--- a/libc/src/stdfix/exphk.cpp
+++ b/libc/src/stdfix/exphk.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -89,4 +90,4 @@ LLVM_LIBC_FUNCTION(short accum, exphk, (short accum x)) {
   return (exp_hi * (exp_mid * (0x1.0p0hk + lo)));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/exphk.h b/libc/src/stdfix/exphk.h
index da03bb76d53f5..d10dda13a3007 100644
--- a/libc/src/stdfix/exphk.h
+++ b/libc/src/stdfix/exphk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_EXPHK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 short accum exphk(short accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_EXPHK_H
diff --git a/libc/src/stdfix/expk.cpp b/libc/src/stdfix/expk.cpp
index 57227fd27769c..0851c7fef48d9 100644
--- a/libc/src/stdfix/expk.cpp
+++ b/libc/src/stdfix/expk.cpp
@@ -10,8 +10,9 @@
 #include "src/__support/CPP/bit.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -101,4 +102,4 @@ LLVM_LIBC_FUNCTION(accum, expk, (accum x)) {
   return (exp_hi * (exp_mid * l2));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/expk.h b/libc/src/stdfix/expk.h
index 4526686a200b4..4fd1dd5fffb5d 100644
--- a/libc/src/stdfix/expk.h
+++ b/libc/src/stdfix/expk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_EXPK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 accum expk(accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_EXPK_H
diff --git a/libc/src/stdfix/roundhk.cpp b/libc/src/stdfix/roundhk.cpp
index a4f459ea0d653..c94aa6de5f960 100644
--- a/libc/src/stdfix/roundhk.cpp
+++ b/libc/src/stdfix/roundhk.cpp
@@ -9,11 +9,12 @@
 #include "roundhk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(short accum, roundhk, (short accum x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundhk.h b/libc/src/stdfix/roundhk.h
index 9a5c874cc030d..0c1e3780a71ad 100644
--- a/libc/src/stdfix/roundhk.h
+++ b/libc/src/stdfix/roundhk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDHK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 short accum roundhk(short accum x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDHK_H
diff --git a/libc/src/stdfix/roundhr.cpp b/libc/src/stdfix/roundhr.cpp
index 7757d1cc735f4..539f951662243 100644
--- a/libc/src/stdfix/roundhr.cpp
+++ b/libc/src/stdfix/roundhr.cpp
@@ -9,11 +9,12 @@
 #include "roundhr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(short fract, roundhr, (short fract x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundhr.h b/libc/src/stdfix/roundhr.h
index ba5a67945d6c3..a3a4ace902f10 100644
--- a/libc/src/stdfix/roundhr.h
+++ b/libc/src/stdfix/roundhr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDHR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 short fract roundhr(short fract x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDHR_H
diff --git a/libc/src/stdfix/roundk.cpp b/libc/src/stdfix/roundk.cpp
index bf47dd9898d8f..3aedfa322b9a7 100644
--- a/libc/src/stdfix/roundk.cpp
+++ b/libc/src/stdfix/roundk.cpp
@@ -9,11 +9,12 @@
 #include "roundk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(accum, roundk, (accum x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundk.h b/libc/src/stdfix/roundk.h
index e9fa6d8f9c3b8..36d34992146cf 100644
--- a/libc/src/stdfix/roundk.h
+++ b/libc/src/stdfix/roundk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 accum roundk(accum x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDK_H
diff --git a/libc/src/stdfix/roundlk.cpp b/libc/src/stdfix/roundlk.cpp
index d2ffe8ab03785..94dceb40cf819 100644
--- a/libc/src/stdfix/roundlk.cpp
+++ b/libc/src/stdfix/roundlk.cpp
@@ -9,11 +9,12 @@
 #include "roundlk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long accum, roundlk, (long accum x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundlk.h b/libc/src/stdfix/roundlk.h
index 5fa0e90e855a6..e1661ec7268c3 100644
--- a/libc/src/stdfix/roundlk.h
+++ b/libc/src/stdfix/roundlk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDLK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long accum roundlk(long accum x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDLK_H
diff --git a/libc/src/stdfix/roundlr.cpp b/libc/src/stdfix/roundlr.cpp
index cd4c911ffe68e..5a7737d05e6a6 100644
--- a/libc/src/stdfix/roundlr.cpp
+++ b/libc/src/stdfix/roundlr.cpp
@@ -9,11 +9,12 @@
 #include "roundlr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long fract, roundlr, (long fract x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundlr.h b/libc/src/stdfix/roundlr.h
index c015292e8f3f2..58d6ffa6977e9 100644
--- a/libc/src/stdfix/roundlr.h
+++ b/libc/src/stdfix/roundlr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDLR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long fract roundlr(long fract x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDLR_H
diff --git a/libc/src/stdfix/roundr.cpp b/libc/src/stdfix/roundr.cpp
index 24216936d5f9b..d4ade17ac3c6d 100644
--- a/libc/src/stdfix/roundr.cpp
+++ b/libc/src/stdfix/roundr.cpp
@@ -9,11 +9,12 @@
 #include "roundr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(fract, roundr, (fract x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundr.h b/libc/src/stdfix/roundr.h
index b5b1375c882e0..105314da1828d 100644
--- a/libc/src/stdfix/roundr.h
+++ b/libc/src/stdfix/roundr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 fract roundr(fract x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDR_H
diff --git a/libc/src/stdfix/rounduhk.cpp b/libc/src/stdfix/rounduhk.cpp
index 22561588e0336..3c13a313ed54f 100644
--- a/libc/src/stdfix/rounduhk.cpp
+++ b/libc/src/stdfix/rounduhk.cpp
@@ -9,12 +9,13 @@
 #include "rounduhk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short accum, rounduhk,
                    (unsigned short accum x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/rounduhk.h b/libc/src/stdfix/rounduhk.h
index 85ebf2903ec7e..e6cbc218be474 100644
--- a/libc/src/stdfix/rounduhk.h
+++ b/libc/src/stdfix/rounduhk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDUHK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short accum rounduhk(unsigned short accum x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDUHK_H
diff --git a/libc/src/stdfix/rounduhr.cpp b/libc/src/stdfix/rounduhr.cpp
index e2e3435c15ef3..8c7abaf6bca48 100644
--- a/libc/src/stdfix/rounduhr.cpp
+++ b/libc/src/stdfix/rounduhr.cpp
@@ -9,12 +9,13 @@
 #include "rounduhr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short fract, rounduhr,
                    (unsigned short fract x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/rounduhr.h b/libc/src/stdfix/rounduhr.h
index 1be0aab1f5a79..2d8c85a6c15ed 100644
--- a/libc/src/stdfix/rounduhr.h
+++ b/libc/src/stdfix/rounduhr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDUHR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short fract rounduhr(unsigned short fract x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDUHR_H
diff --git a/libc/src/stdfix/rounduk.cpp b/libc/src/stdfix/rounduk.cpp
index b9f8522aed35d..d543a6853fc3c 100644
--- a/libc/src/stdfix/rounduk.cpp
+++ b/libc/src/stdfix/rounduk.cpp
@@ -9,11 +9,12 @@
 #include "rounduk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned accum, rounduk, (unsigned accum x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/rounduk.h b/libc/src/stdfix/rounduk.h
index 8dae89586c490..51f0f9ce32953 100644
--- a/libc/src/stdfix/rounduk.h
+++ b/libc/src/stdfix/rounduk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDUK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned accum rounduk(unsigned accum x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDUK_H
diff --git a/libc/src/stdfix/roundulk.cpp b/libc/src/stdfix/roundulk.cpp
index 241b2c2c9a061..09c1d86f4b93f 100644
--- a/libc/src/stdfix/roundulk.cpp
+++ b/libc/src/stdfix/roundulk.cpp
@@ -9,12 +9,13 @@
 #include "roundulk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long accum, roundulk,
                    (unsigned long accum x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundulk.h b/libc/src/stdfix/roundulk.h
index 81dfd1dceb600..797ce9fb957a7 100644
--- a/libc/src/stdfix/roundulk.h
+++ b/libc/src/stdfix/roundulk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDULK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long accum roundulk(unsigned long accum x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDULK_H
diff --git a/libc/src/stdfix/roundulr.cpp b/libc/src/stdfix/roundulr.cpp
index 6c32074520cd5..e654b197dc9fe 100644
--- a/libc/src/stdfix/roundulr.cpp
+++ b/libc/src/stdfix/roundulr.cpp
@@ -9,12 +9,13 @@
 #include "roundulr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long fract, roundulr,
                    (unsigned long fract x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundulr.h b/libc/src/stdfix/roundulr.h
index 002fc94907c61..1f6165b10f368 100644
--- a/libc/src/stdfix/roundulr.h
+++ b/libc/src/stdfix/roundulr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDULR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long fract roundulr(unsigned long fract x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDULR_H
diff --git a/libc/src/stdfix/roundur.cpp b/libc/src/stdfix/roundur.cpp
index e91b7f1103753..1d3485425984f 100644
--- a/libc/src/stdfix/roundur.cpp
+++ b/libc/src/stdfix/roundur.cpp
@@ -9,11 +9,12 @@
 #include "roundur.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/fx_bits.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned fract, roundur, (unsigned fract x, int n)) {
   return fixed_point::round(x, n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/roundur.h b/libc/src/stdfix/roundur.h
index 72de44b1e0c4e..815fd145b66fb 100644
--- a/libc/src/stdfix/roundur.h
+++ b/libc/src/stdfix/roundur.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_ROUNDUR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned fract roundur(unsigned fract x, int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_ROUNDUR_H
diff --git a/libc/src/stdfix/sqrtuhk.cpp b/libc/src/stdfix/sqrtuhk.cpp
index e8dc842c8a998..312846af7b737 100644
--- a/libc/src/stdfix/sqrtuhk.cpp
+++ b/libc/src/stdfix/sqrtuhk.cpp
@@ -9,11 +9,12 @@
 #include "sqrtuhk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short accum, sqrtuhk, (unsigned short accum x)) {
   return fixed_point::sqrt(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/sqrtuhk.h b/libc/src/stdfix/sqrtuhk.h
index 80000a0079696..5b8f9eaebc76e 100644
--- a/libc/src/stdfix/sqrtuhk.h
+++ b/libc/src/stdfix/sqrtuhk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_SQRTUHK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short accum sqrtuhk(unsigned short accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_SQRTUHK_H
diff --git a/libc/src/stdfix/sqrtuhr.cpp b/libc/src/stdfix/sqrtuhr.cpp
index 6bba07aa20d59..87e151cc8ac60 100644
--- a/libc/src/stdfix/sqrtuhr.cpp
+++ b/libc/src/stdfix/sqrtuhr.cpp
@@ -9,11 +9,12 @@
 #include "sqrtuhr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short fract, sqrtuhr, (unsigned short fract x)) {
   return fixed_point::sqrt(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/sqrtuhr.h b/libc/src/stdfix/sqrtuhr.h
index fd95f0924e8d4..390c369be1597 100644
--- a/libc/src/stdfix/sqrtuhr.h
+++ b/libc/src/stdfix/sqrtuhr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_SQRTUHR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short fract sqrtuhr(unsigned short fract x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_SQRTUHR_H
diff --git a/libc/src/stdfix/sqrtuk.cpp b/libc/src/stdfix/sqrtuk.cpp
index 6e5d8118c83b7..857f75f30cac7 100644
--- a/libc/src/stdfix/sqrtuk.cpp
+++ b/libc/src/stdfix/sqrtuk.cpp
@@ -9,11 +9,12 @@
 #include "sqrtuk.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned accum, sqrtuk, (unsigned accum x)) {
   return fixed_point::sqrt(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/sqrtuk.h b/libc/src/stdfix/sqrtuk.h
index 04d0adadde9ad..2b043c153277f 100644
--- a/libc/src/stdfix/sqrtuk.h
+++ b/libc/src/stdfix/sqrtuk.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_SQRTUK_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned accum sqrtuk(unsigned accum x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_SQRTUK_H
diff --git a/libc/src/stdfix/sqrtulr.cpp b/libc/src/stdfix/sqrtulr.cpp
index c9e5cd51f66bc..db9b0639d8136 100644
--- a/libc/src/stdfix/sqrtulr.cpp
+++ b/libc/src/stdfix/sqrtulr.cpp
@@ -9,11 +9,12 @@
 #include "sqrtulr.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long fract, sqrtulr, (unsigned long fract x)) {
   return fixed_point::sqrt(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/sqrtulr.h b/libc/src/stdfix/sqrtulr.h
index 284adaaf35bf5..a43cc44b79c3b 100644
--- a/libc/src/stdfix/sqrtulr.h
+++ b/libc/src/stdfix/sqrtulr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_SQRTULR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long fract sqrtulr(unsigned long fract x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_SQRTULR_H
diff --git a/libc/src/stdfix/sqrtur.cpp b/libc/src/stdfix/sqrtur.cpp
index ac5be84910849..4c696b2c5c38d 100644
--- a/libc/src/stdfix/sqrtur.cpp
+++ b/libc/src/stdfix/sqrtur.cpp
@@ -9,11 +9,12 @@
 #include "sqrtur.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned fract, sqrtur, (unsigned fract x)) {
   return fixed_point::sqrt(x);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/sqrtur.h b/libc/src/stdfix/sqrtur.h
index df9dfe5a0bf39..47a9ab6edbbe6 100644
--- a/libc/src/stdfix/sqrtur.h
+++ b/libc/src/stdfix/sqrtur.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_SQRTUR_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned fract sqrtur(unsigned fract x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_SQRTUR_H
diff --git a/libc/src/stdfix/uhksqrtus.cpp b/libc/src/stdfix/uhksqrtus.cpp
index 335750ae902b2..f41e8794a0418 100644
--- a/libc/src/stdfix/uhksqrtus.cpp
+++ b/libc/src/stdfix/uhksqrtus.cpp
@@ -9,8 +9,9 @@
 #include "uhksqrtus.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned short accum, uhksqrtus, (unsigned short x)) {
 #ifdef LIBC_FAST_MATH
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(unsigned short accum, uhksqrtus, (unsigned short x)) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/uhksqrtus.h b/libc/src/stdfix/uhksqrtus.h
index c24846a800303..0633f7efe688c 100644
--- a/libc/src/stdfix/uhksqrtus.h
+++ b/libc/src/stdfix/uhksqrtus.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_UHKSQRTUS_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned short accum uhksqrtus(unsigned short x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_UHKSQRTUS_H
diff --git a/libc/src/stdfix/uksqrtui.cpp b/libc/src/stdfix/uksqrtui.cpp
index ee1ae1335027a..504bd06163cf4 100644
--- a/libc/src/stdfix/uksqrtui.cpp
+++ b/libc/src/stdfix/uksqrtui.cpp
@@ -9,8 +9,9 @@
 #include "uksqrtui.h"
 #include "src/__support/common.h"
 #include "src/__support/fixed_point/sqrt.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned accum, uksqrtui, (unsigned int x)) {
 #ifdef LIBC_FAST_MATH
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(unsigned accum, uksqrtui, (unsigned int x)) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdfix/uksqrtui.h b/libc/src/stdfix/uksqrtui.h
index cd4ff41ea100a..f9fb0e0480b6a 100644
--- a/libc/src/stdfix/uksqrtui.h
+++ b/libc/src/stdfix/uksqrtui.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDFIX_UKSQRTUI_H
 
 #include "include/llvm-libc-macros/stdfix-macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned accum uksqrtui(unsigned int x);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDFIX_UKSQRTUI_H
diff --git a/libc/src/stdio/CMakeLists.txt b/libc/src/stdio/CMakeLists.txt
index e5bf5c64ec833..7c61238e69576 100644
--- a/libc/src/stdio/CMakeLists.txt
+++ b/libc/src/stdio/CMakeLists.txt
@@ -209,7 +209,6 @@ add_entrypoint_object(
     libc.src.stdio.printf_core.vfprintf_internal
 )
 
-
 add_subdirectory(printf_core)
 add_subdirectory(scanf_core)
 
diff --git a/libc/src/stdio/baremetal/getchar.cpp b/libc/src/stdio/baremetal/getchar.cpp
index 01a5a587e5bce..0a78a1ff8adf1 100644
--- a/libc/src/stdio/baremetal/getchar.cpp
+++ b/libc/src/stdio/baremetal/getchar.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/getchar.h"
 #include "src/__support/OSUtil/io.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getchar, ()) {
   char buf[1];
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, getchar, ()) {
   return buf[0];
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/baremetal/printf.cpp b/libc/src/stdio/baremetal/printf.cpp
index dfc3c0b853959..04aa284ee0839 100644
--- a/libc/src/stdio/baremetal/printf.cpp
+++ b/libc/src/stdio/baremetal/printf.cpp
@@ -9,6 +9,7 @@
 #include "src/stdio/printf.h"
 #include "src/__support/OSUtil/io.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
@@ -16,7 +17,7 @@
 #include <stdarg.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -49,4 +50,4 @@ LLVM_LIBC_FUNCTION(int, printf, (const char *__restrict format, ...)) {
   return retval;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/baremetal/putchar.cpp b/libc/src/stdio/baremetal/putchar.cpp
index 23e9745e9cf70..0ba46a5ade6c9 100644
--- a/libc/src/stdio/baremetal/putchar.cpp
+++ b/libc/src/stdio/baremetal/putchar.cpp
@@ -9,8 +9,9 @@
 #include "src/stdio/putchar.h"
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/OSUtil/io.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, putchar, (int c)) {
   char uc = static_cast<char>(c);
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(int, putchar, (int c)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/baremetal/puts.cpp b/libc/src/stdio/baremetal/puts.cpp
index 136cdb8acf800..5062efda1c0dc 100644
--- a/libc/src/stdio/baremetal/puts.cpp
+++ b/libc/src/stdio/baremetal/puts.cpp
@@ -9,8 +9,9 @@
 #include "src/stdio/puts.h"
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/OSUtil/io.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, puts, (const char *__restrict str)) {
   cpp::string_view str_view(str);
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, puts, (const char *__restrict str)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/baremetal/remove.cpp b/libc/src/stdio/baremetal/remove.cpp
index f4f2cdca7c69b..d383d0cf78887 100644
--- a/libc/src/stdio/baremetal/remove.cpp
+++ b/libc/src/stdio/baremetal/remove.cpp
@@ -9,11 +9,12 @@
 #include "src/stdio/remove.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: This is a temporary workaround for issue #85335.
 
 LLVM_LIBC_FUNCTION(int, remove, (const char *)) { return -1; }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/baremetal/vprintf.cpp b/libc/src/stdio/baremetal/vprintf.cpp
index 203ec18efb657..617b5f488e772 100644
--- a/libc/src/stdio/baremetal/vprintf.cpp
+++ b/libc/src/stdio/baremetal/vprintf.cpp
@@ -9,6 +9,7 @@
 #include "src/stdio/vprintf.h"
 #include "src/__support/OSUtil/io.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
@@ -16,7 +17,7 @@
 #include <stdarg.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -47,4 +48,4 @@ LLVM_LIBC_FUNCTION(int, vprintf,
   return retval;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/clearerr.h b/libc/src/stdio/clearerr.h
index 2b3418037c433..790d923f7da62 100644
--- a/libc/src/stdio/clearerr.h
+++ b/libc/src/stdio/clearerr.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_CLEARERR_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void clearerr(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_CLEARERR_H
diff --git a/libc/src/stdio/clearerr_unlocked.h b/libc/src/stdio/clearerr_unlocked.h
index 05ddbdd1d7af1..2a57e768cdbec 100644
--- a/libc/src/stdio/clearerr_unlocked.h
+++ b/libc/src/stdio/clearerr_unlocked.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_CLEARERR_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void clearerr_unlocked(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_CLEARERR_UNLOCKED_H
diff --git a/libc/src/stdio/fclose.h b/libc/src/stdio/fclose.h
index 731e3581d8fd1..0b1a36dcb1b9a 100644
--- a/libc/src/stdio/fclose.h
+++ b/libc/src/stdio/fclose.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FCLOSE_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fclose(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FCLOSE_H
diff --git a/libc/src/stdio/fdopen.h b/libc/src/stdio/fdopen.h
index 29028b8ab5ed3..9917c2b2a378e 100644
--- a/libc/src/stdio/fdopen.h
+++ b/libc/src/stdio/fdopen.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FDOPEN_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ::FILE *fdopen(int fd, const char *mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FDOPEN_H
diff --git a/libc/src/stdio/feof.h b/libc/src/stdio/feof.h
index 3d47db6993e1f..6a88d3b6e8dc9 100644
--- a/libc/src/stdio/feof.h
+++ b/libc/src/stdio/feof.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FEOF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int feof(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FEOF_H
diff --git a/libc/src/stdio/feof_unlocked.h b/libc/src/stdio/feof_unlocked.h
index 6eae427992698..0c14439a11c56 100644
--- a/libc/src/stdio/feof_unlocked.h
+++ b/libc/src/stdio/feof_unlocked.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FEOF_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int feof_unlocked(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FEOF_UNLOCKED_H
diff --git a/libc/src/stdio/ferror.h b/libc/src/stdio/ferror.h
index 9e2f949bf30e5..d613c373a4b7d 100644
--- a/libc/src/stdio/ferror.h
+++ b/libc/src/stdio/ferror.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FERROR_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int ferror(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FERROR_H
diff --git a/libc/src/stdio/ferror_unlocked.h b/libc/src/stdio/ferror_unlocked.h
index 16cfd5a1b1482..13cfd239a2aee 100644
--- a/libc/src/stdio/ferror_unlocked.h
+++ b/libc/src/stdio/ferror_unlocked.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FERROR_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int ferror_unlocked(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FERROR_UNLOCKED_H
diff --git a/libc/src/stdio/fflush.h b/libc/src/stdio/fflush.h
index d64d5264cf7dd..e810484992a09 100644
--- a/libc/src/stdio/fflush.h
+++ b/libc/src/stdio/fflush.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FFLUSH_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fflush(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FFLUSH_H
diff --git a/libc/src/stdio/fgetc.h b/libc/src/stdio/fgetc.h
index f88d759d549ec..f17a88adf871d 100644
--- a/libc/src/stdio/fgetc.h
+++ b/libc/src/stdio/fgetc.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FGETC_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fgetc(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FGETC_H
diff --git a/libc/src/stdio/fgetc_unlocked.h b/libc/src/stdio/fgetc_unlocked.h
index 9ff311af833e4..5643ee206b30c 100644
--- a/libc/src/stdio/fgetc_unlocked.h
+++ b/libc/src/stdio/fgetc_unlocked.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FGETC_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fgetc_unlocked(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FGETC_UNLOCKED_H
diff --git a/libc/src/stdio/fgets.h b/libc/src/stdio/fgets.h
index d3d49a1f42952..499c27cea24e4 100644
--- a/libc/src/stdio/fgets.h
+++ b/libc/src/stdio/fgets.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FGETS_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *fgets(char *__restrict str, int count, ::FILE *__restrict raw_stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FGETS_H
diff --git a/libc/src/stdio/fileno.h b/libc/src/stdio/fileno.h
index 667061afbc94d..7e49e7166685b 100644
--- a/libc/src/stdio/fileno.h
+++ b/libc/src/stdio/fileno.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FILENO_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fileno(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FILENO_H
diff --git a/libc/src/stdio/flockfile.cpp b/libc/src/stdio/flockfile.cpp
index b996a77b3c300..4fc0af51dbfe8 100644
--- a/libc/src/stdio/flockfile.cpp
+++ b/libc/src/stdio/flockfile.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/flockfile.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, flockfile, (::FILE * stream)) {
   reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->lock();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/flockfile.h b/libc/src/stdio/flockfile.h
index ef002657a2416..b7e2b5f5a9814 100644
--- a/libc/src/stdio/flockfile.h
+++ b/libc/src/stdio/flockfile.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FLOCKFILE_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void flockfile(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FLOCKFILE_H
diff --git a/libc/src/stdio/fopen.h b/libc/src/stdio/fopen.h
index 23f95cfe592e6..a76c3a918f9ac 100644
--- a/libc/src/stdio/fopen.h
+++ b/libc/src/stdio/fopen.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FOPEN_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ::FILE *fopen(const char *__restrict name, const char *__restrict mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FOPEN_H
diff --git a/libc/src/stdio/fopencookie.cpp b/libc/src/stdio/fopencookie.cpp
index 367172a6fd8c7..07be9a5635a92 100644
--- a/libc/src/stdio/fopencookie.cpp
+++ b/libc/src/stdio/fopencookie.cpp
@@ -14,9 +14,10 @@
 #include "src/__support/CPP/new.h"
 #include "src/__support/File/file.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -97,4 +98,4 @@ LLVM_LIBC_FUNCTION(::FILE *, fopencookie,
   return reinterpret_cast<::FILE *>(file);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/fopencookie.h b/libc/src/stdio/fopencookie.h
index dc832128a30d0..15b377f6e275a 100644
--- a/libc/src/stdio/fopencookie.h
+++ b/libc/src/stdio/fopencookie.h
@@ -11,12 +11,13 @@
 
 #include "hdr/types/FILE.h"
 #include "hdr/types/cookie_io_functions_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ::FILE *fopencookie(void *cookie, const char *__restrict mode,
                     cookie_io_functions_t desc);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FOPENCOOKIE_H
diff --git a/libc/src/stdio/fprintf.cpp b/libc/src/stdio/fprintf.cpp
index 5d14d82b77df7..087aeadfc52c5 100644
--- a/libc/src/stdio/fprintf.cpp
+++ b/libc/src/stdio/fprintf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/vfprintf_internal.h"
 
 #include "hdr/types/FILE.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fprintf,
                    (::FILE *__restrict stream, const char *__restrict format,
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, fprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/fprintf.h b/libc/src/stdio/fprintf.h
index 4d070cec7d291..4ab90e3c3f81a 100644
--- a/libc/src/stdio/fprintf.h
+++ b/libc/src/stdio/fprintf.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FPRINTF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fprintf(::FILE *__restrict stream, const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FPRINTF_H
diff --git a/libc/src/stdio/fputc.h b/libc/src/stdio/fputc.h
index 6c449650d3c1e..5dde302d8d86c 100644
--- a/libc/src/stdio/fputc.h
+++ b/libc/src/stdio/fputc.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FPUTC_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fputc(int c, ::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FPUTC_H
diff --git a/libc/src/stdio/fputs.h b/libc/src/stdio/fputs.h
index 4dddf96eab27e..4b5534f84f0cc 100644
--- a/libc/src/stdio/fputs.h
+++ b/libc/src/stdio/fputs.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FPUTS_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fputs(const char *__restrict str, ::FILE *__restrict stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FPUTS_H
diff --git a/libc/src/stdio/fread.h b/libc/src/stdio/fread.h
index a74095aafff91..ab11af3beb459 100644
--- a/libc/src/stdio/fread.h
+++ b/libc/src/stdio/fread.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_FREAD_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t fread(void *__restrict buffer, size_t size, size_t nmemb,
              ::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FREAD_H
diff --git a/libc/src/stdio/fread_unlocked.h b/libc/src/stdio/fread_unlocked.h
index 49a3827608f3a..ff5561e0d30cc 100644
--- a/libc/src/stdio/fread_unlocked.h
+++ b/libc/src/stdio/fread_unlocked.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_FREAD_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t fread_unlocked(void *__restrict buffer, size_t size, size_t nmemb,
                       ::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FREAD_UNLOCKED_H
diff --git a/libc/src/stdio/fscanf.cpp b/libc/src/stdio/fscanf.cpp
index 1f99f873c0700..94b843978749e 100644
--- a/libc/src/stdio/fscanf.cpp
+++ b/libc/src/stdio/fscanf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/vfscanf_internal.h"
 
 #include "hdr/types/FILE.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fscanf,
                    (::FILE *__restrict stream, const char *__restrict format,
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, fscanf,
   return (ret_val == -1) ? EOF : ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/fscanf.h b/libc/src/stdio/fscanf.h
index 21df616783bb3..3a8b86b6707d1 100644
--- a/libc/src/stdio/fscanf.h
+++ b/libc/src/stdio/fscanf.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FSCANF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fscanf(::FILE *__restrict stream, const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FSCANF_H
diff --git a/libc/src/stdio/fseek.h b/libc/src/stdio/fseek.h
index 5496cbef4b2f4..a979b41c7b7a1 100644
--- a/libc/src/stdio/fseek.h
+++ b/libc/src/stdio/fseek.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FSEEK_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fseek(::FILE *stream, long offset, int whence);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FSEEK_H
diff --git a/libc/src/stdio/fseeko.h b/libc/src/stdio/fseeko.h
index 25fc39e561397..6b83d4a489b33 100644
--- a/libc/src/stdio/fseeko.h
+++ b/libc/src/stdio/fseeko.h
@@ -11,11 +11,12 @@
 
 #include "hdr/types/FILE.h"
 #include "hdr/types/off_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fseeko(::FILE *stream, off_t offset, int whence);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FSEEKO_H
diff --git a/libc/src/stdio/ftell.h b/libc/src/stdio/ftell.h
index b644edd70181c..813d9a1393701 100644
--- a/libc/src/stdio/ftell.h
+++ b/libc/src/stdio/ftell.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FTELL_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long ftell(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FTELL_H
diff --git a/libc/src/stdio/ftello.h b/libc/src/stdio/ftello.h
index fc00b6a3e0516..92732d57070d8 100644
--- a/libc/src/stdio/ftello.h
+++ b/libc/src/stdio/ftello.h
@@ -11,11 +11,12 @@
 
 #include "hdr/types/FILE.h"
 #include "hdr/types/off_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 off_t ftello(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FTELLO_H
diff --git a/libc/src/stdio/funlockfile.cpp b/libc/src/stdio/funlockfile.cpp
index 404b2324efd15..7a0712acc72f1 100644
--- a/libc/src/stdio/funlockfile.cpp
+++ b/libc/src/stdio/funlockfile.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/funlockfile.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, funlockfile, (::FILE * stream)) {
   reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->unlock();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/funlockfile.h b/libc/src/stdio/funlockfile.h
index 65b77ddfc711e..0949ca0d92b54 100644
--- a/libc/src/stdio/funlockfile.h
+++ b/libc/src/stdio/funlockfile.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_FUNLOCKFILE_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void funlockfile(::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FUNLOCKFILE_H
diff --git a/libc/src/stdio/fwrite.h b/libc/src/stdio/fwrite.h
index c1532984582d1..8ba5e4d7ce101 100644
--- a/libc/src/stdio/fwrite.h
+++ b/libc/src/stdio/fwrite.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_FWRITE_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t fwrite(const void *__restrict ptr, size_t size, size_t nmemb,
               ::FILE *__restrict stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FWRITE_H
diff --git a/libc/src/stdio/fwrite_unlocked.h b/libc/src/stdio/fwrite_unlocked.h
index c1a02af807b08..5ee6d38784282 100644
--- a/libc/src/stdio/fwrite_unlocked.h
+++ b/libc/src/stdio/fwrite_unlocked.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_FWRITE_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t fwrite_unlocked(const void *__restrict ptr, size_t size, size_t nmemb,
                        ::FILE *__restrict stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_FWRITE_UNLOCKED_H
diff --git a/libc/src/stdio/generic/clearerr.cpp b/libc/src/stdio/generic/clearerr.cpp
index 11a2da1847321..583181aba5b23 100644
--- a/libc/src/stdio/generic/clearerr.cpp
+++ b/libc/src/stdio/generic/clearerr.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/clearerr.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, clearerr, (::FILE * stream)) {
   reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->clearerr();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/clearerr_unlocked.cpp b/libc/src/stdio/generic/clearerr_unlocked.cpp
index 86caa7ba8a4c5..313604c811c6d 100644
--- a/libc/src/stdio/generic/clearerr_unlocked.cpp
+++ b/libc/src/stdio/generic/clearerr_unlocked.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/clearerr_unlocked.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, clearerr_unlocked, (::FILE * stream)) {
   reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->clearerr_unlocked();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fclose.cpp b/libc/src/stdio/generic/fclose.cpp
index 50ef17cf2a4a5..388407a58d414 100644
--- a/libc/src/stdio/generic/fclose.cpp
+++ b/libc/src/stdio/generic/fclose.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fclose, (::FILE * stream)) {
   int result = reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->close();
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fclose, (::FILE * stream)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/feof.cpp b/libc/src/stdio/generic/feof.cpp
index 77df40e8bcfdf..8c7d195377196 100644
--- a/libc/src/stdio/generic/feof.cpp
+++ b/libc/src/stdio/generic/feof.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/feof.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feof, (::FILE * stream)) {
   return reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->iseof();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/feof_unlocked.cpp b/libc/src/stdio/generic/feof_unlocked.cpp
index 0dcefafb6c259..0ce827b79716f 100644
--- a/libc/src/stdio/generic/feof_unlocked.cpp
+++ b/libc/src/stdio/generic/feof_unlocked.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/feof_unlocked.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feof_unlocked, (::FILE * stream)) {
   return reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->iseof_unlocked();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/ferror.cpp b/libc/src/stdio/generic/ferror.cpp
index 66128fd6b7753..33e778ec69765 100644
--- a/libc/src/stdio/generic/ferror.cpp
+++ b/libc/src/stdio/generic/ferror.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/ferror.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ferror, (::FILE * stream)) {
   return reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->error();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/ferror_unlocked.cpp b/libc/src/stdio/generic/ferror_unlocked.cpp
index 76a4e2556dee3..f567f05b55da6 100644
--- a/libc/src/stdio/generic/ferror_unlocked.cpp
+++ b/libc/src/stdio/generic/ferror_unlocked.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/ferror_unlocked.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ferror_unlocked, (::FILE * stream)) {
   return reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->error_unlocked();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fflush.cpp b/libc/src/stdio/generic/fflush.cpp
index 670dda03d54eb..5bdf71ad35940 100644
--- a/libc/src/stdio/generic/fflush.cpp
+++ b/libc/src/stdio/generic/fflush.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fflush, (::FILE * stream)) {
   int result = reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->flush();
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fflush, (::FILE * stream)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fgetc.cpp b/libc/src/stdio/generic/fgetc.cpp
index 66afa64875597..aa6660ca180cf 100644
--- a/libc/src/stdio/generic/fgetc.cpp
+++ b/libc/src/stdio/generic/fgetc.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fgetc, (::FILE * stream)) {
   unsigned char c;
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, fgetc, (::FILE * stream)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fgetc_unlocked.cpp b/libc/src/stdio/generic/fgetc_unlocked.cpp
index 7d67a94400ae9..34a27f1d1c420 100644
--- a/libc/src/stdio/generic/fgetc_unlocked.cpp
+++ b/libc/src/stdio/generic/fgetc_unlocked.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fgetc_unlocked, (::FILE * stream)) {
   unsigned char c;
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, fgetc_unlocked, (::FILE * stream)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fgets.cpp b/libc/src/stdio/generic/fgets.cpp
index 121790bf7d180..de6474087a140 100644
--- a/libc/src/stdio/generic/fgets.cpp
+++ b/libc/src/stdio/generic/fgets.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, fgets,
                    (char *__restrict str, int count,
@@ -52,4 +53,4 @@ LLVM_LIBC_FUNCTION(char *, fgets,
   return str;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fileno.cpp b/libc/src/stdio/generic/fileno.cpp
index 4ead752c43dda..0bec180dd20ac 100644
--- a/libc/src/stdio/generic/fileno.cpp
+++ b/libc/src/stdio/generic/fileno.cpp
@@ -11,11 +11,12 @@
 
 #include "hdr/types/FILE.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fileno, (::FILE * stream)) {
   return get_fileno(reinterpret_cast<LIBC_NAMESPACE::File *>(stream));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fopen.cpp b/libc/src/stdio/generic/fopen.cpp
index 19cf3bcd02f5e..d6e418bacf37e 100644
--- a/libc/src/stdio/generic/fopen.cpp
+++ b/libc/src/stdio/generic/fopen.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(::FILE *, fopen,
                    (const char *__restrict name, const char *__restrict mode)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(::FILE *, fopen,
   return reinterpret_cast<::FILE *>(result.value());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fputc.cpp b/libc/src/stdio/generic/fputc.cpp
index 71d4bb8d5debb..54a38aeb2f1e2 100644
--- a/libc/src/stdio/generic/fputc.cpp
+++ b/libc/src/stdio/generic/fputc.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fputc, (int c, ::FILE *stream)) {
   unsigned char uc = static_cast<unsigned char>(c);
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, fputc, (int c, ::FILE *stream)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fputs.cpp b/libc/src/stdio/generic/fputs.cpp
index cefc6c6813750..8aef7683b3ce3 100644
--- a/libc/src/stdio/generic/fputs.cpp
+++ b/libc/src/stdio/generic/fputs.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fputs,
                    (const char *__restrict str, ::FILE *__restrict stream)) {
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, fputs,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fread.cpp b/libc/src/stdio/generic/fread.cpp
index 986828b86b340..3a04094ea8b4b 100644
--- a/libc/src/stdio/generic/fread.cpp
+++ b/libc/src/stdio/generic/fread.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, fread,
                    (void *__restrict buffer, size_t size, size_t nmemb,
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(size_t, fread,
   return result.value / size;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fread_unlocked.cpp b/libc/src/stdio/generic/fread_unlocked.cpp
index 072503d0502ec..151f43c6bbeba 100644
--- a/libc/src/stdio/generic/fread_unlocked.cpp
+++ b/libc/src/stdio/generic/fread_unlocked.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, fread_unlocked,
                    (void *__restrict buffer, size_t size, size_t nmemb,
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(size_t, fread_unlocked,
   return result.value / size;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fseek.cpp b/libc/src/stdio/generic/fseek.cpp
index c5edc8d4198c7..21820da18542a 100644
--- a/libc/src/stdio/generic/fseek.cpp
+++ b/libc/src/stdio/generic/fseek.cpp
@@ -9,9 +9,10 @@
 #include "src/stdio/fseek.h"
 #include "src/__support/File/file.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fseek, (::FILE * stream, long offset, int whence)) {
   auto result =
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fseek, (::FILE * stream, long offset, int whence)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fseeko.cpp b/libc/src/stdio/generic/fseeko.cpp
index 215da759937f6..7456b4a219079 100644
--- a/libc/src/stdio/generic/fseeko.cpp
+++ b/libc/src/stdio/generic/fseeko.cpp
@@ -9,9 +9,10 @@
 #include "src/stdio/fseeko.h"
 #include "src/__support/File/file.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fseeko, (::FILE * stream, off_t offset, int whence)) {
   auto result =
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fseeko, (::FILE * stream, off_t offset, int whence)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/ftell.cpp b/libc/src/stdio/generic/ftell.cpp
index 16487cabf6380..ec15ca4e96caf 100644
--- a/libc/src/stdio/generic/ftell.cpp
+++ b/libc/src/stdio/generic/ftell.cpp
@@ -9,9 +9,10 @@
 #include "src/stdio/ftell.h"
 #include "src/__support/File/file.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, ftell, (::FILE * stream)) {
   auto result = reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->tell();
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(long, ftell, (::FILE * stream)) {
   return static_cast<long>(result.value());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/ftello.cpp b/libc/src/stdio/generic/ftello.cpp
index c72e56ea6eb1a..e3d0726ec4843 100644
--- a/libc/src/stdio/generic/ftello.cpp
+++ b/libc/src/stdio/generic/ftello.cpp
@@ -9,9 +9,10 @@
 #include "src/stdio/ftello.h"
 #include "src/__support/File/file.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(off_t, ftello, (::FILE * stream)) {
   auto result = reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->tell();
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(off_t, ftello, (::FILE * stream)) {
   return result.value();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fwrite.cpp b/libc/src/stdio/generic/fwrite.cpp
index 14c14f5e1a981..66eb9a3c71855 100644
--- a/libc/src/stdio/generic/fwrite.cpp
+++ b/libc/src/stdio/generic/fwrite.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, fwrite,
                    (const void *__restrict buffer, size_t size, size_t nmemb,
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(size_t, fwrite,
   return result.value / size;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/fwrite_unlocked.cpp b/libc/src/stdio/generic/fwrite_unlocked.cpp
index 0c76bd13d995a..a0d9014cd68de 100644
--- a/libc/src/stdio/generic/fwrite_unlocked.cpp
+++ b/libc/src/stdio/generic/fwrite_unlocked.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, fwrite_unlocked,
                    (const void *__restrict buffer, size_t size, size_t nmemb,
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(size_t, fwrite_unlocked,
   return result.value / size;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/getc.cpp b/libc/src/stdio/generic/getc.cpp
index 20f39479d3100..e988468898c53 100644
--- a/libc/src/stdio/generic/getc.cpp
+++ b/libc/src/stdio/generic/getc.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getc, (::FILE * stream)) {
   unsigned char c;
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, getc, (::FILE * stream)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/getc_unlocked.cpp b/libc/src/stdio/generic/getc_unlocked.cpp
index 849d0be6725ae..92d5092623ac5 100644
--- a/libc/src/stdio/generic/getc_unlocked.cpp
+++ b/libc/src/stdio/generic/getc_unlocked.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getc_unlocked, (::FILE * stream)) {
   unsigned char c;
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, getc_unlocked, (::FILE * stream)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/getchar.cpp b/libc/src/stdio/generic/getchar.cpp
index bf3825bbbf166..371fc70eb214f 100644
--- a/libc/src/stdio/generic/getchar.cpp
+++ b/libc/src/stdio/generic/getchar.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getchar, ()) {
   unsigned char c;
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, getchar, ()) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/getchar_unlocked.cpp b/libc/src/stdio/generic/getchar_unlocked.cpp
index 86777d118ce3b..b898f5cb25963 100644
--- a/libc/src/stdio/generic/getchar_unlocked.cpp
+++ b/libc/src/stdio/generic/getchar_unlocked.cpp
@@ -10,9 +10,10 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getchar_unlocked, ()) {
   unsigned char c;
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, getchar_unlocked, ()) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/printf.cpp b/libc/src/stdio/generic/printf.cpp
index 14a4225af44c5..bb7c7c86f843f 100644
--- a/libc/src/stdio/generic/printf.cpp
+++ b/libc/src/stdio/generic/printf.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/vfprintf_internal.h"
 
 #include "hdr/types/FILE.h"
@@ -21,7 +22,7 @@
 #define PRINTF_STDOUT ::stdout
 #endif // LIBC_COPT_STDIO_USE_SYSTEM_FILE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, printf, (const char *__restrict format, ...)) {
   va_list vlist;
@@ -35,4 +36,4 @@ LLVM_LIBC_FUNCTION(int, printf, (const char *__restrict format, ...)) {
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/putc.cpp b/libc/src/stdio/generic/putc.cpp
index e8ebbb3d18e9d..b5f008fdce44a 100644
--- a/libc/src/stdio/generic/putc.cpp
+++ b/libc/src/stdio/generic/putc.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, putc, (int c, ::FILE *stream)) {
   unsigned char uc = static_cast<unsigned char>(c);
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, putc, (int c, ::FILE *stream)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/putchar.cpp b/libc/src/stdio/generic/putchar.cpp
index e9e6f962b3415..e86df23d6716b 100644
--- a/libc/src/stdio/generic/putchar.cpp
+++ b/libc/src/stdio/generic/putchar.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, putchar, (int c)) {
   unsigned char uc = static_cast<unsigned char>(c);
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, putchar, (int c)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/puts.cpp b/libc/src/stdio/generic/puts.cpp
index 247d4f088463c..7dbe2c79f920d 100644
--- a/libc/src/stdio/generic/puts.cpp
+++ b/libc/src/stdio/generic/puts.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -54,4 +55,4 @@ LLVM_LIBC_FUNCTION(int, puts, (const char *__restrict str)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/ungetc.cpp b/libc/src/stdio/generic/ungetc.cpp
index 8e2897e3c5261..44ffdfc3e523f 100644
--- a/libc/src/stdio/generic/ungetc.cpp
+++ b/libc/src/stdio/generic/ungetc.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/ungetc.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ungetc, (int c, ::FILE *stream)) {
   return reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->ungetc(c);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/generic/vprintf.cpp b/libc/src/stdio/generic/vprintf.cpp
index f78a84fb8454f..08d71515646ed 100644
--- a/libc/src/stdio/generic/vprintf.cpp
+++ b/libc/src/stdio/generic/vprintf.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/vfprintf_internal.h"
 
 #include "hdr/types/FILE.h"
@@ -21,7 +22,7 @@
 #define PRINTF_STDOUT ::stdout
 #endif // LIBC_COPT_STDIO_USE_SYSTEM_FILE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, vprintf,
                    (const char *__restrict format, va_list vlist)) {
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, vprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/getc.h b/libc/src/stdio/getc.h
index 85675268cb405..823f319ef6fd3 100644
--- a/libc/src/stdio/getc.h
+++ b/libc/src/stdio/getc.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_GETC_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int getc(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_GETC_H
diff --git a/libc/src/stdio/getc_unlocked.h b/libc/src/stdio/getc_unlocked.h
index 45dcb4eb0afa4..2e0abac51c27b 100644
--- a/libc/src/stdio/getc_unlocked.h
+++ b/libc/src/stdio/getc_unlocked.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_GETC_UNLOCKED_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int getc_unlocked(::FILE *f);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_GETC_UNLOCKED_H
diff --git a/libc/src/stdio/getchar.h b/libc/src/stdio/getchar.h
index 4168808d3e329..c9497fea0f55c 100644
--- a/libc/src/stdio/getchar.h
+++ b/libc/src/stdio/getchar.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_GETCHAR_H
 #define LLVM_LIBC_SRC_STDIO_GETCHAR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int getchar();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_GETCHAR_H
diff --git a/libc/src/stdio/getchar_unlocked.h b/libc/src/stdio/getchar_unlocked.h
index 24fdb752f5530..96fae852daecc 100644
--- a/libc/src/stdio/getchar_unlocked.h
+++ b/libc/src/stdio/getchar_unlocked.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_GETCHAR_UNLOCKED_H
 #define LLVM_LIBC_SRC_STDIO_GETCHAR_UNLOCKED_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int getchar_unlocked();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_GETCHAR_UNLOCKED_H
diff --git a/libc/src/stdio/gpu/clearerr.cpp b/libc/src/stdio/gpu/clearerr.cpp
index ec7fe41ac08e1..5826a7bcb95fb 100644
--- a/libc/src/stdio/gpu/clearerr.cpp
+++ b/libc/src/stdio/gpu/clearerr.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/clearerr.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, clearerr, (::FILE * stream)) {
   rpc::Client::Port port = rpc::client.open<RPC_CLEARERR>();
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(void, clearerr, (::FILE * stream)) {
   port.close();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fclose.cpp b/libc/src/stdio/gpu/fclose.cpp
index 3bc68f1dfc7cd..78caccd90c693 100644
--- a/libc/src/stdio/gpu/fclose.cpp
+++ b/libc/src/stdio/gpu/fclose.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/stdio/fclose.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/gpu/file.h"
 
 #include "hdr/stdio_macros.h"
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fclose, (::FILE * stream)) {
   uint64_t ret = 0;
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, fclose, (::FILE * stream)) {
   return static_cast<int>(ret);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/feof.cpp b/libc/src/stdio/gpu/feof.cpp
index dee1e3841e638..4a8a17332a0a9 100644
--- a/libc/src/stdio/gpu/feof.cpp
+++ b/libc/src/stdio/gpu/feof.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/feof.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, feof, (::FILE * stream)) {
   int ret;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, feof, (::FILE * stream)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/ferror.cpp b/libc/src/stdio/gpu/ferror.cpp
index 90e1592cdbe09..1cee96f5ef23b 100644
--- a/libc/src/stdio/gpu/ferror.cpp
+++ b/libc/src/stdio/gpu/ferror.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/ferror.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ferror, (::FILE * stream)) {
   int ret;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, ferror, (::FILE * stream)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fflush.cpp b/libc/src/stdio/gpu/fflush.cpp
index 60c352217dd96..be267a2e9ce12 100644
--- a/libc/src/stdio/gpu/fflush.cpp
+++ b/libc/src/stdio/gpu/fflush.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/fflush.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fflush, (::FILE * stream)) {
   int ret;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fflush, (::FILE * stream)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fgetc.cpp b/libc/src/stdio/gpu/fgetc.cpp
index 08e6eb37c5e0d..cb42f3100a9fe 100644
--- a/libc/src/stdio/gpu/fgetc.cpp
+++ b/libc/src/stdio/gpu/fgetc.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdio/fgetc.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fgetc, (::FILE * stream)) {
   unsigned char c;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fgetc, (::FILE * stream)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fgets.cpp b/libc/src/stdio/gpu/fgets.cpp
index fb0a30b78e697..942f6f0ff03bc 100644
--- a/libc/src/stdio/gpu/fgets.cpp
+++ b/libc/src/stdio/gpu/fgets.cpp
@@ -8,6 +8,7 @@
 
 #include "src/stdio/fgets.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/feof.h"
 #include "src/stdio/ferror.h"
 
@@ -15,7 +16,7 @@
 #include "hdr/types/FILE.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, fgets,
                    (char *__restrict str, int count,
@@ -40,4 +41,4 @@ LLVM_LIBC_FUNCTION(char *, fgets,
   return str;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/file.h b/libc/src/stdio/gpu/file.h
index 8cbba9ec5d713..5de76842d7bea 100644
--- a/libc/src/stdio/gpu/file.h
+++ b/libc/src/stdio/gpu/file.h
@@ -7,13 +7,14 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/RPC/rpc_client.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "hdr/types/FILE.h"
 
 #include <stdio.h> //needed for stdin/out/err
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace file {
 
 enum Stream {
@@ -96,4 +97,4 @@ LIBC_INLINE uint64_t read(::FILE *f, void *data, size_t size) {
 }
 
 } // namespace file
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fopen.cpp b/libc/src/stdio/gpu/fopen.cpp
index 1e55725f18cce..76daece68ac9d 100644
--- a/libc/src/stdio/gpu/fopen.cpp
+++ b/libc/src/stdio/gpu/fopen.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdio/fopen.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/gpu/file.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(::FILE *, fopen,
                    (const char *__restrict path, const char *__restrict mode)) {
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(::FILE *, fopen,
   return reinterpret_cast<FILE *>(file);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fputc.cpp b/libc/src/stdio/gpu/fputc.cpp
index a99eaeb8ceb93..ad2db03df0ca4 100644
--- a/libc/src/stdio/gpu/fputc.cpp
+++ b/libc/src/stdio/gpu/fputc.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdio/fputc.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fputc, (int c, ::FILE *stream)) {
   unsigned char uc = static_cast<unsigned char>(c);
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, fputc, (int c, ::FILE *stream)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fputs.cpp b/libc/src/stdio/gpu/fputs.cpp
index 4803da978dc1f..7a08244bc26e4 100644
--- a/libc/src/stdio/gpu/fputs.cpp
+++ b/libc/src/stdio/gpu/fputs.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/fputs.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/stdio/gpu/file.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fputs,
                    (const char *__restrict str, ::FILE *__restrict stream)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, fputs,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fread.cpp b/libc/src/stdio/gpu/fread.cpp
index 233a7809e8468..57fa5b6111ff6 100644
--- a/libc/src/stdio/gpu/fread.cpp
+++ b/libc/src/stdio/gpu/fread.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/stdio/fread.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/gpu/file.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, fread,
                    (void *__restrict buffer, size_t size, size_t nmemb,
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(size_t, fread,
   return result / size;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fseek.cpp b/libc/src/stdio/gpu/fseek.cpp
index 3b1f85db1fd0b..4f3e9ce6ec024 100644
--- a/libc/src/stdio/gpu/fseek.cpp
+++ b/libc/src/stdio/gpu/fseek.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/fseek.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fseek, (::FILE * stream, long offset, int whence)) {
   int ret;
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, fseek, (::FILE * stream, long offset, int whence)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/ftell.cpp b/libc/src/stdio/gpu/ftell.cpp
index 5664726d68d30..483b1ad4fee0f 100644
--- a/libc/src/stdio/gpu/ftell.cpp
+++ b/libc/src/stdio/gpu/ftell.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/ftell.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, ftell, (::FILE * stream)) {
   long ret;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(long, ftell, (::FILE * stream)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/fwrite.cpp b/libc/src/stdio/gpu/fwrite.cpp
index 1321e32c272a1..6c548690039a4 100644
--- a/libc/src/stdio/gpu/fwrite.cpp
+++ b/libc/src/stdio/gpu/fwrite.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/fwrite.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, fwrite,
                    (const void *__restrict buffer, size_t size, size_t nmemb,
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(size_t, fwrite,
   return result / size;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/getc.cpp b/libc/src/stdio/gpu/getc.cpp
index d77d8ba0ff421..9c329749ee1fc 100644
--- a/libc/src/stdio/gpu/getc.cpp
+++ b/libc/src/stdio/gpu/getc.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdio/getc.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getc, (::FILE * stream)) {
   unsigned char c;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, getc, (::FILE * stream)) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/getchar.cpp b/libc/src/stdio/gpu/getchar.cpp
index 28e86da8400a3..048cf23b0d64a 100644
--- a/libc/src/stdio/gpu/getchar.cpp
+++ b/libc/src/stdio/gpu/getchar.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/getchar.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
 #include <stdio.h> //needed for stdin
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getchar, ()) {
   unsigned char c;
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, getchar, ()) {
   return c;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/putc.cpp b/libc/src/stdio/gpu/putc.cpp
index d054d282c4632..f8ae98d26cf0e 100644
--- a/libc/src/stdio/gpu/putc.cpp
+++ b/libc/src/stdio/gpu/putc.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdio/putc.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, putc, (int c, ::FILE *stream)) {
   unsigned char uc = static_cast<unsigned char>(c);
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, putc, (int c, ::FILE *stream)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/putchar.cpp b/libc/src/stdio/gpu/putchar.cpp
index 3e38401c7a042..d03a3fe68daf7 100644
--- a/libc/src/stdio/gpu/putchar.cpp
+++ b/libc/src/stdio/gpu/putchar.cpp
@@ -8,13 +8,14 @@
 
 #include "src/stdio/putchar.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 #include "hdr/types/FILE.h"
 
 #include <stdio.h> //needed for stdout
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, putchar, (int c)) {
   unsigned char uc = static_cast<unsigned char>(c);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, putchar, (int c)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/puts.cpp b/libc/src/stdio/gpu/puts.cpp
index f6d91ccf63008..af84432d1ef8c 100644
--- a/libc/src/stdio/gpu/puts.cpp
+++ b/libc/src/stdio/gpu/puts.cpp
@@ -8,6 +8,7 @@
 
 #include "src/stdio/puts.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/stdio/gpu/file.h"
 
@@ -16,7 +17,7 @@
 
 #include <stdio.h> //needed for stdout
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, puts, (const char *__restrict str)) {
   cpp::string_view str_view(str);
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, puts, (const char *__restrict str)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/remove.cpp b/libc/src/stdio/gpu/remove.cpp
index 6b53e1f6af596..3f21e8aeff5ae 100644
--- a/libc/src/stdio/gpu/remove.cpp
+++ b/libc/src/stdio/gpu/remove.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/remove.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, remove, (const char *path)) {
   int ret;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, remove, (const char *path)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/gpu/stderr.cpp b/libc/src/stdio/gpu/stderr.cpp
index e239b94c7b8a9..efbc3b407d60e 100644
--- a/libc/src/stdio/gpu/stderr.cpp
+++ b/libc/src/stdio/gpu/stderr.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 static struct {
 } stub;
 FILE *stderr = reinterpret_cast<FILE *>(&stub);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 extern "C" FILE *stderr = reinterpret_cast<FILE *>(&LIBC_NAMESPACE::stub);
diff --git a/libc/src/stdio/gpu/stdin.cpp b/libc/src/stdio/gpu/stdin.cpp
index 6a305c89ac23c..66618fd0b4db8 100644
--- a/libc/src/stdio/gpu/stdin.cpp
+++ b/libc/src/stdio/gpu/stdin.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 static struct {
 } stub;
 FILE *stdin = reinterpret_cast<FILE *>(&stub);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 extern "C" FILE *stdin = reinterpret_cast<FILE *>(&LIBC_NAMESPACE::stub);
diff --git a/libc/src/stdio/gpu/stdout.cpp b/libc/src/stdio/gpu/stdout.cpp
index fffe1376a818f..e3869f9e26b77 100644
--- a/libc/src/stdio/gpu/stdout.cpp
+++ b/libc/src/stdio/gpu/stdout.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 static struct {
 } stub;
 FILE *stdout = reinterpret_cast<FILE *>(&stub);
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 extern "C" FILE *stdout = reinterpret_cast<FILE *>(&LIBC_NAMESPACE::stub);
diff --git a/libc/src/stdio/gpu/ungetc.cpp b/libc/src/stdio/gpu/ungetc.cpp
index 52379e125464b..e9232a5e43a27 100644
--- a/libc/src/stdio/gpu/ungetc.cpp
+++ b/libc/src/stdio/gpu/ungetc.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdio/ungetc.h"
 #include "file.h"
+#include "src/__support/macros/config.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ungetc, (int c, ::FILE *stream)) {
   int ret;
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, ungetc, (int c, ::FILE *stream)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/linux/fdopen.cpp b/libc/src/stdio/linux/fdopen.cpp
index a1d08eecbfdee..7d72fdc88e9fb 100644
--- a/libc/src/stdio/linux/fdopen.cpp
+++ b/libc/src/stdio/linux/fdopen.cpp
@@ -9,9 +9,10 @@
 #include "src/stdio/fdopen.h"
 
 #include "src/__support/File/linux/file.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(::FILE *, fdopen, (int fd, const char *mode)) {
   auto result = LIBC_NAMESPACE::create_file_from_fd(fd, mode);
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(::FILE *, fdopen, (int fd, const char *mode)) {
   return reinterpret_cast<::FILE *>(result.value());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/linux/remove.cpp b/libc/src/stdio/linux/remove.cpp
index b2742c29a3e26..9e299aaf43e45 100644
--- a/libc/src/stdio/linux/remove.cpp
+++ b/libc/src/stdio/linux/remove.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>       // For AT_* macros.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, remove, (const char *path)) {
   // We first try unlinking it as a file. If it is ia file, it will succeed. If
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, remove, (const char *path)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/linux/rename.cpp b/libc/src/stdio/linux/rename.cpp
index 379a6ef3c0c84..69fd22720ed19 100644
--- a/libc/src/stdio/linux/rename.cpp
+++ b/libc/src/stdio/linux/rename.cpp
@@ -10,10 +10,11 @@
 #include "include/llvm-libc-macros/linux/fcntl-macros.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, rename, (const char *oldpath, const char *newpath)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_renameat2, AT_FDCWD, oldpath,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, rename, (const char *oldpath, const char *newpath)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/printf.h b/libc/src/stdio/printf.h
index 60ccf613e2980..9e47ad8680f9c 100644
--- a/libc/src/stdio/printf.h
+++ b/libc/src/stdio/printf.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_PRINTF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int printf(const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_H
diff --git a/libc/src/stdio/printf_core/char_converter.h b/libc/src/stdio/printf_core/char_converter.h
index 13596b8ed4f23..2596cba813c2e 100644
--- a/libc/src/stdio/printf_core/char_converter.h
+++ b/libc/src/stdio/printf_core/char_converter.h
@@ -9,11 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CHAR_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CHAR_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 LIBC_INLINE int convert_char(Writer *writer, const FormatSection &to_conv) {
@@ -42,6 +43,6 @@ LIBC_INLINE int convert_char(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CHAR_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/converter.cpp b/libc/src/stdio/printf_core/converter.cpp
index 613d693c3cfcb..37af5dc1ea026 100644
--- a/libc/src/stdio/printf_core/converter.cpp
+++ b/libc/src/stdio/printf_core/converter.cpp
@@ -8,6 +8,7 @@
 
 #include "src/stdio/printf_core/converter.h"
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/printf_config.h"
 #include "src/stdio/printf_core/writer.h"
@@ -22,7 +23,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 int convert(Writer *writer, const FormatSection &to_conv) {
@@ -96,4 +97,4 @@ int convert(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/printf_core/converter.h b/libc/src/stdio/printf_core/converter.h
index d653f1e56dc28..2b3f06d0aa7a3 100644
--- a/libc/src/stdio/printf_core/converter.h
+++ b/libc/src/stdio/printf_core/converter.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 // convert will call a conversion function to convert the FormatSection into
@@ -23,6 +24,6 @@ namespace printf_core {
 int convert(Writer *writer, const FormatSection &to_conv);
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/converter_utils.h b/libc/src/stdio/printf_core/converter_utils.h
index a0e96a11be5bf..3f25ebfd40ed9 100644
--- a/libc/src/stdio/printf_core/converter_utils.h
+++ b/libc/src/stdio/printf_core/converter_utils.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CONVERTER_UTILS_H
 
 #include "src/__support/CPP/limits.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 LIBC_INLINE uintmax_t apply_length_modifier(uintmax_t num,
@@ -69,6 +70,6 @@ LIBC_INLINE uintmax_t apply_length_modifier(uintmax_t num,
 enum class RoundDirection { Up, Down, Even };
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CONVERTER_UTILS_H
diff --git a/libc/src/stdio/printf_core/core_structs.h b/libc/src/stdio/printf_core/core_structs.h
index bfe362becad1e..76d006b813dd1 100644
--- a/libc/src/stdio/printf_core/core_structs.h
+++ b/libc/src/stdio/printf_core/core_structs.h
@@ -19,7 +19,7 @@
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 // These length modifiers match the length modifiers in the format string, which
@@ -136,6 +136,6 @@ constexpr int INT_CONVERSION_ERROR = -4;
 constexpr int FIXED_POINT_CONVERSION_ERROR = -5;
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_CORE_STRUCTS_H
diff --git a/libc/src/stdio/printf_core/fixed_converter.h b/libc/src/stdio/printf_core/fixed_converter.h
index de69c603be6b6..c8812d77b62e3 100644
--- a/libc/src/stdio/printf_core/fixed_converter.h
+++ b/libc/src/stdio/printf_core/fixed_converter.h
@@ -15,6 +15,7 @@
 #include "src/__support/fixed_point/fx_rep.h"
 #include "src/__support/integer_to_string.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
@@ -22,7 +23,7 @@
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 // This is just for assertions. It will be compiled out for release builds.
@@ -304,6 +305,6 @@ LIBC_INLINE int convert_fixed(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_FIXED_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/float_dec_converter.h b/libc/src/stdio/printf_core/float_dec_converter.h
index 1237db62e428a..e39ba6ecea8d4 100644
--- a/libc/src/stdio/printf_core/float_dec_converter.h
+++ b/libc/src/stdio/printf_core/float_dec_converter.h
@@ -16,6 +16,7 @@
 #include "src/__support/float_to_string.h"
 #include "src/__support/integer_to_string.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/float_inf_nan_converter.h"
@@ -24,7 +25,7 @@
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 using StorageType = fputil::FPBits<long double>::StorageType;
@@ -1170,6 +1171,6 @@ LIBC_INLINE int convert_float_dec_auto(Writer *writer,
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_FLOAT_DEC_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/float_hex_converter.h b/libc/src/stdio/printf_core/float_hex_converter.h
index 8fac36df3d1e2..0b3ff3dd1cbfd 100644
--- a/libc/src/stdio/printf_core/float_hex_converter.h
+++ b/libc/src/stdio/printf_core/float_hex_converter.h
@@ -12,6 +12,7 @@
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/rounding_mode.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/float_inf_nan_converter.h"
@@ -20,7 +21,7 @@
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 LIBC_INLINE int convert_float_hex_exp(Writer *writer,
@@ -255,6 +256,6 @@ LIBC_INLINE int convert_float_hex_exp(Writer *writer,
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_FLOAT_HEX_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/float_inf_nan_converter.h b/libc/src/stdio/printf_core/float_inf_nan_converter.h
index f755ef6e31f26..a7da682b835be 100644
--- a/libc/src/stdio/printf_core/float_inf_nan_converter.h
+++ b/libc/src/stdio/printf_core/float_inf_nan_converter.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_FLOAT_INF_NAN_CONVERTER_H
 
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
@@ -17,7 +18,7 @@
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 using StorageType = fputil::FPBits<long double>::StorageType;
@@ -78,6 +79,6 @@ LIBC_INLINE int convert_inf_nan(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_FLOAT_INF_NAN_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/int_converter.h b/libc/src/stdio/printf_core/int_converter.h
index 496e7bd1a56d9..f345e86b97a69 100644
--- a/libc/src/stdio/printf_core/int_converter.h
+++ b/libc/src/stdio/printf_core/int_converter.h
@@ -12,6 +12,7 @@
 #include "src/__support/CPP/span.h"
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/integer_to_string.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
@@ -19,7 +20,7 @@
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 // These functions only work on characters that are already known to be in the
@@ -209,6 +210,6 @@ LIBC_INLINE int convert_int(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_INT_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/parser.h b/libc/src/stdio/printf_core/parser.h
index b9a8f303dd673..207affd83f65b 100644
--- a/libc/src/stdio/printf_core/parser.h
+++ b/libc/src/stdio/printf_core/parser.h
@@ -13,6 +13,7 @@
 #include "src/__support/CPP/algorithm.h" // max
 #include "src/__support/CPP/optional.h"
 #include "src/__support/CPP/type_traits.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/printf_config.h"
@@ -23,7 +24,7 @@
 #include "src/__support/fixed_point/fx_rep.h"
 #endif // LIBC_INTERNAL_PRINTF_HAS_FIXED_POINT
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 template <typename T> struct int_type_of {
@@ -668,6 +669,6 @@ template <typename ArgProvider> class Parser {
 };
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_PARSER_H
diff --git a/libc/src/stdio/printf_core/printf_main.cpp b/libc/src/stdio/printf_core/printf_main.cpp
index 54e70f58c87fe..bd4a5a168bd23 100644
--- a/libc/src/stdio/printf_core/printf_main.cpp
+++ b/libc/src/stdio/printf_core/printf_main.cpp
@@ -9,6 +9,7 @@
 #include "src/stdio/printf_core/printf_main.h"
 
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/parser.h"
@@ -16,7 +17,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 int printf_main(Writer *writer, const char *__restrict str,
@@ -39,4 +40,4 @@ int printf_main(Writer *writer, const char *__restrict str,
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/printf_core/printf_main.h b/libc/src/stdio/printf_core/printf_main.h
index 15c6977622afb..3e73bf36e0e30 100644
--- a/libc/src/stdio/printf_core/printf_main.h
+++ b/libc/src/stdio/printf_core/printf_main.h
@@ -10,17 +10,18 @@
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_PRINTF_MAIN_H
 
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 int printf_main(Writer *writer, const char *__restrict str,
                 internal::ArgList &args);
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_PRINTF_MAIN_H
diff --git a/libc/src/stdio/printf_core/ptr_converter.h b/libc/src/stdio/printf_core/ptr_converter.h
index c5d4086647ec3..bf84718dfe6a8 100644
--- a/libc/src/stdio/printf_core/ptr_converter.h
+++ b/libc/src/stdio/printf_core/ptr_converter.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDIO_PRINTF_CORE_PTR_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_PTR_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/int_converter.h"
 #include "src/stdio/printf_core/string_converter.h"
 #include "src/stdio/printf_core/writer.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 LIBC_INLINE int convert_pointer(Writer *writer, const FormatSection &to_conv) {
@@ -35,6 +36,6 @@ LIBC_INLINE int convert_pointer(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_PTR_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/string_converter.h b/libc/src/stdio/printf_core/string_converter.h
index 9e05591079faa..1f36d51124107 100644
--- a/libc/src/stdio/printf_core/string_converter.h
+++ b/libc/src/stdio/printf_core/string_converter.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_STRING_CONVERTER_H
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/converter_utils.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 LIBC_INLINE int convert_string(Writer *writer, const FormatSection &to_conv) {
@@ -58,6 +59,6 @@ LIBC_INLINE int convert_string(Writer *writer, const FormatSection &to_conv) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_STRING_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/vfprintf_internal.h b/libc/src/stdio/printf_core/vfprintf_internal.h
index 2917aa22865f5..3becfee71dd27 100644
--- a/libc/src/stdio/printf_core/vfprintf_internal.h
+++ b/libc/src/stdio/printf_core/vfprintf_internal.h
@@ -12,13 +12,14 @@
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
 #include "src/__support/macros/attributes.h" // For LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include "hdr/types/FILE.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace internal {
 #ifndef LIBC_COPT_STDIO_USE_SYSTEM_FILE
@@ -84,6 +85,6 @@ LIBC_INLINE int vfprintf_internal(::FILE *__restrict stream,
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_VFPRINTF_INTERNAL_H
diff --git a/libc/src/stdio/printf_core/write_int_converter.h b/libc/src/stdio/printf_core/write_int_converter.h
index 18aa5c79897ec..a47cb41cb3287 100644
--- a/libc/src/stdio/printf_core/write_int_converter.h
+++ b/libc/src/stdio/printf_core/write_int_converter.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDIO_PRINTF_CORE_WRITE_INT_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_WRITE_INT_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 LIBC_INLINE int convert_write_int(Writer *writer,
@@ -64,6 +65,6 @@ LIBC_INLINE int convert_write_int(Writer *writer,
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_WRITE_INT_CONVERTER_H
diff --git a/libc/src/stdio/printf_core/writer.cpp b/libc/src/stdio/printf_core/writer.cpp
index f8ecd829af3a6..d1cf85df1c8f8 100644
--- a/libc/src/stdio/printf_core/writer.cpp
+++ b/libc/src/stdio/printf_core/writer.cpp
@@ -8,11 +8,12 @@
 
 #include "writer.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/string/memory_utils/inline_memset.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 int Writer::pad(char new_char, size_t length) {
@@ -42,4 +43,4 @@ int Writer::pad(char new_char, size_t length) {
 }
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/printf_core/writer.h b/libc/src/stdio/printf_core/writer.h
index 67513eca97288..89421561f3b2e 100644
--- a/libc/src/stdio/printf_core/writer.h
+++ b/libc/src/stdio/printf_core/writer.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC_STDIO_PRINTF_CORE_WRITER_H
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "src/string/memory_utils/inline_memcpy.h"
@@ -17,7 +18,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace printf_core {
 
 struct WriteBuffer {
@@ -134,6 +135,6 @@ class Writer final {
 };
 
 } // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PRINTF_CORE_WRITER_H
diff --git a/libc/src/stdio/putc.h b/libc/src/stdio/putc.h
index 9d331d005bf68..35ec07bd51524 100644
--- a/libc/src/stdio/putc.h
+++ b/libc/src/stdio/putc.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_PUTC_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int putc(int c, ::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PUTC_H
diff --git a/libc/src/stdio/putchar.h b/libc/src/stdio/putchar.h
index e458e3179ed6b..84a5ea8d4493d 100644
--- a/libc/src/stdio/putchar.h
+++ b/libc/src/stdio/putchar.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_PUTCHAR_H
 #define LLVM_LIBC_SRC_STDIO_PUTCHAR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int putchar(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PUTCHAR_H
diff --git a/libc/src/stdio/puts.h b/libc/src/stdio/puts.h
index 68d5225b00a17..d93495b0fbb46 100644
--- a/libc/src/stdio/puts.h
+++ b/libc/src/stdio/puts.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_PUTS_H
 #define LLVM_LIBC_SRC_STDIO_PUTS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int puts(const char *__restrict str);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_PUTS_H
diff --git a/libc/src/stdio/remove.h b/libc/src/stdio/remove.h
index 3e541a0c675ae..267946ff27598 100644
--- a/libc/src/stdio/remove.h
+++ b/libc/src/stdio/remove.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_REMOVE_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int remove(const char *path);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_REMOVE_H
diff --git a/libc/src/stdio/rename.h b/libc/src/stdio/rename.h
index eadda7c3eac9b..5c9ab88346c81 100644
--- a/libc/src/stdio/rename.h
+++ b/libc/src/stdio/rename.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_RENAME_H
 #define LLVM_LIBC_SRC_STDIO_RENAME_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int rename(const char *oldpath, const char *newpath);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_RENAME_H
diff --git a/libc/src/stdio/scanf.cpp b/libc/src/stdio/scanf.cpp
index bfa8d46007b99..86a8851df2886 100644
--- a/libc/src/stdio/scanf.cpp
+++ b/libc/src/stdio/scanf.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/vfscanf_internal.h"
 
 #include "hdr/types/FILE.h"
@@ -21,7 +22,7 @@
 #define SCANF_STDIN ::stdin
 #endif // LIBC_COPT_STDIO_USE_SYSTEM_FILE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, scanf, (const char *__restrict format, ...)) {
   va_list vlist;
@@ -37,4 +38,4 @@ LLVM_LIBC_FUNCTION(int, scanf, (const char *__restrict format, ...)) {
   return (ret_val == -1) ? EOF : ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf.h b/libc/src/stdio/scanf.h
index 58e42d1fac185..f3349c75c6351 100644
--- a/libc/src/stdio/scanf.h
+++ b/libc/src/stdio/scanf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SCANF_H
 #define LLVM_LIBC_SRC_STDIO_SCANF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int scanf(const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_H
diff --git a/libc/src/stdio/scanf_core/converter.cpp b/libc/src/stdio/scanf_core/converter.cpp
index 5334af1be98e1..b1ee8cd1e74bb 100644
--- a/libc/src/stdio/scanf_core/converter.cpp
+++ b/libc/src/stdio/scanf_core/converter.cpp
@@ -9,6 +9,7 @@
 #include "src/stdio/scanf_core/converter.h"
 
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
@@ -22,7 +23,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int convert(Reader *reader, const FormatSection &to_conv) {
@@ -99,4 +100,4 @@ int raw_match(Reader *reader, cpp::string_view raw_string) {
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/converter.h b/libc/src/stdio/scanf_core/converter.h
index f741840da304e..3f514eeb75bdf 100644
--- a/libc/src/stdio/scanf_core/converter.h
+++ b/libc/src/stdio/scanf_core/converter.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_CONVERTER_H
 
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 // convert will call a conversion function to convert the FormatSection into
@@ -28,6 +29,6 @@ int convert(Reader *reader, const FormatSection &to_conv);
 int raw_match(Reader *reader, cpp::string_view raw_string);
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_CONVERTER_H
diff --git a/libc/src/stdio/scanf_core/converter_utils.h b/libc/src/stdio/scanf_core/converter_utils.h
index a25e8a73e99a4..61954556b838a 100644
--- a/libc/src/stdio/scanf_core/converter_utils.h
+++ b/libc/src/stdio/scanf_core/converter_utils.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_CONVERTER_UTILS_H
 
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/stdio/scanf_core/core_structs.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 LIBC_INLINE constexpr char to_lower(char a) { return a | 32; }
@@ -106,6 +107,6 @@ LIBC_INLINE void write_float_with_length(char *str,
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_CONVERTER_UTILS_H
diff --git a/libc/src/stdio/scanf_core/core_structs.h b/libc/src/stdio/scanf_core/core_structs.h
index 29e1bf2e47f39..87b2429ae550e 100644
--- a/libc/src/stdio/scanf_core/core_structs.h
+++ b/libc/src/stdio/scanf_core/core_structs.h
@@ -11,11 +11,12 @@
 
 #include "src/__support/CPP/bitset.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 
 #include <inttypes.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 // These length modifiers match the length modifiers in the format string, which
@@ -86,6 +87,6 @@ enum ErrorCodes : int {
   ALLOCATION_FAILURE = -4,
 };
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_CORE_STRUCTS_H
diff --git a/libc/src/stdio/scanf_core/current_pos_converter.h b/libc/src/stdio/scanf_core/current_pos_converter.h
index be25cefed151a..8af1cc0ca0c27 100644
--- a/libc/src/stdio/scanf_core/current_pos_converter.h
+++ b/libc/src/stdio/scanf_core/current_pos_converter.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SCANF_CORE_CURRENT_POS_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_CURRENT_POS_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/converter_utils.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 LIBC_INLINE int convert_current_pos(Reader *reader,
@@ -25,6 +26,6 @@ LIBC_INLINE int convert_current_pos(Reader *reader,
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_CURRENT_POS_CONVERTER_H
diff --git a/libc/src/stdio/scanf_core/float_converter.cpp b/libc/src/stdio/scanf_core/float_converter.cpp
index 8500d98f4121a..b2d60a249a5a7 100644
--- a/libc/src/stdio/scanf_core/float_converter.cpp
+++ b/libc/src/stdio/scanf_core/float_converter.cpp
@@ -11,13 +11,14 @@
 #include "src/__support/CPP/limits.h"
 #include "src/__support/char_vector.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/converter_utils.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 // All of the floating point conversions are the same for scanf, every name will
@@ -223,4 +224,4 @@ int convert_float(Reader *reader, const FormatSection &to_conv) {
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/float_converter.h b/libc/src/stdio/scanf_core/float_converter.h
index a3ea1da86a3f4..bd44847830fd1 100644
--- a/libc/src/stdio/scanf_core/float_converter.h
+++ b/libc/src/stdio/scanf_core/float_converter.h
@@ -9,17 +9,18 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SCANF_CORE_FLOAT_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_FLOAT_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int convert_float(Reader *reader, const FormatSection &to_conv);
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_FLOAT_CONVERTER_H
diff --git a/libc/src/stdio/scanf_core/int_converter.cpp b/libc/src/stdio/scanf_core/int_converter.cpp
index 05d6ed6e0fd35..136db2a3773e1 100644
--- a/libc/src/stdio/scanf_core/int_converter.cpp
+++ b/libc/src/stdio/scanf_core/int_converter.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/converter_utils.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 // This code is very similar to the code in __support/str_to_integer.h but is
@@ -212,4 +213,4 @@ int convert_int(Reader *reader, const FormatSection &to_conv) {
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/int_converter.h b/libc/src/stdio/scanf_core/int_converter.h
index 7c9d8b4fbae32..5fc27ad0faafc 100644
--- a/libc/src/stdio/scanf_core/int_converter.h
+++ b/libc/src/stdio/scanf_core/int_converter.h
@@ -9,17 +9,18 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SCANF_CORE_INT_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_INT_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int convert_int(Reader *reader, const FormatSection &to_conv);
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_INT_CONVERTER_H
diff --git a/libc/src/stdio/scanf_core/parser.h b/libc/src/stdio/scanf_core/parser.h
index 5ae9009bc4a23..6cc5b30eb0db2 100644
--- a/libc/src/stdio/scanf_core/parser.h
+++ b/libc/src/stdio/scanf_core/parser.h
@@ -11,13 +11,14 @@
 
 #include "src/__support/arg_list.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/scanf_config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 #ifndef LIBC_COPT_SCANF_DISABLE_INDEX_MODE
@@ -279,6 +280,6 @@ template <typename ArgProvider> class Parser {
 };
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_PARSER_H
diff --git a/libc/src/stdio/scanf_core/ptr_converter.cpp b/libc/src/stdio/scanf_core/ptr_converter.cpp
index cc233c3656290..1a42a389d74b4 100644
--- a/libc/src/stdio/scanf_core/ptr_converter.cpp
+++ b/libc/src/stdio/scanf_core/ptr_converter.cpp
@@ -8,6 +8,7 @@
 
 #include "src/stdio/scanf_core/ptr_converter.h"
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/converter_utils.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/int_converter.h"
@@ -15,7 +16,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 int convert_pointer(Reader *reader, const FormatSection &to_conv) {
   static const char nullptr_string[] = "(nullptr)";
@@ -40,4 +41,4 @@ int convert_pointer(Reader *reader, const FormatSection &to_conv) {
   return convert_int(reader, to_conv);
 }
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/ptr_converter.h b/libc/src/stdio/scanf_core/ptr_converter.h
index 363d9aacde7be..0732c1c0e3284 100644
--- a/libc/src/stdio/scanf_core/ptr_converter.h
+++ b/libc/src/stdio/scanf_core/ptr_converter.h
@@ -9,17 +9,18 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SCANF_CORE_PTR_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_PTR_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int convert_pointer(Reader *reader, const FormatSection &to_conv);
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_PTR_CONVERTER_H
diff --git a/libc/src/stdio/scanf_core/reader.cpp b/libc/src/stdio/scanf_core/reader.cpp
index eca0e3784dc8d..ec1f5c098dc7a 100644
--- a/libc/src/stdio/scanf_core/reader.cpp
+++ b/libc/src/stdio/scanf_core/reader.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/stdio/scanf_core/reader.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 void Reader::ungetc(char c) {
@@ -25,4 +26,4 @@ void Reader::ungetc(char c) {
   stream_ungetc(static_cast<int>(c), input_stream);
 }
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/reader.h b/libc/src/stdio/scanf_core/reader.h
index f750c4341a8d7..e7955d6689254 100644
--- a/libc/src/stdio/scanf_core/reader.h
+++ b/libc/src/stdio/scanf_core/reader.h
@@ -10,9 +10,10 @@
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_READER_H
 
 #include "src/__support/macros/attributes.h" // For LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 using StreamGetc = int (*)(void *);
@@ -68,6 +69,6 @@ class Reader {
 };
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_READER_H
diff --git a/libc/src/stdio/scanf_core/scanf_main.cpp b/libc/src/stdio/scanf_core/scanf_main.cpp
index dc7740d64b665..eb480943aeeda 100644
--- a/libc/src/stdio/scanf_core/scanf_main.cpp
+++ b/libc/src/stdio/scanf_core/scanf_main.cpp
@@ -9,6 +9,7 @@
 #include "src/stdio/scanf_core/scanf_main.h"
 
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/converter.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/parser.h"
@@ -16,7 +17,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int scanf_main(Reader *reader, const char *__restrict str,
@@ -42,4 +43,4 @@ int scanf_main(Reader *reader, const char *__restrict str,
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/scanf_main.h b/libc/src/stdio/scanf_core/scanf_main.h
index f1688d648ccc8..27c246933dceb 100644
--- a/libc/src/stdio/scanf_core/scanf_main.h
+++ b/libc/src/stdio/scanf_core/scanf_main.h
@@ -10,17 +10,18 @@
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_SCANF_MAIN_H
 
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int scanf_main(Reader *reader, const char *__restrict str,
                internal::ArgList &args);
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_SCANF_MAIN_H
diff --git a/libc/src/stdio/scanf_core/string_converter.cpp b/libc/src/stdio/scanf_core/string_converter.cpp
index 94a7fc4e5fe0d..0de2eeed2f5e4 100644
--- a/libc/src/stdio/scanf_core/string_converter.cpp
+++ b/libc/src/stdio/scanf_core/string_converter.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int convert_string(Reader *reader, const FormatSection &to_conv) {
@@ -73,4 +74,4 @@ int convert_string(Reader *reader, const FormatSection &to_conv) {
 }
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/scanf_core/string_converter.h b/libc/src/stdio/scanf_core/string_converter.h
index 165fc47e4bdf7..552dc22a502f5 100644
--- a/libc/src/stdio/scanf_core/string_converter.h
+++ b/libc/src/stdio/scanf_core/string_converter.h
@@ -9,17 +9,18 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SCANF_CORE_STRING_CONVERTER_H
 #define LLVM_LIBC_SRC_STDIO_SCANF_CORE_STRING_CONVERTER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "src/stdio/scanf_core/reader.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace scanf_core {
 
 int convert_string(Reader *reader, const FormatSection &to_conv);
 
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_STRING_CONVERTER_H
diff --git a/libc/src/stdio/scanf_core/vfscanf_internal.h b/libc/src/stdio/scanf_core/vfscanf_internal.h
index 0571eaca3c570..2b0072a6ae35f 100644
--- a/libc/src/stdio/scanf_core/vfscanf_internal.h
+++ b/libc/src/stdio/scanf_core/vfscanf_internal.h
@@ -11,13 +11,14 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/reader.h"
 #include "src/stdio/scanf_core/scanf_main.h"
 
 #include "hdr/types/FILE.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace internal {
 
@@ -85,6 +86,6 @@ LIBC_INLINE int vfscanf_internal(::FILE *__restrict stream,
   return retval;
 }
 } // namespace scanf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SCANF_CORE_VFSCANF_INTERNAL_H
diff --git a/libc/src/stdio/setbuf.cpp b/libc/src/stdio/setbuf.cpp
index 61a5cc617828d..f3db97de58371 100644
--- a/libc/src/stdio/setbuf.cpp
+++ b/libc/src/stdio/setbuf.cpp
@@ -9,9 +9,10 @@
 #include "src/stdio/setbuf.h"
 #include "hdr/stdio_macros.h"
 #include "src/__support/File/file.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, setbuf,
                    (::FILE *__restrict stream, char *__restrict buf)) {
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(void, setbuf,
     libc_errno = err;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/setbuf.h b/libc/src/stdio/setbuf.h
index ec81994d22815..f9d8e890d20ae 100644
--- a/libc/src/stdio/setbuf.h
+++ b/libc/src/stdio/setbuf.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_SETBUF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void setbuf(::FILE *__restrict stream, char *__restrict buf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SETBUF_H
diff --git a/libc/src/stdio/setvbuf.cpp b/libc/src/stdio/setvbuf.cpp
index 186848a548062..0a6b8cacb59c8 100644
--- a/libc/src/stdio/setvbuf.cpp
+++ b/libc/src/stdio/setvbuf.cpp
@@ -10,10 +10,11 @@
 #include "src/__support/File/file.h"
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, setvbuf,
                    (::FILE *__restrict stream, char *__restrict buf, int type,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, setvbuf,
   return err;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/setvbuf.h b/libc/src/stdio/setvbuf.h
index 4fe4811a795c2..50bfc5cc3e665 100644
--- a/libc/src/stdio/setvbuf.h
+++ b/libc/src/stdio/setvbuf.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_SETVBUF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int setvbuf(::FILE *__restrict stream, char *__restrict buf, int type,
             size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SETVBUF_H
diff --git a/libc/src/stdio/snprintf.cpp b/libc/src/stdio/snprintf.cpp
index fbfc2b2180326..12ad3cd1f762b 100644
--- a/libc/src/stdio/snprintf.cpp
+++ b/libc/src/stdio/snprintf.cpp
@@ -9,13 +9,14 @@
 #include "src/stdio/snprintf.h"
 
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stdarg.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, snprintf,
                    (char *__restrict buffer, size_t buffsz,
@@ -35,4 +36,4 @@ LLVM_LIBC_FUNCTION(int, snprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/snprintf.h b/libc/src/stdio/snprintf.h
index 0e4e398abc391..92a6529704076 100644
--- a/libc/src/stdio/snprintf.h
+++ b/libc/src/stdio/snprintf.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SNPRINTF_H
 #define LLVM_LIBC_SRC_STDIO_SNPRINTF_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int snprintf(char *__restrict buffer, size_t buffsz,
              const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SNPRINTF_H
diff --git a/libc/src/stdio/sprintf.cpp b/libc/src/stdio/sprintf.cpp
index 11f2f1a8634ff..1f59e6bae4723 100644
--- a/libc/src/stdio/sprintf.cpp
+++ b/libc/src/stdio/sprintf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sprintf,
                    (char *__restrict buffer, const char *__restrict format,
@@ -35,4 +36,4 @@ LLVM_LIBC_FUNCTION(int, sprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/sprintf.h b/libc/src/stdio/sprintf.h
index 14bb4fa121f42..ef65de399dc6d 100644
--- a/libc/src/stdio/sprintf.h
+++ b/libc/src/stdio/sprintf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SPRINTF_H
 #define LLVM_LIBC_SRC_STDIO_SPRINTF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int sprintf(char *__restrict buffer, const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SPRINTF_H
diff --git a/libc/src/stdio/sscanf.cpp b/libc/src/stdio/sscanf.cpp
index 28c3e75907fad..96d9a2aebd66f 100644
--- a/libc/src/stdio/sscanf.cpp
+++ b/libc/src/stdio/sscanf.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/reader.h"
 #include "src/stdio/scanf_core/scanf_main.h"
 
@@ -17,7 +18,7 @@
 #include "hdr/types/FILE.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, sscanf,
                    (const char *__restrict buffer,
@@ -37,4 +38,4 @@ LLVM_LIBC_FUNCTION(int, sscanf,
   return (ret_val == -1) ? EOF : ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/sscanf.h b/libc/src/stdio/sscanf.h
index 9e4b28e0033cf..690b2603425fc 100644
--- a/libc/src/stdio/sscanf.h
+++ b/libc/src/stdio/sscanf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDIO_SSCANF_H
 #define LLVM_LIBC_SRC_STDIO_SSCANF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int sscanf(const char *__restrict buffer, const char *__restrict format, ...);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_SSCANF_H
diff --git a/libc/src/stdio/ungetc.h b/libc/src/stdio/ungetc.h
index 9a4470485e35d..9e29b2e334f32 100644
--- a/libc/src/stdio/ungetc.h
+++ b/libc/src/stdio/ungetc.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDIO_UNGETC_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int ungetc(int c, ::FILE *stream);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_UNGETC_H
diff --git a/libc/src/stdio/vfprintf.cpp b/libc/src/stdio/vfprintf.cpp
index 4e3d460af74d9..01f4265f118a6 100644
--- a/libc/src/stdio/vfprintf.cpp
+++ b/libc/src/stdio/vfprintf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/File/file.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/vfprintf_internal.h"
 
 #include "hdr/types/FILE.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, vfprintf,
                    (::FILE *__restrict stream, const char *__restrict format,
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, vfprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/vfprintf.h b/libc/src/stdio/vfprintf.h
index af8e3c9112a55..91418c69e84df 100644
--- a/libc/src/stdio/vfprintf.h
+++ b/libc/src/stdio/vfprintf.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_STDIO_VFPRINTF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int vfprintf(::FILE *__restrict stream, const char *__restrict format,
              va_list vlist);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_VFPRINTF_H
diff --git a/libc/src/stdio/vprintf.h b/libc/src/stdio/vprintf.h
index adc507a4c0b9a..63f0f3ae62d6e 100644
--- a/libc/src/stdio/vprintf.h
+++ b/libc/src/stdio/vprintf.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_STDIO_VPRINTF_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int vprintf(const char *__restrict format, va_list vlist);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_VPRINTF_H
diff --git a/libc/src/stdio/vsnprintf.cpp b/libc/src/stdio/vsnprintf.cpp
index 9446d3b223506..a584c76833a2d 100644
--- a/libc/src/stdio/vsnprintf.cpp
+++ b/libc/src/stdio/vsnprintf.cpp
@@ -9,13 +9,14 @@
 #include "src/stdio/vsnprintf.h"
 
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stdarg.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, vsnprintf,
                    (char *__restrict buffer, size_t buffsz,
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, vsnprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/vsnprintf.h b/libc/src/stdio/vsnprintf.h
index 6da25fc66f792..27ae763f7746a 100644
--- a/libc/src/stdio/vsnprintf.h
+++ b/libc/src/stdio/vsnprintf.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_STDIO_VSNPRINTF_H
 #define LLVM_LIBC_SRC_STDIO_VSNPRINTF_H
 
+#include "src/__support/macros/config.h"
 #include <stdarg.h>
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int vsnprintf(char *__restrict buffer, size_t buffsz,
               const char *__restrict format, va_list vlist);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_VSNPRINTF_H
diff --git a/libc/src/stdio/vsprintf.cpp b/libc/src/stdio/vsprintf.cpp
index 5ebdf9a2a539f..b3978a09c671a 100644
--- a/libc/src/stdio/vsprintf.cpp
+++ b/libc/src/stdio/vsprintf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/arg_list.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/printf_main.h"
 #include "src/stdio/printf_core/writer.h"
 
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, vsprintf,
                    (char *__restrict buffer, const char *__restrict format,
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, vsprintf,
   return ret_val;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/vsprintf.h b/libc/src/stdio/vsprintf.h
index fe8def5994214..abb89ba76eae5 100644
--- a/libc/src/stdio/vsprintf.h
+++ b/libc/src/stdio/vsprintf.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDIO_VSPRINTF_H
 #define LLVM_LIBC_SRC_STDIO_VSPRINTF_H
 
+#include "src/__support/macros/config.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int vsprintf(char *__restrict buffer, const char *__restrict format,
              va_list vlist);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDIO_VSPRINTF_H
diff --git a/libc/src/stdlib/_Exit.cpp b/libc/src/stdlib/_Exit.cpp
index 03a766261014e..859598c0a3929 100644
--- a/libc/src/stdlib/_Exit.cpp
+++ b/libc/src/stdlib/_Exit.cpp
@@ -8,13 +8,14 @@
 
 #include "src/__support/OSUtil/exit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "src/stdlib/_Exit.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] LLVM_LIBC_FUNCTION(void, _Exit, (int status)) {
   internal::exit(status);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/_Exit.h b/libc/src/stdlib/_Exit.h
index bc05fafeb766b..398ab5352c670 100644
--- a/libc/src/stdlib/_Exit.h
+++ b/libc/src/stdlib/_Exit.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB__EXIT_H
 #define LLVM_LIBC_SRC_STDLIB__EXIT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void _Exit(int status);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB__EXIT_H
diff --git a/libc/src/stdlib/abort.h b/libc/src/stdlib/abort.h
index d3bf1e9e477c2..2bb292bfa0a90 100644
--- a/libc/src/stdlib/abort.h
+++ b/libc/src/stdlib/abort.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_ABORT_H
 #define LLVM_LIBC_SRC_STDLIB_ABORT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void abort();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ABORT_H
diff --git a/libc/src/stdlib/abs.cpp b/libc/src/stdlib/abs.cpp
index 6be63e0468f52..688c504ac6d7c 100644
--- a/libc/src/stdlib/abs.cpp
+++ b/libc/src/stdlib/abs.cpp
@@ -9,9 +9,10 @@
 #include "src/stdlib/abs.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, abs, (int n)) { return integer_abs(n); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/abs.h b/libc/src/stdlib/abs.h
index 19cef1446bd36..56ab04beae157 100644
--- a/libc/src/stdlib/abs.h
+++ b/libc/src/stdlib/abs.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_ABS_H
 #define LLVM_LIBC_SRC_STDLIB_ABS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int abs(int n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ABS_H
diff --git a/libc/src/stdlib/aligned_alloc.h b/libc/src/stdlib/aligned_alloc.h
index 7f294c8114d49..0205c0246b730 100644
--- a/libc/src/stdlib/aligned_alloc.h
+++ b/libc/src/stdlib/aligned_alloc.h
@@ -6,15 +6,16 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
 #ifndef LLVM_LIBC_SRC_STDLIB_ALIGNED_ALLOC_H
 #define LLVM_LIBC_SRC_STDLIB_ALIGNED_ALLOC_H
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *aligned_alloc(size_t alignment, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ALIGNED_ALLOC_H
diff --git a/libc/src/stdlib/at_quick_exit.cpp b/libc/src/stdlib/at_quick_exit.cpp
index 752d67e7fe44d..7acae8c52def3 100644
--- a/libc/src/stdlib/at_quick_exit.cpp
+++ b/libc/src/stdlib/at_quick_exit.cpp
@@ -9,9 +9,10 @@
 #include "src/stdlib/at_quick_exit.h"
 #include "hdr/types/atexithandler_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/exit_handler.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, at_quick_exit, (__atexithandler_t callback)) {
   return add_atexit_unit(
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, at_quick_exit, (__atexithandler_t callback)) {
       {&stdc_at_exit_func, reinterpret_cast<void *>(callback)});
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/at_quick_exit.h b/libc/src/stdlib/at_quick_exit.h
index c36c797088aba..0bfd4ff86b7f6 100644
--- a/libc/src/stdlib/at_quick_exit.h
+++ b/libc/src/stdlib/at_quick_exit.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STDLIB_AT_QUICK_EXIT_H
 
 #include "hdr/types/atexithandler_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int at_quick_exit(__atexithandler_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_AT_QUICK_EXIT_H
diff --git a/libc/src/stdlib/atexit.cpp b/libc/src/stdlib/atexit.cpp
index ca3cbfe87a88c..6844fb7aacaf6 100644
--- a/libc/src/stdlib/atexit.cpp
+++ b/libc/src/stdlib/atexit.cpp
@@ -9,9 +9,10 @@
 #include "src/stdlib/atexit.h"
 #include "hdr/types/atexithandler_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/exit_handler.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" {
 
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, atexit, (__atexithandler_t callback)) {
       {&stdc_at_exit_func, reinterpret_cast<void *>(callback)});
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/atexit.h b/libc/src/stdlib/atexit.h
index 7faaf654247c2..39ce2dc52624a 100644
--- a/libc/src/stdlib/atexit.h
+++ b/libc/src/stdlib/atexit.h
@@ -10,10 +10,12 @@
 #define LLVM_LIBC_SRC_STDLIB_ATEXIT_H
 
 #include "hdr/types/atexithandler_t.h"
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int atexit(__atexithandler_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ATEXIT_H
diff --git a/libc/src/stdlib/atof.cpp b/libc/src/stdlib/atof.cpp
index 61eb7db0056f1..18a65c67705d3 100644
--- a/libc/src/stdlib/atof.cpp
+++ b/libc/src/stdlib/atof.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/atof.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, atof, (const char *str)) {
   auto result = internal::strtofloatingpoint<double>(str);
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(double, atof, (const char *str)) {
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/atof.h b/libc/src/stdlib/atof.h
index cc9ae5157d6a5..dfa97c3c3a377 100644
--- a/libc/src/stdlib/atof.h
+++ b/libc/src/stdlib/atof.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_ATOF_H
 #define LLVM_LIBC_SRC_STDLIB_ATOF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double atof(const char *str);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ATOF_H
diff --git a/libc/src/stdlib/atoi.cpp b/libc/src/stdlib/atoi.cpp
index d1dc3203d3c57..9e46b53b1aa0b 100644
--- a/libc/src/stdlib/atoi.cpp
+++ b/libc/src/stdlib/atoi.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/atoi.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, atoi, (const char *str)) {
   // This is done because the standard specifies that atoi is identical to
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, atoi, (const char *str)) {
   return static_cast<int>(result);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/atoi.h b/libc/src/stdlib/atoi.h
index fb5de31860d02..218c0517ba5f6 100644
--- a/libc/src/stdlib/atoi.h
+++ b/libc/src/stdlib/atoi.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_ATOI_H
 #define LLVM_LIBC_SRC_STDLIB_ATOI_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int atoi(const char *str);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ATOI_H
diff --git a/libc/src/stdlib/atol.cpp b/libc/src/stdlib/atol.cpp
index 5586db7838c6b..7f3414a4afdd2 100644
--- a/libc/src/stdlib/atol.cpp
+++ b/libc/src/stdlib/atol.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/atol.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, atol, (const char *str)) {
   auto result = internal::strtointeger<long>(str, 10);
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(long, atol, (const char *str)) {
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/atol.h b/libc/src/stdlib/atol.h
index 690731f8714d8..3787dc12b527c 100644
--- a/libc/src/stdlib/atol.h
+++ b/libc/src/stdlib/atol.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_ATOL_H
 #define LLVM_LIBC_SRC_STDLIB_ATOL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long atol(const char *str);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ATOL_H
diff --git a/libc/src/stdlib/atoll.cpp b/libc/src/stdlib/atoll.cpp
index 921459ddc3ac3..4f1a02ad8315b 100644
--- a/libc/src/stdlib/atoll.cpp
+++ b/libc/src/stdlib/atoll.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/atoll.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, atoll, (const char *str)) {
   auto result = internal::strtointeger<long long>(str, 10);
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(long long, atoll, (const char *str)) {
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/atoll.h b/libc/src/stdlib/atoll.h
index 4746eb1e5e307..b3035fdc3918b 100644
--- a/libc/src/stdlib/atoll.h
+++ b/libc/src/stdlib/atoll.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_ATOLL_H
 #define LLVM_LIBC_SRC_STDLIB_ATOLL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long atoll(const char *str);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_ATOLL_H
diff --git a/libc/src/stdlib/baremetal/abort.cpp b/libc/src/stdlib/baremetal/abort.cpp
index 4dd85367411e6..98cf71084499a 100644
--- a/libc/src/stdlib/baremetal/abort.cpp
+++ b/libc/src/stdlib/baremetal/abort.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "src/stdlib/abort.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, abort, ()) { __builtin_trap(); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/bsearch.cpp b/libc/src/stdlib/bsearch.cpp
index 4292d6b6fe046..69b3e749c03fe 100644
--- a/libc/src/stdlib/bsearch.cpp
+++ b/libc/src/stdlib/bsearch.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/bsearch.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, bsearch,
                    (const void *key, const void *array, size_t array_size,
@@ -44,4 +45,4 @@ LLVM_LIBC_FUNCTION(void *, bsearch,
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/bsearch.h b/libc/src/stdlib/bsearch.h
index 3590198ba5570..cef37ea6c449a 100644
--- a/libc/src/stdlib/bsearch.h
+++ b/libc/src/stdlib/bsearch.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_BSEARCH_H
 #define LLVM_LIBC_SRC_STDLIB_BSEARCH_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *bsearch(const void *key, const void *array, size_t array_size,
               size_t elem_size, int (*compare)(const void *, const void *));
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //LLVM_LIBC_SRC_STDLIB_BSEARCH_H
diff --git a/libc/src/stdlib/calloc.h b/libc/src/stdlib/calloc.h
index bdb025b9d0d1c..a8cf734da7d3e 100644
--- a/libc/src/stdlib/calloc.h
+++ b/libc/src/stdlib/calloc.h
@@ -6,15 +6,16 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
 #ifndef LLVM_LIBC_SRC_STDLIB_CALLOC_H
 #define LLVM_LIBC_SRC_STDLIB_CALLOC_H
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *calloc(size_t num, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_CALLOC_H
diff --git a/libc/src/stdlib/div.cpp b/libc/src/stdlib/div.cpp
index ee7c335bdb7fd..766e8ae608340 100644
--- a/libc/src/stdlib/div.cpp
+++ b/libc/src/stdlib/div.cpp
@@ -9,8 +9,9 @@
 #include "src/stdlib/div.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(div_t, div, (int x, int y)) {
   div_t res;
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(div_t, div, (int x, int y)) {
   return res;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/div.h b/libc/src/stdlib/div.h
index 3a6853f7c95f5..e76f79bbeee5f 100644
--- a/libc/src/stdlib/div.h
+++ b/libc/src/stdlib/div.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_DIV_H
 #define LLVM_LIBC_SRC_STDLIB_DIV_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 div_t div(int x, int y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_DIV_H
diff --git a/libc/src/stdlib/exit.cpp b/libc/src/stdlib/exit.cpp
index 1afeec5a460da..28a6f8a63c0c6 100644
--- a/libc/src/stdlib/exit.cpp
+++ b/libc/src/stdlib/exit.cpp
@@ -9,8 +9,9 @@
 #include "src/stdlib/exit.h"
 #include "src/__support/OSUtil/exit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" void __cxa_finalize(void *);
 
@@ -19,4 +20,4 @@ extern "C" void __cxa_finalize(void *);
   internal::exit(status);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/exit.h b/libc/src/stdlib/exit.h
index b13573547fbf8..1f0153b98c1f4 100644
--- a/libc/src/stdlib/exit.h
+++ b/libc/src/stdlib/exit.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_EXIT_H
 #define LLVM_LIBC_SRC_STDLIB_EXIT_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void exit(int status);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_EXIT_H
diff --git a/libc/src/stdlib/exit_handler.cpp b/libc/src/stdlib/exit_handler.cpp
index ed41247e4a31d..ed0751a4c889e 100644
--- a/libc/src/stdlib/exit_handler.cpp
+++ b/libc/src/stdlib/exit_handler.cpp
@@ -8,8 +8,9 @@
 
 #include "src/stdlib/exit_handler.h"
 #include "src/__support/CPP/mutex.h" // lock_guard
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constinit ExitCallbackList at_quick_exit_callbacks;
 constinit ExitCallbackList atexit_callbacks;
@@ -39,4 +40,4 @@ int add_atexit_unit(ExitCallbackList &callbacks, const AtExitUnit &unit) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/exit_handler.h b/libc/src/stdlib/exit_handler.h
index 8494c2f2e526e..41733b7a0e7e5 100644
--- a/libc/src/stdlib/exit_handler.h
+++ b/libc/src/stdlib/exit_handler.h
@@ -13,9 +13,10 @@
 #include "src/__support/blockstore.h"
 #include "src/__support/common.h"
 #include "src/__support/fixedvector.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using AtExitCallback = void(void *);
 using StdCAtExitCallback = void(void);
@@ -48,6 +49,6 @@ void call_exit_callbacks(ExitCallbackList &callbacks);
 
 int add_atexit_unit(ExitCallbackList &callbacks, const AtExitUnit &unit);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_EXIT_HANDLER_H
diff --git a/libc/src/stdlib/free.h b/libc/src/stdlib/free.h
index b3970fd967740..1b250f3d3a7aa 100644
--- a/libc/src/stdlib/free.h
+++ b/libc/src/stdlib/free.h
@@ -6,15 +6,16 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
 #ifndef LLVM_LIBC_SRC_STDLIB_FREE_H
 #define LLVM_LIBC_SRC_STDLIB_FREE_H
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void free(void *ptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_FREE_H
diff --git a/libc/src/stdlib/freelist_malloc.cpp b/libc/src/stdlib/freelist_malloc.cpp
index 684c447a204e4..cfffa0425ff66 100644
--- a/libc/src/stdlib/freelist_malloc.cpp
+++ b/libc/src/stdlib/freelist_malloc.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/freelist_heap.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/aligned_alloc.h"
 #include "src/stdlib/calloc.h"
 #include "src/stdlib/free.h"
@@ -15,7 +16,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 #ifdef LIBC_FREELIST_MALLOC_SIZE
@@ -47,4 +48,4 @@ LLVM_LIBC_FUNCTION(void *, aligned_alloc, (size_t alignment, size_t size)) {
   return freelist_heap->aligned_allocate(alignment, size);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/getenv.cpp b/libc/src/stdlib/getenv.cpp
index 7a8eb1943c0a9..6b1bb693a6d83 100644
--- a/libc/src/stdlib/getenv.cpp
+++ b/libc/src/stdlib/getenv.cpp
@@ -10,10 +10,11 @@
 #include "config/linux/app.h"
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h> // For size_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, getenv, (const char *name)) {
   char **env_ptr = reinterpret_cast<char **>(LIBC_NAMESPACE::app.env_ptr);
@@ -41,4 +42,4 @@ LLVM_LIBC_FUNCTION(char *, getenv, (const char *name)) {
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/getenv.h b/libc/src/stdlib/getenv.h
index adb386b18ca81..a5d41fe19c98c 100644
--- a/libc/src/stdlib/getenv.h
+++ b/libc/src/stdlib/getenv.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_GETENV_H
 #define LLVM_LIBC_SRC_STDLIB_GETENV_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *getenv(const char *name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_GETENV_H
diff --git a/libc/src/stdlib/gpu/abort.cpp b/libc/src/stdlib/gpu/abort.cpp
index f3b052be6d24d..fee198607cc02 100644
--- a/libc/src/stdlib/gpu/abort.cpp
+++ b/libc/src/stdlib/gpu/abort.cpp
@@ -8,10 +8,11 @@
 
 #include "src/__support/RPC/rpc_client.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include "src/stdlib/abort.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, abort, ()) {
   // We want to first make sure the server is listening before we abort.
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(void, abort, ()) {
   gpu::end_program();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/gpu/free.cpp b/libc/src/stdlib/gpu/free.cpp
index fb5703b78ae6c..1f0e9ec735974 100644
--- a/libc/src/stdlib/gpu/free.cpp
+++ b/libc/src/stdlib/gpu/free.cpp
@@ -10,9 +10,10 @@
 
 #include "src/__support/GPU/allocator.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, free, (void *ptr)) { gpu::deallocate(ptr); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/gpu/malloc.cpp b/libc/src/stdlib/gpu/malloc.cpp
index 93558231d0811..54f2d8843996e 100644
--- a/libc/src/stdlib/gpu/malloc.cpp
+++ b/libc/src/stdlib/gpu/malloc.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/GPU/allocator.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, malloc, (size_t size)) {
   return gpu::allocate(size);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/labs.cpp b/libc/src/stdlib/labs.cpp
index d9237fad910c5..a8265e4083921 100644
--- a/libc/src/stdlib/labs.cpp
+++ b/libc/src/stdlib/labs.cpp
@@ -9,9 +9,10 @@
 #include "src/stdlib/labs.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, labs, (long n)) { return integer_abs(n); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/labs.h b/libc/src/stdlib/labs.h
index b7af538cd52c0..c15af79581e4f 100644
--- a/libc/src/stdlib/labs.h
+++ b/libc/src/stdlib/labs.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_LABS_H
 #define LLVM_LIBC_SRC_STDLIB_LABS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long labs(long n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_LABS_H
diff --git a/libc/src/stdlib/ldiv.cpp b/libc/src/stdlib/ldiv.cpp
index 57e2250063375..94f385f12b02c 100644
--- a/libc/src/stdlib/ldiv.cpp
+++ b/libc/src/stdlib/ldiv.cpp
@@ -9,8 +9,9 @@
 #include "src/stdlib/ldiv.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ldiv_t, ldiv, (long x, long y)) {
   ldiv_t res;
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(ldiv_t, ldiv, (long x, long y)) {
   return res;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/ldiv.h b/libc/src/stdlib/ldiv.h
index 0f0fafa7498b5..56b71fd044b18 100644
--- a/libc/src/stdlib/ldiv.h
+++ b/libc/src/stdlib/ldiv.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_LDIV_H
 #define LLVM_LIBC_SRC_STDLIB_LDIV_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ldiv_t ldiv(long x, long y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_LDIV_H
diff --git a/libc/src/stdlib/linux/abort.cpp b/libc/src/stdlib/linux/abort.cpp
index 59feec3e5a06d..d78ea675593a4 100644
--- a/libc/src/stdlib/linux/abort.cpp
+++ b/libc/src/stdlib/linux/abort.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/signal/raise.h"
 #include "src/stdlib/_Exit.h"
 
 #include "src/stdlib/abort.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, abort, ()) {
   // TODO: When sigprocmask and sigaction land:
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(void, abort, ()) {
   LIBC_NAMESPACE::_Exit(127);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/llabs.cpp b/libc/src/stdlib/llabs.cpp
index f42c2b8a993dd..09636f19ed6eb 100644
--- a/libc/src/stdlib/llabs.cpp
+++ b/libc/src/stdlib/llabs.cpp
@@ -9,9 +9,10 @@
 #include "src/stdlib/llabs.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, llabs, (long long n)) { return integer_abs(n); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/llabs.h b/libc/src/stdlib/llabs.h
index 953fe1709c1a7..b0cabddba0fb8 100644
--- a/libc/src/stdlib/llabs.h
+++ b/libc/src/stdlib/llabs.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_LLABS_H
 #define LLVM_LIBC_SRC_STDLIB_LLABS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long llabs(long long n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_LLABS_H
diff --git a/libc/src/stdlib/lldiv.cpp b/libc/src/stdlib/lldiv.cpp
index ff2fdf8eff33d..f55a4f6b95662 100644
--- a/libc/src/stdlib/lldiv.cpp
+++ b/libc/src/stdlib/lldiv.cpp
@@ -9,8 +9,9 @@
 #include "src/stdlib/lldiv.h"
 #include "src/__support/common.h"
 #include "src/__support/integer_operations.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(lldiv_t, lldiv, (long long x, long long y)) {
   lldiv_t res;
@@ -18,4 +19,4 @@ LLVM_LIBC_FUNCTION(lldiv_t, lldiv, (long long x, long long y)) {
   return res;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/lldiv.h b/libc/src/stdlib/lldiv.h
index ee7f4d37c7469..ad688e00289ef 100644
--- a/libc/src/stdlib/lldiv.h
+++ b/libc/src/stdlib/lldiv.h
@@ -8,12 +8,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_LLDIV_H
 #define LLVM_LIBC_SRC_STDLIB_LLDIV_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 lldiv_t lldiv(long long x, long long y);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_LLDIV_H
diff --git a/libc/src/stdlib/malloc.h b/libc/src/stdlib/malloc.h
index 514e2b133c7b1..1974f5d3a7815 100644
--- a/libc/src/stdlib/malloc.h
+++ b/libc/src/stdlib/malloc.h
@@ -6,15 +6,16 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
 #ifndef LLVM_LIBC_SRC_STDLIB_MALLOC_H
 #define LLVM_LIBC_SRC_STDLIB_MALLOC_H
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *malloc(size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_MALLOC_H
diff --git a/libc/src/stdlib/qsort.cpp b/libc/src/stdlib/qsort.cpp
index f040f375ea59e..048e63ab214ed 100644
--- a/libc/src/stdlib/qsort.cpp
+++ b/libc/src/stdlib/qsort.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdlib/qsort.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/qsort_util.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, qsort,
                    (void *array, size_t array_size, size_t elem_size,
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(void, qsort,
                                       array_size, elem_size, c));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/qsort.h b/libc/src/stdlib/qsort.h
index 5c78481ad7013..38988312f9014 100644
--- a/libc/src/stdlib/qsort.h
+++ b/libc/src/stdlib/qsort.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_QSORT_H
 #define LLVM_LIBC_SRC_STDLIB_QSORT_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void qsort(void *array, size_t array_size, size_t elem_size,
            int (*compare)(const void *, const void *));
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_QSORT_H
diff --git a/libc/src/stdlib/qsort_r.cpp b/libc/src/stdlib/qsort_r.cpp
index 758991848eff8..efbe5ad484b0e 100644
--- a/libc/src/stdlib/qsort_r.cpp
+++ b/libc/src/stdlib/qsort_r.cpp
@@ -8,11 +8,12 @@
 
 #include "src/stdlib/qsort_r.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/qsort_util.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, qsort_r,
                    (void *array, size_t array_size, size_t elem_size,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(void, qsort_r,
                                       array_size, elem_size, c));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/qsort_r.h b/libc/src/stdlib/qsort_r.h
index fab0576ed803f..574968a528711 100644
--- a/libc/src/stdlib/qsort_r.h
+++ b/libc/src/stdlib/qsort_r.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_QSORT_R_H
 #define LLVM_LIBC_SRC_STDLIB_QSORT_R_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This qsort_r uses the glibc argument ordering instead of the BSD argument
 // ordering (which puts arg before the function pointer). Putting arg after the
@@ -21,6 +22,6 @@ namespace LIBC_NAMESPACE {
 void qsort_r(void *array, size_t array_size, size_t elem_size,
              int (*compare)(const void *, const void *, void *), void *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_QSORT_R_H
diff --git a/libc/src/stdlib/qsort_util.h b/libc/src/stdlib/qsort_util.h
index f4b8094d05a9a..3a9cc4b8669f8 100644
--- a/libc/src/stdlib/qsort_util.h
+++ b/libc/src/stdlib/qsort_util.h
@@ -10,10 +10,12 @@
 #define LLVM_LIBC_SRC_STDLIB_QSORT_UTIL_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 // A simple quicksort implementation using the Hoare partition scheme.
 
@@ -147,6 +149,7 @@ LIBC_INLINE void quicksort(const Array &array) {
   quicksort(array.make_array(split_index, array.size() - split_index));
 }
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_QSORT_UTIL_H
diff --git a/libc/src/stdlib/quick_exit.cpp b/libc/src/stdlib/quick_exit.cpp
index 38f0a3db3e2cf..a5abf3e05d1a1 100644
--- a/libc/src/stdlib/quick_exit.cpp
+++ b/libc/src/stdlib/quick_exit.cpp
@@ -9,10 +9,11 @@
 #include "src/stdlib/quick_exit.h"
 #include "src/__support/OSUtil/exit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/exit_handler.h"
 
 // extern "C" void __cxa_finalize(void *);
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern ExitCallbackList at_quick_exit_callbacks;
 
@@ -21,4 +22,4 @@ extern ExitCallbackList at_quick_exit_callbacks;
   internal::exit(status);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/quick_exit.h b/libc/src/stdlib/quick_exit.h
index 9a3c20ccd9b17..f41bbaa0fa184 100644
--- a/libc/src/stdlib/quick_exit.h
+++ b/libc/src/stdlib/quick_exit.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_QUICK_EXIT_H
 #define LLVM_LIBC_SRC_STDLIB_QUICK_EXIT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void quick_exit(int status);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_QUICK_EXIT_H
diff --git a/libc/src/stdlib/rand.cpp b/libc/src/stdlib/rand.cpp
index ff3875c2f6959..1931727e2d9d1 100644
--- a/libc/src/stdlib/rand.cpp
+++ b/libc/src/stdlib/rand.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/rand.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/sleep.h"
 #include "src/stdlib/rand_util.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // An implementation of the xorshift64star pseudo random number generator. This
 // is a good general purpose generator for most non-cryptographics applications.
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, rand, (void)) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/rand.h b/libc/src/stdlib/rand.h
index 72bb147849851..df217b569aa8a 100644
--- a/libc/src/stdlib/rand.h
+++ b/libc/src/stdlib/rand.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_RAND_H
 #define LLVM_LIBC_SRC_STDLIB_RAND_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int rand(void);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_RAND_H
diff --git a/libc/src/stdlib/rand_util.cpp b/libc/src/stdlib/rand_util.cpp
index ff3478db70003..c05bdc7fbccb1 100644
--- a/libc/src/stdlib/rand_util.cpp
+++ b/libc/src/stdlib/rand_util.cpp
@@ -9,11 +9,12 @@
 #include "src/stdlib/rand_util.h"
 #include "src/__support/CPP/atomic.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // C standard 7.10p2: If 'rand' is called before 'srand' it is to
 // proceed as if the 'srand' function was called with a value of '1'.
 cpp::Atomic<unsigned long> rand_next = 1;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/rand_util.h b/libc/src/stdlib/rand_util.h
index 5d7febf8248d8..8bf7e586dd068 100644
--- a/libc/src/stdlib/rand_util.h
+++ b/libc/src/stdlib/rand_util.h
@@ -11,14 +11,15 @@
 
 #include "src/__support/CPP/atomic.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The ISO C standard does not explicitly require thread-safe behavior for the
 // generic `rand()` function. Some implementations expect it however, so we
 // provide it here.
 extern cpp::Atomic<unsigned long> rand_next;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_RAND_UTIL_H
diff --git a/libc/src/stdlib/realloc.h b/libc/src/stdlib/realloc.h
index 6e025faa7a8ce..4d675a601d67d 100644
--- a/libc/src/stdlib/realloc.h
+++ b/libc/src/stdlib/realloc.h
@@ -6,15 +6,16 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
 #ifndef LLVM_LIBC_SRC_STDLIB_REALLOC_H
 #define LLVM_LIBC_SRC_STDLIB_REALLOC_H
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *realloc(void *ptr, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_REALLOC_H
diff --git a/libc/src/stdlib/srand.cpp b/libc/src/stdlib/srand.cpp
index 21166c7a6754e..d11c18eed42c3 100644
--- a/libc/src/stdlib/srand.cpp
+++ b/libc/src/stdlib/srand.cpp
@@ -8,12 +8,13 @@
 
 #include "src/stdlib/srand.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/rand_util.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, srand, (unsigned int seed)) {
   rand_next.store(seed, cpp::MemoryOrder::RELAXED);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/srand.h b/libc/src/stdlib/srand.h
index 1bcf8de78c0a4..c9fce46ddd2bc 100644
--- a/libc/src/stdlib/srand.h
+++ b/libc/src/stdlib/srand.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_SRAND_H
 #define LLVM_LIBC_SRC_STDLIB_SRAND_H
 
+#include "src/__support/macros/config.h"
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void srand(unsigned int seed);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_SRAND_H
diff --git a/libc/src/stdlib/str_from_util.h b/libc/src/stdlib/str_from_util.h
index 58afa98afc08e..7f54bdf71a018 100644
--- a/libc/src/stdlib/str_from_util.h
+++ b/libc/src/stdlib/str_from_util.h
@@ -18,6 +18,7 @@
 #define LLVM_LIBC_SRC_STDLIB_STRFROM_UTIL_H
 
 #include "src/__support/CPP/type_traits.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/stdio/printf_core/converter_atlas.h"
 #include "src/stdio/printf_core/core_structs.h"
@@ -25,7 +26,8 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE::internal {
+namespace LIBC_NAMESPACE_DECL {
+namespace internal {
 
 template <typename T>
 using storage_type = typename fputil::FPBits<T>::StorageType;
@@ -133,6 +135,7 @@ int strfromfloat_convert(printf_core::Writer *writer,
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE::internal
+} // namespace internal
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRFROM_UTIL_H
diff --git a/libc/src/stdlib/strfromd.cpp b/libc/src/stdlib/strfromd.cpp
index 329f6fdcaff73..4c51e4c5c8a01 100644
--- a/libc/src/stdlib/strfromd.cpp
+++ b/libc/src/stdlib/strfromd.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/stdlib/strfromd.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/str_from_util.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strfromd,
                    (char *__restrict s, size_t n, const char *__restrict format,
@@ -36,4 +37,4 @@ LLVM_LIBC_FUNCTION(int, strfromd,
   return writer.get_chars_written();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strfromd.h b/libc/src/stdlib/strfromd.h
index d2c3fefb6300d..8a68ff5f68849 100644
--- a/libc/src/stdlib/strfromd.h
+++ b/libc/src/stdlib/strfromd.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRFROMD_H
 #define LLVM_LIBC_SRC_STDLIB_STRFROMD_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int strfromd(char *__restrict s, size_t n, const char *__restrict format,
              double fp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRFROMD_H
diff --git a/libc/src/stdlib/strfromf.cpp b/libc/src/stdlib/strfromf.cpp
index 80e1d74797c80..ea98a69ee4d60 100644
--- a/libc/src/stdlib/strfromf.cpp
+++ b/libc/src/stdlib/strfromf.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/stdlib/strfromf.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/str_from_util.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strfromf,
                    (char *__restrict s, size_t n, const char *__restrict format,
@@ -36,4 +37,4 @@ LLVM_LIBC_FUNCTION(int, strfromf,
   return writer.get_chars_written();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strfromf.h b/libc/src/stdlib/strfromf.h
index 492c2c33cf080..e65e6b3a564c2 100644
--- a/libc/src/stdlib/strfromf.h
+++ b/libc/src/stdlib/strfromf.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRFROMF_H
 #define LLVM_LIBC_SRC_STDLIB_STRFROMF_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int strfromf(char *__restrict s, size_t n, const char *__restrict format,
              float fp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRFROMF_H
diff --git a/libc/src/stdlib/strfroml.cpp b/libc/src/stdlib/strfroml.cpp
index f0bc9354c7ad7..d5bee7609f69c 100644
--- a/libc/src/stdlib/strfroml.cpp
+++ b/libc/src/stdlib/strfroml.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/stdlib/strfroml.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/str_from_util.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strfroml,
                    (char *__restrict s, size_t n, const char *__restrict format,
@@ -41,4 +42,4 @@ LLVM_LIBC_FUNCTION(int, strfroml,
   return writer.get_chars_written();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strfroml.h b/libc/src/stdlib/strfroml.h
index e99d035e4da60..1bff12e34f85f 100644
--- a/libc/src/stdlib/strfroml.h
+++ b/libc/src/stdlib/strfroml.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRFROML_H
 #define LLVM_LIBC_SRC_STDLIB_STRFROML_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int strfroml(char *__restrict s, size_t n, const char *__restrict format,
              long double fp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRFROML_H
diff --git a/libc/src/stdlib/strtod.cpp b/libc/src/stdlib/strtod.cpp
index 461f7feb5bf63..2c6819163aa46 100644
--- a/libc/src/stdlib/strtod.cpp
+++ b/libc/src/stdlib/strtod.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtod.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, strtod,
                    (const char *__restrict str, char **__restrict str_end)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(double, strtod,
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtod.h b/libc/src/stdlib/strtod.h
index 5efad845fdee3..1a32e38be3f93 100644
--- a/libc/src/stdlib/strtod.h
+++ b/libc/src/stdlib/strtod.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOD_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOD_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 double strtod(const char *__restrict str, char **__restrict str_end);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOD_H
diff --git a/libc/src/stdlib/strtof.cpp b/libc/src/stdlib/strtof.cpp
index 554d096879c59..351bf64ad4f70 100644
--- a/libc/src/stdlib/strtof.cpp
+++ b/libc/src/stdlib/strtof.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtof.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, strtof,
                    (const char *__restrict str, char **__restrict str_end)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(float, strtof,
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtof.h b/libc/src/stdlib/strtof.h
index d800b2233cf8e..2e7645fd3443e 100644
--- a/libc/src/stdlib/strtof.h
+++ b/libc/src/stdlib/strtof.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOF_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 float strtof(const char *__restrict str, char **__restrict str_end);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOF_H
diff --git a/libc/src/stdlib/strtol.cpp b/libc/src/stdlib/strtol.cpp
index e9bedf2371668..77f8712d7c136 100644
--- a/libc/src/stdlib/strtol.cpp
+++ b/libc/src/stdlib/strtol.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtol.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, strtol,
                    (const char *__restrict str, char **__restrict str_end,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(long, strtol,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtol.h b/libc/src/stdlib/strtol.h
index c46c650dc5b3e..54779d4bdb084 100644
--- a/libc/src/stdlib/strtol.h
+++ b/libc/src/stdlib/strtol.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOL_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long strtol(const char *__restrict str, char **__restrict str_end, int base);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOL_H
diff --git a/libc/src/stdlib/strtold.cpp b/libc/src/stdlib/strtold.cpp
index 9c3e1db900670..88d29c9f36278 100644
--- a/libc/src/stdlib/strtold.cpp
+++ b/libc/src/stdlib/strtold.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtold.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long double, strtold,
                    (const char *__restrict str, char **__restrict str_end)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(long double, strtold,
   return result.value;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtold.h b/libc/src/stdlib/strtold.h
index 6a0b5d450b58b..4b663ca00bc34 100644
--- a/libc/src/stdlib/strtold.h
+++ b/libc/src/stdlib/strtold.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOLD_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOLD_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long double strtold(const char *__restrict str, char **__restrict str_end);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOLD_H
diff --git a/libc/src/stdlib/strtoll.cpp b/libc/src/stdlib/strtoll.cpp
index 99e82056bcb5b..8d1b3efdcf87d 100644
--- a/libc/src/stdlib/strtoll.cpp
+++ b/libc/src/stdlib/strtoll.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtoll.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long long, strtoll,
                    (const char *__restrict str, char **__restrict str_end,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(long long, strtoll,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtoll.h b/libc/src/stdlib/strtoll.h
index d699785bfd710..399c20b76a354 100644
--- a/libc/src/stdlib/strtoll.h
+++ b/libc/src/stdlib/strtoll.h
@@ -9,11 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOLL_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOLL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long long strtoll(const char *__restrict str, char **__restrict str_end,
                   int base);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOLL_H
diff --git a/libc/src/stdlib/strtoul.cpp b/libc/src/stdlib/strtoul.cpp
index f50ed7ea2dc36..1d832318c4489 100644
--- a/libc/src/stdlib/strtoul.cpp
+++ b/libc/src/stdlib/strtoul.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtoul.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long, strtoul,
                    (const char *__restrict str, char **__restrict str_end,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(unsigned long, strtoul,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtoul.h b/libc/src/stdlib/strtoul.h
index af839928d1b0c..ca1911addc56e 100644
--- a/libc/src/stdlib/strtoul.h
+++ b/libc/src/stdlib/strtoul.h
@@ -9,11 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOUL_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOUL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long strtoul(const char *__restrict str, char **__restrict str_end,
                       int base);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOUL_H
diff --git a/libc/src/stdlib/strtoull.cpp b/libc/src/stdlib/strtoull.cpp
index de3a0d04b2cb1..dba22611cfb09 100644
--- a/libc/src/stdlib/strtoull.cpp
+++ b/libc/src/stdlib/strtoull.cpp
@@ -8,10 +8,11 @@
 
 #include "src/stdlib/strtoull.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(unsigned long long, strtoull,
                    (const char *__restrict str, char **__restrict str_end,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(unsigned long long, strtoull,
   return result;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdlib/strtoull.h b/libc/src/stdlib/strtoull.h
index 47ed1019834ce..58801e52789c0 100644
--- a/libc/src/stdlib/strtoull.h
+++ b/libc/src/stdlib/strtoull.h
@@ -9,11 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STDLIB_STRTOULL_H
 #define LLVM_LIBC_SRC_STDLIB_STRTOULL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long long strtoull(const char *__restrict str,
                             char **__restrict str_end, int base);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STDLIB_STRTOULL_H
diff --git a/libc/src/string/allocating_string_utils.h b/libc/src/string/allocating_string_utils.h
index 4112b7931d103..b3a8663c2f477 100644
--- a/libc/src/string/allocating_string_utils.h
+++ b/libc/src/string/allocating_string_utils.h
@@ -17,7 +17,7 @@
 
 #include <stddef.h> // For size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 LIBC_INLINE cpp::optional<char *> strdup(const char *src) {
@@ -33,6 +33,6 @@ LIBC_INLINE cpp::optional<char *> strdup(const char *src) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_ALLOCATING_STRING_UTILS_H
diff --git a/libc/src/string/bcmp.cpp b/libc/src/string/bcmp.cpp
index f18fa0c883eec..6e9c9ae3b7a3b 100644
--- a/libc/src/string/bcmp.cpp
+++ b/libc/src/string/bcmp.cpp
@@ -8,13 +8,14 @@
 
 #include "src/string/bcmp.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_bcmp.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, bcmp,
                    (const void *lhs, const void *rhs, size_t count)) {
   return inline_bcmp(lhs, rhs, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/bcmp.h b/libc/src/string/bcmp.h
index 711aecf083501..a82b529164d95 100644
--- a/libc/src/string/bcmp.h
+++ b/libc/src/string/bcmp.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_BCMP_H
 #define LLVM_LIBC_SRC_STRING_BCMP_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int bcmp(const void *lhs, const void *rhs, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_BCMP_H
diff --git a/libc/src/string/bcopy.cpp b/libc/src/string/bcopy.cpp
index 9399d332dff7f..89aad71e354c7 100644
--- a/libc/src/string/bcopy.cpp
+++ b/libc/src/string/bcopy.cpp
@@ -8,12 +8,13 @@
 
 #include "src/string/bcopy.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memmove.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, bcopy, (const void *src, void *dst, size_t count)) {
   return inline_memmove(dst, src, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/bcopy.h b/libc/src/string/bcopy.h
index ec4d8cde1c6cb..4cf0263a7d639 100644
--- a/libc/src/string/bcopy.h
+++ b/libc/src/string/bcopy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_BCOPY_H
 #define LLVM_LIBC_SRC_STRING_BCOPY_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void bcopy(const void *src, void *dest, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_BCOPY_H
diff --git a/libc/src/string/bzero.cpp b/libc/src/string/bzero.cpp
index c833cd8c2116d..7bcbee3547b9b 100644
--- a/libc/src/string/bzero.cpp
+++ b/libc/src/string/bzero.cpp
@@ -8,12 +8,13 @@
 
 #include "src/string/bzero.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_bzero.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, bzero, (void *ptr, size_t count)) {
   inline_bzero(reinterpret_cast<char *>(ptr), count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/bzero.h b/libc/src/string/bzero.h
index 3f52fe2128052..d9722197e8e8b 100644
--- a/libc/src/string/bzero.h
+++ b/libc/src/string/bzero.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_BZERO_H
 #define LLVM_LIBC_SRC_STRING_BZERO_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void bzero(void *ptr, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_BZERO_H
diff --git a/libc/src/string/index.cpp b/libc/src/string/index.cpp
index 4b2a3527d0ad8..46cf54825f6ce 100644
--- a/libc/src/string/index.cpp
+++ b/libc/src/string/index.cpp
@@ -9,12 +9,13 @@
 #include "src/string/index.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, index, (const char *src, int c)) {
   return internal::strchr_implementation(src, c);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/index.h b/libc/src/string/index.h
index 993f060b6ac86..9843bcdf9a573 100644
--- a/libc/src/string/index.h
+++ b/libc/src/string/index.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_INDEX_H
 #define LLVM_LIBC_SRC_STRING_INDEX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *index(const char *src, int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_INDEX_H
diff --git a/libc/src/string/memccpy.cpp b/libc/src/string/memccpy.cpp
index 200384e9f6190..ae90cf9370d49 100644
--- a/libc/src/string/memccpy.cpp
+++ b/libc/src/string/memccpy.cpp
@@ -9,9 +9,10 @@
 #include "src/string/memccpy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h> // For size_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, memccpy,
                    (void *__restrict dest, const void *__restrict src, int c,
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(void *, memccpy,
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memccpy.h b/libc/src/string/memccpy.h
index ce12dfbddc289..d6d2ea4650210 100644
--- a/libc/src/string/memccpy.h
+++ b/libc/src/string/memccpy.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMCCPY_H
 #define LLVM_LIBC_SRC_STRING_MEMCCPY_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memccpy(void *__restrict dest, const void *__restrict src, int c,
               size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMCCPY_H
diff --git a/libc/src/string/memchr.cpp b/libc/src/string/memchr.cpp
index 918bdd957b413..ba52f14afa9d6 100644
--- a/libc/src/string/memchr.cpp
+++ b/libc/src/string/memchr.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/memchr.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Look at performance benefits of comparing words.
 LLVM_LIBC_FUNCTION(void *, memchr, (const void *src, int c, size_t n)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(void *, memchr, (const void *src, int c, size_t n)) {
       static_cast<unsigned char>(c), n);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memchr.h b/libc/src/string/memchr.h
index b84c8317be55e..748fd6402489d 100644
--- a/libc/src/string/memchr.h
+++ b/libc/src/string/memchr.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMCHR_H
 #define LLVM_LIBC_SRC_STRING_MEMCHR_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memchr(const void *src, int c, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMCHR_H
diff --git a/libc/src/string/memcmp.cpp b/libc/src/string/memcmp.cpp
index adfbc1eca326a..68996fb787236 100644
--- a/libc/src/string/memcmp.cpp
+++ b/libc/src/string/memcmp.cpp
@@ -7,15 +7,16 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/memcmp.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcmp.h"
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, memcmp,
                    (const void *lhs, const void *rhs, size_t count)) {
   return inline_memcmp(lhs, rhs, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memcmp.h b/libc/src/string/memcmp.h
index f2c1dd3541cb2..b934ee3a8bb33 100644
--- a/libc/src/string/memcmp.h
+++ b/libc/src/string/memcmp.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMCMP_H
 #define LLVM_LIBC_SRC_STRING_MEMCMP_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int memcmp(const void *lhs, const void *rhs, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMCMP_H
diff --git a/libc/src/string/memcpy.cpp b/libc/src/string/memcpy.cpp
index e6cf978dc3bc6..0eb7f2c170e08 100644
--- a/libc/src/string/memcpy.cpp
+++ b/libc/src/string/memcpy.cpp
@@ -8,9 +8,10 @@
 
 #include "src/string/memcpy.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, memcpy,
                    (void *__restrict dst, const void *__restrict src,
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(void *, memcpy,
   return dst;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memcpy.h b/libc/src/string/memcpy.h
index ea34a2d3d8754..d624878a6b226 100644
--- a/libc/src/string/memcpy.h
+++ b/libc/src/string/memcpy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMCPY_H
 #define LLVM_LIBC_SRC_STRING_MEMCPY_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memcpy(void *__restrict, const void *__restrict, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMCPY_H
diff --git a/libc/src/string/memmem.cpp b/libc/src/string/memmem.cpp
index c695a8d4b8b49..c38df8ff84f6f 100644
--- a/libc/src/string/memmem.cpp
+++ b/libc/src/string/memmem.cpp
@@ -8,9 +8,10 @@
 
 #include "src/string/memmem.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memmem.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, memmem,
                    (const void *haystack, size_t haystack_len,
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(void *, memmem,
   return inline_memmem(haystack, haystack_len, needle, needle_len, COMP);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memmem.h b/libc/src/string/memmem.h
index b1f84c8cf3234..ce1bd61b5b21f 100644
--- a/libc/src/string/memmem.h
+++ b/libc/src/string/memmem.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMMEM_H
 #define LLVM_LIBC_SRC_STRING_MEMMEM_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // For size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memmem(const void *haystack, size_t haystack_len, const void *needle,
              size_t needle_len);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMMEM_H
diff --git a/libc/src/string/memmove.cpp b/libc/src/string/memmove.cpp
index 19e38a3c8bdbe..26a8c4187f3d3 100644
--- a/libc/src/string/memmove.cpp
+++ b/libc/src/string/memmove.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/memmove.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "src/string/memory_utils/inline_memmove.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, memmove,
                    (void *dst, const void *src, size_t count)) {
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(void *, memmove,
   return dst;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memmove.h b/libc/src/string/memmove.h
index 4d78aadbd6620..56b071a62f10e 100644
--- a/libc/src/string/memmove.h
+++ b/libc/src/string/memmove.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMMOVE_H
 #define LLVM_LIBC_SRC_STRING_MEMMOVE_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memmove(void *dst, const void *src, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMMOVE_H
diff --git a/libc/src/string/memory_utils/aarch64/inline_bcmp.h b/libc/src/string/memory_utils/aarch64/inline_bcmp.h
index b80b578187634..93196415f2662 100644
--- a/libc/src/string/memory_utils/aarch64/inline_bcmp.h
+++ b/libc/src/string/memory_utils/aarch64/inline_bcmp.h
@@ -9,6 +9,7 @@
 #define LIBC_SRC_STRING_MEMORY_UTILS_AARCH64_INLINE_BCMP_H
 
 #include "src/__support/macros/attributes.h"   // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/string/memory_utils/op_aarch64.h"
 #include "src/string/memory_utils/op_generic.h"
@@ -16,7 +17,7 @@
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE BcmpReturnType inline_bcmp_aarch64(CPtr p1,
                                                                 CPtr p2,
@@ -65,6 +66,6 @@ namespace LIBC_NAMESPACE {
   return aarch64::Bcmp<32>::loop_and_tail(p1, p2, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_AARCH64_INLINE_BCMP_H
diff --git a/libc/src/string/memory_utils/aarch64/inline_memcmp.h b/libc/src/string/memory_utils/aarch64/inline_memcmp.h
index d0e0bd7cf025f..84f5a41230798 100644
--- a/libc/src/string/memory_utils/aarch64/inline_memcmp.h
+++ b/libc/src/string/memory_utils/aarch64/inline_memcmp.h
@@ -14,7 +14,7 @@
 #include "src/string/memory_utils/op_generic.h"
 #include "src/string/memory_utils/utils.h" // MemcmpReturnType
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE MemcmpReturnType
 inline_memcmp_generic_gt16(CPtr p1, CPtr p2, size_t count) {
@@ -66,6 +66,6 @@ LIBC_INLINE MemcmpReturnType inline_memcmp_aarch64(CPtr p1, CPtr p2,
   else
     return inline_memcmp_generic_gt16(p1, p2, count);
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_MEMCMP_H
diff --git a/libc/src/string/memory_utils/aarch64/inline_memcpy.h b/libc/src/string/memory_utils/aarch64/inline_memcpy.h
index ea1a03f4fa0bf..2b34b675d8af2 100644
--- a/libc/src/string/memory_utils/aarch64/inline_memcpy.h
+++ b/libc/src/string/memory_utils/aarch64/inline_memcpy.h
@@ -14,7 +14,7 @@
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE void
 inline_memcpy_aarch64(Ptr __restrict dst, CPtr __restrict src, size_t count) {
@@ -43,6 +43,6 @@ inline_memcpy_aarch64(Ptr __restrict dst, CPtr __restrict src, size_t count) {
   return builtin::Memcpy<64>::loop_and_tail(dst, src, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_AARCH64_INLINE_MEMCPY_H
diff --git a/libc/src/string/memory_utils/aarch64/inline_memmove.h b/libc/src/string/memory_utils/aarch64/inline_memmove.h
index ca28655c91682..def82373fbfbe 100644
--- a/libc/src/string/memory_utils/aarch64/inline_memmove.h
+++ b/libc/src/string/memory_utils/aarch64/inline_memmove.h
@@ -16,7 +16,7 @@
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE void inline_memmove_aarch64(Ptr dst, CPtr src, size_t count) {
   static_assert(aarch64::kNeon, "aarch64 supports vector types");
@@ -48,6 +48,6 @@ LIBC_INLINE void inline_memmove_aarch64(Ptr dst, CPtr src, size_t count) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_AARCH64_INLINE_MEMMOVE_H
diff --git a/libc/src/string/memory_utils/aarch64/inline_memset.h b/libc/src/string/memory_utils/aarch64/inline_memset.h
index 91512acce6fc0..a2c05534aa330 100644
--- a/libc/src/string/memory_utils/aarch64/inline_memset.h
+++ b/libc/src/string/memory_utils/aarch64/inline_memset.h
@@ -9,13 +9,14 @@
 #define LIBC_SRC_STRING_MEMORY_UTILS_AARCH64_INLINE_MEMSET_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/op_aarch64.h"
 #include "src/string/memory_utils/op_generic.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE static void
 inline_memset_aarch64(Ptr dst, uint8_t value, size_t count) {
@@ -56,6 +57,6 @@ inline_memset_aarch64(Ptr dst, uint8_t value, size_t count) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_AARCH64_INLINE_MEMSET_H
diff --git a/libc/src/string/memory_utils/generic/aligned_access.h b/libc/src/string/memory_utils/generic/aligned_access.h
index b6ece816756c5..7e480b8a1c2bb 100644
--- a/libc/src/string/memory_utils/generic/aligned_access.h
+++ b/libc/src/string/memory_utils/generic/aligned_access.h
@@ -20,7 +20,7 @@
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE uint32_t load32_aligned(CPtr ptr, size_t offset,
                                                      size_t alignment) {
@@ -202,6 +202,6 @@ inline_memcmp_aligned_access_64bit(CPtr p1, CPtr p2, size_t count) {
   return inline_memcmp_byte_per_byte(p1, p2, count, offset);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_GENERIC_ALIGNED_ACCESS_H
diff --git a/libc/src/string/memory_utils/generic/builtin.h b/libc/src/string/memory_utils/generic/builtin.h
index ba4f4b8984088..5670a4e610565 100644
--- a/libc/src/string/memory_utils/generic/builtin.h
+++ b/libc/src/string/memory_utils/generic/builtin.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_GENERIC_BUILTIN_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
-#include "src/string/memory_utils/utils.h"   // Ptr, CPtr
+#include "src/__support/macros/config.h"
+#include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #if !__has_builtin(__builtin_memcpy) || !__has_builtin(__builtin_memset) ||    \
     !__has_builtin(__builtin_memmove)
@@ -36,6 +37,6 @@ inline_memset_builtin(Ptr dst, uint8_t value, size_t count, size_t offset = 0) {
   __builtin_memset(dst + offset, value, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_GENERIC_BUILTIN_H
diff --git a/libc/src/string/memory_utils/generic/byte_per_byte.h b/libc/src/string/memory_utils/generic/byte_per_byte.h
index 9515398794df4..eab5964bfe167 100644
--- a/libc/src/string/memory_utils/generic/byte_per_byte.h
+++ b/libc/src/string/memory_utils/generic/byte_per_byte.h
@@ -18,7 +18,7 @@
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE void
 inline_memcpy_byte_per_byte(Ptr dst, CPtr src, size_t count,
@@ -73,6 +73,6 @@ inline_memcmp_byte_per_byte(CPtr p1, CPtr p2, size_t count, size_t offset = 0) {
   return MemcmpReturnType::zero();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_GENERIC_BYTE_PER_BYTE_H
diff --git a/libc/src/string/memory_utils/inline_bcmp.h b/libc/src/string/memory_utils/inline_bcmp.h
index 69aa2acf75be4..14cf16ebb6b69 100644
--- a/libc/src/string/memory_utils/inline_bcmp.h
+++ b/libc/src/string/memory_utils/inline_bcmp.h
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_BCMP_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // LIBC_TARGET_ARCH_IS_
 
 #include <stddef.h> // size_t
@@ -30,7 +31,7 @@
 #error "Unsupported architecture"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[gnu::flatten]] LIBC_INLINE int inline_bcmp(const void *p1, const void *p2,
                                              size_t count) {
@@ -38,7 +39,7 @@ namespace LIBC_NAMESPACE {
       reinterpret_cast<CPtr>(p1), reinterpret_cast<CPtr>(p2), count));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef LIBC_SRC_STRING_MEMORY_UTILS_BCMP
 
diff --git a/libc/src/string/memory_utils/inline_bzero.h b/libc/src/string/memory_utils/inline_bzero.h
index d760baca9d0f4..4a92e8b57a68e 100644
--- a/libc/src/string/memory_utils/inline_bzero.h
+++ b/libc/src/string/memory_utils/inline_bzero.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_BZERO_H
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memset.h"
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[gnu::flatten]] LIBC_INLINE static void inline_bzero(Ptr dst, size_t count) {
   inline_memset(dst, 0, count);
@@ -24,6 +25,6 @@ namespace LIBC_NAMESPACE {
   inline_bzero(reinterpret_cast<Ptr>(dst), count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_BZERO_H
diff --git a/libc/src/string/memory_utils/inline_memcmp.h b/libc/src/string/memory_utils/inline_memcmp.h
index 1fdc13973c646..82216265c23be 100644
--- a/libc/src/string/memory_utils/inline_memcmp.h
+++ b/libc/src/string/memory_utils/inline_memcmp.h
@@ -31,7 +31,7 @@
 #error "Unsupported architecture"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[gnu::flatten]] LIBC_INLINE int inline_memcmp(const void *p1, const void *p2,
                                                size_t count) {
@@ -39,7 +39,7 @@ namespace LIBC_NAMESPACE {
       reinterpret_cast<CPtr>(p1), reinterpret_cast<CPtr>(p2), count));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef LIBC_SRC_STRING_MEMORY_UTILS_MEMCMP
 
diff --git a/libc/src/string/memory_utils/inline_memcpy.h b/libc/src/string/memory_utils/inline_memcpy.h
index c88fd55eff645..7a77e77438138 100644
--- a/libc/src/string/memory_utils/inline_memcpy.h
+++ b/libc/src/string/memory_utils/inline_memcpy.h
@@ -38,7 +38,7 @@
 #error "Unsupported architecture"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[gnu::flatten]] LIBC_INLINE void
 inline_memcpy(void *__restrict dst, const void *__restrict src, size_t count) {
@@ -46,6 +46,6 @@ inline_memcpy(void *__restrict dst, const void *__restrict src, size_t count) {
                                       reinterpret_cast<CPtr>(src), count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_MEMCPY_H
diff --git a/libc/src/string/memory_utils/inline_memmem.h b/libc/src/string/memory_utils/inline_memmem.h
index eaddee57aef54..15e3d633985d6 100644
--- a/libc/src/string/memory_utils/inline_memmem.h
+++ b/libc/src/string/memory_utils/inline_memmem.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_MEMMEM_H
 
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename Comp>
 LIBC_INLINE constexpr static void *
@@ -39,6 +40,6 @@ inline_memmem(const void *haystack, size_t haystack_len, const void *needle,
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_MEMMEM_H
diff --git a/libc/src/string/memory_utils/inline_memmove.h b/libc/src/string/memory_utils/inline_memmove.h
index 3cbc3e0b0a528..85d0159701ece 100644
--- a/libc/src/string/memory_utils/inline_memmove.h
+++ b/libc/src/string/memory_utils/inline_memmove.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_MEMMOVE_H
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_MEMMOVE_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t, ptrdiff_t
 
 #if defined(LIBC_TARGET_ARCH_IS_X86)
@@ -42,7 +43,7 @@
 #error "Unsupported architecture"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE constexpr bool inline_memmove_no_small_size(void *, const void *,
                                                         size_t) {
@@ -67,6 +68,6 @@ LIBC_INLINE void inline_memmove(void *dst, const void *src, size_t count) {
   inline_memmove_follow_up(dst, src, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif /* LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_MEMMOVE_H */
diff --git a/libc/src/string/memory_utils/inline_memset.h b/libc/src/string/memory_utils/inline_memset.h
index 1c07c1ca4bffc..858e983f00932 100644
--- a/libc/src/string/memory_utils/inline_memset.h
+++ b/libc/src/string/memory_utils/inline_memset.h
@@ -34,13 +34,13 @@
 #error "Unsupported architecture"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE static void inline_memset(void *dst, uint8_t value, size_t count) {
   LIBC_SRC_STRING_MEMORY_UTILS_MEMSET(reinterpret_cast<Ptr>(dst), value, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #undef LIBC_SRC_STRING_MEMORY_UTILS_MEMSET
 
diff --git a/libc/src/string/memory_utils/inline_strcmp.h b/libc/src/string/memory_utils/inline_strcmp.h
index 2bcd56ad3d6b0..281d5b14c6cba 100644
--- a/libc/src/string/memory_utils/inline_strcmp.h
+++ b/libc/src/string/memory_utils/inline_strcmp.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_STRCMP_H
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_STRCMP_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename Comp>
 LIBC_INLINE constexpr int inline_strcmp(const char *left, const char *right,
@@ -39,6 +40,6 @@ LIBC_INLINE constexpr int inline_strncmp(const char *left, const char *right,
               *reinterpret_cast<const unsigned char *>(right));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_STRCMP_H
diff --git a/libc/src/string/memory_utils/inline_strstr.h b/libc/src/string/memory_utils/inline_strstr.h
index f0f8e2bbf896a..9c99e920b4b57 100644
--- a/libc/src/string/memory_utils/inline_strstr.h
+++ b/libc/src/string/memory_utils/inline_strstr.h
@@ -9,11 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_STRSTR_H
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_STRSTR_H
 
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memmem.h"
 #include "src/string/string_utils.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename Comp>
 LIBC_INLINE constexpr char *inline_strstr(const char *haystack,
@@ -24,6 +25,6 @@ LIBC_INLINE constexpr char *inline_strstr(const char *haystack,
   return static_cast<char *>(result);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_INLINE_STRSTR_H
diff --git a/libc/src/string/memory_utils/op_aarch64.h b/libc/src/string/memory_utils/op_aarch64.h
index 6a2013b2a8fae..1090ea2617f09 100644
--- a/libc/src/string/memory_utils/op_aarch64.h
+++ b/libc/src/string/memory_utils/op_aarch64.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_AARCH64_H
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_AARCH64_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if defined(LIBC_TARGET_ARCH_IS_AARCH64)
@@ -25,7 +26,8 @@
 #include <arm_neon.h>
 #endif //__ARM_NEON
 
-namespace LIBC_NAMESPACE::aarch64 {
+namespace LIBC_NAMESPACE_DECL {
+namespace aarch64 {
 
 LIBC_INLINE_VAR constexpr bool kNeon = LLVM_LIBC_IS_DEFINED(__ARM_NEON);
 
@@ -170,9 +172,11 @@ template <size_t Size> struct Bcmp {
   }
 };
 
-} // namespace LIBC_NAMESPACE::aarch64
+} // namespace aarch64
+} // namespace LIBC_NAMESPACE_DECL
 
-namespace LIBC_NAMESPACE::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace generic {
 
 ///////////////////////////////////////////////////////////////////////////////
 // Specializations for uint16_t
@@ -264,7 +268,8 @@ LIBC_INLINE MemcmpReturnType cmp<uint8x16x2_t>(CPtr p1, CPtr p2,
   }
   return MemcmpReturnType::zero();
 }
-} // namespace LIBC_NAMESPACE::generic
+} // namespace generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TARGET_ARCH_IS_AARCH64
 
diff --git a/libc/src/string/memory_utils/op_builtin.h b/libc/src/string/memory_utils/op_builtin.h
index 75dd4de53a470..d7c1b1f870115 100644
--- a/libc/src/string/memory_utils/op_builtin.h
+++ b/libc/src/string/memory_utils/op_builtin.h
@@ -16,9 +16,11 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_BUILTIN_H
 
 #include "src/__support/CPP/type_traits.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/utils.h"
 
-namespace LIBC_NAMESPACE::builtin {
+namespace LIBC_NAMESPACE_DECL {
+namespace builtin {
 
 ///////////////////////////////////////////////////////////////////////////////
 // Memcpy
@@ -151,6 +153,7 @@ template <size_t Size> struct Memcmp {
   }
 };
 
-} // namespace LIBC_NAMESPACE::builtin
+} // namespace builtin
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_BUILTIN_H
diff --git a/libc/src/string/memory_utils/op_generic.h b/libc/src/string/memory_utils/op_generic.h
index efaff80b7e4da..89bbea8a2bdd2 100644
--- a/libc/src/string/memory_utils/op_generic.h
+++ b/libc/src/string/memory_utils/op_generic.h
@@ -27,6 +27,7 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/common.h"
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT64
 #include "src/string/memory_utils/op_builtin.h"
@@ -38,14 +39,15 @@ static_assert((UINTPTR_MAX == 4294967295U) ||
                   (UINTPTR_MAX == 18446744073709551615UL),
               "We currently only support 32- or 64-bit platforms");
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 // Compiler types using the vector attributes.
 using generic_v128 = uint8_t __attribute__((__vector_size__(16)));
 using generic_v256 = uint8_t __attribute__((__vector_size__(32)));
 using generic_v512 = uint8_t __attribute__((__vector_size__(64)));
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
-namespace LIBC_NAMESPACE::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace generic {
 
 // We accept three types of values as elements for generic operations:
 // - scalar : unsigned integral types,
@@ -578,6 +580,7 @@ LIBC_INLINE MemcmpReturnType cmp<uint8_t>(CPtr p1, CPtr p2, size_t offset) {
 template <>
 LIBC_INLINE MemcmpReturnType cmp_neq<uint8_t>(CPtr p1, CPtr p2, size_t offset);
 
-} // namespace LIBC_NAMESPACE::generic
+} // namespace generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_GENERIC_H
diff --git a/libc/src/string/memory_utils/op_riscv.h b/libc/src/string/memory_utils/op_riscv.h
index 313d55e644cb4..2d211de0facfc 100644
--- a/libc/src/string/memory_utils/op_riscv.h
+++ b/libc/src/string/memory_utils/op_riscv.h
@@ -12,6 +12,7 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_RISCV_H
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_RISCV_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if defined(LIBC_TARGET_ARCH_IS_ANY_RISCV)
@@ -19,7 +20,8 @@
 #include "src/__support/common.h"
 #include "src/string/memory_utils/op_generic.h"
 
-namespace LIBC_NAMESPACE::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace generic {
 
 ///////////////////////////////////////////////////////////////////////////////
 // Specializations for uint16_t
@@ -78,7 +80,8 @@ LIBC_INLINE MemcmpReturnType cmp_neq<uint64_t>(CPtr p1, CPtr p2,
   return cmp_neq_uint64_t(a, b);
 }
 
-} // namespace LIBC_NAMESPACE::generic
+} // namespace generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TARGET_ARCH_IS_ANY_RISCV
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_RISCV_H
diff --git a/libc/src/string/memory_utils/op_x86.h b/libc/src/string/memory_utils/op_x86.h
index 2d9cebbb0496a..cf9667283818d 100644
--- a/libc/src/string/memory_utils/op_x86.h
+++ b/libc/src/string/memory_utils/op_x86.h
@@ -12,6 +12,7 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_X86_H
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_OP_X86_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #if defined(LIBC_TARGET_ARCH_IS_X86)
@@ -37,7 +38,8 @@
 #define _mm_movemask_epi8(A) 0
 #endif
 
-namespace LIBC_NAMESPACE::x86 {
+namespace LIBC_NAMESPACE_DECL {
+namespace x86 {
 
 // A set of constants to check compile time features.
 LIBC_INLINE_VAR constexpr bool K_SSE2 = LLVM_LIBC_IS_DEFINED(__SSE2__);
@@ -55,9 +57,11 @@ struct Memcpy {
   }
 };
 
-} // namespace LIBC_NAMESPACE::x86
+} // namespace x86
+} // namespace LIBC_NAMESPACE_DECL
 
-namespace LIBC_NAMESPACE::generic {
+namespace LIBC_NAMESPACE_DECL {
+namespace generic {
 
 ///////////////////////////////////////////////////////////////////////////////
 // Specializations for uint16_t
@@ -314,7 +318,8 @@ LIBC_INLINE MemcmpReturnType cmp_neq<__m512i>(CPtr p1, CPtr p2, size_t offset) {
 
 #pragma GCC diagnostic pop
 
-} // namespace LIBC_NAMESPACE::generic
+} // namespace generic
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TARGET_ARCH_IS_X86
 
diff --git a/libc/src/string/memory_utils/riscv/inline_bcmp.h b/libc/src/string/memory_utils/riscv/inline_bcmp.h
index d66f0a7b225e6..4bdde27cd16be 100644
--- a/libc/src/string/memory_utils/riscv/inline_bcmp.h
+++ b/libc/src/string/memory_utils/riscv/inline_bcmp.h
@@ -9,13 +9,14 @@
 #define LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_BCMP_H
 
 #include "src/__support/macros/attributes.h"               // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // LIBC_TARGET_ARCH_IS_RISCV64
 #include "src/string/memory_utils/generic/aligned_access.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE BcmpReturnType inline_bcmp_riscv(CPtr p1, CPtr p2,
                                                               size_t count) {
@@ -28,6 +29,6 @@ namespace LIBC_NAMESPACE {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_BCMP_H
diff --git a/libc/src/string/memory_utils/riscv/inline_memcmp.h b/libc/src/string/memory_utils/riscv/inline_memcmp.h
index 0b28ad92235c1..ca834952d331e 100644
--- a/libc/src/string/memory_utils/riscv/inline_memcmp.h
+++ b/libc/src/string/memory_utils/riscv/inline_memcmp.h
@@ -9,13 +9,14 @@
 #define LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMCMP_H
 
 #include "src/__support/macros/attributes.h"               // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // LIBC_TARGET_ARCH_IS_RISCV64
 #include "src/string/memory_utils/generic/aligned_access.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE MemcmpReturnType
 inline_memcmp_riscv(CPtr p1, CPtr p2, size_t count) {
@@ -28,6 +29,6 @@ inline_memcmp_riscv(CPtr p1, CPtr p2, size_t count) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMCMP_H
diff --git a/libc/src/string/memory_utils/riscv/inline_memcpy.h b/libc/src/string/memory_utils/riscv/inline_memcpy.h
index 05531c8b75972..8eb87e0f38ce5 100644
--- a/libc/src/string/memory_utils/riscv/inline_memcpy.h
+++ b/libc/src/string/memory_utils/riscv/inline_memcpy.h
@@ -9,13 +9,14 @@
 #define LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMCPY_H
 
 #include "src/__support/macros/attributes.h"               // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // LIBC_TARGET_ARCH_IS_RISCV64
 #include "src/string/memory_utils/generic/aligned_access.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE void
 inline_memcpy_riscv(Ptr __restrict dst, CPtr __restrict src, size_t count) {
@@ -28,6 +29,6 @@ inline_memcpy_riscv(Ptr __restrict dst, CPtr __restrict src, size_t count) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMCPY_H
diff --git a/libc/src/string/memory_utils/riscv/inline_memmove.h b/libc/src/string/memory_utils/riscv/inline_memmove.h
index 1a95a8ebba07c..28de4c240260d 100644
--- a/libc/src/string/memory_utils/riscv/inline_memmove.h
+++ b/libc/src/string/memory_utils/riscv/inline_memmove.h
@@ -9,19 +9,20 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMMOVE_H
 
 #include "src/__support/macros/attributes.h"               // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // LIBC_TARGET_ARCH_IS_RISCV64
 #include "src/string/memory_utils/generic/byte_per_byte.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE void
 inline_memmove_riscv(Ptr __restrict dst, CPtr __restrict src, size_t count) {
   return inline_memmove_byte_per_byte(dst, src, count);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMMOVE_H
diff --git a/libc/src/string/memory_utils/riscv/inline_memset.h b/libc/src/string/memory_utils/riscv/inline_memset.h
index b9b8a188aff67..d6ab523f16414 100644
--- a/libc/src/string/memory_utils/riscv/inline_memset.h
+++ b/libc/src/string/memory_utils/riscv/inline_memset.h
@@ -9,13 +9,14 @@
 #define LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMSET_H
 
 #include "src/__support/macros/attributes.h"               // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // LIBC_TARGET_ARCH_IS_RISCV64
 #include "src/string/memory_utils/generic/aligned_access.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE static void inline_memset_riscv(Ptr dst, uint8_t value,
                                             size_t count) {
@@ -28,6 +29,6 @@ LIBC_INLINE static void inline_memset_riscv(Ptr dst, uint8_t value,
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_SRC_STRING_MEMORY_UTILS_RISCV_INLINE_MEMSET_H
diff --git a/libc/src/string/memory_utils/utils.h b/libc/src/string/memory_utils/utils.h
index cb1fd899b6c63..5e5fe593cce77 100644
--- a/libc/src/string/memory_utils/utils.h
+++ b/libc/src/string/memory_utils/utils.h
@@ -14,12 +14,13 @@
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/endian.h"
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
 #include <stddef.h> // size_t
 #include <stdint.h> // intptr_t / uintptr_t / INT32_MAX / INT32_MIN
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Returns the number of bytes to substract from ptr to get to the previous
 // multiple of alignment. If ptr is already aligned returns 0.
@@ -349,6 +350,6 @@ LIBC_INLINE void prefetch_to_local_cache(CPtr dst) {
   __builtin_prefetch(dst, /*read*/ 0, /*max locality*/ 3);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_UTILS_H
diff --git a/libc/src/string/memory_utils/x86_64/inline_bcmp.h b/libc/src/string/memory_utils/x86_64/inline_bcmp.h
index 58eaedbbe015f..49fe08fb0501b 100644
--- a/libc/src/string/memory_utils/x86_64/inline_bcmp.h
+++ b/libc/src/string/memory_utils/x86_64/inline_bcmp.h
@@ -9,13 +9,14 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_BCMP_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/op_generic.h"
 #include "src/string/memory_utils/op_x86.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE BcmpReturnType
 inline_bcmp_generic_gt16(CPtr p1, CPtr p2, size_t count) {
@@ -88,6 +89,6 @@ inline_bcmp_x86_avx512bw_gt16(CPtr p1, CPtr p2, size_t count) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_BCMP_H
diff --git a/libc/src/string/memory_utils/x86_64/inline_memcmp.h b/libc/src/string/memory_utils/x86_64/inline_memcmp.h
index 6a315adcd566c..7fd101227c883 100644
--- a/libc/src/string/memory_utils/x86_64/inline_memcmp.h
+++ b/libc/src/string/memory_utils/x86_64/inline_memcmp.h
@@ -15,7 +15,7 @@
 #include "src/string/memory_utils/op_x86.h"
 #include "src/string/memory_utils/utils.h" // MemcmpReturnType
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[maybe_unused]] LIBC_INLINE MemcmpReturnType
 inline_memcmp_generic_gt16(CPtr p1, CPtr p2, size_t count) {
@@ -89,6 +89,6 @@ LIBC_INLINE MemcmpReturnType inline_memcmp_x86(CPtr p1, CPtr p2, size_t count) {
 #endif
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_MEMCMP_H
diff --git a/libc/src/string/memory_utils/x86_64/inline_memcpy.h b/libc/src/string/memory_utils/x86_64/inline_memcpy.h
index 507b3e25199ed..59a360811f11c 100644
--- a/libc/src/string/memory_utils/x86_64/inline_memcpy.h
+++ b/libc/src/string/memory_utils/x86_64/inline_memcpy.h
@@ -26,7 +26,7 @@
 #error LLVM_LIBC_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE is deprecated use LIBC_COPT_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE=0 instead.
 #endif // LLVM_LIBC_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace x86 {
 
@@ -222,6 +222,6 @@ inline_memcpy_x86_maybe_interpose_repmovsb(Ptr __restrict dst,
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_MEMCPY_H
diff --git a/libc/src/string/memory_utils/x86_64/inline_memmove.h b/libc/src/string/memory_utils/x86_64/inline_memmove.h
index 879b36eaa6734..d81e833598f79 100644
--- a/libc/src/string/memory_utils/x86_64/inline_memmove.h
+++ b/libc/src/string/memory_utils/x86_64/inline_memmove.h
@@ -16,7 +16,7 @@
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE bool inline_memmove_small_size_x86(Ptr dst, CPtr src,
                                                size_t count) {
@@ -115,6 +115,6 @@ LIBC_INLINE void inline_memmove_follow_up_x86(Ptr dst, CPtr src, size_t count) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_MEMMOVE_H
diff --git a/libc/src/string/memory_utils/x86_64/inline_memset.h b/libc/src/string/memory_utils/x86_64/inline_memset.h
index 584efcbea4be3..9f8e584d2bbb4 100644
--- a/libc/src/string/memory_utils/x86_64/inline_memset.h
+++ b/libc/src/string/memory_utils/x86_64/inline_memset.h
@@ -9,13 +9,14 @@
 #define LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_MEMSET_H
 
 #include "src/__support/macros/attributes.h" // LIBC_INLINE
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/op_generic.h"
 #include "src/string/memory_utils/op_x86.h"
 #include "src/string/memory_utils/utils.h" // Ptr, CPtr
 
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace x86 {
 // Size of one cache line for software prefetching
 LIBC_INLINE_VAR constexpr size_t K_ONE_CACHELINE_SIZE = 64;
@@ -104,6 +105,6 @@ inline_memset_x86(Ptr dst, uint8_t value, size_t count) {
   align_to_next_boundary<32>(dst, count);
   return generic::Memset<uint256_t>::loop_and_tail(dst, value, count);
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMORY_UTILS_X86_64_INLINE_MEMSET_H
diff --git a/libc/src/string/mempcpy.cpp b/libc/src/string/mempcpy.cpp
index 47cc3d634d44c..09392ceb966d6 100644
--- a/libc/src/string/mempcpy.cpp
+++ b/libc/src/string/mempcpy.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/mempcpy.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 
 #include "src/__support/common.h"
 #include <stddef.h> // For size_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, mempcpy,
                    (void *__restrict dst, const void *__restrict src,
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(void *, mempcpy,
   return reinterpret_cast<char *>(dst) + count;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/mempcpy.h b/libc/src/string/mempcpy.h
index 317e0fc1d1f30..a6fd457d8d5a5 100644
--- a/libc/src/string/mempcpy.h
+++ b/libc/src/string/mempcpy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMPCPY_H
 #define LLVM_LIBC_SRC_STRING_MEMPCPY_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *mempcpy(void *__restrict dest, const void *__restrict src, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMPCPY_H
diff --git a/libc/src/string/memrchr.cpp b/libc/src/string/memrchr.cpp
index fad086809635f..d665e225bbb7d 100644
--- a/libc/src/string/memrchr.cpp
+++ b/libc/src/string/memrchr.cpp
@@ -8,9 +8,10 @@
 
 #include "src/string/memrchr.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, memrchr, (const void *src, int c, size_t n)) {
   const unsigned char *str = reinterpret_cast<const unsigned char *>(src);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(void *, memrchr, (const void *src, int c, size_t n)) {
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memrchr.h b/libc/src/string/memrchr.h
index 5c32d6a3ad556..0ab7b3b21b66b 100644
--- a/libc/src/string/memrchr.h
+++ b/libc/src/string/memrchr.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMRCHR_H
 #define LLVM_LIBC_SRC_STRING_MEMRCHR_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memrchr(const void *src, int c, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMRCHR_H
diff --git a/libc/src/string/memset.cpp b/libc/src/string/memset.cpp
index a94e353421968..c2868afa91031 100644
--- a/libc/src/string/memset.cpp
+++ b/libc/src/string/memset.cpp
@@ -8,13 +8,14 @@
 
 #include "src/string/memset.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memset.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, memset, (void *dst, int value, size_t count)) {
   inline_memset(dst, static_cast<uint8_t>(value), count);
   return dst;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memset.h b/libc/src/string/memset.h
index 4c1ef9d91c71a..17062ee4c7898 100644
--- a/libc/src/string/memset.h
+++ b/libc/src/string/memset.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMSET_H
 #define LLVM_LIBC_SRC_STRING_MEMSET_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *memset(void *ptr, int value, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMSET_H
diff --git a/libc/src/string/memset_explicit.cpp b/libc/src/string/memset_explicit.cpp
index a8656d1e791e8..a3e4dad874397 100644
--- a/libc/src/string/memset_explicit.cpp
+++ b/libc/src/string/memset_explicit.cpp
@@ -8,9 +8,10 @@
 
 #include "src/string/memset_explicit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memset.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[gnu::noinline]] LLVM_LIBC_FUNCTION(void *, memset_explicit,
                                      (void *dst, int value, size_t count)) {
@@ -22,4 +23,4 @@ namespace LIBC_NAMESPACE {
   return dst;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/memset_explicit.h b/libc/src/string/memset_explicit.h
index f6c189761a123..0c6ccc8849fa9 100644
--- a/libc/src/string/memset_explicit.h
+++ b/libc/src/string/memset_explicit.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_MEMSET_EXPLICIT_H
 #define LLVM_LIBC_SRC_STRING_MEMSET_EXPLICIT_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[gnu::noinline]] void *memset_explicit(void *ptr, int value, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_MEMSET_EXPLICIT_H
diff --git a/libc/src/string/rindex.cpp b/libc/src/string/rindex.cpp
index 2c7f8dc29ea8a..25879ddb07f62 100644
--- a/libc/src/string/rindex.cpp
+++ b/libc/src/string/rindex.cpp
@@ -9,12 +9,13 @@
 #include "src/string/rindex.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, rindex, (const char *src, int c)) {
   return internal::strrchr_implementation(src, c);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/rindex.h b/libc/src/string/rindex.h
index a2aad85bed913..cfc35daa1f4d5 100644
--- a/libc/src/string/rindex.h
+++ b/libc/src/string/rindex.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_RINDEX_H
 #define LLVM_LIBC_SRC_STRING_RINDEX_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *rindex(const char *src, int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_RINDEX_H
diff --git a/libc/src/string/stpcpy.cpp b/libc/src/string/stpcpy.cpp
index bdaa6899302c0..979edd72c1f1d 100644
--- a/libc/src/string/stpcpy.cpp
+++ b/libc/src/string/stpcpy.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/stpcpy.h"
+#include "src/__support/macros/config.h"
 #include "src/string/mempcpy.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, stpcpy,
                    (char *__restrict dest, const char *__restrict src)) {
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(char *, stpcpy,
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/stpcpy.h b/libc/src/string/stpcpy.h
index 4352f5b389a24..ea04a915b9e38 100644
--- a/libc/src/string/stpcpy.h
+++ b/libc/src/string/stpcpy.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STPCPY_H
 #define LLVM_LIBC_SRC_STRING_STPCPY_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *stpcpy(char *__restrict dest, const char *__restrict src);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STPCPY_H
diff --git a/libc/src/string/stpncpy.cpp b/libc/src/string/stpncpy.cpp
index 436e131d06872..d2a6e04749820 100644
--- a/libc/src/string/stpncpy.cpp
+++ b/libc/src/string/stpncpy.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/stpncpy.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_bzero.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, stpncpy,
                    (char *__restrict dest, const char *__restrict src,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(char *, stpncpy,
   return dest + i;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/stpncpy.h b/libc/src/string/stpncpy.h
index 5ecf65b027cab..343ff61a582c2 100644
--- a/libc/src/string/stpncpy.h
+++ b/libc/src/string/stpncpy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STPNCPY_H
 #define LLVM_LIBC_SRC_STRING_STPNCPY_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *stpncpy(char *__restrict dest, const char *__restrict src, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STPNCPY_H
diff --git a/libc/src/string/strcasecmp.cpp b/libc/src/string/strcasecmp.cpp
index 87636ee369ebd..1274c047fc28e 100644
--- a/libc/src/string/strcasecmp.cpp
+++ b/libc/src/string/strcasecmp.cpp
@@ -10,9 +10,10 @@
 
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_strcmp.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strcasecmp, (const char *left, const char *right)) {
   auto case_cmp = [](char a, char b) {
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, strcasecmp, (const char *left, const char *right)) {
   return inline_strcmp(left, right, case_cmp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcasecmp.h b/libc/src/string/strcasecmp.h
index 97b1f930f3227..2916b8d417075 100644
--- a/libc/src/string/strcasecmp.h
+++ b/libc/src/string/strcasecmp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCASECMP_H
 #define LLVM_LIBC_SRC_STRING_STRCASECMP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int strcasecmp(const char *left, const char *right);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCASECMP_H
diff --git a/libc/src/string/strcasestr.cpp b/libc/src/string/strcasestr.cpp
index 3119ed49c56d4..1da1e3f025079 100644
--- a/libc/src/string/strcasestr.cpp
+++ b/libc/src/string/strcasestr.cpp
@@ -10,9 +10,10 @@
 
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_strstr.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: This is a simple brute force implementation. This can be
 // improved upon using well known string matching algorithms.
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(char *, strcasestr,
   return inline_strstr(haystack, needle, case_cmp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcasestr.h b/libc/src/string/strcasestr.h
index 9c8ad0fb82b28..8bcd94596024e 100644
--- a/libc/src/string/strcasestr.h
+++ b/libc/src/string/strcasestr.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCASESTR_H
 #define LLVM_LIBC_SRC_STRING_STRCASESTR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strcasestr(const char *needle, const char *haystack);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCASESTR_H
diff --git a/libc/src/string/strcat.cpp b/libc/src/string/strcat.cpp
index 6e1baa64e66ab..0eb189ce204f0 100644
--- a/libc/src/string/strcat.cpp
+++ b/libc/src/string/strcat.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strcat.h"
+#include "src/__support/macros/config.h"
 #include "src/string/strcpy.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strcat,
                    (char *__restrict dest, const char *__restrict src)) {
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(char *, strcat,
   return dest;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcat.h b/libc/src/string/strcat.h
index 3cf2e19e24fe9..90a7fd2e41337 100644
--- a/libc/src/string/strcat.h
+++ b/libc/src/string/strcat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCAT_H
 #define LLVM_LIBC_SRC_STRING_STRCAT_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strcat(char *__restrict dest, const char *__restrict src);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCAT_H
diff --git a/libc/src/string/strchr.cpp b/libc/src/string/strchr.cpp
index 553197b22b2ee..d5dbaf8cd8e1b 100644
--- a/libc/src/string/strchr.cpp
+++ b/libc/src/string/strchr.cpp
@@ -9,13 +9,14 @@
 #include "src/string/strchr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Look at performance benefits of comparing words.
 LLVM_LIBC_FUNCTION(char *, strchr, (const char *src, int c)) {
   return internal::strchr_implementation(src, c);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strchr.h b/libc/src/string/strchr.h
index bb6a9c07b89e1..0e8094d3c6a18 100644
--- a/libc/src/string/strchr.h
+++ b/libc/src/string/strchr.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCHR_H
 #define LLVM_LIBC_SRC_STRING_STRCHR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strchr(const char *src, int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCHR_H
diff --git a/libc/src/string/strchrnul.cpp b/libc/src/string/strchrnul.cpp
index 9b492a634a8ff..6a3db9c105aa3 100644
--- a/libc/src/string/strchrnul.cpp
+++ b/libc/src/string/strchrnul.cpp
@@ -7,14 +7,15 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strchrnul.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strchrnul, (const char *src, int c)) {
   return internal::strchr_implementation<false>(src, c);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strchrnul.h b/libc/src/string/strchrnul.h
index b847b0bda103c..d724e73a69ea3 100644
--- a/libc/src/string/strchrnul.h
+++ b/libc/src/string/strchrnul.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCHRNUL_H
 #define LLVM_LIBC_SRC_STRING_STRCHRNUL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strchrnul(const char *src, int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCHRNUL_H
diff --git a/libc/src/string/strcmp.cpp b/libc/src/string/strcmp.cpp
index 0b515b76fa85c..f303ba5c09665 100644
--- a/libc/src/string/strcmp.cpp
+++ b/libc/src/string/strcmp.cpp
@@ -9,13 +9,14 @@
 #include "src/string/strcmp.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_strcmp.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strcmp, (const char *left, const char *right)) {
   auto comp = [](char l, char r) -> int { return l - r; };
   return inline_strcmp(left, right, comp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcmp.h b/libc/src/string/strcmp.h
index 9fc6fdb9f27ba..8d8805857de88 100644
--- a/libc/src/string/strcmp.h
+++ b/libc/src/string/strcmp.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCMP_H
 #define LLVM_LIBC_SRC_STRING_STRCMP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int strcmp(const char *left, const char *right);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCMP_H
diff --git a/libc/src/string/strcoll.cpp b/libc/src/string/strcoll.cpp
index 7280688bf3d9d..eeb2c79e38074 100644
--- a/libc/src/string/strcoll.cpp
+++ b/libc/src/string/strcoll.cpp
@@ -9,8 +9,9 @@
 #include "src/string/strcoll.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Add support for locales.
 LLVM_LIBC_FUNCTION(int, strcoll, (const char *left, const char *right)) {
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, strcoll, (const char *left, const char *right)) {
   return static_cast<int>(*left) - static_cast<int>(*right);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcoll.h b/libc/src/string/strcoll.h
index d69b48a6642c3..50358070e1f0f 100644
--- a/libc/src/string/strcoll.h
+++ b/libc/src/string/strcoll.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCOLL_H
 #define LLVM_LIBC_SRC_STRING_STRCOLL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int strcoll(const char *left, const char *right);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCOLL_H
diff --git a/libc/src/string/strcpy.cpp b/libc/src/string/strcpy.cpp
index 4fbd1a38f6873..60b73ab3aa823 100644
--- a/libc/src/string/strcpy.cpp
+++ b/libc/src/string/strcpy.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strcpy.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strcpy,
                    (char *__restrict dest, const char *__restrict src)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(char *, strcpy,
   return dest;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcpy.h b/libc/src/string/strcpy.h
index 11a26a6fa6eff..d4f3e81fdc733 100644
--- a/libc/src/string/strcpy.h
+++ b/libc/src/string/strcpy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCPY_H
 #define LLVM_LIBC_SRC_STRING_STRCPY_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strcpy(char *__restrict dest, const char *__restrict src);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCPY_H
diff --git a/libc/src/string/strcspn.cpp b/libc/src/string/strcspn.cpp
index ed057c3796066..c4a14aa8b7dd0 100644
--- a/libc/src/string/strcspn.cpp
+++ b/libc/src/string/strcspn.cpp
@@ -9,12 +9,13 @@
 #include "src/string/strcspn.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, strcspn, (const char *src, const char *segment)) {
   return internal::complementary_span(src, segment);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strcspn.h b/libc/src/string/strcspn.h
index 21098feb288b8..f50aeab1601af 100644
--- a/libc/src/string/strcspn.h
+++ b/libc/src/string/strcspn.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRCSPN_H
 #define LLVM_LIBC_SRC_STRING_STRCSPN_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strcspn(const char *src, const char *segment);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRCSPN_H
diff --git a/libc/src/string/strdup.cpp b/libc/src/string/strdup.cpp
index 3530a708c131b..4e09c87099425 100644
--- a/libc/src/string/strdup.cpp
+++ b/libc/src/string/strdup.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strdup.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/string/allocating_string_utils.h"
 #include "src/string/memory_utils/inline_memcpy.h"
@@ -15,7 +16,7 @@
 
 #include <stdlib.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strdup, (const char *src)) {
   auto dup = internal::strdup(src);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(char *, strdup, (const char *src)) {
   return nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strdup.h b/libc/src/string/strdup.h
index e33a24694bf17..45303a3efeb49 100644
--- a/libc/src/string/strdup.h
+++ b/libc/src/string/strdup.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRDUP_H
 #define LLVM_LIBC_SRC_STRING_STRDUP_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strdup(const char *src);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRDUP_H
diff --git a/libc/src/string/strerror.cpp b/libc/src/string/strerror.cpp
index 01cbbeb4d18f2..9576754172363 100644
--- a/libc/src/string/strerror.cpp
+++ b/libc/src/string/strerror.cpp
@@ -9,11 +9,12 @@
 #include "src/string/strerror.h"
 #include "src/__support/StringUtil/error_to_string.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strerror, (int err_num)) {
   return const_cast<char *>(get_error_string(err_num).data());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strerror.h b/libc/src/string/strerror.h
index 36a1348a5c737..d81979580a55d 100644
--- a/libc/src/string/strerror.h
+++ b/libc/src/string/strerror.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRERROR_H
 #define LLVM_LIBC_SRC_STRING_STRERROR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strerror(int err_num);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRERROR_H
diff --git a/libc/src/string/strerror_r.cpp b/libc/src/string/strerror_r.cpp
index c514dbd740906..ba23f2752e83a 100644
--- a/libc/src/string/strerror_r.cpp
+++ b/libc/src/string/strerror_r.cpp
@@ -9,10 +9,11 @@
 #include "src/string/strerror_r.h"
 #include "src/__support/StringUtil/error_to_string.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This is the gnu version of strerror_r. The XSI version may be added later.
 LLVM_LIBC_FUNCTION(char *, strerror_r,
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(char *, strerror_r,
   return const_cast<char *>(get_error_string(err_num, {buf, buflen}).data());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strerror_r.h b/libc/src/string/strerror_r.h
index 63f595866b3b6..5a17d29e31bb2 100644
--- a/libc/src/string/strerror_r.h
+++ b/libc/src/string/strerror_r.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRERROR_R_H
 #define LLVM_LIBC_SRC_STRING_STRERROR_R_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strerror_r(int err_num, char *buf, size_t buflen);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRERROR_R_H
diff --git a/libc/src/string/string_utils.h b/libc/src/string/string_utils.h
index 17efc125ea63a..78381e46e480d 100644
--- a/libc/src/string/string_utils.h
+++ b/libc/src/string/string_utils.h
@@ -15,12 +15,13 @@
 #define LLVM_LIBC_SRC_STRING_STRING_UTILS_H
 
 #include "src/__support/CPP/bitset.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
 #include "src/string/memory_utils/inline_bzero.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include <stddef.h> // For size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 template <typename Word> LIBC_INLINE constexpr Word repeat_byte(Word byte) {
@@ -246,6 +247,6 @@ LIBC_INLINE constexpr static char *strrchr_implementation(const char *src,
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif //  LLVM_LIBC_SRC_STRING_STRING_UTILS_H
diff --git a/libc/src/string/strlcat.cpp b/libc/src/string/strlcat.cpp
index 2943f4f67b4f9..b5c4c634efa91 100644
--- a/libc/src/string/strlcat.cpp
+++ b/libc/src/string/strlcat.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strlcat.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, strlcat,
                    (char *__restrict dst, const char *__restrict src,
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(size_t, strlcat,
   return first_len + internal::strlcpy(new_dst, src, size - first_len);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strlcat.h b/libc/src/string/strlcat.h
index 47f27e3ba5ac3..ffe97af62a543 100644
--- a/libc/src/string/strlcat.h
+++ b/libc/src/string/strlcat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRLCAT_H
 #define LLVM_LIBC_SRC_STRING_STRLCAT_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strlcat(char *__restrict dst, const char *__restrict src, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRLCAT_H
diff --git a/libc/src/string/strlcpy.cpp b/libc/src/string/strlcpy.cpp
index 9b296f2cdbb05..68d5b58f5002a 100644
--- a/libc/src/string/strlcpy.cpp
+++ b/libc/src/string/strlcpy.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strlcpy.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, strlcpy,
                    (char *__restrict dst, const char *__restrict src,
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(size_t, strlcpy,
   return internal::strlcpy(dst, src, size);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strlcpy.h b/libc/src/string/strlcpy.h
index 0c18d856e53f0..058e7653b1b91 100644
--- a/libc/src/string/strlcpy.h
+++ b/libc/src/string/strlcpy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRLCPY_H
 #define LLVM_LIBC_SRC_STRING_STRLCPY_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strlcpy(char *__restrict dst, const char *__restrict src, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRLCPY_H
diff --git a/libc/src/string/strlen.cpp b/libc/src/string/strlen.cpp
index b903928f067f9..ff7ab14dd3134 100644
--- a/libc/src/string/strlen.cpp
+++ b/libc/src/string/strlen.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strlen.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: investigate the performance of this function.
 // There might be potential for compiler optimization.
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(size_t, strlen, (const char *src)) {
   return internal::string_length(src);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strlen.h b/libc/src/string/strlen.h
index 4dfaf8e98cdd2..f07bf73ace3de 100644
--- a/libc/src/string/strlen.h
+++ b/libc/src/string/strlen.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRLEN_H
 #define LLVM_LIBC_SRC_STRING_STRLEN_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strlen(const char *src);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRLEN_H
diff --git a/libc/src/string/strncasecmp.cpp b/libc/src/string/strncasecmp.cpp
index 994fb258746a2..45f82c98069b2 100644
--- a/libc/src/string/strncasecmp.cpp
+++ b/libc/src/string/strncasecmp.cpp
@@ -10,9 +10,10 @@
 
 #include "src/__support/common.h"
 #include "src/__support/ctype_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_strcmp.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strncasecmp,
                    (const char *left, const char *right, size_t n)) {
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, strncasecmp,
   return inline_strncmp(left, right, n, case_cmp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strncasecmp.h b/libc/src/string/strncasecmp.h
index eb1155070c6ba..15f74994ca56d 100644
--- a/libc/src/string/strncasecmp.h
+++ b/libc/src/string/strncasecmp.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRNCASECMP_H
 #define LLVM_LIBC_SRC_STRING_STRNCASECMP_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int strncasecmp(const char *left, const char *right, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRNCASECMP_H
diff --git a/libc/src/string/strncat.cpp b/libc/src/string/strncat.cpp
index ca86d9c0a2e41..221881f93c47a 100644
--- a/libc/src/string/strncat.cpp
+++ b/libc/src/string/strncat.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strncat.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 #include "src/string/strncpy.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strncat,
                    (char *__restrict dest, const char *__restrict src,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(char *, strncat,
   return dest;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strncat.h b/libc/src/string/strncat.h
index f3d9706dc23e9..1a130799f3965 100644
--- a/libc/src/string/strncat.h
+++ b/libc/src/string/strncat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRNCAT_H
 #define LLVM_LIBC_SRC_STRING_STRNCAT_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strncat(char *__restrict dest, const char *__restrict src, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRNCAT_H
diff --git a/libc/src/string/strncmp.cpp b/libc/src/string/strncmp.cpp
index 0d2a66879704c..16d4601fe845b 100644
--- a/libc/src/string/strncmp.cpp
+++ b/libc/src/string/strncmp.cpp
@@ -9,11 +9,12 @@
 #include "src/string/strncmp.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_strcmp.h"
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, strncmp,
                    (const char *left, const char *right, size_t n)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, strncmp,
   return inline_strncmp(left, right, n, comp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strncmp.h b/libc/src/string/strncmp.h
index adb270f5cd40c..cf40d69e720a3 100644
--- a/libc/src/string/strncmp.h
+++ b/libc/src/string/strncmp.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRNCMP_H
 #define LLVM_LIBC_SRC_STRING_STRNCMP_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int strncmp(const char *left, const char *right, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRNCMP_H
diff --git a/libc/src/string/strncpy.cpp b/libc/src/string/strncpy.cpp
index 1408e7f0902d4..4976ad94708c7 100644
--- a/libc/src/string/strncpy.cpp
+++ b/libc/src/string/strncpy.cpp
@@ -9,9 +9,10 @@
 #include "src/string/strncpy.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h> // For size_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strncpy,
                    (char *__restrict dest, const char *__restrict src,
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(char *, strncpy,
   return dest;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strncpy.h b/libc/src/string/strncpy.h
index 3152fef0758c7..5cef6d0bf0e6c 100644
--- a/libc/src/string/strncpy.h
+++ b/libc/src/string/strncpy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRNCPY_H
 #define LLVM_LIBC_SRC_STRING_STRNCPY_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strncpy(char *__restrict dest, const char *__restrict src, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRNCPY_H
diff --git a/libc/src/string/strndup.cpp b/libc/src/string/strndup.cpp
index 6648e22ab50e0..b19d7c060baa1 100644
--- a/libc/src/string/strndup.cpp
+++ b/libc/src/string/strndup.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strndup.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "src/string/string_utils.h"
 
@@ -15,7 +16,7 @@
 
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strndup, (const char *src, size_t size)) {
   if (src == nullptr)
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(char *, strndup, (const char *src, size_t size)) {
   return dest;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strndup.h b/libc/src/string/strndup.h
index 3e5c951f6c87a..03370cc8d7dce 100644
--- a/libc/src/string/strndup.h
+++ b/libc/src/string/strndup.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRNDUP_H
 #define LLVM_LIBC_SRC_STRING_STRNDUP_H
 
+#include "src/__support/macros/config.h"
 #include <string.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *strndup(const char *src, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRNDUP_H
diff --git a/libc/src/string/strnlen.cpp b/libc/src/string/strnlen.cpp
index 8849fa0fdd9fa..26fcd5a04c0d7 100644
--- a/libc/src/string/strnlen.cpp
+++ b/libc/src/string/strnlen.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strnlen.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, strnlen, (const char *src, size_t n)) {
   const void *temp = internal::find_first_character(
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(size_t, strnlen, (const char *src, size_t n)) {
   return temp ? reinterpret_cast<const char *>(temp) - src : n;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strnlen.h b/libc/src/string/strnlen.h
index e18d21779d94c..37a54850ae24d 100644
--- a/libc/src/string/strnlen.h
+++ b/libc/src/string/strnlen.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRNLEN_H
 #define LLVM_LIBC_SRC_STRING_STRNLEN_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strnlen(const char *src, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRNLEN_H
diff --git a/libc/src/string/strpbrk.cpp b/libc/src/string/strpbrk.cpp
index 8bccda02418bc..844d77ee97bd4 100644
--- a/libc/src/string/strpbrk.cpp
+++ b/libc/src/string/strpbrk.cpp
@@ -9,13 +9,14 @@
 #include "src/string/strpbrk.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strpbrk, (const char *src, const char *breakset)) {
   src += internal::complementary_span(src, breakset);
   return *src ? const_cast<char *>(src) : nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strpbrk.h b/libc/src/string/strpbrk.h
index c744d09365ff4..a1f329f119d6c 100644
--- a/libc/src/string/strpbrk.h
+++ b/libc/src/string/strpbrk.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRPBRK_H
 #define LLVM_LIBC_SRC_STRING_STRPBRK_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strpbrk(const char *src, const char *breakset);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRPBRK_H
diff --git a/libc/src/string/strrchr.cpp b/libc/src/string/strrchr.cpp
index d51808b6dd835..66d1aaafee0de 100644
--- a/libc/src/string/strrchr.cpp
+++ b/libc/src/string/strrchr.cpp
@@ -9,12 +9,13 @@
 #include "src/string/strrchr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strrchr, (const char *src, int c)) {
   return internal::strrchr_implementation(src, c);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strrchr.h b/libc/src/string/strrchr.h
index d4280d85ae9b8..2f95e2db29df3 100644
--- a/libc/src/string/strrchr.h
+++ b/libc/src/string/strrchr.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRRCHR_H
 #define LLVM_LIBC_SRC_STRING_STRRCHR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strrchr(const char *src, int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRRCHR_H
diff --git a/libc/src/string/strsep.cpp b/libc/src/string/strsep.cpp
index 5ebf2550744c3..4c275122de52f 100644
--- a/libc/src/string/strsep.cpp
+++ b/libc/src/string/strsep.cpp
@@ -8,9 +8,10 @@
 
 #include "src/string/strsep.h"
 
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strsep,
                    (char **__restrict stringp, const char *__restrict delim)) {
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(char *, strsep,
   return internal::string_token<false>(*stringp, delim, stringp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strsep.h b/libc/src/string/strsep.h
index 7b85202d30b2b..9ee3081422d14 100644
--- a/libc/src/string/strsep.h
+++ b/libc/src/string/strsep.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRSEP_H
 #define LLVM_LIBC_SRC_STRING_STRSEP_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strsep(char **__restrict stringp, const char *__restrict delim);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRSEP_H
diff --git a/libc/src/string/strsignal.cpp b/libc/src/string/strsignal.cpp
index f6ca0bcdad8d2..a3206a5d1cff1 100644
--- a/libc/src/string/strsignal.cpp
+++ b/libc/src/string/strsignal.cpp
@@ -10,11 +10,12 @@
 #include "src/string/strsignal.h"
 #include "src/__support/StringUtil/signal_to_string.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strsignal, (int sig_num)) {
   return const_cast<char *>(get_signal_string(sig_num).data());
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strsignal.h b/libc/src/string/strsignal.h
index bd3f87a201734..9f62820a92d6e 100644
--- a/libc/src/string/strsignal.h
+++ b/libc/src/string/strsignal.h
@@ -10,10 +10,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRSIGNAL_H
 #define LLVM_LIBC_SRC_STRING_STRSIGNAL_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strsignal(int sig_num);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRSIGNAL_H
diff --git a/libc/src/string/strspn.cpp b/libc/src/string/strspn.cpp
index b957f8ed7f1bd..66bb39903ab38 100644
--- a/libc/src/string/strspn.cpp
+++ b/libc/src/string/strspn.cpp
@@ -10,9 +10,10 @@
 
 #include "src/__support/CPP/bitset.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(size_t, strspn, (const char *src, const char *segment)) {
   const char *initial = src;
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(size_t, strspn, (const char *src, const char *segment)) {
   return src - initial;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strspn.h b/libc/src/string/strspn.h
index ddb6f388e95a2..a13b50436d228 100644
--- a/libc/src/string/strspn.h
+++ b/libc/src/string/strspn.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRSPN_H
 #define LLVM_LIBC_SRC_STRING_STRSPN_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strspn(const char *src, const char *segment);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRSPN_H
diff --git a/libc/src/string/strstr.cpp b/libc/src/string/strstr.cpp
index bfda75b2e5912..5132f06ef53f3 100644
--- a/libc/src/string/strstr.cpp
+++ b/libc/src/string/strstr.cpp
@@ -9,9 +9,10 @@
 #include "src/string/strstr.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_strstr.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: This is a simple brute force implementation. This can be
 // improved upon using well known string matching algorithms.
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(char *, strstr, (const char *haystack, const char *needle)) {
   return inline_strstr(haystack, needle, comp);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strstr.h b/libc/src/string/strstr.h
index 2501b005cf9fa..903e02e472b15 100644
--- a/libc/src/string/strstr.h
+++ b/libc/src/string/strstr.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRSTR_H
 #define LLVM_LIBC_SRC_STRING_STRSTR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strstr(const char *haystack, const char *needle);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRSTR_H
diff --git a/libc/src/string/strtok.cpp b/libc/src/string/strtok.cpp
index e7d30349d3a9c..f491c641eafba 100644
--- a/libc/src/string/strtok.cpp
+++ b/libc/src/string/strtok.cpp
@@ -9,9 +9,10 @@
 #include "src/string/strtok.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static char *strtok_str = nullptr;
 
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(char *, strtok,
   return internal::string_token(src, delimiter_string, &strtok_str);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strtok.h b/libc/src/string/strtok.h
index 8788f333c1306..9f44cb30e63b3 100644
--- a/libc/src/string/strtok.h
+++ b/libc/src/string/strtok.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRTOK_H
 #define LLVM_LIBC_SRC_STRING_STRTOK_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strtok(char *__restrict src, const char *__restrict delimiter_string);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRTOK_H
diff --git a/libc/src/string/strtok_r.cpp b/libc/src/string/strtok_r.cpp
index e8847b617330e..95942167c088f 100644
--- a/libc/src/string/strtok_r.cpp
+++ b/libc/src/string/strtok_r.cpp
@@ -9,9 +9,10 @@
 #include "src/string/strtok_r.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(char *, strtok_r,
                    (char *__restrict src,
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(char *, strtok_r,
   return internal::string_token(src, delimiter_string, saveptr);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strtok_r.h b/libc/src/string/strtok_r.h
index b3c7b3dec162a..ae5d39ae0f3c7 100644
--- a/libc/src/string/strtok_r.h
+++ b/libc/src/string/strtok_r.h
@@ -9,11 +9,13 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRTOK_R_H
 #define LLVM_LIBC_SRC_STRING_STRTOK_R_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 char *strtok_r(char *__restrict src, const char *__restrict delimiter_string,
                char **__restrict saveptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRTOK_R_H
diff --git a/libc/src/string/strxfrm.cpp b/libc/src/string/strxfrm.cpp
index b5eb76457f858..212124e2d1ab6 100644
--- a/libc/src/string/strxfrm.cpp
+++ b/libc/src/string/strxfrm.cpp
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/string/strxfrm.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "src/string/string_utils.h"
 
 #include "src/__support/common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: Add support for locales.
 LLVM_LIBC_FUNCTION(size_t, strxfrm,
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(size_t, strxfrm,
   return len;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/string/strxfrm.h b/libc/src/string/strxfrm.h
index 8178931f42dc9..3c19d103773eb 100644
--- a/libc/src/string/strxfrm.h
+++ b/libc/src/string/strxfrm.h
@@ -9,11 +9,12 @@
 #ifndef LLVM_LIBC_SRC_STRING_STRXFRM_H
 #define LLVM_LIBC_SRC_STRING_STRXFRM_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h> // For size_t
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 size_t strxfrm(char *__restrict dest, const char *__restrict src, size_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_STRING_STRXFRM_H
diff --git a/libc/src/sys/auxv/getauxval.h b/libc/src/sys/auxv/getauxval.h
index 7c9fb846e9198..3e6971340bbef 100644
--- a/libc/src/sys/auxv/getauxval.h
+++ b/libc/src/sys/auxv/getauxval.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_AUXV_GETAUXVAL_H
 #define LLVM_LIBC_SRC_SYS_AUXV_GETAUXVAL_H
 
+#include "src/__support/macros/config.h"
 #include <sys/auxv.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 unsigned long getauxval(unsigned long id);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_AUXV_GETAUXVAL_H
diff --git a/libc/src/sys/auxv/linux/getauxval.cpp b/libc/src/sys/auxv/linux/getauxval.cpp
index b0db36732c06e..2ca894d091532 100644
--- a/libc/src/sys/auxv/linux/getauxval.cpp
+++ b/libc/src/sys/auxv/linux/getauxval.cpp
@@ -9,6 +9,7 @@
 #include "src/sys/auxv/getauxval.h"
 #include "config/linux/app.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <linux/auxvec.h>
 
@@ -35,7 +36,7 @@
 extern "C" [[gnu::weak]] int __cxa_atexit(void (*callback)(void *),
                                           void *payload, void *);
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constexpr static size_t MAX_AUXV_ENTRIES = 64;
 
@@ -214,4 +215,4 @@ LLVM_LIBC_FUNCTION(unsigned long, getauxval, (unsigned long id)) {
   errno_guard.mark_failure();
   return AT_NULL;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/epoll/epoll_create.h b/libc/src/sys/epoll/epoll_create.h
index a1eeabd567e4c..95c41223eb3b0 100644
--- a/libc/src/sys/epoll/epoll_create.h
+++ b/libc/src/sys/epoll/epoll_create.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CREATE_H
 #define LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CREATE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int epoll_create(int size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CREATE_H
diff --git a/libc/src/sys/epoll/epoll_create1.h b/libc/src/sys/epoll/epoll_create1.h
index 70f446b592660..c9e0e98520295 100644
--- a/libc/src/sys/epoll/epoll_create1.h
+++ b/libc/src/sys/epoll/epoll_create1.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CREATE1_H
 #define LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CREATE1_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int epoll_create1(int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CREATE1_H
diff --git a/libc/src/sys/epoll/epoll_ctl.h b/libc/src/sys/epoll/epoll_ctl.h
index 42402949d06b3..55784bcf257cb 100644
--- a/libc/src/sys/epoll/epoll_ctl.h
+++ b/libc/src/sys/epoll/epoll_ctl.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CTL_H
 
 #include "hdr/types/struct_epoll_event.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: event should be nullable
 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_CTL_H
diff --git a/libc/src/sys/epoll/epoll_pwait.h b/libc/src/sys/epoll/epoll_pwait.h
index bcae72b3e2c26..8b881cee115a8 100644
--- a/libc/src/sys/epoll/epoll_pwait.h
+++ b/libc/src/sys/epoll/epoll_pwait.h
@@ -11,13 +11,14 @@
 
 #include "hdr/types/sigset_t.h"
 #include "hdr/types/struct_epoll_event.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: sigmask should be nullable
 int epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
                 int timeout, const sigset_t *sigmask);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_PWAIT_H
diff --git a/libc/src/sys/epoll/epoll_pwait2.h b/libc/src/sys/epoll/epoll_pwait2.h
index 7fc528b2fd25d..b7a7220baeecf 100644
--- a/libc/src/sys/epoll/epoll_pwait2.h
+++ b/libc/src/sys/epoll/epoll_pwait2.h
@@ -12,13 +12,14 @@
 #include "hdr/types/sigset_t.h"
 #include "hdr/types/struct_epoll_event.h"
 #include "hdr/types/struct_timespec.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: sigmask and timeout should be nullable
 int epoll_pwait2(int epfd, epoll_event *events, int maxevents,
                  const timespec *timeout, const sigset_t *sigmask);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_PWAIT2_H
diff --git a/libc/src/sys/epoll/epoll_wait.h b/libc/src/sys/epoll/epoll_wait.h
index b546e91e4c2ee..cd9aa8b2d5491 100644
--- a/libc/src/sys/epoll/epoll_wait.h
+++ b/libc/src/sys/epoll/epoll_wait.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_WAIT_H
 
 #include "hdr/types/struct_epoll_event.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int epoll_wait(int epfd, epoll_event *events, int maxevents, int timeout);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_EPOLL_EPOLL_WAIT_H
diff --git a/libc/src/sys/epoll/linux/epoll_create.cpp b/libc/src/sys/epoll/linux/epoll_create.cpp
index d4995c476074e..7196ac7410c30 100644
--- a/libc/src/sys/epoll/linux/epoll_create.cpp
+++ b/libc/src/sys/epoll/linux/epoll_create.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, epoll_create, ([[maybe_unused]] int size)) {
 #ifdef SYS_epoll_create
@@ -35,4 +36,4 @@ LLVM_LIBC_FUNCTION(int, epoll_create, ([[maybe_unused]] int size)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/epoll/linux/epoll_create1.cpp b/libc/src/sys/epoll/linux/epoll_create1.cpp
index 30f1a9910274d..efff282e2714d 100644
--- a/libc/src/sys/epoll/linux/epoll_create1.cpp
+++ b/libc/src/sys/epoll/linux/epoll_create1.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, epoll_create1, (int flags)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_epoll_create1, flags);
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, epoll_create1, (int flags)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/epoll/linux/epoll_ctl.cpp b/libc/src/sys/epoll/linux/epoll_ctl.cpp
index c111c5e4e0ee0..5f7dbb77b1e5b 100644
--- a/libc/src/sys/epoll/linux/epoll_ctl.cpp
+++ b/libc/src/sys/epoll/linux/epoll_ctl.cpp
@@ -11,10 +11,11 @@
 #include "hdr/types/struct_epoll_event.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, epoll_ctl,
                    (int epfd, int op, int fd, epoll_event *event)) {
@@ -31,4 +32,4 @@ LLVM_LIBC_FUNCTION(int, epoll_ctl,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/epoll/linux/epoll_pwait.cpp b/libc/src/sys/epoll/linux/epoll_pwait.cpp
index 24b66f0721b30..d7836549928c4 100644
--- a/libc/src/sys/epoll/linux/epoll_pwait.cpp
+++ b/libc/src/sys/epoll/linux/epoll_pwait.cpp
@@ -13,12 +13,13 @@
 #include "hdr/types/struct_epoll_event.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, epoll_pwait,
                    (int epfd, struct epoll_event *events, int maxevents,
@@ -39,4 +40,4 @@ LLVM_LIBC_FUNCTION(int, epoll_pwait,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/epoll/linux/epoll_pwait2.cpp b/libc/src/sys/epoll/linux/epoll_pwait2.cpp
index e13423a085a59..14b419399fe9b 100644
--- a/libc/src/sys/epoll/linux/epoll_pwait2.cpp
+++ b/libc/src/sys/epoll/linux/epoll_pwait2.cpp
@@ -14,12 +14,13 @@
 #include "hdr/types/struct_timespec.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, epoll_pwait2,
                    (int epfd, struct epoll_event *events, int maxevents,
@@ -41,4 +42,4 @@ LLVM_LIBC_FUNCTION(int, epoll_pwait2,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/epoll/linux/epoll_wait.cpp b/libc/src/sys/epoll/linux/epoll_wait.cpp
index 3ce4a92e79695..1a63be5e260fb 100644
--- a/libc/src/sys/epoll/linux/epoll_wait.cpp
+++ b/libc/src/sys/epoll/linux/epoll_wait.cpp
@@ -13,12 +13,13 @@
 #include "hdr/types/struct_epoll_event.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, epoll_wait,
                    (int epfd, struct epoll_event *events, int maxevents,
@@ -45,4 +46,4 @@ LLVM_LIBC_FUNCTION(int, epoll_wait,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/madvise.cpp b/libc/src/sys/mman/linux/madvise.cpp
index ff461c1d4cb48..332d6c2db4acb 100644
--- a/libc/src/sys/mman/linux/madvise.cpp
+++ b/libc/src/sys/mman/linux/madvise.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This function is currently linux only. It has to be refactored suitably if
 // madvise is to be supported on non-linux operating systems also.
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, madvise, (void *addr, size_t size, int advice)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/mincore.cpp b/libc/src/sys/mman/linux/mincore.cpp
index 8220c69ef2cb7..b5436fda3853a 100644
--- a/libc/src/sys/mman/linux/mincore.cpp
+++ b/libc/src/sys/mman/linux/mincore.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, mincore, (void *addr, size_t len, unsigned char *vec)) {
   long ret = syscall_impl(SYS_mincore, reinterpret_cast<long>(addr), len,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, mincore, (void *addr, size_t len, unsigned char *vec)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/mlock.cpp b/libc/src/sys/mman/linux/mlock.cpp
index 9bc5ab9a07863..be7eb28e29c4f 100644
--- a/libc/src/sys/mman/linux/mlock.cpp
+++ b/libc/src/sys/mman/linux/mlock.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, mlock, (const void *addr, size_t len)) {
   long ret = syscall_impl(SYS_mlock, cpp::bit_cast<long>(addr), len);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, mlock, (const void *addr, size_t len)) {
   }
   return 0;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/mlock2.cpp b/libc/src/sys/mman/linux/mlock2.cpp
index 71b2b80d99bbf..7bc557f9bf58f 100644
--- a/libc/src/sys/mman/linux/mlock2.cpp
+++ b/libc/src/sys/mman/linux/mlock2.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 #ifdef SYS_mlock2
 LLVM_LIBC_FUNCTION(int, mlock2, (const void *addr, size_t len, int flags)) {
   long ret = syscall_impl(SYS_mlock2, cpp::bit_cast<long>(addr), len, flags);
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, mlock2, (const void *addr, size_t len, int flags)) {
   return 0;
 }
 #endif
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/mlockall.cpp b/libc/src/sys/mman/linux/mlockall.cpp
index c4af7d8952738..eae3a9ea0a183 100644
--- a/libc/src/sys/mman/linux/mlockall.cpp
+++ b/libc/src/sys/mman/linux/mlockall.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, mlockall, (int flags)) {
   long ret = syscall_impl(SYS_mlockall, flags);
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, mlockall, (int flags)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/mmap.cpp b/libc/src/sys/mman/linux/mmap.cpp
index 2aa7003f342a9..ee9a0a32e8f55 100644
--- a/libc/src/sys/mman/linux/mmap.cpp
+++ b/libc/src/sys/mman/linux/mmap.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <linux/param.h> // For EXEC_PAGESIZE.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This function is currently linux only. It has to be refactored suitably if
 // mmap is to be supported on non-linux operating systems also.
@@ -63,4 +64,4 @@ LLVM_LIBC_FUNCTION(void *, mmap,
   return reinterpret_cast<void *>(ret);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/mprotect.cpp b/libc/src/sys/mman/linux/mprotect.cpp
index 2e6f2a369c1d8..e2351028e2c7f 100644
--- a/libc/src/sys/mman/linux/mprotect.cpp
+++ b/libc/src/sys/mman/linux/mprotect.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This function is currently linux only. It has to be refactored suitably if
 // mprotect is to be supported on non-linux operating systems also.
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, mprotect, (void *addr, size_t size, int prot)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/msync.cpp b/libc/src/sys/mman/linux/msync.cpp
index 1d2544f023c2c..e2b4f81d616ad 100644
--- a/libc/src/sys/mman/linux/msync.cpp
+++ b/libc/src/sys/mman/linux/msync.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(int, msync, (void *addr, size_t len, int flags)) {
   long ret = syscall_impl(SYS_msync, cpp::bit_cast<long>(addr), len, flags);
   if (ret < 0) {
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, msync, (void *addr, size_t len, int flags)) {
   }
   return 0;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/munlock.cpp b/libc/src/sys/mman/linux/munlock.cpp
index 9ee50805ac30e..93c25f844c6e8 100644
--- a/libc/src/sys/mman/linux/munlock.cpp
+++ b/libc/src/sys/mman/linux/munlock.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, munlock, (const void *addr, size_t len)) {
   long ret = syscall_impl(SYS_munlock, cpp::bit_cast<long>(addr), len);
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, munlock, (const void *addr, size_t len)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/munlockall.cpp b/libc/src/sys/mman/linux/munlockall.cpp
index d1619d204a90d..f5911cb01bc28 100644
--- a/libc/src/sys/mman/linux/munlockall.cpp
+++ b/libc/src/sys/mman/linux/munlockall.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, munlockall, (void)) {
   long ret = syscall_impl(SYS_munlockall);
@@ -24,4 +25,4 @@ LLVM_LIBC_FUNCTION(int, munlockall, (void)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/munmap.cpp b/libc/src/sys/mman/linux/munmap.cpp
index 6412b4136c49e..9c01b15ac8dc2 100644
--- a/libc/src/sys/mman/linux/munmap.cpp
+++ b/libc/src/sys/mman/linux/munmap.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h>          // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This function is currently linux only. It has to be refactored suitably if
 // mmap is to be supported on non-linux operating systems also.
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, munmap, (void *addr, size_t size)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/posix_madvise.cpp b/libc/src/sys/mman/linux/posix_madvise.cpp
index b7b4d352c1f8a..e980ca4d4197c 100644
--- a/libc/src/sys/mman/linux/posix_madvise.cpp
+++ b/libc/src/sys/mman/linux/posix_madvise.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This function is currently linux only. It has to be refactored suitably if
 // posix_madvise is to be supported on non-linux operating systems also.
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, posix_madvise, (void *addr, size_t size, int advice)) {
   return ret < 0 ? -ret : 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/shm_common.h b/libc/src/sys/mman/linux/shm_common.h
index 6f2a3fdc71b64..ce75c2b5b6991 100644
--- a/libc/src/sys/mman/linux/shm_common.h
+++ b/libc/src/sys/mman/linux/shm_common.h
@@ -9,13 +9,14 @@
 #include "src/__support/CPP/array.h"
 #include "src/__support/CPP/optional.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 
 // TODO: Get PATH_MAX via https://github.com/llvm/llvm-project/issues/85121
 #include <linux/limits.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace shm_common {
 
@@ -50,4 +51,4 @@ LIBC_INLINE cpp::optional<SHMPath> translate_name(cpp::string_view name) {
 }
 } // namespace shm_common
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/shm_open.cpp b/libc/src/sys/mman/linux/shm_open.cpp
index 0d39b8b4e53db..d235e57aefdeb 100644
--- a/libc/src/sys/mman/linux/shm_open.cpp
+++ b/libc/src/sys/mman/linux/shm_open.cpp
@@ -8,10 +8,11 @@
 
 #include "src/sys/mman/shm_open.h"
 #include "llvm-libc-macros/fcntl-macros.h"
+#include "src/__support/macros/config.h"
 #include "src/fcntl/open.h"
 #include "src/sys/mman/linux/shm_common.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static constexpr int DEFAULT_OFLAGS = O_NOFOLLOW | O_CLOEXEC | O_NONBLOCK;
 
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, shm_open, (const char *name, int oflags, mode_t mode)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/linux/shm_unlink.cpp b/libc/src/sys/mman/linux/shm_unlink.cpp
index 32f48d3e3e718..6a76301512201 100644
--- a/libc/src/sys/mman/linux/shm_unlink.cpp
+++ b/libc/src/sys/mman/linux/shm_unlink.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/sys/mman/shm_unlink.h"
+#include "src/__support/macros/config.h"
 #include "src/sys/mman/linux/shm_common.h"
 #include "src/unistd/unlink.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, shm_unlink, (const char *name)) {
   using namespace shm_common;
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(int, shm_unlink, (const char *name)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/mman/madvise.h b/libc/src/sys/mman/madvise.h
index 59a03af79b587..fcc9289996ec4 100644
--- a/libc/src/sys/mman/madvise.h
+++ b/libc/src/sys/mman/madvise.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MADVISE_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MADVISE_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h> // For size_t and off_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int madvise(void *addr, size_t size, int advice);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MADVISE_H
diff --git a/libc/src/sys/mman/mincore.h b/libc/src/sys/mman/mincore.h
index 403afaeb6af97..4b50a19e8c91e 100644
--- a/libc/src/sys/mman/mincore.h
+++ b/libc/src/sys/mman/mincore.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MINCORE_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MINCORE_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h> // For size_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mincore(void *addr, size_t len, unsigned char *vec);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MINCORE_H
diff --git a/libc/src/sys/mman/mlock.h b/libc/src/sys/mman/mlock.h
index 73f329a0d52dc..034a4f5c4b1f0 100644
--- a/libc/src/sys/mman/mlock.h
+++ b/libc/src/sys/mman/mlock.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MLOCK_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mlock(const void *addr, size_t len);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MLOCK_H
diff --git a/libc/src/sys/mman/mlock2.h b/libc/src/sys/mman/mlock2.h
index 872a7bfc5fba6..9bba06a5601d3 100644
--- a/libc/src/sys/mman/mlock2.h
+++ b/libc/src/sys/mman/mlock2.h
@@ -9,15 +9,16 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MLOCK2_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MLOCK2_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #ifdef SYS_mlock2
 int mlock2(const void *addr, size_t len, int flags);
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MLOCK2_H
diff --git a/libc/src/sys/mman/mlockall.h b/libc/src/sys/mman/mlockall.h
index bb4bd834310ee..8e305bb42ed8d 100644
--- a/libc/src/sys/mman/mlockall.h
+++ b/libc/src/sys/mman/mlockall.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MLOCKALL_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MLOCKALL_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mlockall(int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MLOCKALL_H
diff --git a/libc/src/sys/mman/mmap.h b/libc/src/sys/mman/mmap.h
index 4425019c4ee1a..b33be35d7b075 100644
--- a/libc/src/sys/mman/mmap.h
+++ b/libc/src/sys/mman/mmap.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MMAP_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MMAP_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h> // For size_t and off_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *mmap(void *addr, size_t size, int prot, int flags, int fd, off_t offset);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MMAP_H
diff --git a/libc/src/sys/mman/mprotect.h b/libc/src/sys/mman/mprotect.h
index 2e59c7526b750..890e9859405d5 100644
--- a/libc/src/sys/mman/mprotect.h
+++ b/libc/src/sys/mman/mprotect.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MPROTECT_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MPROTECT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h> // For size_t and off_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mprotect(void *addr, size_t size, int prot);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MPROTECT_H
diff --git a/libc/src/sys/mman/msync.h b/libc/src/sys/mman/msync.h
index 08afdd8c06285..d20c3f38c3220 100644
--- a/libc/src/sys/mman/msync.h
+++ b/libc/src/sys/mman/msync.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MSYNC_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MSYNC_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int msync(void *addr, size_t len, int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MSYNC_H
diff --git a/libc/src/sys/mman/munlock.h b/libc/src/sys/mman/munlock.h
index 6aca82dae4533..07f6b3b82ffbd 100644
--- a/libc/src/sys/mman/munlock.h
+++ b/libc/src/sys/mman/munlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MUNLOCK_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MUNLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int munlock(const void *addr, size_t len);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MUNLOCK_H
diff --git a/libc/src/sys/mman/munlockall.h b/libc/src/sys/mman/munlockall.h
index 5abd4b873465e..f0c632db6714b 100644
--- a/libc/src/sys/mman/munlockall.h
+++ b/libc/src/sys/mman/munlockall.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MUNLOCKALL_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MUNLOCKALL_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int munlockall(void);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MUNLOCKALL_H
diff --git a/libc/src/sys/mman/munmap.h b/libc/src/sys/mman/munmap.h
index 5d7c569043d1a..c1fd5d7b7d809 100644
--- a/libc/src/sys/mman/munmap.h
+++ b/libc/src/sys/mman/munmap.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_MUNMAP_H
 #define LLVM_LIBC_SRC_SYS_MMAN_MUNMAP_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h> // For size_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int munmap(void *addr, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_MUNMAP_H
diff --git a/libc/src/sys/mman/posix_madvise.h b/libc/src/sys/mman/posix_madvise.h
index b8a423bfa9191..31ec5f656b650 100644
--- a/libc/src/sys/mman/posix_madvise.h
+++ b/libc/src/sys/mman/posix_madvise.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_POSIX_MADVISE_H
 #define LLVM_LIBC_SRC_SYS_MMAN_POSIX_MADVISE_H
 
+#include "src/__support/macros/config.h"
 #include <sys/mman.h> // For size_t and off_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int posix_madvise(void *addr, size_t size, int advice);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_POSIX_MADVISE_H
diff --git a/libc/src/sys/mman/shm_open.h b/libc/src/sys/mman/shm_open.h
index 91796d7b5c050..c890304aa4acf 100644
--- a/libc/src/sys/mman/shm_open.h
+++ b/libc/src/sys/mman/shm_open.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_SHM_OPEN_H
 #define LLVM_LIBC_SRC_SYS_MMAN_SHM_OPEN_H
 
+#include "src/__support/macros/config.h"
 #include <llvm-libc-types/mode_t.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int shm_open(const char *name, int oflag, mode_t mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_SHM_OPEN_H
diff --git a/libc/src/sys/mman/shm_unlink.h b/libc/src/sys/mman/shm_unlink.h
index c38c06adbaa29..06ad42b52d4eb 100644
--- a/libc/src/sys/mman/shm_unlink.h
+++ b/libc/src/sys/mman/shm_unlink.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SYS_MMAN_SHM_UNLINK_H
 #define LLVM_LIBC_SRC_SYS_MMAN_SHM_UNLINK_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int shm_unlink(const char *name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_MMAN_SHM_UNLINK_H
diff --git a/libc/src/sys/prctl/linux/prctl.cpp b/libc/src/sys/prctl/linux/prctl.cpp
index b68b7621555dc..5d4e9046b8777 100644
--- a/libc/src/sys/prctl/linux/prctl.cpp
+++ b/libc/src/sys/prctl/linux/prctl.cpp
@@ -10,10 +10,11 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, prctl,
                    (int option, unsigned long arg2, unsigned long arg3,
@@ -34,4 +35,4 @@ LLVM_LIBC_FUNCTION(int, prctl,
   return static_cast<int>(ret);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/prctl/prctl.h b/libc/src/sys/prctl/prctl.h
index baa0676d4254b..c6b5797abe1c6 100644
--- a/libc/src/sys/prctl/prctl.h
+++ b/libc/src/sys/prctl/prctl.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_SYS_PRCTL_PRCTL_H
 #define LLVM_LIBC_SRC_SYS_PRCTL_PRCTL_H
 
+#include "src/__support/macros/config.h"
 #include <sys/prctl.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int prctl(int option, unsigned long arg2, unsigned long arg3,
           unsigned long arg4, unsigned long arg5);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_PRCTL_PRCTL_H
diff --git a/libc/src/sys/random/getrandom.h b/libc/src/sys/random/getrandom.h
index e1577d9bf1eaa..134bd0cd9468d 100644
--- a/libc/src/sys/random/getrandom.h
+++ b/libc/src/sys/random/getrandom.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_RANDOM_GETRANDOM_H
 #define LLVM_LIBC_SRC_SYS_RANDOM_GETRANDOM_H
 
+#include "src/__support/macros/config.h"
 #include <sys/random.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t getrandom(void *buf, size_t buflen, unsigned int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_RANDOM_GETRANDOM_H
diff --git a/libc/src/sys/random/linux/getrandom.cpp b/libc/src/sys/random/linux/getrandom.cpp
index 63038ad628a10..9a8869a2d6d38 100644
--- a/libc/src/sys/random/linux/getrandom.cpp
+++ b/libc/src/sys/random/linux/getrandom.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, getrandom,
                    (void *buf, size_t buflen, unsigned int flags)) {
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(ssize_t, getrandom,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/resource/getrlimit.h b/libc/src/sys/resource/getrlimit.h
index f473e82f933be..c369744a5c4ba 100644
--- a/libc/src/sys/resource/getrlimit.h
+++ b/libc/src/sys/resource/getrlimit.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_RESOURCE_GETRLIMIT_H
 #define LLVM_LIBC_SRC_SYS_RESOURCE_GETRLIMIT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/resource.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int getrlimit(int resource, struct rlimit *lim);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_RESOURCE_GETRLIMIT_H
diff --git a/libc/src/sys/resource/linux/getrlimit.cpp b/libc/src/sys/resource/linux/getrlimit.cpp
index 4067beba6cd30..30c2e91b036d1 100644
--- a/libc/src/sys/resource/linux/getrlimit.cpp
+++ b/libc/src/sys/resource/linux/getrlimit.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/resource.h> // For struct rlimit
 #include <sys/syscall.h>  // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, getrlimit, (int res, struct rlimit *limits)) {
   int ret =
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, getrlimit, (int res, struct rlimit *limits)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/resource/linux/setrlimit.cpp b/libc/src/sys/resource/linux/setrlimit.cpp
index 0692763862342..85f07900aaef4 100644
--- a/libc/src/sys/resource/linux/setrlimit.cpp
+++ b/libc/src/sys/resource/linux/setrlimit.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/resource.h> // For struct rlimit
 #include <sys/syscall.h>  // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, setrlimit, (int res, const struct rlimit *limits)) {
   int ret =
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, setrlimit, (int res, const struct rlimit *limits)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/resource/setrlimit.h b/libc/src/sys/resource/setrlimit.h
index d881b599833d2..6f966791f09b8 100644
--- a/libc/src/sys/resource/setrlimit.h
+++ b/libc/src/sys/resource/setrlimit.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_RESOURCE_SETRLIMIT_H
 #define LLVM_LIBC_SRC_SYS_RESOURCE_SETRLIMIT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/resource.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int setrlimit(int resource, const struct rlimit *lim);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_RESOURCE_SETRLIMIT_H
diff --git a/libc/src/sys/select/linux/select.cpp b/libc/src/sys/select/linux/select.cpp
index 9034b75e5c29e..9ccb1e95f275c 100644
--- a/libc/src/sys/select/linux/select.cpp
+++ b/libc/src/sys/select/linux/select.cpp
@@ -13,12 +13,13 @@
 #include "src/__support/CPP/limits.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <stddef.h>      // For size_t
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct pselect6_sigset_t {
   sigset_t *ss;
@@ -69,4 +70,4 @@ LLVM_LIBC_FUNCTION(int, select,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/select/select.h b/libc/src/sys/select/select.h
index 65cd15cd365c4..be3f5eb1deb1e 100644
--- a/libc/src/sys/select/select.h
+++ b/libc/src/sys/select/select.h
@@ -9,13 +9,14 @@
 #ifndef LLVM_LIBC_SRC_SYS_SELECT_SELECT_H
 #define LLVM_LIBC_SRC_SYS_SELECT_SELECT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/select.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int select(int nfds, fd_set *__restrict read_set, fd_set *__restrict write_set,
            fd_set *__restrict error_set, struct timeval *__restrict timeout);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_SELECT_SELECT_H
diff --git a/libc/src/sys/sendfile/linux/sendfile.cpp b/libc/src/sys/sendfile/linux/sendfile.cpp
index 5a7c012fe997d..9d4174cb8c916 100644
--- a/libc/src/sys/sendfile/linux/sendfile.cpp
+++ b/libc/src/sys/sendfile/linux/sendfile.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/sendfile.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, sendfile,
                    (int out_fd, int in_fd, off_t *offset, size_t count)) {
@@ -37,4 +38,4 @@ LLVM_LIBC_FUNCTION(ssize_t, sendfile,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/sendfile/sendfile.h b/libc/src/sys/sendfile/sendfile.h
index 14673bba3fbdf..95c3fd4db470c 100644
--- a/libc/src/sys/sendfile/sendfile.h
+++ b/libc/src/sys/sendfile/sendfile.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_SENDFILE_SENDFILE_H
 #define LLVM_LIBC_SRC_SYS_SENDFILE_SENDFILE_H
 
+#include "src/__support/macros/config.h"
 #include <sys/sendfile.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t sendfile(int, int, off_t *, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_SENDFILE_SENDFILE_H
diff --git a/libc/src/sys/socket/bind.h b/libc/src/sys/socket/bind.h
index 62e6221bf1b2d..1676ab6a003ad 100644
--- a/libc/src/sys/socket/bind.h
+++ b/libc/src/sys/socket/bind.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_SOCKET_BIND_H
 #define LLVM_LIBC_SRC_SYS_SOCKET_BIND_H
 
+#include "src/__support/macros/config.h"
 #include <sys/socket.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int bind(int domain, const struct sockaddr *address, socklen_t address_len);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_SOCKET_BIND_H
diff --git a/libc/src/sys/socket/linux/bind.cpp b/libc/src/sys/socket/linux/bind.cpp
index 36afc646d29f6..3289e9f0852e8 100644
--- a/libc/src/sys/socket/linux/bind.cpp
+++ b/libc/src/sys/socket/linux/bind.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <linux/net.h>   // For SYS_SOCKET socketcall number.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, bind,
                    (int domain, const struct sockaddr *address,
@@ -40,4 +41,4 @@ LLVM_LIBC_FUNCTION(int, bind,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/socket/linux/socket.cpp b/libc/src/sys/socket/linux/socket.cpp
index 90a7dc632e269..3e6df4d487a53 100644
--- a/libc/src/sys/socket/linux/socket.cpp
+++ b/libc/src/sys/socket/linux/socket.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <linux/net.h>   // For SYS_SOCKET socketcall number.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, socket, (int domain, int type, int protocol)) {
 #ifdef SYS_socket
@@ -38,4 +39,4 @@ LLVM_LIBC_FUNCTION(int, socket, (int domain, int type, int protocol)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/socket/socket.h b/libc/src/sys/socket/socket.h
index a6578989d2af8..253be738bf317 100644
--- a/libc/src/sys/socket/socket.h
+++ b/libc/src/sys/socket/socket.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_SYS_SOCKET_SOCKET_H
 #define LLVM_LIBC_SRC_SYS_SOCKET_SOCKET_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int socket(int domain, int type, int protocol);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_SOCKET_SOCKET_H
diff --git a/libc/src/sys/stat/chmod.h b/libc/src/sys/stat/chmod.h
index decb44222177b..a05407a40978f 100644
--- a/libc/src/sys/stat/chmod.h
+++ b/libc/src/sys/stat/chmod.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_CHMOD_H
 #define LLVM_LIBC_SRC_SYS_STAT_CHMOD_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int chmod(const char *path, mode_t mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_CHMOD_H
diff --git a/libc/src/sys/stat/fchmod.h b/libc/src/sys/stat/fchmod.h
index 611bba16fad6c..470ce3e3a03a2 100644
--- a/libc/src/sys/stat/fchmod.h
+++ b/libc/src/sys/stat/fchmod.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_FCHMOD_H
 #define LLVM_LIBC_SRC_SYS_STAT_FCHMOD_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fchmod(int fd, mode_t mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_FCHMOD_H
diff --git a/libc/src/sys/stat/fchmodat.h b/libc/src/sys/stat/fchmodat.h
index e7b12693558d4..e4500f505bfda 100644
--- a/libc/src/sys/stat/fchmodat.h
+++ b/libc/src/sys/stat/fchmodat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_FCHMODAT_H
 #define LLVM_LIBC_SRC_SYS_STAT_FCHMODAT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fchmodat(int dirfd, const char *path, mode_t mode, int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_FCHMODAT_H
diff --git a/libc/src/sys/stat/fstat.h b/libc/src/sys/stat/fstat.h
index 7633ee60a374e..a3ec9e45384c9 100644
--- a/libc/src/sys/stat/fstat.h
+++ b/libc/src/sys/stat/fstat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_FSTAT_H
 #define LLVM_LIBC_SRC_SYS_STAT_FSTAT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fstat(int fd, struct stat *statbuf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_FSTAT_H
diff --git a/libc/src/sys/stat/linux/chmod.cpp b/libc/src/sys/stat/linux/chmod.cpp
index 25e5e69af71a0..c91cabb514a8c 100644
--- a/libc/src/sys/stat/linux/chmod.cpp
+++ b/libc/src/sys/stat/linux/chmod.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, chmod, (const char *path, mode_t mode)) {
 #ifdef SYS_chmod
@@ -38,4 +39,4 @@ LLVM_LIBC_FUNCTION(int, chmod, (const char *path, mode_t mode)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/fchmod.cpp b/libc/src/sys/stat/linux/fchmod.cpp
index cdc9cbf37ba54..7b6c7b7091a82 100644
--- a/libc/src/sys/stat/linux/fchmod.cpp
+++ b/libc/src/sys/stat/linux/fchmod.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fchmod, (int fd, mode_t mode)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_fchmod, fd, mode);
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, fchmod, (int fd, mode_t mode)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/fchmodat.cpp b/libc/src/sys/stat/linux/fchmodat.cpp
index 43b4cf00111ba..e76db4d160fb8 100644
--- a/libc/src/sys/stat/linux/fchmodat.cpp
+++ b/libc/src/sys/stat/linux/fchmodat.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/stat.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fchmodat,
                    (int dirfd, const char *path, mode_t mode, int flags)) {
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, fchmodat,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/fstat.cpp b/libc/src/sys/stat/linux/fstat.cpp
index 516417858569c..411aa47bcda2a 100644
--- a/libc/src/sys/stat/linux/fstat.cpp
+++ b/libc/src/sys/stat/linux/fstat.cpp
@@ -8,6 +8,7 @@
 
 #include "src/sys/stat/fstat.h"
 #include "kernel_statx.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include "src/__support/common.h"
@@ -15,7 +16,7 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fstat, (int fd, struct stat *statbuf)) {
   int err = statx(fd, "", AT_EMPTY_PATH, statbuf);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, fstat, (int fd, struct stat *statbuf)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/kernel_statx.h b/libc/src/sys/stat/linux/kernel_statx.h
index 60969160b9ba4..f26f0b826ac1e 100644
--- a/libc/src/sys/stat/linux/kernel_statx.h
+++ b/libc/src/sys/stat/linux/kernel_statx.h
@@ -11,6 +11,7 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 #include <sys/stat.h>
@@ -67,7 +68,7 @@ constexpr unsigned int STATX_BASIC_STATS_MASK = 0x7FF;
 
 } // Anonymous namespace
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LIBC_INLINE int statx(int dirfd, const char *__restrict path, int flags,
                       struct stat *__restrict statbuf) {
@@ -98,6 +99,6 @@ LIBC_INLINE int statx(int dirfd, const char *__restrict path, int flags,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_LINUX_KERNEL_STATX_H
diff --git a/libc/src/sys/stat/linux/lstat.cpp b/libc/src/sys/stat/linux/lstat.cpp
index b2698148973a5..5a6eff068d1dd 100644
--- a/libc/src/sys/stat/linux/lstat.cpp
+++ b/libc/src/sys/stat/linux/lstat.cpp
@@ -8,6 +8,7 @@
 
 #include "src/sys/stat/lstat.h"
 #include "kernel_statx.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
@@ -16,7 +17,7 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, lstat,
                    (const char *__restrict path,
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, lstat,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/mkdir.cpp b/libc/src/sys/stat/linux/mkdir.cpp
index 63b64ac091a87..527c3d2058d2b 100644
--- a/libc/src/sys/stat/linux/mkdir.cpp
+++ b/libc/src/sys/stat/linux/mkdir.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, mkdir, (const char *path, mode_t mode)) {
 #ifdef SYS_mkdir
@@ -35,4 +36,4 @@ LLVM_LIBC_FUNCTION(int, mkdir, (const char *path, mode_t mode)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/mkdirat.cpp b/libc/src/sys/stat/linux/mkdirat.cpp
index 0128d7c081cfd..097fc158010d1 100644
--- a/libc/src/sys/stat/linux/mkdirat.cpp
+++ b/libc/src/sys/stat/linux/mkdirat.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/stat.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, mkdirat, (int dfd, const char *path, mode_t mode)) {
 #ifdef SYS_mkdirat
@@ -31,4 +32,4 @@ LLVM_LIBC_FUNCTION(int, mkdirat, (int dfd, const char *path, mode_t mode)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/linux/stat.cpp b/libc/src/sys/stat/linux/stat.cpp
index c30c8b65da1e8..c5149e6e3c883 100644
--- a/libc/src/sys/stat/linux/stat.cpp
+++ b/libc/src/sys/stat/linux/stat.cpp
@@ -8,6 +8,7 @@
 
 #include "src/sys/stat/stat.h"
 #include "kernel_statx.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include "src/__support/common.h"
@@ -15,7 +16,7 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, stat,
                    (const char *__restrict path,
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, stat,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/stat/lstat.h b/libc/src/sys/stat/lstat.h
index 42bd8e932da75..a94fc69969ab9 100644
--- a/libc/src/sys/stat/lstat.h
+++ b/libc/src/sys/stat/lstat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_LSTAT_H
 #define LLVM_LIBC_SRC_SYS_STAT_LSTAT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int lstat(const char *__restrict path, struct stat *__restrict statbuf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_LSTAT_H
diff --git a/libc/src/sys/stat/mkdir.h b/libc/src/sys/stat/mkdir.h
index 9f2991d850cbc..2d990bacd564e 100644
--- a/libc/src/sys/stat/mkdir.h
+++ b/libc/src/sys/stat/mkdir.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_MKDIR_H
 #define LLVM_LIBC_SRC_SYS_STAT_MKDIR_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mkdir(const char *path, mode_t mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_MKDIR_H
diff --git a/libc/src/sys/stat/mkdirat.h b/libc/src/sys/stat/mkdirat.h
index 322209754fc0b..e26cf5b58b8b1 100644
--- a/libc/src/sys/stat/mkdirat.h
+++ b/libc/src/sys/stat/mkdirat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_MKDIRAT_H
 #define LLVM_LIBC_SRC_SYS_STAT_MKDIRAT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mkdirat(int dfd, const char *path, mode_t mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_MKDIRAT_H
diff --git a/libc/src/sys/stat/stat.h b/libc/src/sys/stat/stat.h
index 5d2eba5bd74c4..8ec3e9b1aa9e0 100644
--- a/libc/src/sys/stat/stat.h
+++ b/libc/src/sys/stat/stat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_STAT_STAT_H
 #define LLVM_LIBC_SRC_SYS_STAT_STAT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/stat.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int stat(const char *__restrict path, struct stat *__restrict statbuf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STAT_STAT_H
diff --git a/libc/src/sys/statvfs/fstatvfs.h b/libc/src/sys/statvfs/fstatvfs.h
index 6ca76a459ae5b..60c271c253d32 100644
--- a/libc/src/sys/statvfs/fstatvfs.h
+++ b/libc/src/sys/statvfs/fstatvfs.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SYS_STATVFS_FSTATVFS_H
 
 #include "llvm-libc-types/struct_statvfs.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int fstatvfs(int fd, struct statvfs *buf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STATVFS_FSTATVFS_H
diff --git a/libc/src/sys/statvfs/linux/fstatvfs.cpp b/libc/src/sys/statvfs/linux/fstatvfs.cpp
index 488989abbad70..1a2fc04a1dff9 100644
--- a/libc/src/sys/statvfs/linux/fstatvfs.cpp
+++ b/libc/src/sys/statvfs/linux/fstatvfs.cpp
@@ -9,9 +9,10 @@
 #include "src/sys/statvfs/fstatvfs.h"
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fstatvfs, (int fd, struct statvfs *buf)) {
   using namespace statfs_utils;
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, fstatvfs, (int fd, struct statvfs *buf)) {
   return result ? 0 : -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/statvfs/linux/statfs_utils.h b/libc/src/sys/statvfs/linux/statfs_utils.h
index 52f810d702d2a..ca981c1364748 100644
--- a/libc/src/sys/statvfs/linux/statfs_utils.h
+++ b/libc/src/sys/statvfs/linux/statfs_utils.h
@@ -13,10 +13,11 @@
 #include "src/__support/CPP/optional.h"
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/macros/attributes.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <asm/statfs.h>
 #include <sys/syscall.h>
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace statfs_utils {
 #ifdef SYS_statfs64
@@ -91,6 +92,6 @@ LIBC_INLINE struct statvfs statfs_to_statvfs(const LinuxStatFs &in) {
   return out;
 }
 } // namespace statfs_utils
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STATVFS_LINUX_STATFS_TO_STATVFS_H
diff --git a/libc/src/sys/statvfs/linux/statvfs.cpp b/libc/src/sys/statvfs/linux/statvfs.cpp
index a438ef1f0117e..fc3c75a260ce0 100644
--- a/libc/src/sys/statvfs/linux/statvfs.cpp
+++ b/libc/src/sys/statvfs/linux/statvfs.cpp
@@ -9,9 +9,10 @@
 #include "src/sys/statvfs/statvfs.h"
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
+#include "src/__support/macros/config.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, statvfs,
                    (const char *__restrict path,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, statvfs,
   return result ? 0 : -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/statvfs/statvfs.h b/libc/src/sys/statvfs/statvfs.h
index 792c7ddd0164e..674a079b593c4 100644
--- a/libc/src/sys/statvfs/statvfs.h
+++ b/libc/src/sys/statvfs/statvfs.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_SYS_STATVFS_STATVFS_H
 
 #include "llvm-libc-types/struct_statvfs.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int statvfs(const char *__restrict path, struct statvfs *__restrict buf);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_STATVFS_STATVFS_H
diff --git a/libc/src/sys/utsname/linux/uname.cpp b/libc/src/sys/utsname/linux/uname.cpp
index f0796b63f62e9..7bb227e801e3a 100644
--- a/libc/src/sys/utsname/linux/uname.cpp
+++ b/libc/src/sys/utsname/linux/uname.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 #include <sys/utsname.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, uname, (struct utsname * name)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_uname, name);
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(int, uname, (struct utsname * name)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/utsname/uname.h b/libc/src/sys/utsname/uname.h
index b347cf00f33b9..973df77f164d3 100644
--- a/libc/src/sys/utsname/uname.h
+++ b/libc/src/sys/utsname/uname.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_UTSNAME_UNAME_H
 #define LLVM_LIBC_SRC_SYS_UTSNAME_UNAME_H
 
+#include "src/__support/macros/config.h"
 #include <sys/utsname.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int uname(struct utsname *name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_UTSNAME_UNAME_H
diff --git a/libc/src/sys/wait/linux/wait.cpp b/libc/src/sys/wait/linux/wait.cpp
index 02e6a34c1e8b1..dc97d0a4ff172 100644
--- a/libc/src/sys/wait/linux/wait.cpp
+++ b/libc/src/sys/wait/linux/wait.cpp
@@ -9,10 +9,11 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
 
+#include "src/__support/macros/config.h"
 #include "src/sys/wait/wait.h"
 #include "src/sys/wait/wait4Impl.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, wait, (int *wait_status)) {
   auto result = internal::wait4impl(-1, wait_status, 0, 0);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(pid_t, wait, (int *wait_status)) {
   return result.value();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/wait/linux/wait4.cpp b/libc/src/sys/wait/linux/wait4.cpp
index 84036caf0a7b3..ac6d16933dc87 100644
--- a/libc/src/sys/wait/linux/wait4.cpp
+++ b/libc/src/sys/wait/linux/wait4.cpp
@@ -9,10 +9,11 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
 
+#include "src/__support/macros/config.h"
 #include "src/sys/wait/wait4.h"
 #include "src/sys/wait/wait4Impl.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, wait4,
                    (pid_t pid, int *wait_status, int options,
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(pid_t, wait4,
   return result.value();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/wait/linux/waitpid.cpp b/libc/src/sys/wait/linux/waitpid.cpp
index b2e8229a52583..cb763a686353d 100644
--- a/libc/src/sys/wait/linux/waitpid.cpp
+++ b/libc/src/sys/wait/linux/waitpid.cpp
@@ -9,10 +9,11 @@
 #include "src/__support/common.h"
 #include "src/__support/libc_assert.h"
 
+#include "src/__support/macros/config.h"
 #include "src/sys/wait/wait4Impl.h"
 #include "src/sys/wait/waitpid.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, waitpid, (pid_t pid, int *wait_status, int options)) {
   auto result = internal::wait4impl(pid, wait_status, options, 0);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(pid_t, waitpid, (pid_t pid, int *wait_status, int options)) {
   return result.value();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/sys/wait/wait.h b/libc/src/sys/wait/wait.h
index abe5249b83c81..03b53a54ae888 100644
--- a/libc/src/sys/wait/wait.h
+++ b/libc/src/sys/wait/wait.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_WAIT_WAIT_H
 #define LLVM_LIBC_SRC_SYS_WAIT_WAIT_H
 
+#include "src/__support/macros/config.h"
 #include <sys/wait.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t wait(int *waitstatus);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_WAIT_WAIT_H
diff --git a/libc/src/sys/wait/wait4.h b/libc/src/sys/wait/wait4.h
index 3205b28e968ef..f425feec5cb29 100644
--- a/libc/src/sys/wait/wait4.h
+++ b/libc/src/sys/wait/wait4.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_WAIT_WAIT4_H
 #define LLVM_LIBC_SRC_SYS_WAIT_WAIT4_H
 
+#include "src/__support/macros/config.h"
 #include <sys/wait.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t wait4(pid_t pid, int *waitstatus, int options, struct rusage *usage);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_WAIT_WAIT4_H
diff --git a/libc/src/sys/wait/wait4Impl.h b/libc/src/sys/wait/wait4Impl.h
index 956ad0f8c9c41..5c2cb3e8e0abf 100644
--- a/libc/src/sys/wait/wait4Impl.h
+++ b/libc/src/sys/wait/wait4Impl.h
@@ -12,13 +12,14 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 #include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <signal.h>
 #include <sys/syscall.h> // For syscall numbers.
 #include <sys/wait.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 // The implementation of wait here is very minimal. We will add more
@@ -80,6 +81,6 @@ LIBC_INLINE ErrorOr<pid_t> wait4impl(pid_t pid, int *wait_status, int options,
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_WAIT_WAIT4IMPL_H
diff --git a/libc/src/sys/wait/waitpid.h b/libc/src/sys/wait/waitpid.h
index 37ebf289ff072..883b5375787e2 100644
--- a/libc/src/sys/wait/waitpid.h
+++ b/libc/src/sys/wait/waitpid.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_SYS_WAIT_WAITPID_H
 #define LLVM_LIBC_SRC_SYS_WAIT_WAITPID_H
 
+#include "src/__support/macros/config.h"
 #include <sys/wait.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t waitpid(pid_t pid, int *waitstatus, int options);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_SYS_WAIT_WAITPID_H
diff --git a/libc/src/termios/cfgetispeed.h b/libc/src/termios/cfgetispeed.h
index 7ea280f69da44..56b0ab852cdb8 100644
--- a/libc/src/termios/cfgetispeed.h
+++ b/libc/src/termios/cfgetispeed.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_CFGETISPEED_H
 #define LLVM_LIBC_SRC_TERMIOS_CFGETISPEED_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 speed_t cfgetispeed(const struct termios *t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_CFGETISPEED_H
diff --git a/libc/src/termios/cfgetospeed.h b/libc/src/termios/cfgetospeed.h
index 95e3edb51b382..9d8e6656b0e9b 100644
--- a/libc/src/termios/cfgetospeed.h
+++ b/libc/src/termios/cfgetospeed.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_CFGETOSPEED_H
 #define LLVM_LIBC_SRC_TERMIOS_CFGETOSPEED_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 speed_t cfgetospeed(const struct termios *t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_CFGETOSPEED_H
diff --git a/libc/src/termios/cfsetispeed.h b/libc/src/termios/cfsetispeed.h
index e03a2d1ef0cf5..89b683e560489 100644
--- a/libc/src/termios/cfsetispeed.h
+++ b/libc/src/termios/cfsetispeed.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_CFSETISPEED_H
 #define LLVM_LIBC_SRC_TERMIOS_CFSETISPEED_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int cfsetispeed(struct termios *t, speed_t speed);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_CFSETISPEED_H
diff --git a/libc/src/termios/cfsetospeed.h b/libc/src/termios/cfsetospeed.h
index 74d41abc5326d..2f2c5315fb690 100644
--- a/libc/src/termios/cfsetospeed.h
+++ b/libc/src/termios/cfsetospeed.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_CFSETOSPEED_H
 #define LLVM_LIBC_SRC_TERMIOS_CFSETOSPEED_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int cfsetospeed(struct termios *t, speed_t speed);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_CFSETOSPEED_H
diff --git a/libc/src/termios/linux/cfgetispeed.cpp b/libc/src/termios/linux/cfgetispeed.cpp
index 18e34b2dcb07c..19e9b9140aa2b 100644
--- a/libc/src/termios/linux/cfgetispeed.cpp
+++ b/libc/src/termios/linux/cfgetispeed.cpp
@@ -9,13 +9,14 @@
 #include "src/termios/cfgetispeed.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(speed_t, cfgetispeed, (const struct termios *t)) {
   return t->c_cflag & CBAUD;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/cfgetospeed.cpp b/libc/src/termios/linux/cfgetospeed.cpp
index 1989b3feabe97..d633beb8061f8 100644
--- a/libc/src/termios/linux/cfgetospeed.cpp
+++ b/libc/src/termios/linux/cfgetospeed.cpp
@@ -9,13 +9,14 @@
 #include "src/termios/cfgetospeed.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(speed_t, cfgetospeed, (const struct termios *t)) {
   return t->c_cflag & CBAUD;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/cfsetispeed.cpp b/libc/src/termios/linux/cfsetispeed.cpp
index 0e8ac55fe700e..9656b714a8ed2 100644
--- a/libc/src/termios/linux/cfsetispeed.cpp
+++ b/libc/src/termios/linux/cfsetispeed.cpp
@@ -9,11 +9,12 @@
 #include "src/termios/cfsetispeed.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, cfsetispeed, (struct termios * t, speed_t speed)) {
   constexpr speed_t NOT_SPEED_MASK = ~speed_t(CBAUD);
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, cfsetispeed, (struct termios * t, speed_t speed)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/cfsetospeed.cpp b/libc/src/termios/linux/cfsetospeed.cpp
index d21f629cb74b6..6130d266dbff0 100644
--- a/libc/src/termios/linux/cfsetospeed.cpp
+++ b/libc/src/termios/linux/cfsetospeed.cpp
@@ -7,13 +7,14 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/termios/cfsetospeed.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include "src/__support/common.h"
 
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, cfsetospeed, (struct termios * t, speed_t speed)) {
   constexpr speed_t NOT_SPEED_MASK = ~speed_t(CBAUD);
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, cfsetospeed, (struct termios * t, speed_t speed)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/kernel_termios.h b/libc/src/termios/linux/kernel_termios.h
index d96de72029f76..5a3a9722789eb 100644
--- a/libc/src/termios/linux/kernel_termios.h
+++ b/libc/src/termios/linux/kernel_termios.h
@@ -9,10 +9,11 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_LINUX_KERNEL_TERMIOS_H
 #define LLVM_LIBC_SRC_TERMIOS_LINUX_KERNEL_TERMIOS_H
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The kernel's struct termios is different from the libc's struct termios. The
 // kernel's syscalls expect the size and layout of its definition of struct
@@ -36,6 +37,6 @@ struct kernel_termios {
   cc_t c_cc[KERNEL_NCCS];
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_LINUX_KERNEL_TERMIOS_H
diff --git a/libc/src/termios/linux/tcdrain.cpp b/libc/src/termios/linux/tcdrain.cpp
index c3826ff9a101c..116e3f0e0cbc5 100644
--- a/libc/src/termios/linux/tcdrain.cpp
+++ b/libc/src/termios/linux/tcdrain.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tcdrain, (int fd)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_ioctl, fd, TCSBRK, 1);
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, tcdrain, (int fd)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/tcflow.cpp b/libc/src/termios/linux/tcflow.cpp
index 9753ef767e927..d229230b5d138 100644
--- a/libc/src/termios/linux/tcflow.cpp
+++ b/libc/src/termios/linux/tcflow.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tcflow, (int fd, int action)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_ioctl, fd, TCXONC, action);
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, tcflow, (int fd, int action)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/tcflush.cpp b/libc/src/termios/linux/tcflush.cpp
index 9c7e8f02431e8..028a5414b1960 100644
--- a/libc/src/termios/linux/tcflush.cpp
+++ b/libc/src/termios/linux/tcflush.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tcflush, (int fd, int queue_selector)) {
   int ret =
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(int, tcflush, (int fd, int queue_selector)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/tcgetattr.cpp b/libc/src/termios/linux/tcgetattr.cpp
index 254c48521bb90..63c096ff88eba 100644
--- a/libc/src/termios/linux/tcgetattr.cpp
+++ b/libc/src/termios/linux/tcgetattr.cpp
@@ -11,13 +11,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tcgetattr, (int fd, struct termios *t)) {
   LIBC_NAMESPACE::kernel_termios kt;
@@ -43,4 +44,4 @@ LLVM_LIBC_FUNCTION(int, tcgetattr, (int fd, struct termios *t)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/tcgetsid.cpp b/libc/src/termios/linux/tcgetsid.cpp
index 7b2abf8f4cf08..c283d0e4fda9a 100644
--- a/libc/src/termios/linux/tcgetsid.cpp
+++ b/libc/src/termios/linux/tcgetsid.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, tcgetsid, (int fd)) {
   pid_t sid;
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(pid_t, tcgetsid, (int fd)) {
   return sid;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/tcsendbreak.cpp b/libc/src/termios/linux/tcsendbreak.cpp
index fdd3f8adf7d8d..30bc91cf3de0a 100644
--- a/libc/src/termios/linux/tcsendbreak.cpp
+++ b/libc/src/termios/linux/tcsendbreak.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, tcsendbreak, (int fd, int /* unused duration */)) {
   // POSIX leaves the behavior for non-zero duration implementation dependent.
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(pid_t, tcsendbreak, (int fd, int /* unused duration */)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/linux/tcsetattr.cpp b/libc/src/termios/linux/tcsetattr.cpp
index ba500a00210d9..8aa1e5c57b34e 100644
--- a/libc/src/termios/linux/tcsetattr.cpp
+++ b/libc/src/termios/linux/tcsetattr.cpp
@@ -11,13 +11,14 @@
 
 #include "src/__support/OSUtil/syscall.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <asm/ioctls.h> // Safe to include without the risk of name pollution.
 #include <sys/syscall.h> // For syscall numbers
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tcsetattr,
                    (int fd, int actions, const struct termios *t)) {
@@ -59,4 +60,4 @@ LLVM_LIBC_FUNCTION(int, tcsetattr,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/termios/tcdrain.h b/libc/src/termios/tcdrain.h
index 52042063108cc..f7fcd8c734bfa 100644
--- a/libc/src/termios/tcdrain.h
+++ b/libc/src/termios/tcdrain.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCDRAIN_H
 #define LLVM_LIBC_SRC_TERMIOS_TCDRAIN_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tcdrain(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCDRAIN_H
diff --git a/libc/src/termios/tcflow.h b/libc/src/termios/tcflow.h
index 267d3f682d7b2..dbe63adea1ceb 100644
--- a/libc/src/termios/tcflow.h
+++ b/libc/src/termios/tcflow.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCFLOW_H
 #define LLVM_LIBC_SRC_TERMIOS_TCFLOW_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tcflow(int fd, int action);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCFLOW_H
diff --git a/libc/src/termios/tcflush.h b/libc/src/termios/tcflush.h
index d631ca21379e9..5c283a0203c89 100644
--- a/libc/src/termios/tcflush.h
+++ b/libc/src/termios/tcflush.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCFLUSH_H
 #define LLVM_LIBC_SRC_TERMIOS_TCFLUSH_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tcflush(int fd, int queue_selector);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCFLUSH_H
diff --git a/libc/src/termios/tcgetattr.h b/libc/src/termios/tcgetattr.h
index c39aa4135256d..54b169aedad88 100644
--- a/libc/src/termios/tcgetattr.h
+++ b/libc/src/termios/tcgetattr.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCGETATTR_H
 #define LLVM_LIBC_SRC_TERMIOS_TCGETATTR_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tcgetattr(int fd, struct termios *t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCGETATTR_H
diff --git a/libc/src/termios/tcgetsid.h b/libc/src/termios/tcgetsid.h
index 07dbb22b16775..a69db00a5dab0 100644
--- a/libc/src/termios/tcgetsid.h
+++ b/libc/src/termios/tcgetsid.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCGETSID_H
 #define LLVM_LIBC_SRC_TERMIOS_TCGETSID_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t tcgetsid(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCGETSID_H
diff --git a/libc/src/termios/tcsendbreak.h b/libc/src/termios/tcsendbreak.h
index 487fdad504804..9edc602cff6c5 100644
--- a/libc/src/termios/tcsendbreak.h
+++ b/libc/src/termios/tcsendbreak.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCSENDBREAK_H
 #define LLVM_LIBC_SRC_TERMIOS_TCSENDBREAK_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tcsendbreak(int fd, int duration);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCSENDBREAK_H
diff --git a/libc/src/termios/tcsetattr.h b/libc/src/termios/tcsetattr.h
index d514ac71210bb..05c88f104836f 100644
--- a/libc/src/termios/tcsetattr.h
+++ b/libc/src/termios/tcsetattr.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TERMIOS_TCSETATTR_H
 #define LLVM_LIBC_SRC_TERMIOS_TCSETATTR_H
 
+#include "src/__support/macros/config.h"
 #include <termios.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tcsetattr(int fd, int actions, const struct termios *t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TERMIOS_TCSETATTR_H
diff --git a/libc/src/threads/call_once.cpp b/libc/src/threads/call_once.cpp
index 2d91094b12091..8466cd622afeb 100644
--- a/libc/src/threads/call_once.cpp
+++ b/libc/src/threads/call_once.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/call_once.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/callonce.h"
 
 #include <threads.h> // For once_flag and __call_once_func_t definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, call_once,
                    (once_flag * flag, __call_once_func_t func)) {
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(void, call_once,
            reinterpret_cast<CallOnceCallback *>(func));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/call_once.h b/libc/src/threads/call_once.h
index 186d63cecdbdd..b6208afd80b74 100644
--- a/libc/src/threads/call_once.h
+++ b/libc/src/threads/call_once.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_CALL_ONCE_H
 #define LLVM_LIBC_SRC_THREADS_CALL_ONCE_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void call_once(once_flag *flag, __call_once_func_t func);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_CALL_ONCE_H
diff --git a/libc/src/threads/cnd_broadcast.h b/libc/src/threads/cnd_broadcast.h
index 4e996f22748f3..ab911a774573e 100644
--- a/libc/src/threads/cnd_broadcast.h
+++ b/libc/src/threads/cnd_broadcast.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_CND_BROADCAST_H
 #define LLVM_LIBC_SRC_THREADS_CND_BROADCAST_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int cnd_broadcast(cnd_t *cond);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_CND_BROADCAST_H
diff --git a/libc/src/threads/cnd_destroy.h b/libc/src/threads/cnd_destroy.h
index d102e7b83e7bc..224a9a4d0763e 100644
--- a/libc/src/threads/cnd_destroy.h
+++ b/libc/src/threads/cnd_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_CND_DESTROY_H
 #define LLVM_LIBC_SRC_THREADS_CND_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void cnd_destroy(cnd_t *cond);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_CND_DESTROY_H
diff --git a/libc/src/threads/cnd_init.h b/libc/src/threads/cnd_init.h
index c4fc02f5f9e7e..dcd4f7b918fd6 100644
--- a/libc/src/threads/cnd_init.h
+++ b/libc/src/threads/cnd_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_CND_INIT_H
 #define LLVM_LIBC_SRC_THREADS_CND_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int cnd_init(cnd_t *cond);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_CND_INIT_H
diff --git a/libc/src/threads/cnd_signal.h b/libc/src/threads/cnd_signal.h
index 4c60a9295299c..95d4426cdc2f7 100644
--- a/libc/src/threads/cnd_signal.h
+++ b/libc/src/threads/cnd_signal.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_CND_SIGNAL_H
 #define LLVM_LIBC_SRC_THREADS_CND_SIGNAL_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int cnd_signal(cnd_t *cond);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_CND_SIGNAL_H
diff --git a/libc/src/threads/cnd_wait.h b/libc/src/threads/cnd_wait.h
index 5d2cdbb68c78f..8f9f0f3ddd382 100644
--- a/libc/src/threads/cnd_wait.h
+++ b/libc/src/threads/cnd_wait.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_CND_WAIT_H
 #define LLVM_LIBC_SRC_THREADS_CND_WAIT_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int cnd_wait(cnd_t *cond, mtx_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_CND_WAIT_H
diff --git a/libc/src/threads/linux/Futex.h b/libc/src/threads/linux/Futex.h
index 4b426ac51ad17..e7fde14629d53 100644
--- a/libc/src/threads/linux/Futex.h
+++ b/libc/src/threads/linux/Futex.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_SRC_THREADS_LINUX_FUTEX_H
 #define LLVM_LIBC_SRC_THREADS_LINUX_FUTEX_H
 
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h" // Architecture macros
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #if (defined(LIBC_TARGET_ARCH_IS_AARCH64) ||                                   \
      defined(LIBC_TARGET_ARCH_IS_X86_64))
@@ -27,6 +28,6 @@ static_assert(sizeof(FutexWordType) == 4,
 #error "Futex word base type not defined for the target architecture."
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_LINUX_FUTEX_H
diff --git a/libc/src/threads/linux/cnd_broadcast.cpp b/libc/src/threads/linux/cnd_broadcast.cpp
index a56aaa21ee122..5c5187461bbed 100644
--- a/libc/src/threads/linux/cnd_broadcast.cpp
+++ b/libc/src/threads/linux/cnd_broadcast.cpp
@@ -8,12 +8,13 @@
 
 #include "src/threads/cnd_broadcast.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/CndVar.h"
 
 // TODO: https://github.com/llvm/llvm-project/issues/92968
 #include <threads.h> // cnd_t, thrd_error, thrd_success
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(CndVar) == sizeof(cnd_t));
 
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, cnd_broadcast, (cnd_t * cond)) {
   return thrd_success;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/linux/cnd_destroy.cpp b/libc/src/threads/linux/cnd_destroy.cpp
index 2b03b18c48e46..963991bddfe45 100644
--- a/libc/src/threads/linux/cnd_destroy.cpp
+++ b/libc/src/threads/linux/cnd_destroy.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/cnd_destroy.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/CndVar.h"
 
 #include <threads.h> // cnd_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(CndVar) == sizeof(cnd_t));
 
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(void, cnd_destroy, (cnd_t * cond)) {
   CndVar::destroy(cndvar);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/linux/cnd_init.cpp b/libc/src/threads/linux/cnd_init.cpp
index d3d2c8a57d82a..478011a5255e8 100644
--- a/libc/src/threads/linux/cnd_init.cpp
+++ b/libc/src/threads/linux/cnd_init.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/cnd_init.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/CndVar.h"
 
 #include <threads.h> // cnd_t, thrd_error, thrd_success
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(CndVar) == sizeof(cnd_t));
 
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, cnd_init, (cnd_t * cond)) {
   return CndVar::init(cndvar) ? thrd_error : thrd_success;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/linux/cnd_signal.cpp b/libc/src/threads/linux/cnd_signal.cpp
index f144013e08821..0d218405d3ac5 100644
--- a/libc/src/threads/linux/cnd_signal.cpp
+++ b/libc/src/threads/linux/cnd_signal.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/cnd_signal.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/CndVar.h"
 
 #include <threads.h> // cnd_t, thrd_error, thrd_success
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(CndVar) == sizeof(cnd_t));
 
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, cnd_signal, (cnd_t * cond)) {
   return thrd_success;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/linux/cnd_wait.cpp b/libc/src/threads/linux/cnd_wait.cpp
index 97cade3f231d7..3633cc85277b9 100644
--- a/libc/src/threads/linux/cnd_wait.cpp
+++ b/libc/src/threads/linux/cnd_wait.cpp
@@ -8,12 +8,13 @@
 
 #include "src/threads/cnd_wait.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/CndVar.h"
 #include "src/__support/threads/mutex.h"
 
 #include <threads.h> // cnd_t, mtx_t, thrd_error, thrd_success
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(CndVar) == sizeof(cnd_t));
 
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, cnd_wait, (cnd_t * cond, mtx_t *mtx)) {
   return cndvar->wait(mutex) ? thrd_error : thrd_success;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/mtx_destroy.cpp b/libc/src/threads/mtx_destroy.cpp
index 5ee4777f5b2c2..f5e3f828b1b0c 100644
--- a/libc/src/threads/mtx_destroy.cpp
+++ b/libc/src/threads/mtx_destroy.cpp
@@ -8,12 +8,13 @@
 
 #include "src/threads/mtx_destroy.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <threads.h> // For mtx_t definition.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, mtx_destroy, (mtx_t *)) {}
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/mtx_destroy.h b/libc/src/threads/mtx_destroy.h
index 1abf5d572f5dc..8919008e00f1e 100644
--- a/libc/src/threads/mtx_destroy.h
+++ b/libc/src/threads/mtx_destroy.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_MTX_DESTROY_H
 #define LLVM_LIBC_SRC_THREADS_MTX_DESTROY_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void mtx_destroy(mtx_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_MTX_DESTROY_H
diff --git a/libc/src/threads/mtx_init.cpp b/libc/src/threads/mtx_init.cpp
index 7cd848d12ee6d..eb0ba5010584e 100644
--- a/libc/src/threads/mtx_init.cpp
+++ b/libc/src/threads/mtx_init.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/mtx_init.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <threads.h> // For mtx_t definition.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(Mutex) <= sizeof(mtx_t),
               "The public mtx_t type cannot accommodate the internal mutex "
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, mtx_init, (mtx_t * m, int type)) {
   return err == MutexError::NONE ? thrd_success : thrd_error;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/mtx_init.h b/libc/src/threads/mtx_init.h
index 69294d7966663..41dc807ff3841 100644
--- a/libc/src/threads/mtx_init.h
+++ b/libc/src/threads/mtx_init.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_MTX_INIT_H
 #define LLVM_LIBC_SRC_THREADS_MTX_INIT_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mtx_init(mtx_t *mutex, int type);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_MTX_INIT_H
diff --git a/libc/src/threads/mtx_lock.cpp b/libc/src/threads/mtx_lock.cpp
index 013a88a8e02b7..5595ebd871998 100644
--- a/libc/src/threads/mtx_lock.cpp
+++ b/libc/src/threads/mtx_lock.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/mtx_lock.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <threads.h> // For mtx_t definition.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The implementation currently handles only plain mutexes.
 LLVM_LIBC_FUNCTION(int, mtx_lock, (mtx_t * mutex)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, mtx_lock, (mtx_t * mutex)) {
   return err == MutexError::NONE ? thrd_success : thrd_error;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/mtx_lock.h b/libc/src/threads/mtx_lock.h
index 15c9e1a12545f..110ac2763a61a 100644
--- a/libc/src/threads/mtx_lock.h
+++ b/libc/src/threads/mtx_lock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_MTX_LOCK_H
 #define LLVM_LIBC_SRC_THREADS_MTX_LOCK_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mtx_lock(mtx_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_MTX_LOCK_H
diff --git a/libc/src/threads/mtx_unlock.cpp b/libc/src/threads/mtx_unlock.cpp
index a72ee4427c5a9..dcb2206e905da 100644
--- a/libc/src/threads/mtx_unlock.cpp
+++ b/libc/src/threads/mtx_unlock.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/mtx_unlock.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/mutex.h"
 
 #include <threads.h> // For mtx_t definition.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The implementation currently handles only plain mutexes.
 LLVM_LIBC_FUNCTION(int, mtx_unlock, (mtx_t * mutex)) {
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(int, mtx_unlock, (mtx_t * mutex)) {
   return err == MutexError::NONE ? thrd_success : thrd_error;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/mtx_unlock.h b/libc/src/threads/mtx_unlock.h
index 54fb034a04a21..54f6f79ae213c 100644
--- a/libc/src/threads/mtx_unlock.h
+++ b/libc/src/threads/mtx_unlock.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_MTX_UNLOCK_H
 #define LLVM_LIBC_SRC_THREADS_MTX_UNLOCK_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int mtx_unlock(mtx_t *mutex);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_MTX_UNLOCK_H
diff --git a/libc/src/threads/thrd_create.cpp b/libc/src/threads/thrd_create.cpp
index 06cba84eb8646..52af72b07c8a8 100644
--- a/libc/src/threads/thrd_create.cpp
+++ b/libc/src/threads/thrd_create.cpp
@@ -8,12 +8,13 @@
 
 #include "src/threads/thrd_create.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <errno.h>
 #include <threads.h> // For thrd_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(thrd_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between thrd_t and internal Thread.");
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, thrd_create,
     return thrd_error;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/thrd_create.h b/libc/src/threads/thrd_create.h
index 0efa6f58c47ea..c7b527b6e4f53 100644
--- a/libc/src/threads/thrd_create.h
+++ b/libc/src/threads/thrd_create.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_THRD_CREATE_H
 #define LLVM_LIBC_SRC_THREADS_THRD_CREATE_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int thrd_create(thrd_t *thread, thrd_start_t func, void *arg);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_THRD_CREATE_H
diff --git a/libc/src/threads/thrd_current.cpp b/libc/src/threads/thrd_current.cpp
index b5ea0432aa523..634159712b629 100644
--- a/libc/src/threads/thrd_current.cpp
+++ b/libc/src/threads/thrd_current.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/thrd_current.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h> // For thrd_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(thrd_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between thrd_t and internal Thread.");
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(thrd_t, thrd_current, ()) {
   return th;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/thrd_current.h b/libc/src/threads/thrd_current.h
index 2125729ccffeb..aec9cd8ed4728 100644
--- a/libc/src/threads/thrd_current.h
+++ b/libc/src/threads/thrd_current.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_THRD_CURRENT_H
 #define LLVM_LIBC_SRC_THREADS_THRD_CURRENT_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 thrd_t thrd_current();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_THRD_CURRENT_H
diff --git a/libc/src/threads/thrd_detach.cpp b/libc/src/threads/thrd_detach.cpp
index 17731c638bd52..a3fe257a34560 100644
--- a/libc/src/threads/thrd_detach.cpp
+++ b/libc/src/threads/thrd_detach.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/thrd_detach.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h> // For thrd_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(thrd_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between thrd_t and internal Thread.");
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, thrd_detach, (thrd_t th)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/thrd_detach.h b/libc/src/threads/thrd_detach.h
index 64f2094acd65d..d139aad1b869b 100644
--- a/libc/src/threads/thrd_detach.h
+++ b/libc/src/threads/thrd_detach.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_THRD_DETACH_H
 #define LLVM_LIBC_SRC_THREADS_THRD_DETACH_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int thrd_detach(thrd_t thread);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_THRD_DETACH_H
diff --git a/libc/src/threads/thrd_equal.cpp b/libc/src/threads/thrd_equal.cpp
index b9717cf121b04..1d901cb697ac2 100644
--- a/libc/src/threads/thrd_equal.cpp
+++ b/libc/src/threads/thrd_equal.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/thrd_equal.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h> // For thrd_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(thrd_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between thrd_t and internal Thread.");
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, thrd_equal, (thrd_t lhs, thrd_t rhs)) {
   return *lhs_internal == *rhs_internal;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/thrd_equal.h b/libc/src/threads/thrd_equal.h
index 5878ea458ba41..5309dbc2758c9 100644
--- a/libc/src/threads/thrd_equal.h
+++ b/libc/src/threads/thrd_equal.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_THRD_EQUAL_H
 #define LLVM_LIBC_SRC_THREADS_THRD_EQUAL_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int thrd_equal(thrd_t lhs, thrd_t rhs);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_THRD_EQUAL_H
diff --git a/libc/src/threads/thrd_exit.cpp b/libc/src/threads/thrd_exit.cpp
index 67a7a419cf99a..72fd95034d0ae 100644
--- a/libc/src/threads/thrd_exit.cpp
+++ b/libc/src/threads/thrd_exit.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/thrd_exit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h> // For thrd_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(thrd_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between thrd_t and internal Thread.");
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(void, thrd_exit, (int retval)) {
   thread_exit(ThreadReturnValue(retval), ThreadStyle::STDC);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/thrd_exit.h b/libc/src/threads/thrd_exit.h
index 19eb027d0357a..0569967d044e4 100644
--- a/libc/src/threads/thrd_exit.h
+++ b/libc/src/threads/thrd_exit.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_THRD_EXIT_H
 #define LLVM_LIBC_SRC_THREADS_THRD_EXIT_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void thrd_exit(int retval);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_THRD_EXIT_H
diff --git a/libc/src/threads/thrd_join.cpp b/libc/src/threads/thrd_join.cpp
index cc8ba4b97a3a5..74211caeb8b61 100644
--- a/libc/src/threads/thrd_join.cpp
+++ b/libc/src/threads/thrd_join.cpp
@@ -8,11 +8,12 @@
 
 #include "src/threads/thrd_join.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h> // For thrd_* type definitions.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 static_assert(sizeof(thrd_t) == sizeof(LIBC_NAMESPACE::Thread),
               "Mismatch between thrd_t and internal Thread.");
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, thrd_join, (thrd_t th, int *retval)) {
   return result == 0 ? thrd_success : thrd_error;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/thrd_join.h b/libc/src/threads/thrd_join.h
index 21a398c6e8352..0889d586fb665 100644
--- a/libc/src/threads/thrd_join.h
+++ b/libc/src/threads/thrd_join.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_THRD_JOIN_H
 #define LLVM_LIBC_SRC_THREADS_THRD_JOIN_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int thrd_join(thrd_t thread, int *retval);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_THRD_JOIN_H
diff --git a/libc/src/threads/tss_create.cpp b/libc/src/threads/tss_create.cpp
index ddea44dce301d..05403a37e221a 100644
--- a/libc/src/threads/tss_create.cpp
+++ b/libc/src/threads/tss_create.cpp
@@ -9,11 +9,12 @@
 #include "tss_create.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tss_create, (tss_t * key, tss_dtor_t dtor)) {
   auto k = LIBC_NAMESPACE::new_tss_key(dtor);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, tss_create, (tss_t * key, tss_dtor_t dtor)) {
   return thrd_success;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/tss_create.h b/libc/src/threads/tss_create.h
index def903e29e06e..6f055a06ec0e5 100644
--- a/libc/src/threads/tss_create.h
+++ b/libc/src/threads/tss_create.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_TSS_CREATE_H
 #define LLVM_LIBC_SRC_THREADS_TSS_CREATE_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tss_create(tss_t *key, tss_dtor_t dtor);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_TSS_CREATE_H
diff --git a/libc/src/threads/tss_delete.cpp b/libc/src/threads/tss_delete.cpp
index a2a4e9aa349ba..c0a07d6049df1 100644
--- a/libc/src/threads/tss_delete.cpp
+++ b/libc/src/threads/tss_delete.cpp
@@ -9,14 +9,15 @@
 #include "tss_delete.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, tss_delete, (tss_t key)) {
   LIBC_NAMESPACE::tss_key_delete(key);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/tss_delete.h b/libc/src/threads/tss_delete.h
index 3efc0d745dd14..72e711147e9cc 100644
--- a/libc/src/threads/tss_delete.h
+++ b/libc/src/threads/tss_delete.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_TSS_DELETE_H
 #define LLVM_LIBC_SRC_THREADS_TSS_DELETE_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void tss_delete(tss_t key);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_TSS_DELETE_H
diff --git a/libc/src/threads/tss_get.cpp b/libc/src/threads/tss_get.cpp
index 9b8c94fbeba28..d6a0b965a6ffb 100644
--- a/libc/src/threads/tss_get.cpp
+++ b/libc/src/threads/tss_get.cpp
@@ -9,12 +9,13 @@
 #include "tss_get.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void *, tss_get, (tss_t key)) { return get_tss_value(key); }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/tss_get.h b/libc/src/threads/tss_get.h
index dfdb79cf122b6..c5dd9cbeaae9a 100644
--- a/libc/src/threads/tss_get.h
+++ b/libc/src/threads/tss_get.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_TSS_GET_H
 #define LLVM_LIBC_SRC_THREADS_TSS_GET_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void *tss_get(tss_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_TSS_GET_H
diff --git a/libc/src/threads/tss_set.cpp b/libc/src/threads/tss_set.cpp
index 640896d14e1c7..a159c9d4fd9f6 100644
--- a/libc/src/threads/tss_set.cpp
+++ b/libc/src/threads/tss_set.cpp
@@ -9,11 +9,12 @@
 #include "tss_set.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, tss_set, (tss_t key, void *data)) {
   if (set_tss_value(key, data))
@@ -22,4 +23,4 @@ LLVM_LIBC_FUNCTION(int, tss_set, (tss_t key, void *data)) {
     return thrd_error;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/threads/tss_set.h b/libc/src/threads/tss_set.h
index 249607fdc700e..68f50f922235c 100644
--- a/libc/src/threads/tss_set.h
+++ b/libc/src/threads/tss_set.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_THREADS_TSS_SET_H
 #define LLVM_LIBC_SRC_THREADS_TSS_SET_H
 
+#include "src/__support/macros/config.h"
 #include <threads.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int tss_set(tss_t, void *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_THREADS_TSS_SET_H
diff --git a/libc/src/time/asctime.cpp b/libc/src/time/asctime.cpp
index 9958903d043cf..d6fbe7316ced0 100644
--- a/libc/src/time/asctime.cpp
+++ b/libc/src/time/asctime.cpp
@@ -8,9 +8,10 @@
 
 #include "src/time/asctime.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/time/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using LIBC_NAMESPACE::time_utils::TimeConstants;
 
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(char *, asctime, (const struct tm *timeptr)) {
   return time_utils::asctime(timeptr, buffer, TimeConstants::ASCTIME_MAX_BYTES);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/asctime.h b/libc/src/time/asctime.h
index 941cd70250e36..623e6dff60c33 100644
--- a/libc/src/time/asctime.h
+++ b/libc/src/time/asctime.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TIME_ASCTIME_H
 #define LLVM_LIBC_SRC_TIME_ASCTIME_H
 
+#include "src/__support/macros/config.h"
 #include <time.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *asctime(const struct tm *timeptr);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_ASCTIME_H
diff --git a/libc/src/time/asctime_r.cpp b/libc/src/time/asctime_r.cpp
index 19a21241829ff..caa22f1cd7783 100644
--- a/libc/src/time/asctime_r.cpp
+++ b/libc/src/time/asctime_r.cpp
@@ -8,9 +8,10 @@
 
 #include "src/time/asctime_r.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/time/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using LIBC_NAMESPACE::time_utils::TimeConstants;
 
@@ -19,4 +20,4 @@ LLVM_LIBC_FUNCTION(char *, asctime_r,
   return time_utils::asctime(timeptr, buffer, TimeConstants::ASCTIME_MAX_BYTES);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/asctime_r.h b/libc/src/time/asctime_r.h
index 04d3c01ddd2b7..328b7dff19c2e 100644
--- a/libc/src/time/asctime_r.h
+++ b/libc/src/time/asctime_r.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TIME_ASCTIME_R_H
 #define LLVM_LIBC_SRC_TIME_ASCTIME_R_H
 
+#include "src/__support/macros/config.h"
 #include <time.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *asctime_r(const struct tm *timeptr, char *buffer);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_ASCTIME_R_H
diff --git a/libc/src/time/clock.h b/libc/src/time/clock.h
index f5d14d036e138..1a794faa958a9 100644
--- a/libc/src/time/clock.h
+++ b/libc/src/time/clock.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_TIME_CLOCK_H
 
 #include "hdr/types/clock_t.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 clock_t clock();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_CLOCK_H
diff --git a/libc/src/time/clock_gettime.h b/libc/src/time/clock_gettime.h
index 48e81a3554291..9f061d2255cb9 100644
--- a/libc/src/time/clock_gettime.h
+++ b/libc/src/time/clock_gettime.h
@@ -11,11 +11,12 @@
 
 #include "hdr/types/clockid_t.h"
 #include "hdr/types/struct_timespec.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int clock_gettime(clockid_t clockid, timespec *tp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_CLOCK_GETTIME_H
diff --git a/libc/src/time/difftime.cpp b/libc/src/time/difftime.cpp
index 95aa1be7abee1..f295b83e3a3d2 100644
--- a/libc/src/time/difftime.cpp
+++ b/libc/src/time/difftime.cpp
@@ -8,11 +8,12 @@
 
 #include "src/time/difftime.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(double, difftime, (time_t end, time_t beginning)) {
   return static_cast<double>(end - beginning);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/difftime.h b/libc/src/time/difftime.h
index 6498b8b943c22..d5cd593cc5335 100644
--- a/libc/src/time/difftime.h
+++ b/libc/src/time/difftime.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TIME_DIFFTIME_H
 #define LLVM_LIBC_SRC_TIME_DIFFTIME_H
 
+#include "src/__support/macros/config.h"
 #include <time.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 double difftime(time_t end, time_t beginning);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_DIFFTIME_H
diff --git a/libc/src/time/gettimeofday.h b/libc/src/time/gettimeofday.h
index 62ee31edcad67..536d871b858d0 100644
--- a/libc/src/time/gettimeofday.h
+++ b/libc/src/time/gettimeofday.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_TIME_GETTIMEOFDAY_H
 
 #include "hdr/types/struct_timeval.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int gettimeofday(struct timeval *tv, void *tz);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_GETTIMEOFDAY_H
diff --git a/libc/src/time/gmtime.cpp b/libc/src/time/gmtime.cpp
index 8597f2201c4ec..6785d18d43e36 100644
--- a/libc/src/time/gmtime.cpp
+++ b/libc/src/time/gmtime.cpp
@@ -8,13 +8,14 @@
 
 #include "src/time/gmtime.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/time/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(struct tm *, gmtime, (const time_t *timer)) {
   static struct tm tm_out;
   return time_utils::gmtime_internal(timer, &tm_out);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/gmtime.h b/libc/src/time/gmtime.h
index d361eb27febfa..3de3cebbfde2c 100644
--- a/libc/src/time/gmtime.h
+++ b/libc/src/time/gmtime.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TIME_GMTIME_H
 #define LLVM_LIBC_SRC_TIME_GMTIME_H
 
+#include "src/__support/macros/config.h"
 #include <time.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct tm *gmtime(const time_t *timer);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_GMTIME_H
diff --git a/libc/src/time/gmtime_r.cpp b/libc/src/time/gmtime_r.cpp
index 15a0c0687158f..d506b526edfb0 100644
--- a/libc/src/time/gmtime_r.cpp
+++ b/libc/src/time/gmtime_r.cpp
@@ -8,13 +8,14 @@
 
 #include "src/time/gmtime_r.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/time/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(struct tm *, gmtime_r,
                    (const time_t *timer, struct tm *result)) {
   return time_utils::gmtime_internal(timer, result);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/gmtime_r.h b/libc/src/time/gmtime_r.h
index f7aac287ecc36..b4f387ef443bc 100644
--- a/libc/src/time/gmtime_r.h
+++ b/libc/src/time/gmtime_r.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TIME_GMTIME_R_H
 #define LLVM_LIBC_SRC_TIME_GMTIME_R_H
 
+#include "src/__support/macros/config.h"
 #include <time.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct tm *gmtime_r(const time_t *timer, struct tm *result);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_GMTIME_R_H
diff --git a/libc/src/time/gpu/clock.cpp b/libc/src/time/gpu/clock.cpp
index 8ddfc27975bba..4cdb1d505aed2 100644
--- a/libc/src/time/gpu/clock.cpp
+++ b/libc/src/time/gpu/clock.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/time/clock.h"
+#include "src/__support/macros/config.h"
 #include "src/time/gpu/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(clock_t, clock, ()) {
   if (!GPU_CLOCKS_PER_SEC)
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(clock_t, clock, ()) {
   return clock_t(ticks * (CLOCKS_PER_SEC / GPU_CLOCKS_PER_SEC));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/gpu/nanosleep.cpp b/libc/src/time/gpu/nanosleep.cpp
index dd669ff46c75c..3f4a609dd40eb 100644
--- a/libc/src/time/gpu/nanosleep.cpp
+++ b/libc/src/time/gpu/nanosleep.cpp
@@ -8,9 +8,10 @@
 
 #include "src/time/nanosleep.h"
 
+#include "src/__support/macros/config.h"
 #include "time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 constexpr uint64_t TICKS_PER_SEC = 1000000000UL;
 
@@ -70,4 +71,4 @@ LLVM_LIBC_FUNCTION(int, nanosleep,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/gpu/time_utils.cpp b/libc/src/time/gpu/time_utils.cpp
index 1a674b2fdca2e..38e09f600f369 100644
--- a/libc/src/time/gpu/time_utils.cpp
+++ b/libc/src/time/gpu/time_utils.cpp
@@ -7,8 +7,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "time_utils.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #if defined(LIBC_TARGET_ARCH_IS_AMDGPU)
 // This is expected to be initialized by the runtime if the default value is
@@ -18,4 +19,4 @@ namespace LIBC_NAMESPACE {
 gpu::Constant<uint64_t> __llvm_libc_clock_freq = clock_freq;
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/gpu/time_utils.h b/libc/src/time/gpu/time_utils.h
index 77eeb896f6c37..c631a38d91ba2 100644
--- a/libc/src/time/gpu/time_utils.h
+++ b/libc/src/time/gpu/time_utils.h
@@ -12,7 +12,9 @@
 #include "hdr/time_macros.h"
 #include "hdr/types/clock_t.h"
 #include "src/__support/GPU/utils.h"
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 #if defined(LIBC_TARGET_ARCH_IS_AMDGPU)
 // AMDGPU does not have a single set frequency. Different architectures and
@@ -36,6 +38,6 @@ extern gpu::Constant<uint64_t> __llvm_libc_clock_freq;
 #error "Unsupported target"
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_GPU_TIME_UTILS_H
diff --git a/libc/src/time/linux/clock.cpp b/libc/src/time/linux/clock.cpp
index 2c1eee8e5d60a..f43e1bcad6a3a 100644
--- a/libc/src/time/linux/clock.cpp
+++ b/libc/src/time/linux/clock.cpp
@@ -10,11 +10,12 @@
 #include "hdr/time_macros.h"
 #include "src/__support/CPP/limits.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/time/linux/clock_gettime.h"
 #include "src/__support/time/units.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(clock_t, clock, ()) {
   using namespace time_units;
@@ -43,4 +44,4 @@ LLVM_LIBC_FUNCTION(clock_t, clock, ()) {
                  ts.tv_nsec / (1_s_ns / CLOCKS_PER_SEC));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/linux/clock_gettime.cpp b/libc/src/time/linux/clock_gettime.cpp
index d7b8cfd245bc4..a2b20a6dbc987 100644
--- a/libc/src/time/linux/clock_gettime.cpp
+++ b/libc/src/time/linux/clock_gettime.cpp
@@ -8,10 +8,11 @@
 
 #include "src/time/clock_gettime.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/time/linux/clock_gettime.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO(michaelrj): Move this into time/linux with the other syscalls.
 LLVM_LIBC_FUNCTION(int, clock_gettime,
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, clock_gettime,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/linux/gettimeofday.cpp b/libc/src/time/linux/gettimeofday.cpp
index f868f5ff4d4b3..19d9988ae73a6 100644
--- a/libc/src/time/linux/gettimeofday.cpp
+++ b/libc/src/time/linux/gettimeofday.cpp
@@ -10,11 +10,12 @@
 #include "hdr/time_macros.h"
 #include "hdr/types/suseconds_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/time/linux/clock_gettime.h"
 #include "src/__support/time/units.h"
 #include "src/errno/libc_errno.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO(michaelrj): Move this into time/linux with the other syscalls.
 LLVM_LIBC_FUNCTION(int, gettimeofday,
@@ -38,4 +39,4 @@ LLVM_LIBC_FUNCTION(int, gettimeofday,
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/linux/nanosleep.cpp b/libc/src/time/linux/nanosleep.cpp
index bcfe567191f25..b267c3238b01f 100644
--- a/libc/src/time/linux/nanosleep.cpp
+++ b/libc/src/time/linux/nanosleep.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For syscall functions.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <stdint.h>      // For int64_t.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, nanosleep,
                    (const struct timespec *req, struct timespec *rem)) {
@@ -38,4 +39,4 @@ LLVM_LIBC_FUNCTION(int, nanosleep,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/linux/time.cpp b/libc/src/time/linux/time.cpp
index 32f531efb6d15..20fb86e8e29db 100644
--- a/libc/src/time/linux/time.cpp
+++ b/libc/src/time/linux/time.cpp
@@ -8,11 +8,12 @@
 
 #include "hdr/time_macros.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/time/linux/clock_gettime.h"
 #include "src/errno/libc_errno.h"
 #include "src/time/time_func.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(time_t, time, (time_t * tp)) {
   // TODO: Use the Linux VDSO to fetch the time and avoid the syscall.
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(time_t, time, (time_t * tp)) {
   return time_t(ts.tv_sec);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/mktime.cpp b/libc/src/time/mktime.cpp
index 8a4397e5eac7c..9ea316d504f5b 100644
--- a/libc/src/time/mktime.cpp
+++ b/libc/src/time/mktime.cpp
@@ -8,9 +8,10 @@
 
 #include "src/time/mktime.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/time/time_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using LIBC_NAMESPACE::time_utils::TimeConstants;
 
@@ -112,4 +113,4 @@ LLVM_LIBC_FUNCTION(time_t, mktime, (struct tm * tm_out)) {
   return static_cast<time_t>(seconds);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/mktime.h b/libc/src/time/mktime.h
index a50e97c52321b..2b4c67996555e 100644
--- a/libc/src/time/mktime.h
+++ b/libc/src/time/mktime.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_TIME_MKTIME_H
 #define LLVM_LIBC_SRC_TIME_MKTIME_H
 
+#include "src/__support/macros/config.h"
 #include <time.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 time_t mktime(struct tm *t1);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_MKTIME_H
diff --git a/libc/src/time/nanosleep.h b/libc/src/time/nanosleep.h
index 2309666b2304b..11b7ac0e98a8d 100644
--- a/libc/src/time/nanosleep.h
+++ b/libc/src/time/nanosleep.h
@@ -10,11 +10,12 @@
 #define LLVM_LIBC_SRC_TIME_NANOSLEEP_H
 
 #include "hdr/types/struct_timespec.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int nanosleep(const timespec *req, timespec *rem);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_NANOSLEEP_H
diff --git a/libc/src/time/time_func.h b/libc/src/time/time_func.h
index 2a52392209424..9cfd6cdfb461e 100644
--- a/libc/src/time/time_func.h
+++ b/libc/src/time/time_func.h
@@ -10,13 +10,14 @@
 #define LLVM_LIBC_SRC_TIME_TIME_FUNC_H
 
 #include "hdr/types/time_t.h"
+#include "src/__support/macros/config.h"
 
 // Note this header file is named time_func.h to avoid conflicts with the
 // public header file time.h.
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 time_t time(time_t *tp);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_TIME_FUNC_H
diff --git a/libc/src/time/time_utils.cpp b/libc/src/time/time_utils.cpp
index 713ed21e3191d..509cad8146df8 100644
--- a/libc/src/time/time_utils.cpp
+++ b/libc/src/time/time_utils.cpp
@@ -9,8 +9,9 @@
 #include "src/time/time_utils.h"
 #include "src/__support/CPP/limits.h" // INT_MIN, INT_MAX
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace time_utils {
 
 using LIBC_NAMESPACE::time_utils::TimeConstants;
@@ -150,4 +151,4 @@ int64_t update_from_seconds(int64_t total_seconds, struct tm *tm) {
 }
 
 } // namespace time_utils
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/time_utils.h b/libc/src/time/time_utils.h
index a5da3ad74f343..106870af72997 100644
--- a/libc/src/time/time_utils.h
+++ b/libc/src/time/time_utils.h
@@ -12,12 +12,13 @@
 #include <stddef.h> // For size_t.
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/time/mktime.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace time_utils {
 
 enum Month : int {
@@ -151,6 +152,6 @@ LIBC_INLINE struct tm *gmtime_internal(const time_t *timer, struct tm *result) {
 }
 
 } // namespace time_utils
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_TIME_TIME_UTILS_H
diff --git a/libc/src/unistd/_exit.cpp b/libc/src/unistd/_exit.cpp
index 4b652a2c13fd1..854bf8b8a0c3c 100644
--- a/libc/src/unistd/_exit.cpp
+++ b/libc/src/unistd/_exit.cpp
@@ -9,11 +9,12 @@
 #include "src/unistd/_exit.h"
 #include "src/__support/OSUtil/exit.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] LLVM_LIBC_FUNCTION(void, _exit, (int status)) {
   internal::exit(status);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/_exit.h b/libc/src/unistd/_exit.h
index 141b875321891..e00e27cfe253f 100644
--- a/libc/src/unistd/_exit.h
+++ b/libc/src/unistd/_exit.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD__EXIT_H
 #define LLVM_LIBC_SRC_UNISTD__EXIT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 [[noreturn]] void _exit(int status);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD__EXIT_H
diff --git a/libc/src/unistd/access.h b/libc/src/unistd/access.h
index 7623c853091fd..1471224948e5e 100644
--- a/libc/src/unistd/access.h
+++ b/libc/src/unistd/access.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_ACCESS_H
 #define LLVM_LIBC_SRC_UNISTD_ACCESS_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int access(const char *path, int mode);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_ACCESS_H
diff --git a/libc/src/unistd/chdir.h b/libc/src/unistd/chdir.h
index ca1dd356b7cfe..db2b4dae9db69 100644
--- a/libc/src/unistd/chdir.h
+++ b/libc/src/unistd/chdir.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_CHDIR_H
 #define LLVM_LIBC_SRC_UNISTD_CHDIR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int chdir(const char *path);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_CHDIR_H
diff --git a/libc/src/unistd/close.h b/libc/src/unistd/close.h
index 02e01c24120a0..599be831c0e60 100644
--- a/libc/src/unistd/close.h
+++ b/libc/src/unistd/close.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_CLOSE_H
 #define LLVM_LIBC_SRC_UNISTD_CLOSE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int close(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_CLOSE_H
diff --git a/libc/src/unistd/dup.h b/libc/src/unistd/dup.h
index d6daa5a9ad74d..63f093c0ee436 100644
--- a/libc/src/unistd/dup.h
+++ b/libc/src/unistd/dup.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_DUP_H
 #define LLVM_LIBC_SRC_UNISTD_DUP_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int dup(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_DUP_H
diff --git a/libc/src/unistd/dup2.h b/libc/src/unistd/dup2.h
index ba8c5f4b16010..060c112daf08f 100644
--- a/libc/src/unistd/dup2.h
+++ b/libc/src/unistd/dup2.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_DUP2_H
 #define LLVM_LIBC_SRC_UNISTD_DUP2_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int dup2(int oldfd, int newfd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_DUP2_H
diff --git a/libc/src/unistd/dup3.h b/libc/src/unistd/dup3.h
index 2b1082403daff..f3868867123b4 100644
--- a/libc/src/unistd/dup3.h
+++ b/libc/src/unistd/dup3.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_DUP3_H
 #define LLVM_LIBC_SRC_UNISTD_DUP3_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int dup3(int oldfd, int newfd, int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_DUP3_H
diff --git a/libc/src/unistd/environ.cpp b/libc/src/unistd/environ.cpp
index 2266c7203273d..db7faef63e0a4 100644
--- a/libc/src/unistd/environ.cpp
+++ b/libc/src/unistd/environ.cpp
@@ -6,11 +6,13 @@
 //
 //===----------------------------------------------------------------------===//
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 // This is initialized to the correct value by the statup code.
 extern "C" {
 char **environ = nullptr;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/environ.h b/libc/src/unistd/environ.h
index c09a04f99f883..af989675216c2 100644
--- a/libc/src/unistd/environ.h
+++ b/libc/src/unistd/environ.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_ENVIRON_H
 #define LLVM_LIBC_SRC_UNISTD_ENVIRON_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" char **environ;
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_ENVIRON_H
diff --git a/libc/src/unistd/execv.h b/libc/src/unistd/execv.h
index 7ff366464b4c8..86bf99978af4c 100644
--- a/libc/src/unistd/execv.h
+++ b/libc/src/unistd/execv.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_EXECV_H
 #define LLVM_LIBC_SRC_UNISTD_EXECV_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int execv(const char *path, char *const argv[]);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_EXECV_H
diff --git a/libc/src/unistd/execve.h b/libc/src/unistd/execve.h
index 0054a47d4ddd7..fe3b93076017a 100644
--- a/libc/src/unistd/execve.h
+++ b/libc/src/unistd/execve.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_EXECVE_H
 #define LLVM_LIBC_SRC_UNISTD_EXECVE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int execve(const char *path, char *const argv[], char *const envp[]);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_EXECVE_H
diff --git a/libc/src/unistd/fchdir.h b/libc/src/unistd/fchdir.h
index 267785c919f55..8d1a53bc3f115 100644
--- a/libc/src/unistd/fchdir.h
+++ b/libc/src/unistd/fchdir.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_FCHDIR_H
 #define LLVM_LIBC_SRC_UNISTD_FCHDIR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fchdir(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_FCHDIR_H
diff --git a/libc/src/unistd/fork.h b/libc/src/unistd/fork.h
index 6b1b72a7dfc08..b6fd5763b3a5f 100644
--- a/libc/src/unistd/fork.h
+++ b/libc/src/unistd/fork.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_FORK_H
 #define LLVM_LIBC_SRC_UNISTD_FORK_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t fork();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_FORK_H
diff --git a/libc/src/unistd/fpathconf.h b/libc/src/unistd/fpathconf.h
index f3182c8123618..610e2429123e5 100644
--- a/libc/src/unistd/fpathconf.h
+++ b/libc/src/unistd/fpathconf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_FPATHCONF_H
 #define LLVM_LIBC_SRC_UNISTD_FPATHCONF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long fpathconf(int fd, int name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_FSYNC_H
diff --git a/libc/src/unistd/fsync.h b/libc/src/unistd/fsync.h
index b5742de359d94..5bbf179a9003a 100644
--- a/libc/src/unistd/fsync.h
+++ b/libc/src/unistd/fsync.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_FSYNC_H
 #define LLVM_LIBC_SRC_UNISTD_FSYNC_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int fsync(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_FSYNC_H
diff --git a/libc/src/unistd/ftruncate.h b/libc/src/unistd/ftruncate.h
index 5508ef0718e94..cd8d363727c4a 100644
--- a/libc/src/unistd/ftruncate.h
+++ b/libc/src/unistd/ftruncate.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_FTRUNCATE_H
 #define LLVM_LIBC_SRC_UNISTD_FTRUNCATE_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int ftruncate(int, off_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_FTRUNCATE_H
diff --git a/libc/src/unistd/getcwd.h b/libc/src/unistd/getcwd.h
index ab7038e453276..8b63a91c26b5c 100644
--- a/libc/src/unistd/getcwd.h
+++ b/libc/src/unistd/getcwd.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_GETCWD_H
 #define LLVM_LIBC_SRC_UNISTD_GETCWD_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 char *getcwd(char *buf, size_t size);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_GETCWD_H
diff --git a/libc/src/unistd/geteuid.h b/libc/src/unistd/geteuid.h
index f19cbaefd5792..9469797bd3d4e 100644
--- a/libc/src/unistd/geteuid.h
+++ b/libc/src/unistd/geteuid.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_GETEUID_H
 #define LLVM_LIBC_SRC_UNISTD_GETEUID_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uid_t geteuid();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_GETEUID_H
diff --git a/libc/src/unistd/getopt.cpp b/libc/src/unistd/getopt.cpp
index 2a05500b2d74f..0dba01f6bde07 100644
--- a/libc/src/unistd/getopt.cpp
+++ b/libc/src/unistd/getopt.cpp
@@ -11,6 +11,7 @@
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/File/file.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/fprintf.h"
 
 #include "hdr/types/FILE.h"
@@ -19,7 +20,7 @@
 // just the re-ordering of argv elements such that unknown arguments can be
 // easily iterated over.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename T> struct RefWrapper {
   RefWrapper() = delete;
@@ -202,4 +203,4 @@ LLVM_LIBC_FUNCTION(int, getopt,
   return getopt_r(argc, argv, optstring, impl::ctx);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/getopt.h b/libc/src/unistd/getopt.h
index fe8ae5ff5b91c..1be3331dcd98a 100644
--- a/libc/src/unistd/getopt.h
+++ b/libc/src/unistd/getopt.h
@@ -10,9 +10,10 @@
 #define LLVM_LIBC_SRC_UNISTD_GETOPT_H
 
 #include "hdr/types/FILE.h"
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace impl {
 void set_getopt_state(char **, int *, int *, unsigned *, int *, FILE *);
@@ -20,6 +21,6 @@ void set_getopt_state(char **, int *, int *, unsigned *, int *, FILE *);
 
 int getopt(int argc, char *const argv[], const char *optstring);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_GETOPT_H
diff --git a/libc/src/unistd/getpid.h b/libc/src/unistd/getpid.h
index 5890dbf63681a..c3c55b0c06b10 100644
--- a/libc/src/unistd/getpid.h
+++ b/libc/src/unistd/getpid.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_GETPID_H
 #define LLVM_LIBC_SRC_UNISTD_GETPID_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t getpid();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_GETPID_H
diff --git a/libc/src/unistd/getppid.h b/libc/src/unistd/getppid.h
index a09c7ca224187..d820791bc06fa 100644
--- a/libc/src/unistd/getppid.h
+++ b/libc/src/unistd/getppid.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_GETPPID_H
 #define LLVM_LIBC_SRC_UNISTD_GETPPID_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 pid_t getppid();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_GETPPID_H
diff --git a/libc/src/unistd/getuid.h b/libc/src/unistd/getuid.h
index 35163783518c7..dd82c7119d401 100644
--- a/libc/src/unistd/getuid.h
+++ b/libc/src/unistd/getuid.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_GETUID_H
 #define LLVM_LIBC_SRC_UNISTD_GETUID_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 uid_t getuid();
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_GETUID_H
diff --git a/libc/src/unistd/isatty.h b/libc/src/unistd/isatty.h
index 90a169730fe04..6dd1b7b817171 100644
--- a/libc/src/unistd/isatty.h
+++ b/libc/src/unistd/isatty.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_ISATTY_H
 #define LLVM_LIBC_SRC_UNISTD_ISATTY_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int isatty(int fd);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_ISATTY_H
diff --git a/libc/src/unistd/link.h b/libc/src/unistd/link.h
index a95111f3a7f96..9b27aa1accf4e 100644
--- a/libc/src/unistd/link.h
+++ b/libc/src/unistd/link.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_LINK_H
 #define LLVM_LIBC_SRC_UNISTD_LINK_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int link(const char *, const char *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_LINK_H
diff --git a/libc/src/unistd/linkat.h b/libc/src/unistd/linkat.h
index c53b87e5d1194..bb03e31b95176 100644
--- a/libc/src/unistd/linkat.h
+++ b/libc/src/unistd/linkat.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_LINKAT_H
 #define LLVM_LIBC_SRC_UNISTD_LINKAT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int linkat(int, const char *, int, const char *, int);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_LINKAT_H
diff --git a/libc/src/unistd/linux/access.cpp b/libc/src/unistd/linux/access.cpp
index f062ad43e75ff..e9ad74989b056 100644
--- a/libc/src/unistd/linux/access.cpp
+++ b/libc/src/unistd/linux/access.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, access, (const char *path, int mode)) {
 #ifdef SYS_access
@@ -34,4 +35,4 @@ LLVM_LIBC_FUNCTION(int, access, (const char *path, int mode)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/chdir.cpp b/libc/src/unistd/linux/chdir.cpp
index 61d44ff1c8088..a30d1dc883be8 100644
--- a/libc/src/unistd/linux/chdir.cpp
+++ b/libc/src/unistd/linux/chdir.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, chdir, (const char *path)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_chdir, path);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, chdir, (const char *path)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/close.cpp b/libc/src/unistd/linux/close.cpp
index 084334861abdc..58d42a9673fbe 100644
--- a/libc/src/unistd/linux/close.cpp
+++ b/libc/src/unistd/linux/close.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, close, (int fd)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_close, fd);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, close, (int fd)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/dup.cpp b/libc/src/unistd/linux/dup.cpp
index a2e7d3fdec429..c1710a37f6119 100644
--- a/libc/src/unistd/linux/dup.cpp
+++ b/libc/src/unistd/linux/dup.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, dup, (int fd)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_dup, fd);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, dup, (int fd)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/dup2.cpp b/libc/src/unistd/linux/dup2.cpp
index f6804e2deca5c..51a19a71a7d85 100644
--- a/libc/src/unistd/linux/dup2.cpp
+++ b/libc/src/unistd/linux/dup2.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, dup2, (int oldfd, int newfd)) {
 #ifdef SYS_dup2
@@ -52,4 +53,4 @@ LLVM_LIBC_FUNCTION(int, dup2, (int oldfd, int newfd)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/dup3.cpp b/libc/src/unistd/linux/dup3.cpp
index bf2c25728ca6a..c096ba73c96bd 100644
--- a/libc/src/unistd/linux/dup3.cpp
+++ b/libc/src/unistd/linux/dup3.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, dup3, (int oldfd, int newfd, int flags)) {
   // If dup2 syscall is available, we make use of directly.
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, dup3, (int oldfd, int newfd, int flags)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/execv.cpp b/libc/src/unistd/linux/execv.cpp
index bd134ca523c77..a3f2525ed7ca1 100644
--- a/libc/src/unistd/linux/execv.cpp
+++ b/libc/src/unistd/linux/execv.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/unistd/execv.h"
+#include "src/__support/macros/config.h"
 #include "src/unistd/environ.h"
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
@@ -15,7 +16,7 @@
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, execv, (const char *path, char *const argv[])) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_execve, path, argv,
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, execv, (const char *path, char *const argv[])) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/execve.cpp b/libc/src/unistd/linux/execve.cpp
index b6de0a400c440..37162c4121782 100644
--- a/libc/src/unistd/linux/execve.cpp
+++ b/libc/src/unistd/linux/execve.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/unistd/execve.h"
+#include "src/__support/macros/config.h"
 #include "src/unistd/environ.h"
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
@@ -15,7 +16,7 @@
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, execve,
                    (const char *path, char *const argv[], char *const envp[])) {
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(int, execve,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/fchdir.cpp b/libc/src/unistd/linux/fchdir.cpp
index d24b9badfe448..8196dc63ab1e1 100644
--- a/libc/src/unistd/linux/fchdir.cpp
+++ b/libc/src/unistd/linux/fchdir.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fchdir, (int fd)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_fchdir, fd);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, fchdir, (int fd)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/fork.cpp b/libc/src/unistd/linux/fork.cpp
index 6fa2b990b19a9..7d47665b16d3f 100644
--- a/libc/src/unistd/linux/fork.cpp
+++ b/libc/src/unistd/linux/fork.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/fork_callbacks.h"
 #include "src/__support/threads/thread.h" // For thread self object
 
@@ -17,7 +18,7 @@
 #include <signal.h>      // For SIGCHLD
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // The implementation of fork here is very minimal. We will add more
 // functionality and standard compliance in future.
@@ -51,4 +52,4 @@ LLVM_LIBC_FUNCTION(pid_t, fork, (void)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/fpathconf.cpp b/libc/src/unistd/linux/fpathconf.cpp
index 6643ed1cc9e88..8e0c8bcdfc22f 100644
--- a/libc/src/unistd/linux/fpathconf.cpp
+++ b/libc/src/unistd/linux/fpathconf.cpp
@@ -9,10 +9,11 @@
 #include "src/unistd/fpathconf.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 #include "src/unistd/linux/pathconf_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, fpathconf, (int fd, int name)) {
   if (cpp::optional<statfs_utils::LinuxStatFs> result =
@@ -21,4 +22,4 @@ LLVM_LIBC_FUNCTION(long, fpathconf, (int fd, int name)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/fsync.cpp b/libc/src/unistd/linux/fsync.cpp
index 44d504ec459e3..ae3895bab15f3 100644
--- a/libc/src/unistd/linux/fsync.cpp
+++ b/libc/src/unistd/linux/fsync.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, fsync, (int fd)) {
   int ret = LIBC_NAMESPACE::syscall_impl<int>(SYS_fsync, fd);
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, fsync, (int fd)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/ftruncate.cpp b/libc/src/unistd/linux/ftruncate.cpp
index 795bb98ceae0c..39cb3b5778faa 100644
--- a/libc/src/unistd/linux/ftruncate.cpp
+++ b/libc/src/unistd/linux/ftruncate.cpp
@@ -11,12 +11,13 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stdint.h>      // For uint64_t.
 #include <sys/syscall.h> // For syscall numbers.
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, ftruncate, (int fd, off_t len)) {
 #ifdef SYS_ftruncate
@@ -37,4 +38,4 @@ LLVM_LIBC_FUNCTION(int, ftruncate, (int fd, off_t len)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/getcwd.cpp b/libc/src/unistd/linux/getcwd.cpp
index 11c58f1585564..a10c5004d0e06 100644
--- a/libc/src/unistd/linux/getcwd.cpp
+++ b/libc/src/unistd/linux/getcwd.cpp
@@ -10,6 +10,7 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/string/allocating_string_utils.h" // For strdup.
 
 #include "src/errno/libc_errno.h"
@@ -17,7 +18,7 @@
 #include <stdlib.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 namespace {
 
@@ -63,4 +64,4 @@ LLVM_LIBC_FUNCTION(char *, getcwd, (char *buf, size_t size)) {
   return buf;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/geteuid.cpp b/libc/src/unistd/linux/geteuid.cpp
index 2a7f163fb8cd4..a4bbcc0cb312a 100644
--- a/libc/src/unistd/linux/geteuid.cpp
+++ b/libc/src/unistd/linux/geteuid.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uid_t, geteuid, ()) {
   return LIBC_NAMESPACE::syscall_impl<uid_t>(SYS_geteuid);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/getpid.cpp b/libc/src/unistd/linux/getpid.cpp
index 85730738ca2ef..b24c86a15990f 100644
--- a/libc/src/unistd/linux/getpid.cpp
+++ b/libc/src/unistd/linux/getpid.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, getpid, ()) {
   return LIBC_NAMESPACE::syscall_impl<pid_t>(SYS_getpid);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/getppid.cpp b/libc/src/unistd/linux/getppid.cpp
index 7ee11f32fd008..c55329daa9f9d 100644
--- a/libc/src/unistd/linux/getppid.cpp
+++ b/libc/src/unistd/linux/getppid.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(pid_t, getppid, ()) {
   return LIBC_NAMESPACE::syscall_impl<pid_t>(SYS_getppid);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/getuid.cpp b/libc/src/unistd/linux/getuid.cpp
index c8131803c84aa..ce818ec91bd2a 100644
--- a/libc/src/unistd/linux/getuid.cpp
+++ b/libc/src/unistd/linux/getuid.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(uid_t, getuid, ()) {
   return LIBC_NAMESPACE::syscall_impl<uid_t>(SYS_getuid);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/isatty.cpp b/libc/src/unistd/linux/isatty.cpp
index 205013897525b..e6ea22a714c78 100644
--- a/libc/src/unistd/linux/isatty.cpp
+++ b/libc/src/unistd/linux/isatty.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <sys/ioctl.h>   // For ioctl numbers.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, isatty, (int fd)) {
   constexpr int INIT_VAL = 0x1234abcd;
@@ -31,4 +32,4 @@ LLVM_LIBC_FUNCTION(int, isatty, (int fd)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/link.cpp b/libc/src/unistd/linux/link.cpp
index b5024ad7a59fb..37ca58eab1096 100644
--- a/libc/src/unistd/linux/link.cpp
+++ b/libc/src/unistd/linux/link.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, link, (const char *path1, const char *path2)) {
 #ifdef SYS_link
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, link, (const char *path1, const char *path2)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/linkat.cpp b/libc/src/unistd/linux/linkat.cpp
index c5d071ee83e01..fcd6a5f75a196 100644
--- a/libc/src/unistd/linux/linkat.cpp
+++ b/libc/src/unistd/linux/linkat.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, linkat,
                    (int fd1, const char *path1, int fd2, const char *path2,
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(int, linkat,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/lseek.cpp b/libc/src/unistd/linux/lseek.cpp
index 6f3d9937db245..9486cecf3b123 100644
--- a/libc/src/unistd/linux/lseek.cpp
+++ b/libc/src/unistd/linux/lseek.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/unistd/lseek.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include "src/__support/File/linux/lseekImpl.h"
@@ -16,7 +17,7 @@
 #include <sys/syscall.h> // For syscall numbers.
 #include <unistd.h>      // For off_t.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(off_t, lseek, (int fd, off_t offset, int whence)) {
   auto result = internal::lseekimpl(fd, offset, whence);
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(off_t, lseek, (int fd, off_t offset, int whence)) {
   return result.value();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/pathconf.cpp b/libc/src/unistd/linux/pathconf.cpp
index 11427698232b5..ca1c10bb9f7f6 100644
--- a/libc/src/unistd/linux/pathconf.cpp
+++ b/libc/src/unistd/linux/pathconf.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/unistd/pathconf.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 #include "src/unistd/linux/pathconf_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, pathconf, (const char *path, int name)) {
   if (cpp::optional<statfs_utils::LinuxStatFs> result =
@@ -20,4 +21,4 @@ LLVM_LIBC_FUNCTION(long, pathconf, (const char *path, int name)) {
   return -1;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/pathconf_utils.cpp b/libc/src/unistd/linux/pathconf_utils.cpp
index 3f963ab5aaaf7..035e628dff253 100644
--- a/libc/src/unistd/linux/pathconf_utils.cpp
+++ b/libc/src/unistd/linux/pathconf_utils.cpp
@@ -14,6 +14,7 @@
 #include "hdr/unistd_macros.h"
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 
@@ -27,7 +28,7 @@
 #endif
 #include <linux/magic.h> // For common FS magics
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long filesizebits(const statfs_utils::LinuxStatFs &s) {
   switch (s.f_type) {
@@ -124,4 +125,4 @@ long pathconfig(const statfs_utils::LinuxStatFs &s, int name) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/pathconf_utils.h b/libc/src/unistd/linux/pathconf_utils.h
index 2c0ec0ea292f4..bd34de23cc38e 100644
--- a/libc/src/unistd/linux/pathconf_utils.h
+++ b/libc/src/unistd/linux/pathconf_utils.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_PATHCONF_UTILS_H
 #define LLVM_LIBC_SRC_UNISTD_PATHCONF_UTILS_H
 
+#include "src/__support/macros/config.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long pathconfig(const statfs_utils::LinuxStatFs &s, int name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_PREAD_H
diff --git a/libc/src/unistd/linux/pipe.cpp b/libc/src/unistd/linux/pipe.cpp
index 8cfb8d1d5c2c1..dfcd5bfdaf537 100644
--- a/libc/src/unistd/linux/pipe.cpp
+++ b/libc/src/unistd/linux/pipe.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h" // for MSAN_UNPOISON
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, pipe, (int pipefd[2])) {
 #ifdef SYS_pipe
@@ -32,4 +33,4 @@ LLVM_LIBC_FUNCTION(int, pipe, (int pipefd[2])) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/pread.cpp b/libc/src/unistd/linux/pread.cpp
index 247a7b4d9d509..3e27857f9a2b4 100644
--- a/libc/src/unistd/linux/pread.cpp
+++ b/libc/src/unistd/linux/pread.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h" // for MSAN_UNPOISON
 #include "src/errno/libc_errno.h"
 #include <stdint.h>      // For uint64_t.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, pread,
                    (int fd, void *buf, size_t count, off_t offset)) {
@@ -44,4 +45,4 @@ LLVM_LIBC_FUNCTION(ssize_t, pread,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/pwrite.cpp b/libc/src/unistd/linux/pwrite.cpp
index b0540a09710e7..1b81b2a059494 100644
--- a/libc/src/unistd/linux/pwrite.cpp
+++ b/libc/src/unistd/linux/pwrite.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stdint.h>      // For uint64_t.
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, pwrite,
                    (int fd, const void *buf, size_t count, off_t offset)) {
@@ -43,4 +44,4 @@ LLVM_LIBC_FUNCTION(ssize_t, pwrite,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/read.cpp b/libc/src/unistd/linux/read.cpp
index 41be1eb10c0de..4419900f2330e 100644
--- a/libc/src/unistd/linux/read.cpp
+++ b/libc/src/unistd/linux/read.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h" // for MSAN_UNPOISON
 #include "src/errno/libc_errno.h"
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, read, (int fd, void *buf, size_t count)) {
   ssize_t ret = LIBC_NAMESPACE::syscall_impl<ssize_t>(SYS_read, fd, buf, count);
@@ -28,4 +29,4 @@ LLVM_LIBC_FUNCTION(ssize_t, read, (int fd, void *buf, size_t count)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/readlink.cpp b/libc/src/unistd/linux/readlink.cpp
index 8dee58c8f215f..7b15245004405 100644
--- a/libc/src/unistd/linux/readlink.cpp
+++ b/libc/src/unistd/linux/readlink.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, readlink,
                    (const char *__restrict path, char *__restrict buf,
@@ -36,4 +37,4 @@ LLVM_LIBC_FUNCTION(ssize_t, readlink,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/readlinkat.cpp b/libc/src/unistd/linux/readlinkat.cpp
index 479735d4f4d3d..19a9ff9fbeb72 100644
--- a/libc/src/unistd/linux/readlinkat.cpp
+++ b/libc/src/unistd/linux/readlinkat.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, readlinkat,
                    (int fd, const char *__restrict path, char *__restrict buf,
@@ -29,4 +30,4 @@ LLVM_LIBC_FUNCTION(ssize_t, readlinkat,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/rmdir.cpp b/libc/src/unistd/linux/rmdir.cpp
index 234b0c3a09408..8974468ebcf16 100644
--- a/libc/src/unistd/linux/rmdir.cpp
+++ b/libc/src/unistd/linux/rmdir.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, rmdir, (const char *path)) {
 #ifdef SYS_rmdir
@@ -34,4 +35,4 @@ LLVM_LIBC_FUNCTION(int, rmdir, (const char *path)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/symlink.cpp b/libc/src/unistd/linux/symlink.cpp
index e8983e252b8e3..5efd4df85edab 100644
--- a/libc/src/unistd/linux/symlink.cpp
+++ b/libc/src/unistd/linux/symlink.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, symlink, (const char *path1, const char *path2)) {
 #ifdef SYS_symlink
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, symlink, (const char *path1, const char *path2)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/symlinkat.cpp b/libc/src/unistd/linux/symlinkat.cpp
index 64f02d13f9a0c..63d2e6d1507a5 100644
--- a/libc/src/unistd/linux/symlinkat.cpp
+++ b/libc/src/unistd/linux/symlinkat.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, symlinkat,
                    (const char *path1, int fd, const char *path2)) {
@@ -27,4 +28,4 @@ LLVM_LIBC_FUNCTION(int, symlinkat,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/syscall.cpp b/libc/src/unistd/linux/syscall.cpp
index e0070fe6d805e..5394bff46adfa 100644
--- a/libc/src/unistd/linux/syscall.cpp
+++ b/libc/src/unistd/linux/syscall.cpp
@@ -11,10 +11,11 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <stdarg.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, __llvm_libc_syscall,
                    (long number, long arg1, long arg2, long arg3, long arg4,
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(long, __llvm_libc_syscall,
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/sysconf.cpp b/libc/src/unistd/linux/sysconf.cpp
index d4577c8d3d769..1540eb499ec12 100644
--- a/libc/src/unistd/linux/sysconf.cpp
+++ b/libc/src/unistd/linux/sysconf.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include "src/sys/auxv/getauxval.h"
 #include <sys/auxv.h>
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(long, sysconf, (int name)) {
   long ret = 0;
@@ -30,4 +31,4 @@ LLVM_LIBC_FUNCTION(long, sysconf, (int name)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/truncate.cpp b/libc/src/unistd/linux/truncate.cpp
index 0120cc738a921..283cf4098cf45 100644
--- a/libc/src/unistd/linux/truncate.cpp
+++ b/libc/src/unistd/linux/truncate.cpp
@@ -10,13 +10,14 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <stdint.h>      // For uint64_t.
 #include <sys/syscall.h> // For syscall numbers.
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, truncate, (const char *path, off_t len)) {
 #ifdef SYS_truncate
@@ -36,4 +37,4 @@ LLVM_LIBC_FUNCTION(int, truncate, (const char *path, off_t len)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/unlink.cpp b/libc/src/unistd/linux/unlink.cpp
index e62fb8faa67af..de7cae8b826eb 100644
--- a/libc/src/unistd/linux/unlink.cpp
+++ b/libc/src/unistd/linux/unlink.cpp
@@ -11,11 +11,12 @@
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
 
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, unlink, (const char *path)) {
 #ifdef SYS_unlink
@@ -33,4 +34,4 @@ LLVM_LIBC_FUNCTION(int, unlink, (const char *path)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/unlinkat.cpp b/libc/src/unistd/linux/unlinkat.cpp
index 4ec5e38cb405c..e794f242b9459 100644
--- a/libc/src/unistd/linux/unlinkat.cpp
+++ b/libc/src/unistd/linux/unlinkat.cpp
@@ -10,12 +10,13 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <fcntl.h>
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, unlinkat, (int dfd, const char *path, int flags)) {
 #ifdef SYS_unlinkat
@@ -31,4 +32,4 @@ LLVM_LIBC_FUNCTION(int, unlinkat, (int dfd, const char *path, int flags)) {
   return 0;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/linux/write.cpp b/libc/src/unistd/linux/write.cpp
index bd6c9114f7877..99d5ab7e480b0 100644
--- a/libc/src/unistd/linux/write.cpp
+++ b/libc/src/unistd/linux/write.cpp
@@ -10,11 +10,12 @@
 
 #include "src/__support/OSUtil/syscall.h" // For internal syscall function.
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/errno/libc_errno.h"
 
 #include <sys/syscall.h> // For syscall numbers.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(ssize_t, write, (int fd, const void *buf, size_t count)) {
   ssize_t ret =
@@ -26,4 +27,4 @@ LLVM_LIBC_FUNCTION(ssize_t, write, (int fd, const void *buf, size_t count)) {
   return ret;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/lseek.h b/libc/src/unistd/lseek.h
index 75e33d8a6987d..a8704ec7058dd 100644
--- a/libc/src/unistd/lseek.h
+++ b/libc/src/unistd/lseek.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_LSEEK_H
 #define LLVM_LIBC_SRC_UNISTD_LSEEK_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 off_t lseek(int fd, off_t offset, int whence);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_LSEEK_H
diff --git a/libc/src/unistd/pathconf.h b/libc/src/unistd/pathconf.h
index 6543d738a9b22..d6b891ea8be68 100644
--- a/libc/src/unistd/pathconf.h
+++ b/libc/src/unistd/pathconf.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_PATHCONF_H
 #define LLVM_LIBC_SRC_UNISTD_PATHCONF_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 long pathconf(const char *path, int name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_PREAD_H
diff --git a/libc/src/unistd/pipe.h b/libc/src/unistd/pipe.h
index 0e20bb49c0584..d5cccf3ad7b18 100644
--- a/libc/src/unistd/pipe.h
+++ b/libc/src/unistd/pipe.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_PIPE_H
 #define LLVM_LIBC_SRC_UNISTD_PIPE_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int pipe(int pipefd[2]);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_PIPE_H
diff --git a/libc/src/unistd/pread.h b/libc/src/unistd/pread.h
index 6ecfef4c82c60..4723675e82a20 100644
--- a/libc/src/unistd/pread.h
+++ b/libc/src/unistd/pread.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_PREAD_H
 #define LLVM_LIBC_SRC_UNISTD_PREAD_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t pread(int fd, void *buf, size_t count, off_t offset);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_PREAD_H
diff --git a/libc/src/unistd/pwrite.h b/libc/src/unistd/pwrite.h
index 535c9217c2353..baffbe48b6437 100644
--- a/libc/src/unistd/pwrite.h
+++ b/libc/src/unistd/pwrite.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_PWRITE_H
 #define LLVM_LIBC_SRC_UNISTD_PWRITE_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_PWRITE_H
diff --git a/libc/src/unistd/read.h b/libc/src/unistd/read.h
index 05a56a2fdeaeb..01231cb82e35e 100644
--- a/libc/src/unistd/read.h
+++ b/libc/src/unistd/read.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_READ_H
 #define LLVM_LIBC_SRC_UNISTD_READ_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t read(int fd, void *buf, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_READ_H
diff --git a/libc/src/unistd/readlink.h b/libc/src/unistd/readlink.h
index c93c430988c79..a73e9740c7463 100644
--- a/libc/src/unistd/readlink.h
+++ b/libc/src/unistd/readlink.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_READLINK_H
 #define LLVM_LIBC_SRC_UNISTD_READLINK_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t readlink(const char *__restrict, char *__restrict, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_READLINK_H
diff --git a/libc/src/unistd/readlinkat.h b/libc/src/unistd/readlinkat.h
index a4357efec1a1b..6bdd48b537fc8 100644
--- a/libc/src/unistd/readlinkat.h
+++ b/libc/src/unistd/readlinkat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_READLINKAT_H
 #define LLVM_LIBC_SRC_UNISTD_READLINKAT_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t readlinkat(int, const char *__restrict, char *__restrict, size_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_READLINKAT_H
diff --git a/libc/src/unistd/rmdir.h b/libc/src/unistd/rmdir.h
index 55dcbafe1f7df..abf5bf720f307 100644
--- a/libc/src/unistd/rmdir.h
+++ b/libc/src/unistd/rmdir.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_RMDIR_H
 #define LLVM_LIBC_SRC_UNISTD_RMDIR_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int rmdir(const char *path);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_RMDIR_H
diff --git a/libc/src/unistd/swab.cpp b/libc/src/unistd/swab.cpp
index 5c2f5074ff978..643079a40ab5c 100644
--- a/libc/src/unistd/swab.cpp
+++ b/libc/src/unistd/swab.cpp
@@ -9,8 +9,9 @@
 #include "src/unistd/swab.h"
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(void, swab,
                    (const void *__restrict from, void *__restrict to,
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(void, swab,
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/unistd/swab.h b/libc/src/unistd/swab.h
index 0a6aa49540b5b..caa9c71001097 100644
--- a/libc/src/unistd/swab.h
+++ b/libc/src/unistd/swab.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_SWAB_H
 #define LLVM_LIBC_SRC_UNISTD_SWAB_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h> // For ssize_t
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 void swab(const void *__restrict from, void *__restrict to, ssize_t n);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_SWAB_H
diff --git a/libc/src/unistd/symlink.h b/libc/src/unistd/symlink.h
index 0a0124ccbc7ab..47f04f8845b46 100644
--- a/libc/src/unistd/symlink.h
+++ b/libc/src/unistd/symlink.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_SYMLINK_H
 #define LLVM_LIBC_SRC_UNISTD_SYMLINK_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int symlink(const char *, const char *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_SYMLINK_H
diff --git a/libc/src/unistd/symlinkat.h b/libc/src/unistd/symlinkat.h
index ecca4380e98eb..9f8ad517af5a6 100644
--- a/libc/src/unistd/symlinkat.h
+++ b/libc/src/unistd/symlinkat.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_SYMLINKAT_H
 #define LLVM_LIBC_SRC_UNISTD_SYMLINKAT_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int symlinkat(const char *, int, const char *);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_SYMLINKAT_H
diff --git a/libc/src/unistd/syscall.h b/libc/src/unistd/syscall.h
index a41d9778e0559..db70745719cfe 100644
--- a/libc/src/unistd/syscall.h
+++ b/libc/src/unistd/syscall.h
@@ -9,14 +9,15 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_SYSCALL_H
 #define LLVM_LIBC_SRC_UNISTD_SYSCALL_H
 
+#include "src/__support/macros/config.h"
 #include <stdarg.h>
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long __llvm_libc_syscall(long number, long arg1, long arg2, long arg3,
                          long arg4, long arg5, long arg6);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_SYSCALL_H
diff --git a/libc/src/unistd/sysconf.h b/libc/src/unistd/sysconf.h
index 89c5efa574636..1b3f39e413508 100644
--- a/libc/src/unistd/sysconf.h
+++ b/libc/src/unistd/sysconf.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_SYSCONF_H
 #define LLVM_LIBC_SRC_UNISTD_SYSCONF_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 long sysconf(int name);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_SYSCONF_H
diff --git a/libc/src/unistd/truncate.h b/libc/src/unistd/truncate.h
index 5245b6bf2ed02..9ba5cf8317529 100644
--- a/libc/src/unistd/truncate.h
+++ b/libc/src/unistd/truncate.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_TRUNCATE_H
 #define LLVM_LIBC_SRC_UNISTD_TRUNCATE_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int truncate(const char *, off_t);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_TRUNCATE_H
diff --git a/libc/src/unistd/unlink.h b/libc/src/unistd/unlink.h
index d1d34fa1a8ac5..71ef19fa22c1b 100644
--- a/libc/src/unistd/unlink.h
+++ b/libc/src/unistd/unlink.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_UNLINK_H
 #define LLVM_LIBC_SRC_UNISTD_UNLINK_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int unlink(const char *path);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_UNLINK_H
diff --git a/libc/src/unistd/unlinkat.h b/libc/src/unistd/unlinkat.h
index 81d23bdf5cec3..2ce46b8ec8a8b 100644
--- a/libc/src/unistd/unlinkat.h
+++ b/libc/src/unistd/unlinkat.h
@@ -9,10 +9,12 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_UNLINKAT_H
 #define LLVM_LIBC_SRC_UNISTD_UNLINKAT_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 
 int unlinkat(int dfd, const char *path, int flags);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_UNLINKAT_H
diff --git a/libc/src/unistd/write.h b/libc/src/unistd/write.h
index 52cdff348085f..e40ce19e21769 100644
--- a/libc/src/unistd/write.h
+++ b/libc/src/unistd/write.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_UNISTD_WRITE_H
 #define LLVM_LIBC_SRC_UNISTD_WRITE_H
 
+#include "src/__support/macros/config.h"
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 ssize_t write(int fd, const void *buf, size_t count);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_UNISTD_WRITE_H
diff --git a/libc/src/wchar/btowc.cpp b/libc/src/wchar/btowc.cpp
index ea093bc5f2552..6e67f1ba02975 100644
--- a/libc/src/wchar/btowc.cpp
+++ b/libc/src/wchar/btowc.cpp
@@ -8,11 +8,12 @@
 
 #include "src/wchar/btowc.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/wctype_utils.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, btowc, (wint_t c)) {
   auto result = internal::btowc(c);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, btowc, (wint_t c)) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/wchar/btowc.h b/libc/src/wchar/btowc.h
index de67f157b5729..1f41bd68f9c17 100644
--- a/libc/src/wchar/btowc.h
+++ b/libc/src/wchar/btowc.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_WCHAR_BTOWC_H
 #define LLVM_LIBC_SRC_WCHAR_BTOWC_H
 
+#include "src/__support/macros/config.h"
 #include <wchar.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 wint_t btowc(int c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_WCHAR_BTOWC_H
diff --git a/libc/src/wchar/wctob.cpp b/libc/src/wchar/wctob.cpp
index 885c526d0d634..33f67feb90b8d 100644
--- a/libc/src/wchar/wctob.cpp
+++ b/libc/src/wchar/wctob.cpp
@@ -8,11 +8,12 @@
 
 #include "src/wchar/wctob.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/wctype_utils.h"
 
 #include "hdr/stdio_macros.h" // for EOF.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(int, wctob, (wint_t c)) {
   auto result = internal::wctob(c);
@@ -23,4 +24,4 @@ LLVM_LIBC_FUNCTION(int, wctob, (wint_t c)) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/wchar/wctob.h b/libc/src/wchar/wctob.h
index 1cc0c211e98a5..95f349ed8e448 100644
--- a/libc/src/wchar/wctob.h
+++ b/libc/src/wchar/wctob.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_SRC_WCHAR_WCTOB_H
 #define LLVM_LIBC_SRC_WCHAR_WCTOB_H
 
+#include "src/__support/macros/config.h"
 #include <wchar.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int wctob(wint_t c);
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_SRC_WCHAR_WCTOB_H
diff --git a/libc/startup/baremetal/fini.cpp b/libc/startup/baremetal/fini.cpp
index 745bd094b24fe..263d7192cc607 100644
--- a/libc/startup/baremetal/fini.cpp
+++ b/libc/startup/baremetal/fini.cpp
@@ -6,10 +6,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" {
 extern uintptr_t __fini_array_start[];
@@ -24,4 +25,4 @@ extern "C" void __libc_fini_array(void) {
     reinterpret_cast<FiniCallback *>(__fini_array_start[i - 1])();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/startup/baremetal/init.cpp b/libc/startup/baremetal/init.cpp
index 21ec0e5ca756d..ce387017c4972 100644
--- a/libc/startup/baremetal/init.cpp
+++ b/libc/startup/baremetal/init.cpp
@@ -6,10 +6,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" {
 extern uintptr_t __preinit_array_start[];
@@ -29,4 +30,4 @@ extern "C" void __libc_init_array(void) {
     reinterpret_cast<InitCallback *>(__init_array_start[i])();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/startup/gpu/amdgpu/start.cpp b/libc/startup/gpu/amdgpu/start.cpp
index dcef719d169d0..6bda151023c8f 100644
--- a/libc/startup/gpu/amdgpu/start.cpp
+++ b/libc/startup/gpu/amdgpu/start.cpp
@@ -8,12 +8,13 @@
 
 #include "src/__support/GPU/utils.h"
 #include "src/__support/RPC/rpc_client.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/atexit.h"
 #include "src/stdlib/exit.h"
 
 extern "C" int main(int argc, char **argv, char **envp);
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" uintptr_t __init_array_start[];
 extern "C" uintptr_t __init_array_end[];
@@ -35,7 +36,7 @@ static void call_fini_array_callbacks() {
     reinterpret_cast<FiniCallback *>(__fini_array_start[i - 1])();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 extern "C" [[gnu::visibility("protected"), clang::amdgpu_kernel]] void
 _begin(int argc, char **argv, char **env) {
diff --git a/libc/startup/gpu/nvptx/start.cpp b/libc/startup/gpu/nvptx/start.cpp
index 77fe921be4e02..b1ef944c4aa28 100644
--- a/libc/startup/gpu/nvptx/start.cpp
+++ b/libc/startup/gpu/nvptx/start.cpp
@@ -8,12 +8,13 @@
 
 #include "src/__support/GPU/utils.h"
 #include "src/__support/RPC/rpc_client.h"
+#include "src/__support/macros/config.h"
 #include "src/stdlib/atexit.h"
 #include "src/stdlib/exit.h"
 
 extern "C" int main(int argc, char **argv, char **envp);
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 extern "C" {
 // Nvidia's 'nvlink' linker does not provide these symbols. We instead need
@@ -41,7 +42,7 @@ static void call_fini_array_callbacks() {
     reinterpret_cast<FiniCallback *>(__fini_array_start[i - 1])();
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 extern "C" [[gnu::visibility("protected"), clang::nvptx_kernel]] void
 _begin(int argc, char **argv, char **env) {
diff --git a/libc/startup/linux/aarch64/tls.cpp b/libc/startup/linux/aarch64/tls.cpp
index 9f143f962892d..ea1b50c9fb209 100644
--- a/libc/startup/linux/aarch64/tls.cpp
+++ b/libc/startup/linux/aarch64/tls.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/OSUtil/syscall.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "startup/linux/do_start.h"
@@ -18,7 +19,7 @@
 // Source documentation:
 // https://github.com/ARM-software/abi-aa/tree/main/sysvabi64
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #ifdef SYS_mmap2
 static constexpr long MMAP_SYSCALL_NUMBER = SYS_mmap2;
@@ -94,4 +95,4 @@ bool set_thread_ptr(uintptr_t val) {
 #endif
   return true;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/startup/linux/do_start.cpp b/libc/startup/linux/do_start.cpp
index 30ab1f0e26ea5..824c0e1cf8f26 100644
--- a/libc/startup/linux/do_start.cpp
+++ b/libc/startup/linux/do_start.cpp
@@ -8,6 +8,7 @@
 #include "startup/linux/do_start.h"
 #include "include/llvm-libc-macros/link-macros.h"
 #include "src/__support/OSUtil/syscall.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 #include "src/stdlib/atexit.h"
 #include "src/stdlib/exit.h"
@@ -37,7 +38,7 @@ extern uintptr_t __fini_array_end[];
   gnu::visibility("hidden")]] extern const Elf64_Dyn _DYNAMIC[]; // NOLINT
 }
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 AppProperties app;
 
 using InitCallback = void(int, char **, char **);
@@ -150,4 +151,4 @@ static ThreadAttributes main_thread_attrib;
   exit(retval);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/startup/linux/do_start.h b/libc/startup/linux/do_start.h
index a0e7a3cd69562..dd41c9bd384e7 100644
--- a/libc/startup/linux/do_start.h
+++ b/libc/startup/linux/do_start.h
@@ -7,8 +7,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "config/linux/app.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 // setup the libc runtime and invoke the main routine.
 [[noreturn]] void do_start();
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/startup/linux/riscv/tls.cpp b/libc/startup/linux/riscv/tls.cpp
index 997912c77e737..04d44e6ca882e 100644
--- a/libc/startup/linux/riscv/tls.cpp
+++ b/libc/startup/linux/riscv/tls.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/OSUtil/syscall.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/thread.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "startup/linux/do_start.h"
@@ -14,7 +15,7 @@
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #ifdef SYS_mmap2
 static constexpr long MMAP_SYSCALL_NUMBER = SYS_mmap2;
@@ -71,4 +72,4 @@ bool set_thread_ptr(uintptr_t val) {
   LIBC_INLINE_ASM("mv tp, %0\n\t" : : "r"(val));
   return true;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/startup/linux/x86_64/tls.cpp b/libc/startup/linux/x86_64/tls.cpp
index 8b0fa98736244..d6b549a2e6c46 100644
--- a/libc/startup/linux/x86_64/tls.cpp
+++ b/libc/startup/linux/x86_64/tls.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/OSUtil/syscall.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/inline_memcpy.h"
 #include "startup/linux/do_start.h"
 
@@ -14,7 +15,7 @@
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 #ifdef SYS_mmap2
 static constexpr long MMAP_SYSCALL_NUMBER = SYS_mmap2;
@@ -90,4 +91,4 @@ void cleanup_tls(uintptr_t addr, uintptr_t size) {
 bool set_thread_ptr(uintptr_t val) {
   return syscall_impl(SYS_arch_prctl, ARCH_SET_FS, val) != -1;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/IntegrationTest/test.cpp b/libc/test/IntegrationTest/test.cpp
index 2751f3180a8e3..871bdf0dc562b 100644
--- a/libc/test/IntegrationTest/test.cpp
+++ b/libc/test/IntegrationTest/test.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 #include <stdint.h>
 
@@ -19,7 +20,7 @@
 // entrypoint to the internal implementation of the function used for testing.
 // This is done manually as not all targets support aliases.
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int bcmp(const void *lhs, const void *rhs, size_t count);
 void bzero(void *ptr, size_t count);
@@ -29,7 +30,7 @@ void *memmove(void *dst, const void *src, size_t count);
 void *memset(void *ptr, int value, size_t count);
 int atexit(void (*func)(void));
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 extern "C" {
 
diff --git a/libc/test/UnitTest/BazelFilePath.cpp b/libc/test/UnitTest/BazelFilePath.cpp
index 79730868ecdf3..ee5fcaaa63d91 100644
--- a/libc/test/UnitTest/BazelFilePath.cpp
+++ b/libc/test/UnitTest/BazelFilePath.cpp
@@ -12,8 +12,10 @@
 
 #include "src/__support/CPP/string.h"
 #include "src/__support/c_string.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 CString libc_make_test_file_path_func(const char *file_name) {
   // This is the path to the folder bazel wants the test outputs written to.
@@ -22,4 +24,5 @@ CString libc_make_test_file_path_func(const char *file_name) {
   return cpp::string(UNDECLARED_OUTPUTS_PATH) + file_name;
 }
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/CmakeFilePath.cpp b/libc/test/UnitTest/CmakeFilePath.cpp
index 2a7d1c39d3205..b7bc5a8573dc8 100644
--- a/libc/test/UnitTest/CmakeFilePath.cpp
+++ b/libc/test/UnitTest/CmakeFilePath.cpp
@@ -10,11 +10,14 @@
 
 #include "src/__support/CPP/string.h"
 #include "src/__support/c_string.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 CString libc_make_test_file_path_func(const char *file_name) {
   return cpp::string(file_name);
 }
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/ErrnoSetterMatcher.h b/libc/test/UnitTest/ErrnoSetterMatcher.h
index 745ba4182023e..a895c5044b0ad 100644
--- a/libc/test/UnitTest/ErrnoSetterMatcher.h
+++ b/libc/test/UnitTest/ErrnoSetterMatcher.h
@@ -12,11 +12,12 @@
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/fpbits_str.h"
 #include "src/__support/StringUtil/error_to_string.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 #include "src/errno/libc_errno.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 namespace internal {
@@ -182,6 +183,6 @@ static ErrnoSetterMatcherBuilder<RetT> returns(internal::Comparator<RetT> cmp) {
 } // namespace ErrnoSetterMatcher
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_ERRNOSETTERMATCHER_H
diff --git a/libc/test/UnitTest/ExecuteFunction.h b/libc/test/UnitTest/ExecuteFunction.h
index 95950567e74a2..511249be0f3c9 100644
--- a/libc/test/UnitTest/ExecuteFunction.h
+++ b/libc/test/UnitTest/ExecuteFunction.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_TEST_UNITTEST_EXECUTEFUNCTION_H
 #define LLVM_LIBC_TEST_UNITTEST_EXECUTEFUNCTION_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testutils {
 
 class FunctionCaller {
@@ -47,6 +48,6 @@ invoke_in_subprocess(FunctionCaller *func,
 const char *signal_as_string(int signum);
 
 } // namespace testutils
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_UNITTEST_EXECUTEFUNCTION_H
diff --git a/libc/test/UnitTest/ExecuteFunctionUnix.cpp b/libc/test/UnitTest/ExecuteFunctionUnix.cpp
index b244337f9c6fc..3a657c00851c7 100644
--- a/libc/test/UnitTest/ExecuteFunctionUnix.cpp
+++ b/libc/test/UnitTest/ExecuteFunctionUnix.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "ExecuteFunction.h"
+#include "src/__support/macros/config.h"
 #include <cassert>
 #include <cstdlib>
 #include <cstring>
@@ -17,7 +18,7 @@
 #include <sys/wait.h>
 #include <unistd.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testutils {
 
 bool ProcessStatus::exited_normally() { return WIFEXITED(platform_defined); }
@@ -78,4 +79,4 @@ ProcessStatus invoke_in_subprocess(FunctionCaller *func, unsigned timeout_ms) {
 const char *signal_as_string(int signum) { return ::strsignal(signum); }
 
 } // namespace testutils
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/FEnvSafeTest.cpp b/libc/test/UnitTest/FEnvSafeTest.cpp
index 905aa92893738..168b1d4159d8d 100644
--- a/libc/test/UnitTest/FEnvSafeTest.cpp
+++ b/libc/test/UnitTest/FEnvSafeTest.cpp
@@ -9,9 +9,11 @@
 #include "FEnvSafeTest.h"
 
 #include "src/__support/FPUtil/FEnvImpl.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/architectures.h"
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 void FEnvSafeTest::PreserveFEnv::check() {
   fenv_t after;
@@ -81,4 +83,5 @@ void FEnvSafeTest::expect_fenv_eq(const fenv_t &before_fenv,
 #endif
 }
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/FEnvSafeTest.h b/libc/test/UnitTest/FEnvSafeTest.h
index d5a8bb7ee667c..a3c5e62120bc0 100644
--- a/libc/test/UnitTest/FEnvSafeTest.h
+++ b/libc/test/UnitTest/FEnvSafeTest.h
@@ -11,9 +11,11 @@
 
 #include "hdr/types/fenv_t.h"
 #include "src/__support/CPP/utility.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 // This provides a test fixture (or base class for other test fixtures) that
 // asserts that each test does not leave the FPU state represented by `fenv_t`
@@ -96,6 +98,7 @@ class FEnvSafeTest : public Test {
   bool should_be_unchanged = false;
 };
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_UNITTEST_FPENVSAFE_H
diff --git a/libc/test/UnitTest/FPExceptMatcher.cpp b/libc/test/UnitTest/FPExceptMatcher.cpp
index c1dfc53924662..37ba0a0a7abde 100644
--- a/libc/test/UnitTest/FPExceptMatcher.cpp
+++ b/libc/test/UnitTest/FPExceptMatcher.cpp
@@ -8,6 +8,7 @@
 
 #include "FPExceptMatcher.h"
 
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
 #include "hdr/types/fenv_t.h"
@@ -18,7 +19,7 @@
 
 #if LIBC_TEST_HAS_MATCHERS()
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 #if defined(_WIN32)
@@ -52,6 +53,6 @@ FPExceptMatcher::FPExceptMatcher(FunctionCaller *func) {
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TEST_HAS_MATCHERS()
diff --git a/libc/test/UnitTest/FPExceptMatcher.h b/libc/test/UnitTest/FPExceptMatcher.h
index 5136e381081ee..978501df7e3ed 100644
--- a/libc/test/UnitTest/FPExceptMatcher.h
+++ b/libc/test/UnitTest/FPExceptMatcher.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_TEST_UNITTEST_FPEXCEPTMATCHER_H
 #define LLVM_LIBC_TEST_UNITTEST_FPEXCEPTMATCHER_H
 
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 #include "test/UnitTest/TestLogger.h"
 
 #if LIBC_TEST_HAS_MATCHERS()
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 // TODO: Make the matcher match specific exceptions instead of just identifying
@@ -51,7 +52,7 @@ class FPExceptMatcher : public Matcher<bool> {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define ASSERT_RAISES_FP_EXCEPT(func)                                          \
   ASSERT_THAT(                                                                 \
diff --git a/libc/test/UnitTest/FPMatcher.h b/libc/test/UnitTest/FPMatcher.h
index 86b823260e197..6b50f3d23075a 100644
--- a/libc/test/UnitTest/FPMatcher.h
+++ b/libc/test/UnitTest/FPMatcher.h
@@ -14,13 +14,14 @@
 #include "src/__support/FPUtil/FEnvImpl.h"
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/fpbits_str.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/RoundingModeUtils.h"
 #include "test/UnitTest/StringUtils.h"
 #include "test/UnitTest/Test.h"
 
 #include "hdr/math_macros.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 template <typename T, TestCond Condition> class FPMatcher : public Matcher<T> {
@@ -87,7 +88,7 @@ template <typename T> struct FPTest : public Test {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define DECLARE_SPECIAL_CONSTANTS(T)                                           \
   using FPBits = LIBC_NAMESPACE::fputil::FPBits<T>;                            \
diff --git a/libc/test/UnitTest/GTest.h b/libc/test/UnitTest/GTest.h
index d1637d3ba6583..fd6be9c02fd7c 100644
--- a/libc/test/UnitTest/GTest.h
+++ b/libc/test/UnitTest/GTest.h
@@ -9,14 +9,17 @@
 #ifndef LLVM_LIBC_UTILS_UNITTEST_GTEST_H
 #define LLVM_LIBC_UTILS_UNITTEST_GTEST_H
 
+#include "src/__support/macros/config.h"
 #include <gtest/gtest.h>
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 using ::testing::Matcher;
 using ::testing::Test;
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
 
 #define LIBC_TEST_HAS_MATCHERS() (1)
 
diff --git a/libc/test/UnitTest/HermeticTestUtils.cpp b/libc/test/UnitTest/HermeticTestUtils.cpp
index ca854ad94393e..85e5cf02ff613 100644
--- a/libc/test/UnitTest/HermeticTestUtils.cpp
+++ b/libc/test/UnitTest/HermeticTestUtils.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/common.h"
+#include "src/__support/macros/config.h"
 #include <stddef.h>
 #include <stdint.h>
 
@@ -14,7 +15,7 @@
 #include "src/sys/auxv/getauxval.h"
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int bcmp(const void *lhs, const void *rhs, size_t count);
 void bzero(void *ptr, size_t count);
@@ -30,7 +31,7 @@ int atexit(void (*func)(void));
 // always returns 0 to indicate a failure.
 [[gnu::weak]] unsigned long getauxval(unsigned long id) { return 0; }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 namespace {
 
diff --git a/libc/test/UnitTest/LibcDeathTestExecutors.cpp b/libc/test/UnitTest/LibcDeathTestExecutors.cpp
index fa6d16410bb7a..e43dbb19ad152 100644
--- a/libc/test/UnitTest/LibcDeathTestExecutors.cpp
+++ b/libc/test/UnitTest/LibcDeathTestExecutors.cpp
@@ -8,12 +8,13 @@
 
 #include "LibcTest.h"
 
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/ExecuteFunction.h"
 #include "test/UnitTest/TestLogger.h"
 
 #include <cassert>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 bool Test::testProcessKilled(testutils::FunctionCaller *Func, int Signal,
@@ -101,4 +102,4 @@ bool Test::testProcessExits(testutils::FunctionCaller *Func, int ExitCode,
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/LibcTest.cpp b/libc/test/UnitTest/LibcTest.cpp
index 539a2e4d196e2..72aeaf20e1dac 100644
--- a/libc/test/UnitTest/LibcTest.cpp
+++ b/libc/test/UnitTest/LibcTest.cpp
@@ -12,6 +12,7 @@
 #include "src/__support/CPP/string.h"
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/fixed_point/fx_rep.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 #include "src/__support/uint128.h"
 #include "test/UnitTest/TestLogger.h"
@@ -27,7 +28,7 @@ extern "C" clock_t clock() noexcept { return LIBC_NAMESPACE::clock(); }
 #define LIBC_TEST_USE_CLOCK
 #endif
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 namespace internal {
@@ -296,4 +297,4 @@ bool Test::testMatch(bool MatchResult, MatcherBase &Matcher, const char *LHSStr,
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/LibcTest.h b/libc/test/UnitTest/LibcTest.h
index 42ba37af45834..2b972004e9eea 100644
--- a/libc/test/UnitTest/LibcTest.h
+++ b/libc/test/UnitTest/LibcTest.h
@@ -12,6 +12,7 @@
 // This is defined as a simple macro in test.h so that it exists for platforms
 // that don't use our test infrastructure. It's defined as a proper function
 // below.
+#include "src/__support/macros/config.h"
 #ifdef libc_make_test_file_path
 #undef libc_make_test_file_path
 #endif // libc_make_test_file_path
@@ -32,7 +33,7 @@
 #include "test/UnitTest/ExecuteFunction.h"
 #include "test/UnitTest/TestLogger.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 // Only the following conditions are supported. Notice that we do not have
@@ -312,7 +313,7 @@ template <typename... Types> using TypeList = internal::TypeList<Types...>;
 CString libc_make_test_file_path_func(const char *file_name);
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 // For TYPED_TEST and TYPED_TEST_F below we need to display which type was used
 // to run the test. The default will return the fully qualified canonical type
diff --git a/libc/test/UnitTest/MemoryMatcher.cpp b/libc/test/UnitTest/MemoryMatcher.cpp
index c18bc4a8ab590..244f25572c378 100644
--- a/libc/test/UnitTest/MemoryMatcher.cpp
+++ b/libc/test/UnitTest/MemoryMatcher.cpp
@@ -8,13 +8,14 @@
 
 #include "MemoryMatcher.h"
 
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
 #if LIBC_TEST_HAS_MATCHERS()
 
 using LIBC_NAMESPACE::testing::tlog;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 template <typename T>
@@ -77,6 +78,6 @@ void MemoryMatcher::explainError() {
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TEST_HAS_MATCHERS()
diff --git a/libc/test/UnitTest/MemoryMatcher.h b/libc/test/UnitTest/MemoryMatcher.h
index ab77eff153b40..617231520bf20 100644
--- a/libc/test/UnitTest/MemoryMatcher.h
+++ b/libc/test/UnitTest/MemoryMatcher.h
@@ -11,15 +11,16 @@
 
 #include "src/__support/CPP/span.h"
 
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 using MemoryView = LIBC_NAMESPACE::cpp::span<const char>;
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #if !LIBC_TEST_HAS_MATCHERS()
 
@@ -41,7 +42,8 @@ using MemoryView = LIBC_NAMESPACE::cpp::span<const char>;
 
 #else // LIBC_TEST_HAS_MATCHERS()
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 class MemoryMatcher : public Matcher<MemoryView> {
   MemoryView expected;
@@ -57,7 +59,8 @@ class MemoryMatcher : public Matcher<MemoryView> {
   void explainError() override;
 };
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
 
 #define EXPECT_MEM_EQ(expected, actual)                                        \
   EXPECT_THAT(actual, LIBC_NAMESPACE::testing::MemoryMatcher(expected))
diff --git a/libc/test/UnitTest/PrintfMatcher.cpp b/libc/test/UnitTest/PrintfMatcher.cpp
index c8303815c9229..4fdcbf1746d22 100644
--- a/libc/test/UnitTest/PrintfMatcher.cpp
+++ b/libc/test/UnitTest/PrintfMatcher.cpp
@@ -9,6 +9,7 @@
 #include "PrintfMatcher.h"
 
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 
 #include "test/UnitTest/StringUtils.h"
@@ -16,7 +17,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 using printf_core::FormatFlags;
@@ -100,4 +101,4 @@ void FormatSectionMatcher::explainError() {
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/PrintfMatcher.h b/libc/test/UnitTest/PrintfMatcher.h
index a4fbeda4d585a..e0c16cf05f281 100644
--- a/libc/test/UnitTest/PrintfMatcher.h
+++ b/libc/test/UnitTest/PrintfMatcher.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_UTILS_UNITTEST_PRINTF_MATCHER_H
 #define LLVM_LIBC_UTILS_UNITTEST_PRINTF_MATCHER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/printf_core/core_structs.h"
 #include "test/UnitTest/Test.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 class FormatSectionMatcher : public Matcher<printf_core::FormatSection> {
@@ -31,7 +32,7 @@ class FormatSectionMatcher : public Matcher<printf_core::FormatSection> {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define EXPECT_PFORMAT_EQ(expected, actual)                                    \
   EXPECT_THAT(actual, LIBC_NAMESPACE::testing::FormatSectionMatcher(expected))
diff --git a/libc/test/UnitTest/RoundingModeUtils.cpp b/libc/test/UnitTest/RoundingModeUtils.cpp
index cb34c5eab421e..46ac204bcd759 100644
--- a/libc/test/UnitTest/RoundingModeUtils.cpp
+++ b/libc/test/UnitTest/RoundingModeUtils.cpp
@@ -11,8 +11,9 @@
 #include "src/__support/FPUtil/rounding_mode.h"
 
 #include "hdr/fenv_macros.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 namespace testing {
 
@@ -48,4 +49,4 @@ ForceRoundingMode::~ForceRoundingMode() {
 
 } // namespace testing
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/RoundingModeUtils.h b/libc/test/UnitTest/RoundingModeUtils.h
index b986c98fa2e5e..cdc3699d15658 100644
--- a/libc/test/UnitTest/RoundingModeUtils.h
+++ b/libc/test/UnitTest/RoundingModeUtils.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_TEST_UNITTEST_ROUNDINGMODEUTILS_H
 #define LLVM_LIBC_TEST_UNITTEST_ROUNDINGMODEUTILS_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace fputil {
 namespace testing {
 
@@ -32,6 +33,6 @@ template <RoundingMode R> struct ForceRoundingModeTest : ForceRoundingMode {
 
 } // namespace testing
 } // namespace fputil
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_UNITTEST_ROUNDINGMODEUTILS_H
diff --git a/libc/test/UnitTest/ScanfMatcher.cpp b/libc/test/UnitTest/ScanfMatcher.cpp
index 91cb73fb332ed..3e9f2a5f941a1 100644
--- a/libc/test/UnitTest/ScanfMatcher.cpp
+++ b/libc/test/UnitTest/ScanfMatcher.cpp
@@ -9,6 +9,7 @@
 #include "ScanfMatcher.h"
 
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 
 #include "test/UnitTest/StringUtils.h"
@@ -16,7 +17,7 @@
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 using scanf_core::FormatFlags;
@@ -99,4 +100,4 @@ void FormatSectionMatcher::explainError() {
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/ScanfMatcher.h b/libc/test/UnitTest/ScanfMatcher.h
index 0b9a8868bf0b8..d64258f3f4f2c 100644
--- a/libc/test/UnitTest/ScanfMatcher.h
+++ b/libc/test/UnitTest/ScanfMatcher.h
@@ -9,12 +9,13 @@
 #ifndef LLVM_LIBC_UTILS_UNITTEST_SCANF_MATCHER_H
 #define LLVM_LIBC_UTILS_UNITTEST_SCANF_MATCHER_H
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/scanf_core/core_structs.h"
 #include "test/UnitTest/Test.h"
 
 #include <errno.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 class FormatSectionMatcher : public Matcher<scanf_core::FormatSection> {
@@ -31,7 +32,7 @@ class FormatSectionMatcher : public Matcher<scanf_core::FormatSection> {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define EXPECT_SFORMAT_EQ(expected, actual)                                    \
   EXPECT_THAT(actual, LIBC_NAMESPACE::testing::FormatSectionMatcher(expected))
diff --git a/libc/test/UnitTest/StringUtils.h b/libc/test/UnitTest/StringUtils.h
index 61d74b49d4c98..9225881805603 100644
--- a/libc/test/UnitTest/StringUtils.h
+++ b/libc/test/UnitTest/StringUtils.h
@@ -12,8 +12,9 @@
 #include "src/__support/CPP/string.h"
 #include "src/__support/CPP/type_traits.h"
 #include "src/__support/big_int.h"
+#include "src/__support/macros/config.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Return the first N hex digits of an integer as a string in upper case.
 template <typename T>
@@ -32,6 +33,6 @@ int_to_hex(T value, size_t length = sizeof(T) * 2) {
   return "0x" + s;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_UNITTEST_STRINGUTILS_H
diff --git a/libc/test/UnitTest/TestLogger.cpp b/libc/test/UnitTest/TestLogger.cpp
index feba4b5ddd39b..e1df7987bcd83 100644
--- a/libc/test/UnitTest/TestLogger.cpp
+++ b/libc/test/UnitTest/TestLogger.cpp
@@ -3,12 +3,13 @@
 #include "src/__support/CPP/string_view.h"
 #include "src/__support/OSUtil/io.h"               // write_to_stderr
 #include "src/__support/big_int.h"                 // is_big_int
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 #include "src/__support/uint128.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 // cpp::string_view specialization
@@ -86,4 +87,4 @@ template TestLogger &TestLogger::operator<< <UInt<320>>(UInt<320>);
 TestLogger tlog;
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/UnitTest/TestLogger.h b/libc/test/UnitTest/TestLogger.h
index 6188bcf4434af..c4dbd3a7dc484 100644
--- a/libc/test/UnitTest/TestLogger.h
+++ b/libc/test/UnitTest/TestLogger.h
@@ -9,7 +9,9 @@
 #ifndef LLVM_LIBC_TEST_UNITTEST_TESTLOGGER_H
 #define LLVM_LIBC_TEST_UNITTEST_TESTLOGGER_H
 
-namespace LIBC_NAMESPACE {
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 // A class to log to standard output in the context of hermetic tests.
@@ -22,6 +24,6 @@ struct TestLogger {
 extern TestLogger tlog;
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif /* LLVM_LIBC_TEST_UNITTEST_TESTLOGGER_H */
diff --git a/libc/test/UnitTest/ZxTest.h b/libc/test/UnitTest/ZxTest.h
index e6bd1e8b64372..0881902d62b3b 100644
--- a/libc/test/UnitTest/ZxTest.h
+++ b/libc/test/UnitTest/ZxTest.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_LIBC_UTILS_UNITTEST_ZXTEST_H
 #define LLVM_LIBC_UTILS_UNITTEST_ZXTEST_H
 
+#include "src/__support/macros/config.h"
 #include <zxtest/zxtest.h>
 
 #define WITH_SIGNAL(X) #X
@@ -28,11 +29,13 @@
 #define EXPECT_DEATH(FUNC, SIG) ([&] { ASSERT_DEATH(FUNC, SIG); }())
 #endif
 
-namespace LIBC_NAMESPACE::testing {
+namespace LIBC_NAMESPACE_DECL {
+namespace testing {
 
 using Test = ::zxtest::Test;
 
-} // namespace LIBC_NAMESPACE::testing
+} // namespace testing
+} // namespace LIBC_NAMESPACE_DECL
 
 // zxtest does not have gmock-style matchers.
 #define LIBC_TEST_HAS_MATCHERS() (0)
diff --git a/libc/test/include/sys/queue_test.cpp b/libc/test/include/sys/queue_test.cpp
index c10e48d627caa..a1fda903bc806 100644
--- a/libc/test/include/sys/queue_test.cpp
+++ b/libc/test/include/sys/queue_test.cpp
@@ -8,6 +8,7 @@
 
 #include "src/__support/CPP/string.h"
 #include "src/__support/char_vector.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
 #include "include/llvm-libc-macros/sys-queue-macros.h"
@@ -15,7 +16,7 @@
 using LIBC_NAMESPACE::CharVector;
 using LIBC_NAMESPACE::cpp::string;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcQueueTest, SList) {
   struct Entry {
@@ -165,4 +166,4 @@ TEST(LlvmLibcQueueTest, STailQ) {
   ASSERT_TRUE(STAILQ_EMPTY(&head));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/integration/src/pthread/pthread_rwlock_test.cpp b/libc/test/integration/src/pthread/pthread_rwlock_test.cpp
index 9175efea4be95..455003b6af811 100644
--- a/libc/test/integration/src/pthread/pthread_rwlock_test.cpp
+++ b/libc/test/integration/src/pthread/pthread_rwlock_test.cpp
@@ -9,6 +9,7 @@
 #include "src/__support/CPP/atomic.h"
 #include "src/__support/CPP/new.h"
 #include "src/__support/OSUtil/syscall.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/threads/linux/raw_mutex.h"
 #include "src/__support/threads/linux/rwlock.h"
 #include "src/__support/threads/sleep.h"
@@ -41,14 +42,16 @@
 #include <pthread.h>
 #include <time.h>
 
-namespace LIBC_NAMESPACE::rwlock {
+namespace LIBC_NAMESPACE_DECL {
+namespace rwlock {
 class RwLockTester {
 public:
   static constexpr int full_reader_state() {
     return (~0) & (~RwState::PENDING_MASK) & (~RwState::ACTIVE_WRITER_BIT);
   }
 };
-} // namespace LIBC_NAMESPACE::rwlock
+} // namespace rwlock
+} // namespace LIBC_NAMESPACE_DECL
 
 static void smoke_test() {
   pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;
diff --git a/libc/test/src/__support/CPP/algorithm_test.cpp b/libc/test/src/__support/CPP/algorithm_test.cpp
index e52e5624e4a6b..00d07bfbfbaaf 100644
--- a/libc/test/src/__support/CPP/algorithm_test.cpp
+++ b/libc/test/src/__support/CPP/algorithm_test.cpp
@@ -8,11 +8,13 @@
 
 #include "src/__support/CPP/algorithm.h"
 #include "src/__support/CPP/array.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
 // TODO(https://github.com/llvm/llvm-project/issues/94066): Add unittests for
 // the remaining algorithm functions.
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 TEST(LlvmLibcAlgorithmTest, FindIfNot) {
   array<int, 4> nums{1, 2, 3, 4};
@@ -44,4 +46,5 @@ TEST(LlvmLibcAlgorithmTest, AllOf) {
   EXPECT_TRUE(all_of(nums.begin(), nums.begin(), [](int i) { return i < 0; }));
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/CPP/bit_test.cpp b/libc/test/src/__support/CPP/bit_test.cpp
index 299623d2ca240..9429b66ad1f98 100644
--- a/libc/test/src/__support/CPP/bit_test.cpp
+++ b/libc/test/src/__support/CPP/bit_test.cpp
@@ -8,12 +8,14 @@
 
 #include "src/__support/CPP/bit.h"
 #include "src/__support/big_int.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 #include "test/UnitTest/Test.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 using UnsignedTypes = testing::TypeList<
 #if defined(LIBC_TYPES_HAS_INT128)
@@ -228,4 +230,5 @@ TYPED_TEST(LlvmLibcBitTest, CountOnes, UnsignedTypes) {
               cpp::numeric_limits<T>::digits - i);
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/CPP/cstddef_test.cpp b/libc/test/src/__support/CPP/cstddef_test.cpp
index 8337081345a02..eceabaa815983 100644
--- a/libc/test/src/__support/CPP/cstddef_test.cpp
+++ b/libc/test/src/__support/CPP/cstddef_test.cpp
@@ -7,9 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/CPP/cstddef.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 TEST(LlvmLibcByteTest, to_integer) {
   const char str[] = "abc";
@@ -41,4 +43,5 @@ TEST(LlvmLibcByteTest, bitwise) {
   ASSERT_EQ(b, byte{0b00001111});
 }
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/CPP/limits_test.cpp b/libc/test/src/__support/CPP/limits_test.cpp
index bcf7d5ed6a6e7..6c94b091f15bf 100644
--- a/libc/test/src/__support/CPP/limits_test.cpp
+++ b/libc/test/src/__support/CPP/limits_test.cpp
@@ -8,10 +8,11 @@
 
 #include "src/__support/CPP/limits.h"
 #include "src/__support/big_int.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // This just checks against the C spec, almost all implementations will surpass
 // this.
@@ -42,4 +43,4 @@ TEST(LlvmLibcLimitsTest, UInt128Limits) {
 #endif // LIBC_TYPES_HAS_INT128
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/CPP/type_traits_test.cpp b/libc/test/src/__support/CPP/type_traits_test.cpp
index 1c428e93a2fd8..3c6268f86fbd1 100644
--- a/libc/test/src/__support/CPP/type_traits_test.cpp
+++ b/libc/test/src/__support/CPP/type_traits_test.cpp
@@ -7,11 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/CPP/type_traits.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
 // TODO: Split this file if it becomes too big.
 
-namespace LIBC_NAMESPACE::cpp {
+namespace LIBC_NAMESPACE_DECL {
+namespace cpp {
 
 class Class {};
 union Union {};
@@ -441,4 +443,5 @@ TEST(LlvmLibcTypeTraitsTest, true_type) { EXPECT_TRUE((true_type::value)); }
 
 // TODO void_t
 
-} // namespace LIBC_NAMESPACE::cpp
+} // namespace cpp
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/HashTable/bitmask_test.cpp b/libc/test/src/__support/HashTable/bitmask_test.cpp
index 5203220e9b5cf..ce56b2079d32e 100644
--- a/libc/test/src/__support/HashTable/bitmask_test.cpp
+++ b/libc/test/src/__support/HashTable/bitmask_test.cpp
@@ -7,8 +7,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/HashTable/bitmask.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 using ShortBitMask = BitMaskAdaptor<uint16_t, 1>;
@@ -66,4 +67,4 @@ TEST(LlvmLibcHashTableBitMaskTest, MultiBitStrideIteration) {
   }
 }
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/HashTable/group_test.cpp b/libc/test/src/__support/HashTable/group_test.cpp
index 907908335863a..25b15312ad668 100644
--- a/libc/test/src/__support/HashTable/group_test.cpp
+++ b/libc/test/src/__support/HashTable/group_test.cpp
@@ -8,11 +8,12 @@
 
 #include "src/__support/HashTable/bitmask.h"
 
+#include "src/__support/macros/config.h"
 #include "src/stdlib/rand.h"
 #include "test/UnitTest/Test.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 
 struct ByteArray {
@@ -87,4 +88,4 @@ TEST(LlvmLibcHashTableBitMaskTest, MaskAvailable) {
   }
 }
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/HashTable/table_test.cpp b/libc/test/src/__support/HashTable/table_test.cpp
index dcae6f4e8fca9..f8ffa4d4123d3 100644
--- a/libc/test/src/__support/HashTable/table_test.cpp
+++ b/libc/test/src/__support/HashTable/table_test.cpp
@@ -9,9 +9,10 @@
 #include "src/__support/CPP/bit.h" // bit_ceil
 #include "src/__support/HashTable/randomness.h"
 #include "src/__support/HashTable/table.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 TEST(LlvmLibcTableTest, AllocationAndDeallocation) {
   size_t caps[] = {0, 1, 2, 3, 4, 7, 11, 37, 1024, 5261, 19999};
@@ -128,4 +129,4 @@ TEST(LlvmLibcTableTest, Insertion) {
 }
 
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/big_int_test.cpp b/libc/test/src/__support/big_int_test.cpp
index 84cd206b3273c..2c3d57755cd5b 100644
--- a/libc/test/src/__support/big_int_test.cpp
+++ b/libc/test/src/__support/big_int_test.cpp
@@ -9,12 +9,13 @@
 #include "src/__support/CPP/optional.h"
 #include "src/__support/big_int.h"
 #include "src/__support/integer_literals.h"        // parse_unsigned_bigint
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 
 #include "hdr/math_macros.h" // HUGE_VALF, HUGE_VALF
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 enum Value { ZERO, ONE, TWO, MIN, MAX };
 
@@ -921,4 +922,4 @@ TEST(LlvmLibcUIntClassTest, OtherWordTypeTests) {
   ASSERT_EQ(static_cast<int>(a >> 64), 1);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/endian_test.cpp b/libc/test/src/__support/endian_test.cpp
index 4d95c03cf1398..758c13b686946 100644
--- a/libc/test/src/__support/endian_test.cpp
+++ b/libc/test/src/__support/endian_test.cpp
@@ -7,9 +7,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/endian.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 struct LlvmLibcEndian : testing::Test {
   template <typename T> void check(const T original, const T swapped) {
@@ -52,4 +53,4 @@ TEST_F(LlvmLibcEndian, uint64_t) {
   check(original, swapped);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/freelist_heap_test.cpp b/libc/test/src/__support/freelist_heap_test.cpp
index add590f5c6d31..5815d5dfc01ab 100644
--- a/libc/test/src/__support/freelist_heap_test.cpp
+++ b/libc/test/src/__support/freelist_heap_test.cpp
@@ -8,11 +8,12 @@
 
 #include "src/__support/CPP/span.h"
 #include "src/__support/freelist_heap.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memcmp.h"
 #include "src/string/memcpy.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using LIBC_NAMESPACE::freelist_heap;
 
@@ -284,4 +285,4 @@ TEST_FOR_EACH_ALLOCATOR(InvalidAlignedAllocAlignment, 2048) {
   EXPECT_EQ(ptr, static_cast<void *>(nullptr));
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/math_extras_test.cpp b/libc/test/src/__support/math_extras_test.cpp
index 9f9036b9d5cdf..08c090017c1a1 100644
--- a/libc/test/src/__support/math_extras_test.cpp
+++ b/libc/test/src/__support/math_extras_test.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/integer_literals.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/math_extras.h"
 #include "src/__support/uint128.h" // UInt<128>
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // TODO: add UInt<128> support.
 using UnsignedTypesNoBigInt = testing::TypeList<
@@ -158,4 +159,4 @@ TYPED_TEST(LlvmLibcBlockMathExtrasTest, sub_overflow, UnsignedTypes) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/memory_size_test.cpp b/libc/test/src/__support/memory_size_test.cpp
index 1c8f1ce87415b..bda1571fd360a 100644
--- a/libc/test/src/__support/memory_size_test.cpp
+++ b/libc/test/src/__support/memory_size_test.cpp
@@ -6,10 +6,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include "src/__support/memory_size.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace internal {
 static inline constexpr size_t SAFE_MEM_SIZE_TEST_LIMIT =
     static_cast<size_t>(cpp::numeric_limits<cpp::make_signed_t<size_t>>::max());
@@ -100,4 +101,4 @@ TEST(LlvmLibcBlockBitTest, OffsetTo) {
   }
 }
 } // namespace internal
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/str_to_double_test.cpp b/libc/test/src/__support/str_to_double_test.cpp
index 3c6d03978803b..597227b5f3288 100644
--- a/libc/test/src/__support/str_to_double_test.cpp
+++ b/libc/test/src/__support/str_to_double_test.cpp
@@ -1,6 +1,7 @@
+#include "src/__support/macros/config.h"
 #include "str_to_fp_test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 using LlvmLibcStrToDblTest = LlvmLibcStrToFloatTest<double>;
 
 TEST_F(LlvmLibcStrToDblTest, ClingerFastPathFloat64Simple) {
@@ -102,4 +103,4 @@ TEST(LlvmLibcStrToDblTest, SimpleDecimalConversionExtraTypes) {
   EXPECT_EQ(double_result.error, 0);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/str_to_float_test.cpp b/libc/test/src/__support/str_to_float_test.cpp
index f23d8706d77da..efdce46391cf5 100644
--- a/libc/test/src/__support/str_to_float_test.cpp
+++ b/libc/test/src/__support/str_to_float_test.cpp
@@ -1,6 +1,7 @@
+#include "src/__support/macros/config.h"
 #include "str_to_fp_test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using LlvmLibcStrToFltTest = LlvmLibcStrToFloatTest<float>;
 
@@ -56,4 +57,4 @@ TEST(LlvmLibcStrToFltTest, SimpleDecimalConversionExtraTypes) {
   EXPECT_EQ(float_result.error, 0);
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/str_to_fp_test.h b/libc/test/src/__support/str_to_fp_test.h
index 8d6181cda884b..db4e62a5cd0d1 100644
--- a/libc/test/src/__support/str_to_fp_test.h
+++ b/libc/test/src/__support/str_to_fp_test.h
@@ -7,13 +7,14 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_float.h"
 #include "src/__support/uint128.h"
 #include "src/errno/libc_errno.h"
 
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename T> struct LlvmLibcStrToFloatTest : public testing::Test {
   using StorageType = typename fputil::FPBits<T>::StorageType;
@@ -79,4 +80,4 @@ template <typename T> struct LlvmLibcStrToFloatTest : public testing::Test {
   }
 };
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/__support/str_to_long_double_test.cpp b/libc/test/src/__support/str_to_long_double_test.cpp
index c97fe27565e85..3433c3725c234 100644
--- a/libc/test/src/__support/str_to_long_double_test.cpp
+++ b/libc/test/src/__support/str_to_long_double_test.cpp
@@ -1,8 +1,9 @@
+#include "src/__support/macros/config.h"
 #include "str_to_fp_test.h"
 
 #include "src/__support/integer_literals.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using LlvmLibcStrToLongDblTest = LlvmLibcStrToFloatTest<long double>;
 using LIBC_NAMESPACE::operator""_u128;
@@ -81,4 +82,4 @@ TEST_F(LlvmLibcStrToLongDblTest, EiselLemireFloat128Fallback) {
 #error "Unknown long double type"
 #endif
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/math/performance_testing/BinaryOpSingleOutputPerf.h b/libc/test/src/math/performance_testing/BinaryOpSingleOutputPerf.h
index 3027932c70f40..995e41ba84b03 100644
--- a/libc/test/src/math/performance_testing/BinaryOpSingleOutputPerf.h
+++ b/libc/test/src/math/performance_testing/BinaryOpSingleOutputPerf.h
@@ -7,12 +7,13 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "test/src/math/performance_testing/Timer.h"
 
 #include <cstddef>
 #include <fstream>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 template <typename T> class BinaryOpSingleOutputPerf {
@@ -121,7 +122,7 @@ template <typename T> class BinaryOpSingleOutputPerf {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define BINARY_OP_SINGLE_OUTPUT_PERF(T, myFunc, otherFunc, filename)           \
   int main() {                                                                 \
diff --git a/libc/test/src/math/performance_testing/CMakeLists.txt b/libc/test/src/math/performance_testing/CMakeLists.txt
index 787e733fd3e14..c7241317687e0 100644
--- a/libc/test/src/math/performance_testing/CMakeLists.txt
+++ b/libc/test/src/math/performance_testing/CMakeLists.txt
@@ -3,7 +3,15 @@ add_library(
   Timer.cpp
   Timer.h
 )
-add_dependencies(libc_diff_test_utils libc.src.__support.macros.config)
+target_include_directories(
+  libc_diff_test_utils
+  PRIVATE
+    ${LIBC_SOURCE_DIR}
+)
+add_dependencies(
+  libc_diff_test_utils
+  libc.src.__support.macros.config
+)
 
 # A convenience target to build all performance tests.
 add_custom_target(libc-math-performance-tests)
diff --git a/libc/test/src/math/performance_testing/SingleInputSingleOutputPerf.h b/libc/test/src/math/performance_testing/SingleInputSingleOutputPerf.h
index b5b38313a69ca..48ae43d6315e3 100644
--- a/libc/test/src/math/performance_testing/SingleInputSingleOutputPerf.h
+++ b/libc/test/src/math/performance_testing/SingleInputSingleOutputPerf.h
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/macros/config.h"
 #include "test/src/math/performance_testing/Timer.h"
 
 #include <fstream>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 template <typename T> class SingleInputSingleOutputPerf {
@@ -80,7 +81,7 @@ template <typename T> class SingleInputSingleOutputPerf {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define SINGLE_INPUT_SINGLE_OUTPUT_PERF(T, myFunc, otherFunc, filename)        \
   int main() {                                                                 \
diff --git a/libc/test/src/math/performance_testing/Timer.cpp b/libc/test/src/math/performance_testing/Timer.cpp
index 979196ae6b835..6ab0063fa6ef0 100644
--- a/libc/test/src/math/performance_testing/Timer.cpp
+++ b/libc/test/src/math/performance_testing/Timer.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "Timer.h"
+#include "src/__support/macros/config.h"
 
 #include <chrono>
 #include <fstream>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 struct TimerImplementation {
@@ -39,4 +40,4 @@ uint64_t Timer::nanoseconds() const {
 }
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/math/performance_testing/Timer.h b/libc/test/src/math/performance_testing/Timer.h
index 2327ede260ab9..32578ade48888 100644
--- a/libc/test/src/math/performance_testing/Timer.h
+++ b/libc/test/src/math/performance_testing/Timer.h
@@ -9,9 +9,10 @@
 #ifndef LLVM_LIBC_TEST_SRC_MATH_PERFORMACE_TESTING_TIMER_H
 #define LLVM_LIBC_TEST_SRC_MATH_PERFORMACE_TESTING_TIMER_H
 
+#include "src/__support/macros/config.h"
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 class Timer {
@@ -28,6 +29,6 @@ class Timer {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_SRC_MATH_PERFORMANCE_TESTING_TIMER_H
diff --git a/libc/test/src/math/sdcomp26094.h b/libc/test/src/math/sdcomp26094.h
index 4a77b2a4cd078..bb2b9f1efb909 100644
--- a/libc/test/src/math/sdcomp26094.h
+++ b/libc/test/src/math/sdcomp26094.h
@@ -10,10 +10,11 @@
 #define LLVM_LIBC_TEST_SRC_MATH_SDCOMP26094_H
 
 #include "src/__support/CPP/array.h"
+#include "src/__support/macros/config.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 static constexpr LIBC_NAMESPACE::cpp::array<uint32_t, 10> SDCOMP26094_VALUES{
@@ -22,6 +23,6 @@ static constexpr LIBC_NAMESPACE::cpp::array<uint32_t, 10> SDCOMP26094_VALUES{
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_SRC_MATH_SDCOMP26094_H
diff --git a/libc/test/src/stdio/sprintf_test.cpp b/libc/test/src/stdio/sprintf_test.cpp
index 1ca22f71f0f2f..be7c06fa918fd 100644
--- a/libc/test/src/stdio/sprintf_test.cpp
+++ b/libc/test/src/stdio/sprintf_test.cpp
@@ -6,6 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include "src/stdio/sprintf.h"
 
 #include "src/__support/FPUtil/FPBits.h"
@@ -16,7 +17,7 @@
 // TODO: Add a comment here explaining the printf format string.
 
 // #include <stdio.h>
-// namespace LIBC_NAMESPACE {
+// namespace LIBC_NAMESPACE_DECL {
 // using ::sprintf;
 // }
 
diff --git a/libc/test/src/stdlib/strtoint32_test.cpp b/libc/test/src/stdlib/strtoint32_test.cpp
index a7c9141d9f79b..17df432fc8e68 100644
--- a/libc/test/src/stdlib/strtoint32_test.cpp
+++ b/libc/test/src/stdlib/strtoint32_test.cpp
@@ -8,13 +8,14 @@
 
 #include <stdint.h>
 
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
 #include "StrtolTest.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int32_t strtoint32(const char *__restrict str, char **__restrict str_end,
                    int base) {
@@ -39,7 +40,7 @@ uint32_t strtouint32(const char *__restrict str, char **__restrict str_end,
 
   return result;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 STRTOL_TEST(Strtoint32, LIBC_NAMESPACE::strtoint32)
 STRTOL_TEST(Strtouint32, LIBC_NAMESPACE::strtouint32)
diff --git a/libc/test/src/stdlib/strtoint64_test.cpp b/libc/test/src/stdlib/strtoint64_test.cpp
index 350b5aca4c850..b5fe69dfaa701 100644
--- a/libc/test/src/stdlib/strtoint64_test.cpp
+++ b/libc/test/src/stdlib/strtoint64_test.cpp
@@ -8,13 +8,14 @@
 
 #include <stdint.h>
 
+#include "src/__support/macros/config.h"
 #include "src/__support/str_to_integer.h"
 #include "src/errno/libc_errno.h"
 
 #include "StrtolTest.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 int64_t strtoint64(const char *__restrict str, char **__restrict str_end,
                    int base) {
@@ -39,7 +40,7 @@ uint64_t strtouint64(const char *__restrict str, char **__restrict str_end,
 
   return result;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 STRTOL_TEST(Strtoint64, LIBC_NAMESPACE::strtoint64)
 STRTOL_TEST(Strtouint64, LIBC_NAMESPACE::strtouint64)
diff --git a/libc/test/src/string/bcmp_test.cpp b/libc/test/src/string/bcmp_test.cpp
index fa89e4d7b08f1..c639040685e19 100644
--- a/libc/test/src/string/bcmp_test.cpp
+++ b/libc/test/src/string/bcmp_test.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_utils/memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/bcmp.h"
 #include "test/UnitTest/Test.h"
 #include "test/UnitTest/TestLogger.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcBcmpTest, CmpZeroByte) {
   const char *lhs = "ab";
@@ -57,4 +58,4 @@ TEST(LlvmLibcBcmpTest, SizeSweep) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/bcopy_test.cpp b/libc/test/src/string/bcopy_test.cpp
index f8cb9208838f3..04772bb5d8ad7 100644
--- a/libc/test/src/string/bcopy_test.cpp
+++ b/libc/test/src/string/bcopy_test.cpp
@@ -6,6 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include "src/string/bcopy.h"
 
 #include "memory_utils/memory_check_utils.h"
@@ -16,7 +17,7 @@
 using LIBC_NAMESPACE::cpp::array;
 using LIBC_NAMESPACE::cpp::span;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcBcopyTest, MoveZeroByte) {
   char Buffer[] = {'a', 'b', 'y', 'z'};
@@ -95,4 +96,4 @@ TEST(LlvmLibcBcopyTest, SizeSweep) {
     }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/bzero_test.cpp b/libc/test/src/string/bzero_test.cpp
index 7382490e13cba..a24043613bed7 100644
--- a/libc/test/src/string/bzero_test.cpp
+++ b/libc/test/src/string/bzero_test.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_utils/memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/bzero.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Adapt CheckMemset signature to bzero.
 static inline void Adaptor(cpp::span<char> p1, uint8_t value, size_t size) {
@@ -26,4 +27,4 @@ TEST(LlvmLibcBzeroTest, SizeSweep) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memcmp_test.cpp b/libc/test/src/string/memcmp_test.cpp
index ca7a5c7ce3702..9f85a6d4f2229 100644
--- a/libc/test/src/string/memcmp_test.cpp
+++ b/libc/test/src/string/memcmp_test.cpp
@@ -7,11 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_utils/memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memcmp.h"
 #include "test/UnitTest/Test.h"
 #include "test/UnitTest/TestLogger.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcMemcmpTest, CmpZeroByte) {
   const char *lhs = "ab";
@@ -64,4 +65,4 @@ TEST(LlvmLibcMemcmpTest, SizeSweep) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memcpy_test.cpp b/libc/test/src/string/memcpy_test.cpp
index 1ac9631148441..adf6ef7e66d3f 100644
--- a/libc/test/src/string/memcpy_test.cpp
+++ b/libc/test/src/string/memcpy_test.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_utils/memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/os.h" // LIBC_TARGET_OS_IS_LINUX
 #include "src/string/memcpy.h"
 #include "test/UnitTest/Test.h"
@@ -15,7 +16,7 @@
 #include "memory_utils/protected_pages.h"
 #endif // !defined(LIBC_FULL_BUILD) && defined(LIBC_TARGET_OS_IS_LINUX)
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Adapt CheckMemcpy signature to memcpy.
 static inline void Adaptor(cpp::span<char> dst, cpp::span<char> src,
@@ -71,4 +72,4 @@ TEST(LlvmLibcMemcpyTest, CheckAccess) {
 
 #endif // !defined(LIBC_FULL_BUILD) && defined(LIBC_TARGET_OS_IS_LINUX)
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memmem_test.cpp b/libc/test/src/string/memmem_test.cpp
index 56d4b7f03c264..539f6a136dc02 100644
--- a/libc/test/src/string/memmem_test.cpp
+++ b/libc/test/src/string/memmem_test.cpp
@@ -6,12 +6,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include "src/string/memmem.h"
 #include "test/UnitTest/Test.h"
 
 #include "src/string/string_utils.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcMemmemTest, EmptyHaystackEmptyNeedleReturnsHaystck) {
   char *h = nullptr;
@@ -126,4 +127,4 @@ TEST(LlvmLibcMemmemTest, ReturnNullIfInadequateHaystackLength) {
     ASSERT_EQ(result, static_cast<void *>(nullptr));
   }
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memmove_test.cpp b/libc/test/src/string/memmove_test.cpp
index b076e862b6ec7..e280b5d25f6f4 100644
--- a/libc/test/src/string/memmove_test.cpp
+++ b/libc/test/src/string/memmove_test.cpp
@@ -6,6 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "src/__support/macros/config.h"
 #include "src/string/memmove.h"
 
 #include "memory_utils/memory_check_utils.h"
@@ -16,7 +17,7 @@
 using LIBC_NAMESPACE::cpp::array;
 using LIBC_NAMESPACE::cpp::span;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcMemmoveTest, MoveZeroByte) {
   char Buffer[] = {'a', 'b', 'y', 'z'};
@@ -101,4 +102,4 @@ TEST(LlvmLibcMemmoveTest, SizeSweep) {
     }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memory_utils/memory_check_utils.h b/libc/test/src/string/memory_utils/memory_check_utils.h
index 9504230e0c3aa..3ddd15b181c8e 100644
--- a/libc/test/src/string/memory_utils/memory_check_utils.h
+++ b/libc/test/src/string/memory_utils/memory_check_utils.h
@@ -11,13 +11,14 @@
 
 #include "src/__support/CPP/span.h"
 #include "src/__support/libc_assert.h" // LIBC_ASSERT
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/sanitizer.h"
 #include "src/string/memory_utils/utils.h"
 #include <stddef.h> // size_t
 #include <stdint.h> // uintxx_t
 #include <stdlib.h> // malloc/free
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Simple structure to allocate a buffer of a particular size.
 // When ASAN is present it also poisons the whole memory.
@@ -198,6 +199,6 @@ inline bool CheckMemmove(cpp::span<char> buffer, size_t size, int overlap) {
   return true;
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LIBC_TEST_SRC_STRING_MEMORY_UTILS_MEMORY_CHECK_UTILS_H
diff --git a/libc/test/src/string/memory_utils/op_tests.cpp b/libc/test/src/string/memory_utils/op_tests.cpp
index 703a26b16b03f..2c7524943c0e6 100644
--- a/libc/test/src/string/memory_utils/op_tests.cpp
+++ b/libc/test/src/string/memory_utils/op_tests.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT64
 #include "src/string/memory_utils/op_aarch64.h"
 #include "src/string/memory_utils/op_builtin.h"
@@ -15,7 +16,7 @@
 #include "src/string/memory_utils/op_x86.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 template <typename T> struct has_head_tail {
   template <typename C> static char sfinae(decltype(&C::head_tail));
@@ -344,4 +345,4 @@ TYPED_TEST(LlvmLibcOpTest, Memcmp, MemcmpImplementations) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memory_utils/utils_test.cpp b/libc/test/src/string/memory_utils/utils_test.cpp
index 5ed35b08cdffd..4c1accd551685 100644
--- a/libc/test/src/string/memory_utils/utils_test.cpp
+++ b/libc/test/src/string/memory_utils/utils_test.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/__support/CPP/array.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memory_utils/utils.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 using UINT = uintptr_t;
 
@@ -137,4 +138,4 @@ TEST(LlvmLibcUtilsTest, LoadStoreAligned) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memset_explicit_test.cpp b/libc/test/src/string/memset_explicit_test.cpp
index bb5111bd639e3..4842f45791c44 100644
--- a/libc/test/src/string/memset_explicit_test.cpp
+++ b/libc/test/src/string/memset_explicit_test.cpp
@@ -7,10 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_utils/memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/string/memset_explicit.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Apply the same tests as memset
 
@@ -28,4 +29,4 @@ TEST(LlvmLibcmemsetExplicitTest, SizeSweep) {
   }
 }
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/string/memset_test.cpp b/libc/test/src/string/memset_test.cpp
index d78b579a0edbf..774a321ddfce6 100644
--- a/libc/test/src/string/memset_test.cpp
+++ b/libc/test/src/string/memset_test.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "memory_utils/memory_check_utils.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/os.h" // LIBC_TARGET_OS_IS_LINUX
 #include "src/string/memset.h"
 #include "test/UnitTest/Test.h"
@@ -15,7 +16,7 @@
 #include "memory_utils/protected_pages.h"
 #endif // !defined(LIBC_FULL_BUILD) && defined(LIBC_TARGET_OS_IS_LINUX)
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 
 // Adapt CheckMemset signature to memset.
 static inline void Adaptor(cpp::span<char> p1, uint8_t value, size_t size) {
@@ -58,4 +59,4 @@ TEST(LlvmLibcMemsetTest, CheckAccess) {
 
 #endif // !defined(LIBC_FULL_BUILD) && defined(LIBC_TARGET_OS_IS_LINUX)
 
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/sys/statvfs/linux/fstatvfs_test.cpp b/libc/test/src/sys/statvfs/linux/fstatvfs_test.cpp
index bd5195c7969bd..0895c33167151 100644
--- a/libc/test/src/sys/statvfs/linux/fstatvfs_test.cpp
+++ b/libc/test/src/sys/statvfs/linux/fstatvfs_test.cpp
@@ -1,4 +1,5 @@
 #include "llvm-libc-macros/linux/fcntl-macros.h"
+#include "src/__support/macros/config.h"
 #include "src/fcntl/open.h"
 #include "src/sys/statvfs/fstatvfs.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
@@ -8,7 +9,7 @@
 #include <linux/magic.h>
 using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 static int fstatfs(int fd, struct statfs *buf) {
   using namespace statfs_utils;
   if (cpp::optional<LinuxStatFs> result = linux_fstatfs(fd)) {
@@ -17,7 +18,7 @@ static int fstatfs(int fd, struct statfs *buf) {
   }
   return -1;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 struct PathFD {
   int fd;
diff --git a/libc/test/src/sys/statvfs/linux/statvfs_test.cpp b/libc/test/src/sys/statvfs/linux/statvfs_test.cpp
index 695d2c0d5e98d..6719c1ab26865 100644
--- a/libc/test/src/sys/statvfs/linux/statvfs_test.cpp
+++ b/libc/test/src/sys/statvfs/linux/statvfs_test.cpp
@@ -1,3 +1,4 @@
+#include "src/__support/macros/config.h"
 #include "src/sys/statvfs/linux/statfs_utils.h"
 #include "src/sys/statvfs/statvfs.h"
 #include "test/UnitTest/ErrnoSetterMatcher.h"
@@ -5,7 +6,7 @@
 #include <linux/magic.h>
 using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 static int statfs(const char *path, struct statfs *buf) {
   using namespace statfs_utils;
   if (cpp::optional<LinuxStatFs> result = linux_statfs(path)) {
@@ -14,7 +15,7 @@ static int statfs(const char *path, struct statfs *buf) {
   }
   return -1;
 }
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 TEST(LlvmLibcSysStatfsTest, StatfsBasic) {
   struct statfs buf;
diff --git a/libc/test/src/time/TmHelper.h b/libc/test/src/time/TmHelper.h
index 16210944bf15f..5ae258461099b 100644
--- a/libc/test/src/time/TmHelper.h
+++ b/libc/test/src/time/TmHelper.h
@@ -11,11 +11,12 @@
 
 #include <time.h>
 
+#include "src/__support/macros/config.h"
 #include "src/time/time_utils.h"
 
 using LIBC_NAMESPACE::time_utils::TimeConstants;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace tmhelper {
 namespace testing {
 
@@ -38,6 +39,6 @@ static inline void initialize_tm_data(struct tm *tm_data, int year, int month,
 
 } // namespace testing
 } // namespace tmhelper
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #endif // LLVM_LIBC_TEST_SRC_TIME_TMHELPER_H
diff --git a/libc/test/src/time/TmMatcher.h b/libc/test/src/time/TmMatcher.h
index 7cdc2c4b90502..630956b0f08d6 100644
--- a/libc/test/src/time/TmMatcher.h
+++ b/libc/test/src/time/TmMatcher.h
@@ -11,9 +11,10 @@
 
 #include <time.h>
 
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/Test.h"
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 class StructTmMatcher : public Matcher<::tm> {
@@ -57,7 +58,7 @@ class StructTmMatcher : public Matcher<::tm> {
 };
 
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 #define EXPECT_TM_EQ(expected, actual)                                         \
   EXPECT_THAT((actual), LIBC_NAMESPACE::testing::StructTmMatcher((expected)))
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index 99a240e555af2..b67a9da40bd7b 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -14,6 +14,7 @@
 #include "src/__support/CPP/stringstream.h"
 #include "src/__support/FPUtil/FPBits.h"
 #include "src/__support/FPUtil/fpbits_str.h"
+#include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h"
 
 #include <stdint.h>
@@ -22,7 +23,7 @@
 
 template <typename T> using FPBits = LIBC_NAMESPACE::fputil::FPBits<T>;
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 namespace mpfr {
 
@@ -1299,4 +1300,4 @@ template float16 round<float16>(float16, RoundingMode);
 
 } // namespace mpfr
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.h b/libc/utils/MPFRWrapper/MPFRUtils.h
index fd0d72472bf7e..28390af9ee6d8 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.h
+++ b/libc/utils/MPFRWrapper/MPFRUtils.h
@@ -10,12 +10,13 @@
 #define LLVM_LIBC_UTILS_MPFRWRAPPER_MPFRUTILS_H
 
 #include "src/__support/CPP/type_traits.h"
+#include "src/__support/macros/config.h"
 #include "test/UnitTest/RoundingModeUtils.h"
 #include "test/UnitTest/Test.h"
 
 #include <stdint.h>
 
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 namespace mpfr {
 
@@ -372,7 +373,7 @@ template <typename T> bool round_to_long(T x, RoundingMode mode, long &result);
 
 } // namespace mpfr
 } // namespace testing
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
 
 // GET_MPFR_DUMMY_ARG is going to be added to the end of GET_MPFR_MACRO as a
 // simple way to avoid the compiler warning `gnu-zero-variadic-macro-arguments`.
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index 28cc040ff4bee..7f9a114d95775 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -51,6 +51,13 @@ config_setting(
     flag_values = {":mpfr": "system"},
 )
 
+################################## Base Config #################################
+
+cc_library(
+    name = "__support_macros_config",
+    hdrs = ["src/__support/macros/config.h"],
+)
+
 ################################# Include Files ################################
 
 libc_support_library(
@@ -234,11 +241,6 @@ libc_support_library(
     ],
 )
 
-libc_support_library(
-    name = "__support_macros_config",
-    hdrs = ["src/__support/macros/config.h"],
-)
-
 libc_support_library(
     name = "__support_macros_attributes",
     hdrs = ["src/__support/macros/attributes.h"],
@@ -252,7 +254,6 @@ libc_support_library(
     hdrs = ["src/__support/macros/optimization.h"],
     deps = [
         ":__support_macros_attributes",
-        ":__support_macros_config",
         ":__support_macros_properties_compiler",
     ],
 )
@@ -260,9 +261,6 @@ libc_support_library(
 libc_support_library(
     name = "__support_macros_sanitizer",
     hdrs = ["src/__support/macros/sanitizer.h"],
-    deps = [
-        ":__support_macros_config",
-    ],
 )
 
 libc_support_library(
diff --git a/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl b/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
index ec3714407cb91..cc732effb243e 100644
--- a/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
+++ b/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
@@ -43,7 +43,7 @@ def _libc_library(name, hidden, copts = [], deps = [], local_defines = [], **kwa
         name = name,
         copts = copts + libc_common_copts(),
         local_defines = local_defines + LIBC_CONFIGURE_OPTIONS,
-        deps = deps,
+        deps = deps + ["//libc:__support_macros_config"],
         linkstatic = 1,
         **kwargs
     )
diff --git a/utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl b/utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
index ae24a41c60418..1da0a24b7791a 100644
--- a/utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+++ b/utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
@@ -34,6 +34,7 @@ def libc_test(name, srcs, libc_function_deps = [], copts = [], deps = [], local_
         local_defines = local_defines + LIBC_CONFIGURE_OPTIONS,
         deps = [libc_internal_target(d) for d in all_function_deps] + [
             "//libc/test/UnitTest:LibcUnitTest",
+            "//libc:__support_macros_config",
         ] + deps,
         features = ["-link_llvmlibc"],  # Do not link libllvmlibc.a
         copts = copts + libc_common_copts(),



More information about the libc-commits mailing list